Boris Brezillon
d2bb3b11e5
radv: Kill unused fs_m local var in radv_create_shaders()
...
Reviewed-by: Jason Ekstrand <jason.ekstrand@collabora.com >
Reviewed-by: Samuel Pitoiset <samuel.pitoiset@gmail.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/17186 >
2022-06-28 09:07:32 +00:00
Boris Brezillon
02384ca13c
tu: Use vk_pipeline_hash_shader_stage()
...
Acked-by: Emma Anholt <emma@anholt.net >
Reviewed-by: Jason Ekstrand <jason.ekstrand@collabora.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/17186 >
2022-06-28 09:07:32 +00:00
Boris Brezillon
a8cd159538
v3dv: Use vk_pipeline_hash_shader_stage()
...
Reviewed-by: Alejandro Piñeiro <apinheiro@igalia.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/17186 >
2022-06-28 09:07:32 +00:00
Boris Brezillon
863b6317a3
v3dv: Fix nir_shader leaks in v3dv_meta_{clear,copy}()
...
Reported-by: Jesse Natalie <jenatali@microsoft.com >
Reviewed-by: Jason Ekstrand <jason.ekstrand@collabora.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/17186 >
2022-06-28 09:07:32 +00:00
Boris Brezillon
17dff363ce
anv: Use vk_pipeline_hash_shader_stage()
...
Reviewed-by: Jason Ekstrand <jason.ekstrand@collabora.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/17186 >
2022-06-28 09:07:32 +00:00
Boris Brezillon
542538cf02
vulkan: Add a vk_pipeline_hash_shader_stage() helper
...
All drivers implement some sort of shader hashing, but each of
them does it slightly differently. Let's provide a generic helper
to avoid new copies of the same logic and encourage new drivers
to use one of the already implemented function.
Reviewed-by: Samuel Pitoiset <samuel.pitoiset@gmail.com >
Reviewed-by: Jason Ekstrand <jason.ekstrand@collabora.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/17186 >
2022-06-28 09:07:32 +00:00
Boris Brezillon
5e5b54c9d1
nir/serialize: Silence integer-overflow false positive
...
Use util_sign_extend() to silence the following integer-overflow
error.
src/compiler/nir/nir_serialize.c:1333:40: runtime error: left shift of 1000165000 by 13 places cannot be represented in type 'int'
Reviewed-by: Jason Ekstrand <jason.ekstrand@collabora.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/17186 >
2022-06-28 09:07:32 +00:00
Boris Brezillon
370ca07482
nir/serialize: Support texop >= 16
...
Extend the packed_instr struct to support texops above
nir_texop_fragment_fetch_amd.
Fixes: 603e6ba972 ("nir: add two new texture ops for multisample fragment color/mask fetches")
Reviewed-by: Jason Ekstrand <jason.ekstrand@collabora.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/17186 >
2022-06-28 09:07:32 +00:00
Iago Toral Quiroga
cfccd93efc
broadcom/compiler: don't predicate postponed spills
...
The postponed spill is predicated using the condition from the
last write, but this is only correct if the register was only
written once in the TMU sequence, or if it is always written with
the same predication.
While we could try to track whether this is the case or not, it
would make the postponed spill path even more complex than it
already is, so let's just avoid predicating these. We are already
discouraging TMU spilling of registers in the middle of TMU
sequences, so this should not be a very common case.
Cc: mesa-stable
Reviewed-by: Alejandro Piñeiro <apinheiro@igalia.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/17201 >
2022-06-28 05:49:51 +00:00
Iago Toral Quiroga
98420408d0
broadcom/compiler: fix postponed TMU spills with multiple writes
...
If we are spilling a register that is used in the middle of a TMU
sequence, we postpone the spill until the TMU sequence finishes,
at which point we inject the spill and rewrite the original
instruction to write to the new temp.
However, this doesn't work if the register is written multiple
times during the TMU sequence. In that scenario, we need to ensure
that all writes are rewritten to use the new temp, not just the last
one.
Cc: mesa-stable
Reviewed-by: Alejandro Piñeiro <apinheiro@igalia.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/17201 >
2022-06-28 05:49:51 +00:00
Iago Toral Quiroga
0bc65b1d81
v3dv: fix leak
...
Cc: mesa-stable
Reviewed-by: Alejandro Piñeiro <apinheiro@igalia.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/17201 >
2022-06-28 05:49:51 +00:00
Mike Blumenkrantz
1951065a16
zink: delete zink_resource_object::dt_has_data
...
this should be on the swapchain image
Reviewed-by: Adam Jackson <ajax@redhat.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/17149 >
2022-06-28 02:42:02 +00:00
Mike Blumenkrantz
314a24998a
zink: use kopper_displaytarget type directly
...
casting this all over is super annoying and unnecessary
Reviewed-by: Adam Jackson <ajax@redhat.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/17149 >
2022-06-28 02:42:02 +00:00
Mike Blumenkrantz
6786e508a2
zink: acquire swapchain images on image map
...
this is a weird one
Reviewed-by: Adam Jackson <ajax@redhat.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/17149 >
2022-06-28 02:42:02 +00:00
Mike Blumenkrantz
b400f1defc
zink: no-op pixmap frontbuffer flush calls
...
Reviewed-by: Adam Jackson <ajax@redhat.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/17149 >
2022-06-28 02:42:02 +00:00
Mike Blumenkrantz
5c5ab9e173
zink: delete zink_resource_object::acquire
...
this was duplicated from the swapchain object for convenience, but really
it just leads to desync if a swapchain is shared, so use the swapchain
one instead
Reviewed-by: Adam Jackson <ajax@redhat.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/17149 >
2022-06-28 02:42:02 +00:00
Mike Blumenkrantz
8ab8b729d6
zink: ensure pending present flushes are handled during frontbuffer flush
...
Reviewed-by: Adam Jackson <ajax@redhat.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/17149 >
2022-06-28 02:42:02 +00:00
Mike Blumenkrantz
fbaca89cd9
zink: flag batch as having work during frontbuffer flush
...
avoids having the flush deferred
Reviewed-by: Adam Jackson <ajax@redhat.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/17149 >
2022-06-28 02:42:02 +00:00
Mike Blumenkrantz
8606e5cff8
zink: improve no-op acquire detection
...
the swapchain may have successfully completed the acquire in a previous
batch, in which case a new acquire is not needed
Reviewed-by: Adam Jackson <ajax@redhat.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/17149 >
2022-06-28 02:42:02 +00:00
Mike Blumenkrantz
49d9a3605b
zink: remove unnecessary code in kopper readback acquire
...
this used to be important but no longer is, so modify the loop
code to handle this case implicitly
Reviewed-by: Adam Jackson <ajax@redhat.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/17149 >
2022-06-28 02:42:02 +00:00
Mike Blumenkrantz
cb306a0adb
zink: remove broken kopper assert
...
in a single-buffered scenario this can and does happen
Reviewed-by: Adam Jackson <ajax@redhat.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/17149 >
2022-06-28 02:42:02 +00:00
Mike Blumenkrantz
9625e99110
zink: use better determination for handling swapchain acquire submits
...
if the swapchain has data, it has already passed through this function and
thus does not need to attempt to synchronize another swapchain acquire
for the same image
Reviewed-by: Adam Jackson <ajax@redhat.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/17149 >
2022-06-28 02:42:02 +00:00
Mike Blumenkrantz
92228a6d28
zink: move 'acquired' flag onto swapchain struct
...
Reviewed-by: Adam Jackson <ajax@redhat.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/17149 >
2022-06-28 02:42:02 +00:00
Mike Blumenkrantz
c47378fb0f
zink: move to AoS for storing swapchain struct data
...
this is a bit less cumbersome
Reviewed-by: Adam Jackson <ajax@redhat.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/17149 >
2022-06-28 02:42:02 +00:00
Mike Blumenkrantz
983dcda16a
zink: track whether current swapchain has data
...
duplicated from resource object since swapchains can be shared
Reviewed-by: Adam Jackson <ajax@redhat.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/17149 >
2022-06-28 02:42:02 +00:00
Mike Blumenkrantz
c1ce1889db
zink: fix kopper_acquire return value
...
this should be a VkResult
Fixes: ab1941fc0e ("zink: handle zombie swapchains")
Reviewed-by: Adam Jackson <ajax@redhat.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/17149 >
2022-06-28 02:42:02 +00:00
Vasily Khoruzhick
24be011901
lima: wire up MSAA 4x support
...
Utgard supports MSAA 4x, so wire it up.
RSW bits were already REd by Luc, the only remaining part was storing
non-resolved buffers, reloading them (including for depth/stencil) and
doing MSAA resolve.
To store non-resolved buffer we need to set mrt_pitch and mrt_bits
registers in WB, and to resolve non-resolved buffer we need to reload
it into individual samples and then write out with mrt_bits = 0, it's
now done by lima blitter.
We also need to do resolve on transfer_map() of multi-sampled buffers,
so utilize u_transfer_helper for that.
As a side fix, it turns out that our wb_reg definition wasn't correct,
'zero' isn't always zero, it's set if we need to swap channels, and
it goes before mrt_bits. mrt_bits actually enables multiple MRTs,
so this commit renames 'zero' to 'flags' and changes its position.
If mrt_bits == 0 and MSAA is enabled, GPU does resolve
in place, to expose this functionality we set PIPE_CAP_SURFACE_SAMPLE_COUNT.
Fixes dEQP-GLES2.functional.multisample.*
Reviewed-by: Erico Nunes <nunes.erico@gmail.com >
Signed-off-by: Vasily Khoruzhick <anarsoul@gmail.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/13963 >
2022-06-28 00:00:35 +00:00
Emma Anholt
f93bee19d9
ci/turnip: Trim the a630 VK run a bit.
...
We have a lot of spilling coverage in a618 pre-merge, don't do it all (~2
minutes) here. Also, force-gmem touch testing should probably test less than
the default run does!
This should help make up for having added the tu-zink run.
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/17125 >
2022-06-27 22:38:54 +00:00
Emma Anholt
523ed9521b
ci/turnip: Test traces on turnip using zink.
...
Reviewed-by: David Heidelberg <david.heidelberg@collabora.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/17125 >
2022-06-27 22:38:54 +00:00
Emma Anholt
8e53194f44
ci/freedreno: Add vulkan+gl integration testing in piglit.
...
The libvulkan-dev was needed for building zink, which ended up turning on
the vulkan tests in piglit. Split them out here.
Reviewed-by: David Heidelberg <david.heidelberg@collabora.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/17125 >
2022-06-27 22:38:54 +00:00
Emma Anholt
9090bb1fbd
ci/traces: Drop ZINK_USE_LAVAPIPE ICD override.
...
Not set in the tree any more.
Reviewed-by: David Heidelberg <david.heidelberg@collabora.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/17125 >
2022-06-27 22:38:54 +00:00
Emma Anholt
83709ac3cf
ci/traces: GC unused code for DXVK trace replay.
...
I haven't found any use of it since it was introduced, and it got in the
way of zink trace testing.
Reviewed-by: David Heidelberg <david.heidelberg@collabora.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/17125 >
2022-06-27 22:38:53 +00:00
Mike Blumenkrantz
67bbe79d35
lavapipe: always set point_tri_clip
...
this invokes GLES-compatible point clipping, which is more consistent
with vulkan expectations and fixes a number of zink tests
Acked-by: Emma Anholt <emma@anholt.net >
Reviewed-by: Dave Airlie <airlied@redhat.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/17259 >
2022-06-27 21:36:44 +00:00
Alyssa Rosenzweig
f18492faa9
lima,panfrost: Do not ralloc contexts against the screen
...
ralloc is not thread-safe. While a given context can only be accessed from a
single thread at once, multiple contexts can be created against the same screen
at once. The ralloc allocations against the shared screens will race. Depending
on the result of the race, the same block of memory can be returned as the two
new contexts in two different threads, causing a use-after-free when the context
is freed later.
We free the context explicitly when it's destroyed anyway. If screens are
getting destroyed without the contexts getting destroyed first, that's a state
tracker bug, not a Panfrost one.
This matches what Iris does.
Fixes crash in test_integer_ops.int_math on Panfrost.
Fixes: 0fcf73bc2d ("panfrost: Move to use ralloc for some allocations")
Signed-off-by: Alyssa Rosenzweig <alyssa@collabora.com >
Reviewed-by: Jesse Natalie <jenatali@microsoft.com >
Reviewed-by: Vasily Khoruzhick <anarsoul@gmail.com >
Reviewed-by: Jason Ekstrand <jason.ekstrand@collabora.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/17234 >
2022-06-27 21:21:00 +00:00
Mike Blumenkrantz
a530b90cd3
zink: remove swizzle from fbfetch lowering
...
I had this in at one point to fix something, but now it somehow just
breaks fbfetch instead of fixing anything
cc: mesa-stable
fixes:
dEQP-GLES31.functional.blend_equation_advanced*
Reviewed-by: Dave Airlie <airlied@redhat.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/17254 >
2022-06-27 20:38:53 +00:00
Adam Jackson
31b04e420b
glx/dri: Fix DRI drawable release at MakeCurrent time
...
We want to release the drawables of the context we're coming from, but
we were releasing them from the context we're switching to. This is
probably not a big deal normally because both contexts are likely to be
on the same display, which is all that driReleaseDrawables is really
sensitive to. But if the contexts are on different Displays this would
go quite wrong.
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/17176 >
2022-06-27 20:03:26 +00:00
Jesse Natalie
59944831a7
microsoft/clc: Add a unit test for unused image kernel args
...
Reviewed-by: Bill Kristiansen <billkris@microsoft.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/17246 >
2022-06-27 16:54:27 +00:00
Jesse Natalie
ca23a4af67
microsoft/clc: Remove dead image vars
...
Reviewed-by: Bill Kristiansen <billkris@microsoft.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/17246 >
2022-06-27 16:54:27 +00:00
Jesse Natalie
fd37959680
microsoft/clc: Fix test double free in the case of compilation failure
...
Reviewed-by: Bill Kristiansen <billkris@microsoft.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/17246 >
2022-06-27 16:54:27 +00:00
Jesse Natalie
d69e258e8e
microsoft/clc: Enable tests that pass on server 2022
...
Reviewed-by: Bill Kristiansen <billkris@microsoft.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/17246 >
2022-06-27 16:54:27 +00:00
Jesse Natalie
2dcbe87271
util/disk_cache: Implement disk_cache_get_function_identifier for Windows
...
Reviewed-by: Boris Brezillon <boris.brezillon@collabora.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/17208 >
2022-06-27 16:18:32 +00:00
Lionel Landwerlin
9d7d1c0637
intel/clc: enable fp16 & subgroups for GRL
...
Signed-off-by: Lionel Landwerlin <lionel.g.landwerlin@intel.com >
Reviewed-by: Jesse Natalie <jenatali@microsoft.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/17253 >
2022-06-27 15:31:49 +00:00
Lionel Landwerlin
cf44282deb
clc: add new feature options for intel_clc
...
Signed-off-by: Lionel Landwerlin <lionel.g.landwerlin@intel.com >
Reviewed-by: Jesse Natalie <jenatali@microsoft.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/17253 >
2022-06-27 15:31:49 +00:00
Daniel Schürmann
2e895f8b04
radv: vectorize nir_op_fabs
...
Totals from 4 (0.00% of 134913) affected shaders: (GFX10.3)
CodeSize: 37868 -> 36576 (-3.41%)
Instrs: 5332 -> 5169 (-3.06%)
Latency: 24452 -> 24174 (-1.14%)
InvThroughput: 9784 -> 9462 (-3.29%)
VClause: 54 -> 50 (-7.41%)
Copies: 520 -> 519 (-0.19%)
PreVGPRs: 266 -> 264 (-0.75%)
Reviewed-by: Georg Lehmann <dadschoorse@gmail.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/15176 >
2022-06-27 15:07:27 +00:00
Daniel Schürmann
b45a39c44b
radv: vectorize nir_op_fdiv & nir_op_flrp & nir_op_ineg
...
These instructions are lowered to fmul/isub.
So, prevent scalarization.
Totals from 49 (0.04% of 134913) affected shaders: (GFX10.3)
VGPRs: 2576 -> 2568 (-0.31%)
SpillVGPRs: 1145 -> 1132 (-1.14%); split: -2.10%, +0.96%
CodeSize: 663968 -> 659376 (-0.69%); split: -1.08%, +0.38%
Scratch: 113664 -> 112640 (-0.90%)
Instrs: 110274 -> 109683 (-0.54%); split: -0.81%, +0.27%
Latency: 2904434 -> 2869588 (-1.20%); split: -1.64%, +0.44%
InvThroughput: 1414237 -> 1396600 (-1.25%); split: -1.69%, +0.44%
VClause: 2899 -> 2891 (-0.28%); split: -0.93%, +0.66%
SClause: 1520 -> 1537 (+1.12%); split: -0.07%, +1.18%
Copies: 28829 -> 28662 (-0.58%); split: -1.90%, +1.32%
Branches: 3560 -> 3564 (+0.11%)
PreVGPRs: 2550 -> 2427 (-4.82%)
Reviewed-by: Georg Lehmann <dadschoorse@gmail.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/15176 >
2022-06-27 15:07:27 +00:00
Daniel Schürmann
def3690447
radv: use callback for nir_lower_to_scalar
...
Now uses nir_lower_alu_width.
This avoids scalarization and re-vectorization of 16bit instructions.
Totals from 289 (0.21% of 134913) affected shaders: (GFX10.3)
VGPRs: 12864 -> 13072 (+1.62%); split: -0.50%, +2.11%
SpillSGPRs: 609 -> 505 (-17.08%)
SpillVGPRs: 946 -> 1145 (+21.04%)
CodeSize: 2537024 -> 2576976 (+1.57%); split: -0.10%, +1.67%
Scratch: 89088 -> 113664 (+27.59%)
MaxWaves: 7150 -> 7134 (-0.22%)
Instrs: 458352 -> 460830 (+0.54%); split: -0.45%, +0.99%
Latency: 6615279 -> 6844092 (+3.46%); split: -0.08%, +3.54%
InvThroughput: 1929504 -> 2044989 (+5.99%); split: -0.22%, +6.21%
VClause: 7186 -> 7338 (+2.12%); split: -0.08%, +2.20%
SClause: 13144 -> 13116 (-0.21%)
Copies: 46152 -> 50127 (+8.61%); split: -0.11%, +8.73%
Branches: 16530 -> 16572 (+0.25%); split: -0.02%, +0.27%
PreSGPRs: 14903 -> 14905 (+0.01%); split: -0.01%, +0.03%
PreVGPRs: 11806 -> 11730 (-0.64%); split: -1.83%, +1.19%
Reviewed-by: Georg Lehmann <dadschoorse@gmail.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/15176 >
2022-06-27 15:07:27 +00:00
Daniel Schürmann
4235dd7b47
radv: don't lower vectorized instructions to 32bit
...
Reviewed-by: Georg Lehmann <dadschoorse@gmail.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/15176 >
2022-06-27 15:07:27 +00:00
Daniel Schürmann
c298ab0d23
aco: correctly validate v_fma_mixhi_f16 register assignment
...
Reviewed-by: Georg Lehmann <dadschoorse@gmail.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/15176 >
2022-06-27 15:07:27 +00:00
Marcin Ślusarz
b6ba24cd62
anv: disable injection of primitive shading rate for mesh
...
It's not needed and causes issues for mesh code (it doesn't
mark the output as per-primitive, which confuses brw_compute_mue_map)
Fixes many tests matching:
dEQP-VK.fragment_shading_rate.dynamic_rendering.*.ms
Fixes: 1542ab70eb ("anv: handle primitive shading rate for mesh")
Acked-by: Lionel Landwerlin <lionel.g.landwerlin@intel.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/16196 >
2022-06-27 14:14:41 +00:00
Marcin Ślusarz
42b551fe7f
intel/compiler: adjust task payload offsets as late as possible
...
Otherwise passes which expect offsets to be in bytes (like
brw_nir_lower_mem_access_bit_sizes, called from brw_postprocess_nir)
may produce incorrect results.
Fixes 64-bit load/stores in task/mesh shaders.
Fixes: c36ae42e4c ("intel/compiler: Use nir_var_mem_task_payload")
Reviewed-by: Lionel Landwerlin <lionel.g.landwerlin@intel.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/16196 >
2022-06-27 14:14:41 +00:00