mesa/src/broadcom/vulkan
Alejandro Piñeiro ee917d2b78 v3dv/descriptor_set: combine texture and sampler indices
OpenGL doesn't have the concept of individual texture and sampler, so
texture and sampler indexes have the same value. v3d compiler uses
this assumption, so for example, the texture info at the v3d key
include values that you need to use the texture format and the sampler
to fill (like the return_size).

One option would be to adapt the v3d compiler to handle both, but then
we would need to adapt to the lowerings it uses, like nir_lower_tex,
that also take the same assumption.

We deal with this on the Vulkan driver, by reassigning the texture and
sampler index to a combined one. We add a hash table to map the
combined texture idx and sampler idx to this combined idx, and a
simple array to the opposite map. On the driver we work with the
separate indices to fill up the data, while the v3d compiler works
with the combined one.

As mentioned, this is needed to properly fill up the texture return
size, so as we are here, we fix that. This gets tests like the
following working:

dEQP-VK.glsl.texture_gather.basic.2d.depth32f.base_level.level_2

Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/6766>
2020-10-13 21:21:29 +00:00
..
.dir-locals.el
.editorconfig
meson.build v3dv: implement vkCmdClearAttachments 2020-10-13 21:21:27 +00:00
v3d_tiling.c v3dv: implement vkCreateImage 2020-10-13 21:21:25 +00:00
v3dv_bo.c v3dv/bo: add a bo name 2020-10-13 21:21:27 +00:00
v3dv_bo.h v3dv/bo: add a bo name 2020-10-13 21:21:27 +00:00
v3dv_cl.c v3dv: support submits without a command buffer 2020-10-13 21:21:28 +00:00
v3dv_cl.h v3dv: initial descriptor set support 2020-10-13 21:21:27 +00:00
v3dv_cmd_buffer.c v3dv/descriptor_set: combine texture and sampler indices 2020-10-13 21:21:29 +00:00
v3dv_debug.c v3dv/debug: add v3dv_debug 2020-10-13 21:21:25 +00:00
v3dv_debug.h v3dv/debug: add v3dv_debug 2020-10-13 21:21:25 +00:00
v3dv_descriptor_set.c v3dv/descriptor: move descriptor_map_get_sampler, add and use get_image_view 2020-10-13 21:21:29 +00:00
v3dv_device.c v3dv/descriptor_set: combine texture and sampler indices 2020-10-13 21:21:29 +00:00
v3dv_entrypoints_gen.py
v3dv_extensions.py v3dv: hook up WSI support 2020-10-13 21:21:26 +00:00
v3dv_extensions_gen.py
v3dv_formats.c v3dv/descriptor_set: combine texture and sampler indices 2020-10-13 21:21:29 +00:00
v3dv_icd.py
v3dv_image.c v3dv/descriptor_set: added support for samplers 2020-10-13 21:21:29 +00:00
v3dv_meta_clear.c v3dv: handle partial clears of just one aspect of combined DS targets 2020-10-13 21:21:29 +00:00
v3dv_meta_copy.c v3dv: fix clearing of 3D images 2020-10-13 21:21:28 +00:00
v3dv_pass.c v3dv: compute tile granularity for each subpass 2020-10-13 21:21:29 +00:00
v3dv_pipeline.c v3dv/descriptor_set: combine texture and sampler indices 2020-10-13 21:21:29 +00:00
v3dv_pipeline_cache.c v3dv: stubs for Create/DestroyPipelineCache 2020-10-13 21:21:26 +00:00
v3dv_private.h v3dv/descriptor_set: combine texture and sampler indices 2020-10-13 21:21:29 +00:00
v3dv_queue.c v3dv: use vk_error() for all queue/submit errors 2020-10-13 21:21:28 +00:00
v3dv_uniforms.c v3dv/descriptor_set: combine texture and sampler indices 2020-10-13 21:21:29 +00:00
v3dv_util.c
v3dv_wsi.c v3dv: rename drm device fields so they are more explict 2020-10-13 21:21:26 +00:00
v3dv_wsi_x11.c v3dv: hook up WSI support 2020-10-13 21:21:26 +00:00
vk_format_info.h v3dv: always flush draw calls if we are doing sRGB blending 2020-10-13 21:21:28 +00:00