mesa/src/intel/vulkan
Kenneth Graunke 4ed9fd62c9 anv: Lower bufferImageGranularity to 1 from 64
The Vulkan 1.3 spec says:

   "The implementation-dependent limit bufferImageGranularity specifies
    a page-like granularity at which linear and non-linear resources
    must be placed in adjacent memory locations to avoid aliasing.  Two
    resources which do not satisfy this granularity requirement are said
    to alias. bufferImageGranularity is specified in bytes, and must be
    a power of two.  Implementations which do not impose a granularity
    restriction may report a bufferImageGranularity value of one.

    Note: Despite its name, bufferImageGranularity is really a
    granularity between "linear" and "non-linear" resources."

We set this limit to 64 bytes (a cacheline) at the dawn of time, without
any real rationale attached.  There shouldn't be any restrictions here.
Our tile sizes are typically 4K, and tiled resource addresses are
aligned to the tile size, and the extent is also a multiple of the tile
sized.  So if a linear resource occurs before a tiled one, there will
naturally be some space due to the alignment of the tiled resource's
starting address.  If a linear resource occurs after a tiled one, the
tiled resource's ending address is already 4K aligned, which is already
guaranteeing that they won't share a cacheline.

So I think it should be fine to reduce this to 1.  The other Vulkan
driver for our hardware seems to advertise 1 here as well.

Reviewed-by: Lionel Landwerlin <lionel.g.landwerlin@intel.com>
Reviewed-by: Jason Ekstrand <jason.ekstrand@collabora.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/15066>
2022-02-18 09:52:00 +00:00
..
tests anv/tests: Free BO cache and device mutex 2022-01-07 13:33:32 +00:00
anv_acceleration_structure.c anv: drop a set but unused variable 2022-01-31 16:10:31 +00:00
anv_allocator.c anv: Don't allocate VMA for CCS on XeHP 2022-01-27 22:38:01 +00:00
anv_android.c anv: drop unused label 2022-01-24 22:23:33 +00:00
anv_android.h anv: move VkImage object allocation to anv_CreateImage 2021-10-06 02:18:39 +00:00
anv_android_stubs.c anv: move VkImage object allocation to anv_CreateImage 2021-10-06 02:18:39 +00:00
anv_batch_chain.c anv/measure: Fix INTEL_MEASURE for ANV 2022-02-17 22:15:23 +00:00
anv_blorp.c anv: Drop anv_cmd_buffer::pool 2022-02-11 08:06:25 +00:00
anv_bo_sync.c anv: Drop anv_sync_create_for_bo 2021-12-17 00:55:31 +00:00
anv_cmd_buffer.c anv: Use the common vk_command_pool 2022-02-11 08:06:25 +00:00
anv_descriptor_set.c anv: Handle VK_DESCRIPTOR_POOL_CREATE_HOST_ONLY_BIT_VALVE for descriptor sets 2022-02-11 12:03:42 +00:00
anv_device.c anv: Lower bufferImageGranularity to 1 from 64 2022-02-18 09:52:00 +00:00
anv_formats.c anv: Update VK_KHR_fragment_shading_rate for newer HW 2022-02-02 17:09:46 +00:00
anv_gem.c intel/gem: Return length from intel_i915_query_alloc 2022-01-19 00:29:35 +00:00
anv_gem_stubs.c intel/dev: Add gtt_size to devinfo 2021-12-11 05:05:19 +00:00
anv_genX.h anv: enable ray queries 2022-02-08 12:55:25 +00:00
anv_image.c vulkan: Rename vk_image_view::format to view_format 2022-02-16 00:14:50 +00:00
anv_measure.c anv: add a custom AcquireNextImage2KHR func 2022-02-17 22:15:23 +00:00
anv_measure.h anv: add a custom AcquireNextImage2KHR func 2022-02-17 22:15:23 +00:00
anv_nir.h anv: Do UBO loads with global addresses for bindless 2021-03-17 17:49:59 +00:00
anv_nir_add_base_work_group_id.c anv: use nir_shader_instructions_pass in anv_nir_add_base_work_group_id 2021-10-05 10:02:54 +00:00
anv_nir_apply_pipeline_layout.c anv: enable ray queries 2022-02-08 12:55:25 +00:00
anv_nir_compute_push_layout.c anv: Add support for UBOs, SSBOs and push constants in Mesh pipeline 2022-02-02 18:17:57 +00:00
anv_nir_lower_multiview.c anv: preserve all metadata when anv_nir_lower_multiview doesn't make progress 2021-10-05 10:02:54 +00:00
anv_nir_lower_ubo_loads.c anv: Add a pass for lowering A64 UBO access 2021-03-17 17:49:59 +00:00
anv_nir_lower_ycbcr_textures.c anv: use nir_shader_instructions_pass in anv_nir_lower_ycbcr_textures 2021-10-05 10:02:54 +00:00
anv_pass.c anv: use vk_image_view::format for creating dynamic renderpasses 2022-02-16 00:14:50 +00:00
anv_perf.c anv: Use the new common device lost tracking 2021-11-16 10:02:08 -06:00
anv_pipeline.c anv: enable ray queries 2022-02-08 12:55:25 +00:00
anv_pipeline_cache.c intel: remove chipset_id 2022-01-13 03:09:36 +00:00
anv_private.h anv: Handle VK_DESCRIPTOR_POOL_CREATE_HOST_ONLY_BIT_VALVE for descriptor sets 2022-02-11 12:03:42 +00:00
anv_queue.c anv: add perfetto source 2022-01-14 20:17:44 +00:00
anv_util.c anv,iris: PSS Stall Sync around color fast clears 2022-01-12 01:30:34 +00:00
anv_utrace.c anv: flush utrace before at device destroy 2022-02-04 23:43:48 +00:00
anv_wsi.c anv: add a custom AcquireNextImage2KHR func 2022-02-17 22:15:23 +00:00
genX_blorp_exec.c anv: Drop anv_cmd_buffer::pool 2022-02-11 08:06:25 +00:00
genX_cmd_buffer.c anv: Don't assume depth/stencil attachments have depth 2022-02-16 23:02:09 +00:00
genX_gpu_memcpy.c anv: expose a couple of emit helper to build utrace buffer copies 2022-01-14 20:17:44 +00:00
genX_pipeline.c anv: Put first few push constants directly into Task/Mesh InlineData 2022-02-02 18:17:57 +00:00
genX_query.c anv: Drop anv_cmd_buffer::pool 2022-02-11 08:06:25 +00:00
genX_state.c anv: Update VK_KHR_fragment_shading_rate for newer HW 2022-02-02 17:09:46 +00:00
gfx7_cmd_buffer.c vulkan/runtime: Add a level field to vk_command_buffer 2022-02-11 08:06:24 +00:00
gfx8_cmd_buffer.c anv: Update VK_KHR_fragment_shading_rate for newer HW 2022-02-02 17:09:46 +00:00
meson.build meson: add support for meson devenv with vulkan 2022-02-04 09:08:47 -08:00
TODO intel: Rename genx keyword to gfxx in source files 2021-04-02 18:33:07 +00:00