mesa/src/intel/vulkan
Lionel Landwerlin 3f25b2826f anv: add embedded sampler parameters in descriptor set layout hash
The way we implement embedded samplers will be to have the sampler
handle as a relocated constant in the shader.

This implies that 2 identical shaders with different embedded sampler
parameters must have different hash as we cannot reuse the final
shader binary.

So add the sampler hash to the descriptor set layout hash when the set
has embedded samplers.

This has the effect of creating multiple shader entries in the cache
unfortunately. An improvement over this would be to have a anv_device
map of (embedded samplers hash + shader hash) to shader in instruction
heap, so that pipeline caches only have a single entry regardless of
embedded sampler parameters.

Signed-off-by: Lionel Landwerlin <lionel.g.landwerlin@intel.com>
Reviewed-by: Ivan Briano <ivan.briano@intel.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/22151>
2024-02-29 07:05:06 +00:00
..
grl anv: add missing generated file dep 2024-02-26 07:56:50 +00:00
i915 anv: move aux-tt to general state pool 2024-02-29 07:05:06 +00:00
layers anv: initial RMV support 2024-01-23 17:24:19 +00:00
tests anv: fail pool allocation when over the maximal size 2023-10-30 14:47:18 +00:00
xe anv/xe: Add VMs to error dump 2024-02-27 01:04:15 +00:00
anv_allocator.c anv: re-introduce BO CCS allocations 2024-02-12 21:00:27 +00:00
anv_android.c anv: Add missing ANV_BO_ALLOC_EXTERNAL flags when calling anv_device_import_bo() 2023-11-08 01:20:42 +00:00
anv_android.h anv: refactor to use DETECT_OS_ANDROID instead of ANDROID 2024-02-01 19:29:49 +00:00
anv_android_stubs.c anv,hasvk: android ahb is not always exportable 2023-05-11 22:18:03 +00:00
anv_astc_emu.c anv: move astc_emu to use descriptors2 calls 2024-01-02 22:12:02 +00:00
anv_batch_chain.c anv/sparse: add an extra step before anv_sparse_bind_resource_memory() 2024-02-21 22:58:42 +00:00
anv_blorp.c anv: add a second dynamic state heap for descriptor buffers 2024-02-29 07:05:06 +00:00
anv_bo_sync.c anv: Add a tracepoint for the fallback implicit sync wait path. 2023-01-12 20:21:03 +00:00
anv_cmd_buffer.c anv: add a second dynamic state heap for descriptor buffers 2024-02-29 07:05:06 +00:00
anv_descriptor_set.c anv: add embedded sampler parameters in descriptor set layout hash 2024-02-29 07:05:06 +00:00
anv_device.c anv: allocate fsr states for descriptor buffer 2024-02-29 07:05:06 +00:00
anv_formats.c anv: Implement VK_AMD_texture_gather_bias_lod 2024-02-27 00:22:46 +00:00
anv_gem.c anv: Calculate mmap mode based on alloc_flags 2023-11-08 01:20:42 +00:00
anv_gem_stubs.c anv/trtt: add struct anv_trtt_batch_bo and pass it around 2023-11-17 17:58:29 +00:00
anv_genX.h anv: create new helper for small allocations 2024-02-29 07:05:06 +00:00
anv_image.c anv: add new heap/pool for descriptor buffers 2024-02-29 07:05:05 +00:00
anv_internal_kernels.c intel/compiler: Rename the passes and files related to intel_nir.h 2024-02-16 22:35:05 +00:00
anv_internal_kernels.h anv: rewrite internal shaders using OpenCL 2024-02-13 00:06:45 +00:00
anv_kmd_backend.c anv: Add gem VM bind and unbind to backend 2023-03-11 17:56:01 +00:00
anv_kmd_backend.h anv: Use DRM_XE_VM_BIND_OP_UNMAP_ALL to unbind whole bos 2024-02-16 13:43:45 +00:00
anv_measure.c anv: Fix anv_measure_start/stop_snapshot() over copy or video engine 2024-01-09 14:28:19 +00:00
anv_measure.h
anv_mesh_perprim_wa.c treewide: Merge num_mesh_vertices_per_primitive and u_vertices_per_prim into mesa_vertices_per_prim 2023-10-26 09:35:04 +00:00
anv_nir.h anv/hasvk: track robustness per pipeline stage 2023-08-09 09:00:12 +03:00
anv_nir_apply_pipeline_layout.c anv: reenable ANV_ALWAYS_BINDLESS 2024-02-19 11:10:29 +00:00
anv_nir_compute_push_layout.c intel/brw: Always use scalar shaders 2024-02-28 05:45:37 +00:00
anv_nir_lower_load_patch_vertices_in.c treewide: Use nir_shader_intrinsic_pass sometimes 2023-08-24 15:48:02 +00:00
anv_nir_lower_multiview.c treewide: Use nir_before/after_impl for more elaborate cases 2023-08-30 19:30:58 +00:00
anv_nir_lower_resource_intel.c anv: use 2 different buffers for surfaces/samplers in descriptor sets 2023-12-04 23:06:05 +00:00
anv_nir_lower_ubo_loads.c treewide: Use nir_shader_intrinsic_pass sometimes 2023-08-24 15:48:02 +00:00
anv_nir_push_descriptor_analysis.c anv: fixup push descriptor shader analysis 2024-02-19 11:10:29 +00:00
anv_perf.c anv/iris: report counter symbols with debug option 2023-03-08 12:45:43 +00:00
anv_pipeline.c anv: cleanup duplicate robustness flag calculations 2024-02-28 21:05:44 +00:00
anv_pipeline_cache.c anv: using a single struct for kernel upload 2024-01-22 08:42:37 +00:00
anv_private.h anv: compute a sampler hash based on parameters 2024-02-29 07:05:06 +00:00
anv_queue.c anv: Execute an empty batch to sync main and companion RCS batch 2023-09-07 06:39:06 +00:00
anv_rmv.c anv: initial RMV support 2024-01-23 17:24:19 +00:00
anv_rmv.h anv: initial RMV support 2024-01-23 17:24:19 +00:00
anv_sparse.c anv/sparse: allow binding operations to match the resource size 2024-02-21 22:58:42 +00:00
anv_util.c anv: fix missing naming for dirty bit 2023-11-17 10:17:51 +00:00
anv_utrace.c anv: rewrite internal shaders using OpenCL 2024-02-13 00:06:45 +00:00
anv_va.c anv: move aux-tt to general state pool 2024-02-29 07:05:06 +00:00
anv_video.c anv: add new heap/pool for descriptor buffers 2024-02-29 07:05:05 +00:00
anv_wsi.c anv: Avoid unnecessary intel_flush calls 2023-12-06 22:18:26 +00:00
genX_acceleration_structure.c anv: promote EXT_index_type_uint8 to KHR 2024-01-26 10:38:53 +00:00
genX_blorp_exec.c anv: create new helper for small allocations 2024-02-29 07:05:06 +00:00
genX_cmd_buffer.c anv: allocate fsr states for descriptor buffer 2024-02-29 07:05:06 +00:00
genX_cmd_compute.c anv: create new helper for small allocations 2024-02-29 07:05:06 +00:00
genX_cmd_draw.c anv: create new helper for small allocations 2024-02-29 07:05:06 +00:00
genX_cmd_draw_generated_flush.h intel: Use _brw suffix for genX headers that rely on brw 2024-02-24 00:24:32 +00:00
genX_cmd_draw_generated_indirect.h intel: Use _brw suffix for genX headers that rely on brw 2024-02-24 00:24:32 +00:00
genX_cmd_draw_helpers.h anv: create new helper for small allocations 2024-02-29 07:05:06 +00:00
genX_cmd_video.c anv/video: fix out-of-bounds read 2024-01-31 08:24:22 +00:00
genX_gfx_state.c anv: allocate fsr states for descriptor buffer 2024-02-29 07:05:06 +00:00
genX_gpu_memcpy.c anv: fix Wa_16013994831 macros 2024-02-19 12:48:33 +00:00
genX_init_state.c anv: compute a sampler hash based on parameters 2024-02-29 07:05:06 +00:00
genX_internal_kernels.c anv: rewrite internal shaders using OpenCL 2024-02-13 00:06:45 +00:00
genX_pipeline.c intel: Use _brw suffix for genX headers that rely on brw 2024-02-24 00:24:32 +00:00
genX_query.c anv: enable query clear/copy using shaders on MTL/ARL 2024-02-15 17:25:37 +00:00
genX_simple_shader.c intel: Use _brw suffix for genX headers that rely on brw 2024-02-24 00:24:32 +00:00
meson.build intel/meson: Rename libintel_compiler to libintel_compiler_brw 2024-02-24 00:24:32 +00:00