mirror of
https://gitlab.winehq.org/wine/vkd3d.git
synced 2024-11-21 16:46:41 -08:00
vkd3d-common: Introduce VKD3D_BITMAP_SIZE.
This commit is contained in:
parent
aa35b2cecb
commit
46fca3f9f4
Notes:
Alexandre Julliard
2024-04-23 22:59:18 +02:00
Approved-by: Giovanni Mascellani (@giomasce) Approved-by: Alexandre Julliard (@julliard) Merge-Request: https://gitlab.winehq.org/wine/vkd3d/-/merge_requests/824
@ -340,6 +340,8 @@ static inline int vkd3d_u32_compare(uint32_t x, uint32_t y)
|
|||||||
return (x > y) - (x < y);
|
return (x > y) - (x < y);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
#define VKD3D_BITMAP_SIZE(x) (((x) + 0x1f) >> 5)
|
||||||
|
|
||||||
static inline bool bitmap_clear(uint32_t *map, unsigned int idx)
|
static inline bool bitmap_clear(uint32_t *map, unsigned int idx)
|
||||||
{
|
{
|
||||||
return map[idx >> 5] &= ~(1u << (idx & 0x1f));
|
return map[idx >> 5] &= ~(1u << (idx & 0x1f));
|
||||||
|
@ -216,7 +216,7 @@ struct vkd3d_shader_sm1_parser
|
|||||||
struct vkd3d_shader_parser p;
|
struct vkd3d_shader_parser p;
|
||||||
|
|
||||||
#define MAX_CONSTANT_COUNT 8192
|
#define MAX_CONSTANT_COUNT 8192
|
||||||
uint32_t constant_def_mask[3][MAX_CONSTANT_COUNT / 32];
|
uint32_t constant_def_mask[3][VKD3D_BITMAP_SIZE(MAX_CONSTANT_COUNT)];
|
||||||
};
|
};
|
||||||
|
|
||||||
/* This table is not order or position dependent. */
|
/* This table is not order or position dependent. */
|
||||||
|
@ -805,7 +805,7 @@ struct sm6_parser
|
|||||||
struct vkd3d_shader_dst_param *output_params;
|
struct vkd3d_shader_dst_param *output_params;
|
||||||
struct vkd3d_shader_dst_param *input_params;
|
struct vkd3d_shader_dst_param *input_params;
|
||||||
struct vkd3d_shader_dst_param *patch_constant_params;
|
struct vkd3d_shader_dst_param *patch_constant_params;
|
||||||
uint32_t io_regs_declared[(VKD3DSPR_COUNT + 0x1f) / 0x20];
|
uint32_t io_regs_declared[VKD3D_BITMAP_SIZE(VKD3DSPR_COUNT)];
|
||||||
|
|
||||||
struct sm6_function *functions;
|
struct sm6_function *functions;
|
||||||
size_t function_count;
|
size_t function_count;
|
||||||
|
@ -2917,8 +2917,7 @@ static enum vkd3d_result vsir_block_init(struct vsir_block *block, unsigned int
|
|||||||
if (block_count > SIZE_MAX - (sizeof(*block->dominates) * CHAR_BIT - 1))
|
if (block_count > SIZE_MAX - (sizeof(*block->dominates) * CHAR_BIT - 1))
|
||||||
return VKD3D_ERROR_OUT_OF_MEMORY;
|
return VKD3D_ERROR_OUT_OF_MEMORY;
|
||||||
|
|
||||||
block_count = align(block_count, sizeof(*block->dominates) * CHAR_BIT);
|
byte_count = VKD3D_BITMAP_SIZE(block_count) * sizeof(*block->dominates);
|
||||||
byte_count = block_count / CHAR_BIT;
|
|
||||||
|
|
||||||
assert(label);
|
assert(label);
|
||||||
memset(block, 0, sizeof(*block));
|
memset(block, 0, sizeof(*block));
|
||||||
|
@ -177,7 +177,7 @@ struct shader_runner
|
|||||||
|
|
||||||
struct resource *resources[MAX_RESOURCES];
|
struct resource *resources[MAX_RESOURCES];
|
||||||
size_t resource_count;
|
size_t resource_count;
|
||||||
uint32_t failed_resources[RESOURCE_TYPE_VERTEX_BUFFER + 1][(MAX_RESOURCES + 0x1f) / 0x20];
|
uint32_t failed_resources[RESOURCE_TYPE_VERTEX_BUFFER + 1][VKD3D_BITMAP_SIZE(MAX_RESOURCES)];
|
||||||
unsigned int failed_resource_count;
|
unsigned int failed_resource_count;
|
||||||
|
|
||||||
struct sampler samplers[MAX_SAMPLERS];
|
struct sampler samplers[MAX_SAMPLERS];
|
||||||
|
Loading…
Reference in New Issue
Block a user