mirror of
https://gitlab.winehq.org/wine/vkd3d.git
synced 2025-01-28 13:05:02 -08:00
vkd3d-shader: Get descriptor info for descriptor arrays.
Signed-off-by: Conor McCarthy <cmccarthy@codeweavers.com> Signed-off-by: Henri Verbeet <hverbeet@codeweavers.com> Signed-off-by: Alexandre Julliard <julliard@winehq.org>
This commit is contained in:
parent
85eff9373d
commit
a97d090010
@ -1137,7 +1137,10 @@ struct vkd3d_shader_descriptor_info
|
||||
* \ref vkd3d_shader_descriptor_info_flag.
|
||||
*/
|
||||
unsigned int flags;
|
||||
/** Size of this descriptor array, or 1 if a single descriptor. */
|
||||
/**
|
||||
* Size of this descriptor array, or 1 if a single descriptor.
|
||||
* For an unbounded array this value is ~0u.
|
||||
*/
|
||||
unsigned int count;
|
||||
};
|
||||
|
||||
|
@ -5541,13 +5541,15 @@ static const struct vkd3d_shader_descriptor_info *vkd3d_dxbc_compiler_get_descri
|
||||
const struct vkd3d_shader_register_range *range)
|
||||
{
|
||||
const struct vkd3d_shader_scan_descriptor_info *descriptor_info = compiler->scan_descriptor_info;
|
||||
unsigned int register_last = (range->last == ~0u) ? range->first : range->last;
|
||||
const struct vkd3d_shader_descriptor_info *d;
|
||||
unsigned int i;
|
||||
|
||||
for (i = 0; i < descriptor_info->descriptor_count; ++i)
|
||||
{
|
||||
d = &descriptor_info->descriptors[i];
|
||||
if (d->type == type && d->register_space == range->space && d->register_index == range->first)
|
||||
if (d->type == type && d->register_space == range->space && d->register_index <= range->first
|
||||
&& (d->count == ~0u || d->count > register_last - d->register_index))
|
||||
return d;
|
||||
}
|
||||
|
||||
|
@ -601,7 +601,7 @@ static bool vkd3d_shader_scan_add_descriptor(struct vkd3d_shader_scan_context *c
|
||||
d->resource_type = resource_type;
|
||||
d->resource_data_type = resource_data_type;
|
||||
d->flags = flags;
|
||||
d->count = 1;
|
||||
d->count = (range->last == ~0u) ? ~0u : range->last - range->first + 1;
|
||||
++info->descriptor_count;
|
||||
|
||||
return true;
|
||||
|
Loading…
x
Reference in New Issue
Block a user