mesa/src/intel/vulkan
Jason Ekstrand 9baa33cef0 anv: Rework push constant handling
This substantially reworks both the state setup side of push constant
handling and the pipeline compile side.  The fundamental change here is
that we're no longer respecting the prog_data::param array and instead
are just instructing the back-end compiler to leave the array alone.
This makes the state setup side substantially simpler because we can now
just memcpy the whole block of push constants and don't have to
upload one DWORD at a time.

This also means that we can compute the full push constant layout
up-front and just trust the back-end compiler to not mess with it.
Maybe one day we'll decide that the back-end compiler can do useful
things there again but for now, this is functionally no different from
what we had before this commit and makes the NIR handling cleaner.

Reviewed-by: Lionel Landwerlin <lionel.g.landwerlin@intel.com>
2019-11-18 18:35:14 +00:00
..
tests anv/tests: Initialize the BO cache and device mutex 2019-10-31 13:46:09 +00:00
anv_allocator.c anv: Zero released anv_bo structs 2019-10-31 13:46:09 +00:00
anv_android.c anv: Use the new BO alloc API for Android 2019-10-31 15:46:39 +00:00
anv_android.h anv/android: support creating images from external format 2018-12-19 09:38:41 +02:00
anv_android_stubs.c anv/android: support creating images from external format 2018-12-19 09:38:41 +02:00
anv_batch_chain.c anv: implement VK_KHR_timeline_semaphore 2019-11-11 21:46:51 +00:00
anv_blorp.c anv: Use mocs settings from isl_dev. 2019-11-12 20:41:52 +00:00
anv_cmd_buffer.c anv: Rework push constant handling 2019-11-18 18:35:14 +00:00
anv_descriptor_set.c anv: Allocate descriptor buffers from the BO cache 2019-10-31 13:46:09 +00:00
anv_device.c anv: Rework push constant handling 2019-11-18 18:35:14 +00:00
anv_dump.c tree-wide: replace MAYBE_UNUSED with ASSERTED 2019-07-31 09:41:05 +01:00
anv_entrypoints_gen.py anv: split instance dispatch table 2019-09-20 08:31:58 +00:00
anv_extensions.py anv: implement VK_KHR_timeline_semaphore 2019-11-11 21:46:51 +00:00
anv_extensions_gen.py anv: manually add KHR_display to the list of platforms 2019-07-07 15:34:09 +03:00
anv_formats.c anv/formats: Disable I915_FORMAT_MOD_Y_TILED_CCS on TGL+ 2019-10-28 10:47:04 -07:00
anv_gem.c intel/common: provide common ioctl routine 2019-08-01 16:38:40 -07:00
anv_gem_stubs.c anv: gem-stubs: return a valid fd got anv_gem_userptr() 2019-09-25 22:02:51 +03:00
anv_genX.h anv/gen12: Write GFX_AUX_TABLE base address register 2019-10-28 00:09:14 -07:00
anv_icd.py anv: fix typo 2019-06-29 22:41:06 +01:00
anv_image.c anv: implement VK_KHR_separate_depth_stencil_layouts 2019-11-06 20:13:30 +00:00
anv_intel.c anv: Rework the internal BO allocation API 2019-10-31 13:46:09 +00:00
anv_nir.h anv: Rework push constant handling 2019-11-18 18:35:14 +00:00
anv_nir_add_base_work_group_id.c anv: Rework push constant handling 2019-11-18 18:35:14 +00:00
anv_nir_apply_pipeline_layout.c anv: Rework push constant handling 2019-11-18 18:35:14 +00:00
anv_nir_compute_push_layout.c anv: Rework push constant handling 2019-11-18 18:35:14 +00:00
anv_nir_lower_multiview.c nir/builder: Add a build_deref_array_imm helper 2019-03-07 21:20:30 +00:00
anv_nir_lower_ycbcr_textures.c nir: make nir_const_value scalar 2019-04-14 22:25:56 +02:00
anv_pass.c anv: implement VK_KHR_separate_depth_stencil_layouts 2019-11-06 20:13:30 +00:00
anv_perf.c anv: fix error message 2019-10-24 13:57:40 +00:00
anv_pipeline.c anv: Rework push constant handling 2019-11-18 18:35:14 +00:00
anv_pipeline_cache.c anv: Pre-compute push ranges for graphics pipelines 2019-11-18 18:35:14 +00:00
anv_private.h anv: Rework push constant handling 2019-11-18 18:35:14 +00:00
anv_queue.c anv: implement VK_KHR_timeline_semaphore 2019-11-11 21:46:51 +00:00
anv_util.c anv/util: Split a vk_errorv helper out of vk_errorf 2018-10-26 13:27:21 -05:00
anv_wsi.c anv/wsi: signal the semaphore in the acquireNextImage 2019-11-11 21:46:51 +00:00
anv_wsi_display.c anv,radv: Add support for VK_KHR_get_display_properties2 2018-07-09 17:09:41 -07:00
anv_wsi_wayland.c anv: drop unused includes 2018-10-24 18:15:05 +01:00
anv_wsi_x11.c vulkan: drop always-true param 2018-10-26 18:33:11 +01:00
gen7_cmd_buffer.c anv: Implement VK_EXT_line_rasterization 2019-08-06 02:05:28 +00:00
gen8_cmd_buffer.c anv: Add Tile Cache Flush for Unified Cache. 2019-10-30 19:51:03 +00:00
genX_blorp_exec.c anv: Use mocs settings from isl_dev. 2019-11-12 20:41:52 +00:00
genX_cmd_buffer.c anv: Re-arrange push constant data a bit 2019-11-18 18:35:14 +00:00
genX_gpu_memcpy.c anv: Implement new way for setting streamout buffers. 2019-10-29 19:21:20 +00:00
genX_pipeline.c anv: Flatten descriptor bindings in anv_nir_apply_pipeline_layout 2019-11-18 18:35:14 +00:00
genX_query.c anv: prepare the driver for delayed submissions 2019-11-11 21:46:51 +00:00
genX_state.c anv: Use mocs settings from isl_dev. 2019-11-12 20:41:52 +00:00
meson.build anv: Rework push constant handling 2019-11-18 18:35:14 +00:00
TODO anv: Implement pipeline statistics queries 2017-03-17 12:12:50 -07:00
vk_format_info.h anv: Add HAL_PIXEL_FORMAT_IMPLEMENTATION_DEFINED in vk_format 2019-06-24 08:28:18 +03:00