Timur Kristóf
c22f9442f6
ac/nir/ngg: Rename state variables to "s".
...
It was a bad idea to give them a long name, let's correct it.
Signed-off-by: Timur Kristóf <timur.kristof@gmail.com >
Reviewed-by: Qiang Yu <yuq825@gmail.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/21995 >
2023-03-21 15:47:32 +00:00
Timur Kristóf
0068dbee96
ac/nir/ngg: Move divergence analysis call to analyze_shader_before_culling.
...
It actually belongs there.
Signed-off-by: Timur Kristóf <timur.kristof@gmail.com >
Reviewed-by: Qiang Yu <yuq825@gmail.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/21995 >
2023-03-21 15:47:32 +00:00
Timur Kristóf
a0a341f644
ac/nir/ngg: Split some functions out of save_reusable_variables.
...
To make the function a little easier to read and understand.
Signed-off-by: Timur Kristóf <timur.kristof@gmail.com >
Reviewed-by: Qiang Yu <yuq825@gmail.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/21995 >
2023-03-21 15:47:32 +00:00
Timur Kristóf
091dffdfc9
ac/nir/ngg: Rename saved_uniform to reusable_nondeferred_variable.
...
We are planning to reuse more than just uniforms later,
hence let's clarify the name of these.
Signed-off-by: Timur Kristóf <timur.kristof@gmail.com >
Reviewed-by: Qiang Yu <yuq825@gmail.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/21995 >
2023-03-21 15:47:32 +00:00
Timur Kristóf
c904c7dbf1
ac/nir/ngg: Remove usused lds_es enum values.
...
These were meant to explain the LDS layout, but
the actual LDS usage is better explained by:
ngg_nogs_get_culling_pervertex_lds_size().
Also add some comments there.
Signed-off-by: Timur Kristóf <timur.kristof@gmail.com >
Reviewed-by: Qiang Yu <yuq825@gmail.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/21995 >
2023-03-21 15:47:32 +00:00
Erik Faye-Lund
1ca29408f1
docs/zink: clean up requirements-language
...
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/22053 >
2023-03-21 15:42:50 +00:00
Erik Faye-Lund
adc7170d85
docs/zink: mention vk1.2 mirror-clamp feature option
...
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/22053 >
2023-03-21 15:42:50 +00:00
Pierre-Eric Pelloux-Prayer
3f272fd15e
ac/llvm: fix build with LLVM 17
...
This builds with LLVM 12 -> 17 and a running a simple app seems to work.
I couldn't test LLVM 11 because meson fails with:
Looking for a fallback subproject for the dependency llvm (modules:
bitwriter, engine, mcdisassembler, mcjit, core, executionengine,
scalaropts, transformutils, instcombine, amdgpu, bitreader, ipo, native)
Closes: https://gitlab.freedesktop.org/mesa/mesa/-/issues/8297
Cc: mesa-stable
Reviewed-by: Marek Olšák <marek.olsak@amd.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/22021 >
2023-03-21 15:05:25 +00:00
Constantine Shablya
4659a94cfe
vulkan: depend idep_vulkan_runtime_headers on vk_physical_device_features.h
...
Fixes: https://gitlab.freedesktop.org/mesa/mesa/-/issues/8643
Reviewed-by: Lionel Landwerlin <lionel.g.landwerlin@intel.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/21958 >
2023-03-21 14:25:40 +00:00
Constantine Shablya
46c9e84ead
vulkan: fix building with python3.8
...
Fixes: https://gitlab.freedesktop.org/mesa/mesa/-/issues/8640
Reviewed-by: Ricardo Garcia <rgarcia@igalia.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/21958 >
2023-03-21 14:25:40 +00:00
Samuel Pitoiset
5082b6b034
radv: add support for caching PS epilogs
...
For PS epilogs created at link time because libraries are still not
cached.
Signed-off-by: Samuel Pitoiset <samuel.pitoiset@gmail.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/21897 >
2023-03-21 13:53:59 +00:00
Samuel Pitoiset
228afe1a2f
radv: make radv_shader_part_create() non-static
...
It will be used when creating shaders from the cache.
Signed-off-by: Samuel Pitoiset <samuel.pitoiset@gmail.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/21897 >
2023-03-21 13:53:59 +00:00
Samuel Pitoiset
83c20b95dd
radv: allow to return the PS epilog binary to the pipeline
...
To add it to the shaders cache.
Signed-off-by: Samuel Pitoiset <samuel.pitoiset@gmail.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/21897 >
2023-03-21 13:53:59 +00:00
Samuel Pitoiset
eba315d2bf
radv: upload prologs/epilogs as part of radv_shader_part_create()
...
Don't need to duplicate this code.
Signed-off-by: Samuel Pitoiset <samuel.pitoiset@gmail.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/21897 >
2023-03-21 13:53:59 +00:00
Samuel Pitoiset
aa15d64949
radv: store the total radv_shader_part_binary size
...
Similar to radv_shader. This will be used for the shaders cache.
Signed-off-by: Samuel Pitoiset <samuel.pitoiset@gmail.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/21897 >
2023-03-21 13:53:59 +00:00
Samuel Pitoiset
aec9fd394f
radv: store spi_shader_col_format to radv_shader_part_binary
...
For PS epilogs in the cache.
Signed-off-by: Samuel Pitoiset <samuel.pitoiset@gmail.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/21897 >
2023-03-21 13:53:58 +00:00
Samuel Pitoiset
a455e0c99f
radv: stop storing the binary as part of radv_shader_part
...
It's unnecessary to keep a pointer to the binary.
Signed-off-by: Samuel Pitoiset <samuel.pitoiset@gmail.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/21897 >
2023-03-21 13:53:58 +00:00
Samuel Pitoiset
2803b786f0
radv: remove set but never used num_preserved_sgprs
...
Signed-off-by: Samuel Pitoiset <samuel.pitoiset@gmail.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/21897 >
2023-03-21 13:53:58 +00:00
Tapani Pälli
415b824bc6
iris: implement occlusion query related Wa_14017076903
...
Fixes artifacts on some games that relied on occlusion query
results when no PS or depth buffers are bound.
Signed-off-by: Tapani Pälli <tapani.palli@intel.com >
Reviewed-by: Lionel Landwerlin <lionel.g.landwerlin@intel.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/21721 >
2023-03-21 12:56:51 +00:00
Tapani Pälli
c34916f841
anv: implement occlusion query related Wa_14017076903
...
Fixes artifacts on some games that relied on occlusion query
results when no PS or depth buffers are bound.
Signed-off-by: Tapani Pälli <tapani.palli@intel.com >
Reviewed-by: Lionel Landwerlin <lionel.g.landwerlin@intel.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/21721 >
2023-03-21 12:56:51 +00:00
Juan A. Suarez Romero
c10a9372d6
v3d: implement NV_conditional_render extension
...
The hardware doesn't support native conditional rendering, so it is
implemented by software.
Code borrowed from Freedreno and Panfrost.
Signed-off-by: Juan A. Suarez Romero <jasuarez@igalia.com >
Signed-off-by: Eric Engestrom <eric@igalia.com >
Reviewed-by: Alyssa Rosenzweig <alyssa.rosenzweig@collabora.com >
Reviewed-by: Eric Engestrom <eric@igalia.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/17373 >
2023-03-21 12:31:24 +00:00
Juan A. Suarez Romero
94de8767aa
v3d: include offset as part of streamout target
...
When dealing with multiple Transform Feedback buffers, each of them
needs to have their own offset, so when resuming from one to another we
know exactly were to continue adding primitives.
Fixes "spec@arb_transform_feedback2@change objects while paused (gles3)"
piglit test.
Signed-off-by: Juan A. Suarez Romero <jasuarez@igalia.com >
Reviewed-by: Eric Engestrom <eric@igalia.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/17373 >
2023-03-21 12:31:24 +00:00
Juan A. Suarez Romero
6d21d563a1
v3d: cache pipe query results
...
As the BO storing the results is destroyed after getting the query
results, store the results in case requesting the results again.
Signed-off-by: Juan A. Suarez Romero <jasuarez@igalia.com >
Signed-off-by: Eric Engestrom <eric@igalia.com >
Reviewed-by: Alyssa Rosenzweig <alyssa.rosenzweig@collabora.com >
Reviewed-by: Eric Engestrom <eric@igalia.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/17373 >
2023-03-21 12:31:24 +00:00
Lionel Landwerlin
957186102f
anv: report shader max dispatch width in pipeline props
...
Signed-off-by: Lionel Landwerlin <lionel.g.landwerlin@intel.com >
Reviewed-by: Sagar Ghuge <sagar.ghuge@intel.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/22014 >
2023-03-21 11:53:04 +00:00
Lionel Landwerlin
2acc2f18ea
intel/compiler: report max dispatch width statistic
...
Most tools looking at shader stats assume that there is only a single
resulting binary shader out of a single input. On Intel HW this is not
always the case. So having a statistic on each variant that reports
the maximum dispatch width helps showing improvement on a single
shader in terms of how large we manage to compile it.
For shaders that can be compiled in multiple SIMD width (like fragment
shaders), this will report the maximum dispatch width in the
statistics of each variants.
Signed-off-by: Lionel Landwerlin <lionel.g.landwerlin@intel.com >
Reviewed-by: Sagar Ghuge <sagar.ghuge@intel.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/22014 >
2023-03-21 11:53:04 +00:00
Iago Toral Quiroga
1e28f2a6f2
broadcom/compiler: track pending ldtmu count with each TMU lookup
...
And use this information when scheduling QPU to avoid merging
a new TMU request into a previous ldtmu instruction when doing
so may cause TMU output fifo overflow due to a stalling ldtmu.
Reviewed-by: Alejandro Piñeiro <apinheiro@igalia.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/22044 >
2023-03-21 11:29:05 +00:00
Erik Faye-Lund
c09482b293
docs: fixup broken indentation
...
This extra indentation caused these to be inside <blockquote>-tags,
which obviously isn't what we want.
Reviewed-by: Marcin Ślusarz <marcin.slusarz@intel.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/21927 >
2023-03-21 11:24:13 +00:00
Erik Faye-Lund
46143ecc4c
docs: escape a few more strings
...
This makes it more obvious that these are not just plain english words.
Reviewed-by: Marcin Ślusarz <marcin.slusarz@intel.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/21896 >
2023-03-21 11:19:41 +00:00
Erik Faye-Lund
331601abda
docs: fixup broken envvar-role syntax
...
This needs a leading colon, otherwise it renders as "envvar:" followed
with environment variable using the c-expression role.
Fixes: 4c19426fd6 ("docs/envvars: add missing mesa disk cache envvars")
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/21896 >
2023-03-21 11:19:41 +00:00
Samuel Pitoiset
f2aa0e80a0
radv: enable fullyCoveredFragmentShaderInputVariable on GFX9+
...
For vkd3d-proton Tier 3.
It's passing CTS and vkd3d-proton tests.
Closes: https://gitlab.freedesktop.org/mesa/mesa/-/issues/8311
Signed-off-by: Samuel Pitoiset <samuel.pitoiset@gmail.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/21497 >
2023-03-21 08:44:09 +00:00
Samuel Pitoiset
8e84251cc7
radv: implement fullyCoveredFragmentShaderInputVariable
...
1 means INNER_COVERAGE.
Signed-off-by: Samuel Pitoiset <samuel.pitoiset@gmail.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/21497 >
2023-03-21 08:44:09 +00:00
Samuel Pitoiset
ebbb0d3f1b
radv: enable SAMPLE_COVERAGE_ENA if the fully covered built-in is used
...
Signed-off-by: Samuel Pitoiset <samuel.pitoiset@gmail.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/21497 >
2023-03-21 08:44:09 +00:00
Samuel Pitoiset
2a02f567aa
radv: lower nir_intrinsic_load_fully_covered
...
The sample coverage VGPR input would be the inner coverage and 0 means
it's uncovered.
Signed-off-by: Samuel Pitoiset <samuel.pitoiset@gmail.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/21497 >
2023-03-21 08:44:09 +00:00
Samuel Pitoiset
bb7e0c4280
spirv,nir: add support for SpvBuiltInFullyCoveredEXT
...
Signed-off-by: Samuel Pitoiset <samuel.pitoiset@gmail.com >
Reviewed-by: Timur Kristóf <timur.kristof@gmail.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/21497 >
2023-03-21 08:44:09 +00:00
Samuel Pitoiset
cf2bc83c60
spirv: add SpvCapabilityFragmentFullyCoveredEXT
...
Signed-off-by: Samuel Pitoiset <samuel.pitoiset@gmail.com >
Reviewed-by: Timur Kristóf <timur.kristof@gmail.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/21497 >
2023-03-21 08:44:09 +00:00
Benjamin Cheng
e57caf9893
radv: initialize cmd_buffer upload list earlier
...
When cs allocation fails in radv_create_cmd_buffer,
radv_destroy_cmd_buffer is called before returning
VK_ERROR_OUT_OF_HOST_MEMORY. At that point, the upload list is not
initalized yet, so SIGSEGV will occur when trying to iterate through the
upload bo list. Initialize the upload list earlier to avoid this.
Signed-off-by: Benjamin Cheng <ben@bcheng.me >
Reviewed-by: Tatsuyuki Ishi <ishitatsuyuki@gmail.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/22016 >
2023-03-21 08:06:24 +00:00
Mike Blumenkrantz
270f9c0b06
zink: add ZINK_DEBUG=flushsync
...
this disables the submission thread
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/22040 >
2023-03-20 22:12:40 -04:00
Mike Blumenkrantz
6a45e0d991
zink: don't update fbfetch in db mode if inputAttachmentDescriptorSize==0
...
turnip gets away with this somehow, so silence harmless validation errors
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/22040 >
2023-03-20 22:12:22 -04:00
Mike Blumenkrantz
46212427f9
zink: rework handling of unordered->ordered write buffer barriers
...
this improves handling for barriers that originate from a write in the
unordered cmdbuf, adding tracking to resources to better determine access
in the unordered cmdbuf and then utilizing that to generate a single split
memory barrier added at the end of the unordered cmdbuf for all the buffers
written to on that cmdbuf
the next step will be to also merge the read access down onto the end-of-cmdbuf
barrier so that all stream upload-type functionality becomes a single barrier
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/22027 >
2023-03-21 01:39:39 +00:00
Mike Blumenkrantz
e83513832b
zink: always set sampler layouts when unbinding fb images while rp optimizing
...
this may or may not always be accurate, but in the cases where it is, it should
avoid some renderpass splitting, and in the cases where it isn't, there may
already be issues
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/22027 >
2023-03-21 01:39:39 +00:00
Mike Blumenkrantz
c2b3c7b6be
zink: only run post-fb-unbind layout stuff if the resource isn't being destroyed
...
if refcount==1, the resource won't be used any further, and all the code
in this block is only for resources that will be used as samplers,
so don't run any of it
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/22027 >
2023-03-21 01:39:39 +00:00
Mike Blumenkrantz
b442ea4700
zink: add an assert to ensure zsbuf invalidation doesn't break rendering
...
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/22027 >
2023-03-21 01:39:39 +00:00
Mike Blumenkrantz
ad9a5c252a
zink: force unordered_write=false when binding image descriptors
...
there's no way to link up image layouts between the unordered cmdbuf
and the main one, so if an op is promoted to unordered after an image
is used as a descriptor, the layout will be broken
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/22027 >
2023-03-21 01:39:39 +00:00
Mike Blumenkrantz
eaeb1350be
zink: fix unordered access for image descriptors
...
previously the unordered access flags would be set before the deferred
barrier was added, which would guarantee no descriptor barriers could
be deferred and thus terminate renderpasses any time a new descriptor
was bound that was both an image and needed a layout change
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/22027 >
2023-03-21 01:39:39 +00:00
Mike Blumenkrantz
5018bc1358
zink: add batch refs for framebuffer surfaces on bind and ref update
...
if this scenario occurs:
* bind fb on ctx A
* draw
* flush + change context to B
* read fb on ctx B
* delete ctx A
then a dead batch write will be left on the fb bo
cc: mesa-stable
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/22027 >
2023-03-21 01:39:39 +00:00
Mike Blumenkrantz
c2d2cb5e45
zink: flag some rp ends as unsafe
...
the only "safe" rp ends are:
* set_framebuffer_state (new rp)
* flush_resource (present)
* flush (end of rp)
any other rp end needs its rp info sanitized to avoid e.g., reapplying clears
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/22027 >
2023-03-21 01:39:39 +00:00
Mike Blumenkrantz
7ca5656c49
zink: never split a renderpass for a loadop change
...
not sure if this was possible, but make sure it's not
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/22027 >
2023-03-21 01:39:39 +00:00
Mike Blumenkrantz
61c236bc31
zink: delete unused barrier api
...
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/22027 >
2023-03-21 01:39:39 +00:00
Mike Blumenkrantz
30d59c469a
zink: simplify resource_check_defer_buffer_barrier()
...
this is a remnant of when the function was used for both images
and buffers
no functional changes
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/22027 >
2023-03-21 01:39:39 +00:00
Mike Blumenkrantz
ca43ecefa4
zink: handle swapchain creation failure less lazily
...
this is a real scenario
cc: mesa-stable
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/22027 >
2023-03-21 01:39:39 +00:00