mesa/src/intel/vulkan
Paulo Zanoni 2526308dcd anv/sparse: allow binding operations to match the resource size
The resource size doesn't need to match the binding granularity. For
example, if the user wants to create a 32kb buffer, Anv will require
its memory to have 64kb, but the buffer size will still be the
original 32kb. And the spec says:

  VUID-VkSparseMemoryBind-size-01100:
    "size must be less than or equal to the size of the resource minus
     resourceOffset"
  VUID-VkSparseMemoryBind-size-01102:
    "size must be less than or equal to the size of memory minus
     memoryOffset"

So when binding such buffer, size should actually be the lesser of the
two values: 32kb, and we have to accept that. Since our binding
granularity is 64kb, we're safe to simply extend the requested size to
match our binding granularity, since we already require the memory to
be appropriately sized.

None of this is exercised by dEQP. This was caught by
piglit/arb_sparse_buffer-basic using Zink.

Testcase: piglit/arb_sparse_buffer-basic
Issue: https://gitlab.freedesktop.org/mesa/mesa/-/issues/10220
Reviewed-by: Lionel Landwerlin <lionel.g.landwerlin@intel.com>
Signed-off-by: Paulo Zanoni <paulo.r.zanoni@intel.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26410>
2024-02-21 22:58:42 +00:00
..
grl clc: include opencl-c.h for extensions needing it 2024-02-21 20:53:36 +00:00
i915 intel: Move intel_define.h to i915/intel_define.h 2024-02-21 18:10:54 +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: Use DRM_XE_VM_BIND_OP_UNMAP_ALL to unbind whole bos 2024-02-16 13:43:45 +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 intel/blorp: Don't require specific prog_data type in callback 2024-02-15 10:29:18 +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 intel/compiler: Rename brw_cs_dispatch_info to intel_cs_dispatch_info 2024-02-14 22:31:23 -08:00
anv_descriptor_set.c anv: factor out descriptor buffer flushing 2024-02-19 11:10:29 +00:00
anv_device.c anv/drirc: Add option to control implicit sync on external BOs 2024-02-21 17:19:26 +00:00
anv_formats.c anv: re-introduce BO CCS allocations 2024-02-12 21:00:27 +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: factor out descriptor buffer flushing 2024-02-19 11:10:29 +00:00
anv_image.c anv: re-introduce BO CCS allocations 2024-02-12 21:00:27 +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: add a custom AcquireNextImage2KHR func 2022-02-17 22:15:23 +00:00
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 treewide: Avoid use align as variable, replace it with other names 2023-12-07 02:30:53 +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: Remove lower_atomics from storage image lowering opts 2024-02-20 19:47:07 +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/sparse: add an extra step before anv_sparse_bind_resource_memory() 2024-02-21 22:58:42 +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: use 2 different buffers for surfaces/samplers in descriptor sets 2023-12-04 23:06:05 +00:00
anv_video.c anv/video: only report matching memory types for protected sessions 2023-12-06 19:17:17 +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 blorp: implement Wa_16014912113 callback for drivers 2024-02-05 13:50:58 +00:00
genX_cmd_buffer.c anv: factor out descriptor buffer flushing 2024-02-19 11:10:29 +00:00
genX_cmd_compute.c intel/compiler: Use "intel" prefix for walk_order enum 2024-02-21 00:38:35 +00:00
genX_cmd_draw.c anv: factor out descriptor buffer flushing 2024-02-19 11:10:29 +00:00
genX_cmd_draw_generated_flush.h anv: move generated draw flush helper to its own file 2024-01-15 12:28:49 +00:00
genX_cmd_draw_generated_indirect.h anv: rewrite internal shaders using OpenCL 2024-02-13 00:06:45 +00:00
genX_cmd_draw_helpers.h anv: get rid of the duplicate pipeline fields in command buffer state 2023-11-17 10:17:51 +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: fix Wa_16013994831 macros 2024-02-19 12:48:33 +00:00
genX_gpu_memcpy.c anv: fix Wa_16013994831 macros 2024-02-19 12:48:33 +00:00
genX_init_state.c anv,driconf: Add sampler coordinate precision workaround for AoE 4 2024-02-06 10:29:15 +00:00
genX_internal_kernels.c anv: rewrite internal shaders using OpenCL 2024-02-13 00:06:45 +00:00
genX_pipeline.c anv: fix emission of Wa_14015055625 2024-02-20 09:49:00 +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/compiler: Use "intel" prefix for walk_order enum 2024-02-21 00:38:35 +00:00
meson.build intel/decoder: Move decoder to a separate module 2024-02-16 16:37:31 +00:00