diff options
author | Mike Blumenkrantz <michael.blumenkrantz@gmail.com> | 2021-04-01 14:21:34 -0400 |
---|---|---|
committer | Mike Blumenkrantz <michael.blumenkrantz@gmail.com> | 2021-05-11 22:39:50 -0400 |
commit | 402eaa0795a91bef8a8fa050216e68bbdb95dc31 (patch) | |
tree | 4143f5429ad018fceb27c9338bab19eb4e385f7e /src/gallium/drivers | |
parent | 1082dc5f4a0723e7bc36e5a76b1889ed5255349d (diff) |
zink: track number of tbos in shader data
Reviewed-by: Dave Airlie <airlied@redhat.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10699>
Diffstat (limited to 'src/gallium/drivers')
-rw-r--r-- | src/gallium/drivers/zink/zink_compiler.c | 2 | ||||
-rw-r--r-- | src/gallium/drivers/zink/zink_compiler.h | 1 |
2 files changed, 3 insertions, 0 deletions
diff --git a/src/gallium/drivers/zink/zink_compiler.c b/src/gallium/drivers/zink/zink_compiler.c index ce6e3a7266f..35be98bc9b9 100644 --- a/src/gallium/drivers/zink/zink_compiler.c +++ b/src/gallium/drivers/zink/zink_compiler.c @@ -921,6 +921,8 @@ zink_shader_create(struct zink_screen *screen, struct nir_shader *nir, assert(var->data.mode == nir_var_uniform); if (glsl_type_is_sampler(type) || glsl_type_is_image(type)) { VkDescriptorType vktype = glsl_type_is_image(type) ? zink_image_type(type) : zink_sampler_type(type); + if (vktype == VK_DESCRIPTOR_TYPE_UNIFORM_TEXEL_BUFFER) + ret->num_texel_buffers++; ztype = zink_desc_type_from_vktype(vktype); var->data.descriptor_set = ztype; var->data.driver_location = var->data.binding; diff --git a/src/gallium/drivers/zink/zink_compiler.h b/src/gallium/drivers/zink/zink_compiler.h index 7352b0aa11d..a38df2a7ef7 100644 --- a/src/gallium/drivers/zink/zink_compiler.h +++ b/src/gallium/drivers/zink/zink_compiler.h @@ -78,6 +78,7 @@ struct zink_shader { unsigned char size; } bindings[ZINK_DESCRIPTOR_TYPES][32]; size_t num_bindings[ZINK_DESCRIPTOR_TYPES]; + unsigned num_texel_buffers; uint32_t ubos_used; // bitfield of which ubo indices are used uint32_t ssbos_used; // bitfield of which ssbo indices are used struct set *programs; |