Replace uses of _mesa_bitcount with util_bitcount
and _mesa_bitcount_64 with util_bitcount_64. This fixes a build problem in nir for platforms that don't have popcount or popcountll, such as 32bit msvc. v2: - Fix additional uses of _mesa_bitcount added after this was originally written Acked-by: Eric Engestrom <eric.engestrom@intel.com> (v1) Acked-by: Eric Anholt <eric@anholt.net> Reviewed-by: Ian Romanick <ian.d.romanick@intel.com>
This commit is contained in:
@@ -39,7 +39,7 @@
|
||||
#include "ir.h"
|
||||
#include "compiler/glsl_types.h"
|
||||
#include "util/hash_table.h"
|
||||
#include "main/imports.h"
|
||||
#include "util/u_math.h"
|
||||
|
||||
static float
|
||||
dot_f(ir_constant *op0, ir_constant *op1)
|
||||
|
@@ -535,7 +535,7 @@ ir_expression_operation = [
|
||||
|
||||
# Bit operations, part of ARB_gpu_shader5.
|
||||
operation("bitfield_reverse", 1, source_types=(uint_type, int_type), c_expression="bitfield_reverse({src0})"),
|
||||
operation("bit_count", 1, source_types=(uint_type, int_type), dest_type=int_type, c_expression="_mesa_bitcount({src0})"),
|
||||
operation("bit_count", 1, source_types=(uint_type, int_type), dest_type=int_type, c_expression="util_bitcount({src0})"),
|
||||
operation("find_msb", 1, source_types=(uint_type, int_type), dest_type=int_type, c_expression={'u': "find_msb_uint({src0})", 'i': "find_msb_int({src0})"}),
|
||||
operation("find_lsb", 1, source_types=(uint_type, int_type), dest_type=int_type, c_expression="find_msb_uint({src0} & -{src0})"),
|
||||
|
||||
|
@@ -38,6 +38,7 @@
|
||||
#include "link_varyings.h"
|
||||
#include "main/macros.h"
|
||||
#include "util/hash_table.h"
|
||||
#include "util/u_math.h"
|
||||
#include "program.h"
|
||||
|
||||
|
||||
@@ -2879,13 +2880,13 @@ link_varyings(struct gl_shader_program *prog, unsigned first, unsigned last,
|
||||
|
||||
/* This must be done after all dead varyings are eliminated. */
|
||||
if (sh_i != NULL) {
|
||||
unsigned slots_used = _mesa_bitcount_64(reserved_out_slots);
|
||||
unsigned slots_used = util_bitcount64(reserved_out_slots);
|
||||
if (!check_against_output_limit(ctx, prog, sh_i, slots_used)) {
|
||||
return false;
|
||||
}
|
||||
}
|
||||
|
||||
unsigned slots_used = _mesa_bitcount_64(reserved_in_slots);
|
||||
unsigned slots_used = util_bitcount64(reserved_in_slots);
|
||||
if (!check_against_input_limit(ctx, prog, sh_next, slots_used))
|
||||
return false;
|
||||
|
||||
|
@@ -84,6 +84,7 @@
|
||||
#include "builtin_functions.h"
|
||||
#include "shader_cache.h"
|
||||
#include "util/u_string.h"
|
||||
#include "util/u_math.h"
|
||||
|
||||
#include "main/imports.h"
|
||||
#include "main/shaderobj.h"
|
||||
@@ -3013,8 +3014,8 @@ assign_attribute_or_color_locations(void *mem_ctx,
|
||||
|
||||
if (target_index == MESA_SHADER_VERTEX) {
|
||||
unsigned total_attribs_size =
|
||||
_mesa_bitcount(used_locations & SAFE_MASK_FROM_INDEX(max_index)) +
|
||||
_mesa_bitcount(double_storage_locations);
|
||||
util_bitcount(used_locations & SAFE_MASK_FROM_INDEX(max_index)) +
|
||||
util_bitcount(double_storage_locations);
|
||||
if (total_attribs_size > max_index) {
|
||||
linker_error(prog,
|
||||
"attempt to use %d vertex attribute slots only %d available ",
|
||||
@@ -3077,8 +3078,8 @@ assign_attribute_or_color_locations(void *mem_ctx,
|
||||
*/
|
||||
if (target_index == MESA_SHADER_VERTEX) {
|
||||
unsigned total_attribs_size =
|
||||
_mesa_bitcount(used_locations & SAFE_MASK_FROM_INDEX(max_index)) +
|
||||
_mesa_bitcount(double_storage_locations);
|
||||
util_bitcount(used_locations & SAFE_MASK_FROM_INDEX(max_index)) +
|
||||
util_bitcount(double_storage_locations);
|
||||
if (total_attribs_size > max_index) {
|
||||
linker_error(prog,
|
||||
"attempt to use %d vertex attribute slots only %d available ",
|
||||
|
Reference in New Issue
Block a user