Qiang Yu
ff29502df2
radeonsi: support raw shader binary upload
...
Only monolithic shader.
Reviewed-by: Marek Olšák <marek.olsak@amd.com >
Signed-off-by: Qiang Yu <yuq825@gmail.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/22573 >
2023-05-15 02:01:10 +00:00
Qiang Yu
4b90347595
ac/binary: pack prefech align code to a function
...
To be used by radeonsi raw shader binary.
Reviewed-by: Marek Olšák <marek.olsak@amd.com >
Signed-off-by: Qiang Yu <yuq825@gmail.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/22573 >
2023-05-15 02:01:10 +00:00
Qiang Yu
f3997a3ca7
radeonsi: add a raw shader binary type
...
It's the output of ACO compiler. To share the si_shader_binary
struct with ELF type:
* add a type field to indicate RAW or ELF
* rename elf_buffer/size to code_buffer/size
Reviewed-by: Marek Olšák <marek.olsak@amd.com >
Signed-off-by: Qiang Yu <yuq825@gmail.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/22573 >
2023-05-15 02:01:10 +00:00
Qiang Yu
83a920dfb9
radeonsi: init spi ps input shader config when aco
...
Reviewed-by: Marek Olšák <marek.olsak@amd.com >
Signed-off-by: Qiang Yu <yuq825@gmail.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/22573 >
2023-05-15 02:01:10 +00:00
Qiang Yu
f954aa1624
radeonsi: pack spi ps input fixup to a function
...
To be shared with ACO spi ps input construction.
Reviewed-by: Marek Olšák <marek.olsak@amd.com >
Signed-off-by: Qiang Yu <yuq825@gmail.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/22573 >
2023-05-15 02:01:10 +00:00
Qiang Yu
e752248b3b
radeonsi: add shader info uses_sampleid
...
Used by ACO to set spi_ps_intput.
Reviewed-by: Marek Olšák <marek.olsak@amd.com >
Signed-off-by: Qiang Yu <yuq825@gmail.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/22573 >
2023-05-15 02:01:10 +00:00
Qiang Yu
14d2b12390
radeonsi: add shader info for frag coord and sample pos read
...
To construct spi_ps_input when ACO compilation.
Reviewed-by: Marek Olšák <marek.olsak@amd.com >
Signed-off-by: Qiang Yu <yuq825@gmail.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/22573 >
2023-05-15 02:01:10 +00:00
Qiang Yu
326b027b25
radeonsi: add use_aco field for struct si_shader
...
We are going to use aco for monolithic ps first.
Reviewed-by: Marek Olšák <marek.olsak@amd.com >
Signed-off-by: Qiang Yu <yuq825@gmail.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/22573 >
2023-05-15 02:01:10 +00:00
Qiang Yu
ad33ff4de2
radeonsi: add aco debug option
...
Reviewed-by: Marek Olšák <marek.olsak@amd.com >
Signed-off-by: Qiang Yu <yuq825@gmail.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/22573 >
2023-05-15 02:01:10 +00:00
Qiang Yu
5bc6c62486
meson: build radeonsi with aco
...
Reviewed-by: Marek Olšák <marek.olsak@amd.com >
Signed-off-by: Qiang Yu <yuq825@gmail.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/22573 >
2023-05-15 02:01:10 +00:00
David Heidelberg
ad7ff4c25b
ci/skqp: handle all warnings printed with clang >= 14
...
Useful for the https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/21977
Reviewed-by: Guilherme Gallo <guilherme.gallo@collabora.com >
Signed-off-by: David Heidelberg <david.heidelberg@collabora.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/22808 >
2023-05-14 22:16:28 +00:00
Konstantin Seurer
1671b5fd1f
radv: Stop running constant folding during ray query lowering
...
Now that committed is an intrinsic index, there is no need for constant
folding.
Reviewed-by: Bas Nieuwenhuizen <bas@basnieuwenhuizen.nl >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/22963 >
2023-05-14 17:28:40 +00:00
Konstantin Seurer
0cf22f9af3
nir: Make rq_load committed src an index
...
committed has to be a constant so there is no need to have a src and
depend on constant folding to remove the i2b.
Reviewed-by: Bas Nieuwenhuizen <bas@basnieuwenhuizen.nl >
Acked-by: Lionel Landwerlin <lionel.g.landwerlin@intel.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/22963 >
2023-05-14 17:28:40 +00:00
David Heidelberg
626669bab3
gtest: Update to 1.13.0
...
Fix msan issue found with recent GCC on Debian 12.
Closes: https://gitlab.freedesktop.org/mesa/mesa/-/issues/8915
Acked-by: Daniel Stone <daniels@collabora.com >
Signed-off-by: David Heidelberg <david.heidelberg@collabora.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/22814 >
2023-05-14 11:09:02 +00:00
David Heidelberg
b289a9e16f
util/tests: adjust for new gtest
...
GTest deprecated the GTEST_ARRAY_SIZE_ macro.
Signed-off-by: David Heidelberg <david.heidelberg@collabora.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/22814 >
2023-05-14 11:09:01 +00:00
M Henning
be5b5fbe3d
nv50: Fix return type of nv50_blit_is_array
...
Reviewed-by: Karol Herbst <kherbst@redhat.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/22997 >
2023-05-13 19:36:24 +00:00
M Henning
504907a7d3
nvc0: Free blitter->vp
...
Reviewed-by: Karol Herbst <kherbst@redhat.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/22997 >
2023-05-13 19:36:24 +00:00
M Henning
ae6ae84a75
nv50,nvc0: Free nir from blitter fp shader
...
Fixes: d11145e837 ("nv50,nvc0: Use nir in nv50_blitter_make_fp")
Reviewed-by: Karol Herbst <kherbst@redhat.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/22997 >
2023-05-13 19:36:24 +00:00
Jesse Natalie
4621a6db50
dxil: Use unified atomics
...
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/22993 >
2023-05-12 16:01:40 -07:00
Jesse Natalie
75e1407116
microsoft/compiler: Back-propagate type requirement information
...
For ALU ops where input types are known, we can store that info on
the input sources. This can be used to produce the correct overloads
of load instructions that don't immediately need to be followed by
bitcasts, or similarly to produce a constant value which can be directly
consumed by the relevant instruction without needing a bitcast.
Similarly for values that will be stored in an output, we know type
information. And using that info, we can use more-correct information
for phis instead of forcing all phi sources to be bitcast to int just
to be bitcast back to float on the other side for an alu or an output
store.
One missing piece is SSBO stores, where we can support int or float.
If the input is coming from a phi, we don't influence the phi's type,
so it'll be int, even though the incoming sources might've been float.
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/22972 >
2023-05-12 22:23:48 +00:00
Jesse Natalie
d94e23d7bd
microsoft/compiler: Duplicate some SSA values to simplify SSA typing
...
For each phi src, ensure that it's only used as a phi src.
This lets us give each phi their own unique types without worrying
about them stomping on each other. Also scalarize phis.
For each constant, ensure that it's only used once. The DXIL backend
will already dedupe these consts within the module, but this lets a
single load_const have multiple types depending on how it's used.
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/22972 >
2023-05-12 22:23:48 +00:00
Jesse Natalie
049d340d8e
microsoft/compiler: Remove alu type info from store_dest()
...
We pass in a *typed* value, we don't need to pass in additional
type info. That's just more opportunities to get it wrong.
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/22972 >
2023-05-12 22:23:48 +00:00
Marek Olšák
f98871608c
ac/llvm: rewrite and unify how GLC, DLC, SLC are set
...
Use ACCESS_* flags in call sites instead of GLC/DLC/SLC.
ACCESS_* flags are extended to describe other aspects of memory instructions
like load/store/atomic/smem.
Then add a function that converts the access flags to GLC, DLC, SLC.
The new functions are also usable by ACO.
Acked-by: Pierre-Eric Pelloux-Prayer <pierre-eric.pelloux-prayer@amd.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/22770 >
2023-05-12 21:45:44 +00:00
Marek Olšák
968db0208d
ac/llvm: don't treat ACCESS_NON_READABLE as ACCESS_COHERENT
...
... and expect it to behave like ACCESS_NON_TEMPORAL.
Handling ACCESS_NON_TEMPORAL is sufficient.
Acked-by: Pierre-Eric Pelloux-Prayer <pierre-eric.pelloux-prayer@amd.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/22770 >
2023-05-12 21:45:44 +00:00
Marek Olšák
3a043b5739
aco: don't treat ACCESS_NON_READABLE as ACCESS_COHERENT
...
... and expect it to behave like ACCESS_NON_TEMPORAL.
Handling ACCESS_NON_TEMPORAL is sufficient.
This was copied from ac_nir_to_llvm.c.
Acked-by: Pierre-Eric Pelloux-Prayer <pierre-eric.pelloux-prayer@amd.com >
Reviewed-by: Timur Kristóf <timur.kristof@gmail.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/22770 >
2023-05-12 21:45:44 +00:00
Felix DeGrood
142c4f5abc
intel: Secondary CB print primary CB's renderpass
...
Reviewed-by: Mark Janes <markjanes@swizzler.org >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/22723 >
2023-05-12 21:15:09 +00:00
Felix DeGrood
07ec481cd8
intel: batch consecutive dispatches into implicit renderpasses
...
Reviewed-by: Mark Janes <markjanes@swizzler.org >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/22723 >
2023-05-12 21:15:09 +00:00
Felix DeGrood
82f6a477f3
intel: refactor INTEL_MEASURE pointer dumping
...
Refactor framebuffer to renderpass to mirror previous INTEL_MEASURE
changes.
We dump hashes/pointers for shaders and framebuffer/renderpass.
Reduce from 64bit to 32bit pointers. We don't benefit from the
extra precision and reduced output size is convenient.
Reviewed-by: Mark Janes <markjanes@swizzler.org >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/22723 >
2023-05-12 21:15:09 +00:00
Felix DeGrood
e2dfab5c96
anv: re-enable RT data in INTEL_MEASURE
...
Per-RenderTarget analysis was removed from anv's INTEL_MEASURE
previously, probably after switching to dynamic rendering model.
Restore capability by tracking count of beginRenderPass calls.
Reviewed-by: Mark Janes <markjanes@swizzler.org >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/22723 >
2023-05-12 21:15:09 +00:00
Felix DeGrood
f783f581a8
anv: fix INTEL_MEASURE on MTL
...
Ensure counter buffer is coherent. Required for MTL which changes
coherence policy.
Reviewed-by: Mark Janes <markjanes@swizzler.org >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/22723 >
2023-05-12 21:15:09 +00:00
Alyssa Rosenzweig
fa1962681e
nir/validate: Handle unified atomics
...
nir_validate checks that the format of an atomic (if specified) is compatible
with the atomic operation. For example, we can't fadd R64_UINT texels. The logic
can't be extended as-is to unified atomics because it's split across different
switch cases for different atomic-op intrinsics. So we add our own validation
case, porting over the logic from the separate existing cases below.
(The redundant logic will be deleted once we delete legacy atomics.)
Signed-off-by: Alyssa Rosenzweig <alyssa@rosenzweig.io >
Reviewed-by: Jesse Natalie <jenatali@microsoft.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/22914 >
2023-05-12 20:39:46 +00:00
Alyssa Rosenzweig
55f7fd6d0d
nir/opt_uniform_atomics: Handle unified atomics
...
This is the one place where using nir_atomic_op instead of nir_op directly is a
little annoying, since we need to translate between the two enums, but it's not
a big deal.
Signed-off-by: Alyssa Rosenzweig <alyssa@rosenzweig.io >
Reviewed-by: Jesse Natalie <jenatali@microsoft.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/22914 >
2023-05-12 20:39:46 +00:00
Alyssa Rosenzweig
b1fd8d27fc
nir/lower_ssbo: Handle unified atomics
...
Signed-off-by: Alyssa Rosenzweig <alyssa@rosenzweig.io >
Reviewed-by: Jesse Natalie <jenatali@microsoft.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/22914 >
2023-05-12 20:39:46 +00:00
Alyssa Rosenzweig
66f1633ffd
nir/lower_io: Handle unified atomics
...
Signed-off-by: Alyssa Rosenzweig <alyssa@rosenzweig.io >
Reviewed-by: Jesse Natalie <jenatali@microsoft.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/22914 >
2023-05-12 20:39:46 +00:00
Alyssa Rosenzweig
1609b41303
nir/lower_task_shader: Handle unified atomics
...
Signed-off-by: Alyssa Rosenzweig <alyssa@rosenzweig.io >
Reviewed-by: Jesse Natalie <jenatali@microsoft.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/22914 >
2023-05-12 20:39:46 +00:00
Jesse Natalie
ca5c869b6d
nir: Load/store atomic op indices when lowering image intrinsics
...
They might not be stored in the same const index after lowering
Reviewed-by: Alyssa Rosenzweig <alyssa@rosenzweig.io >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/22914 >
2023-05-12 20:39:46 +00:00
Alyssa Rosenzweig
97857731ce
nir: Handle unified atomics in simple cases
...
Lots of passes can be made unified-atomics-aware simply by adding extra cases in
their switch statements. This commit fixes a bunch of passes.
Signed-off-by: Alyssa Rosenzweig <alyssa@rosenzweig.io >
Reviewed-by: Jesse Natalie <jenatali@microsoft.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/22914 >
2023-05-12 20:39:46 +00:00
Alyssa Rosenzweig
ee6ddce636
ir3: Use unified atomics
...
Signed-off-by: Alyssa Rosenzweig <alyssa@rosenzweig.io >
Reviewed-by: Jesse Natalie <jenatali@microsoft.com >
Reviewed-by: Rob Clark <robclark@freedesktop.org >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/22914 >
2023-05-12 20:39:46 +00:00
Karol Herbst
6ff97776b7
nv50/ir: Use unified atomics
...
Reviewed-by: Alyssa Rosenzweig <alyssa@rosenzweig.io >
Reviewed-by: Jesse Natalie <jenatali@microsoft.com >
Reviewed-by: M Henning <drawoc@darkrefraction.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/22914 >
2023-05-12 20:39:46 +00:00
Alyssa Rosenzweig
b98b7f4d85
zink: Use unified atomics
...
Signed-off-by: Alyssa Rosenzweig <alyssa@rosenzweig.io >
Reviewed-by: Jesse Natalie <jenatali@microsoft.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/22914 >
2023-05-12 20:39:46 +00:00
Alyssa Rosenzweig
ce638eafe2
aco,radv: Use unified atomics
...
Signed-off-by: Alyssa Rosenzweig <alyssa@rosenzweig.io >
Reviewed-by: Jesse Natalie <jenatali@microsoft.com >
Reviewed-by: Timur Kristóf <timur.kristof@gmail.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/22914 >
2023-05-12 20:39:46 +00:00
Alyssa Rosenzweig
0241d8894e
ac/llvm: Use unified atomics
...
Signed-off-by: Alyssa Rosenzweig <alyssa@rosenzweig.io >
Reviewed-by: Marek Olšák <marek.olsak@amd.com >
Reviewed-by: Jesse Natalie <jenatali@microsoft.com >
Reviewed-by: Timur Kristóf <timur.kristof@gmail.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/22914 >
2023-05-12 20:39:46 +00:00
Alyssa Rosenzweig
1e9c01523a
ac/llvm: Don't handle atomic derefs
...
Should not be seen, already would be stubbed out.
Signed-off-by: Alyssa Rosenzweig <alyssa@rosenzweig.io >
Suggested-by: Marek Olšák <marek.olsak@amd.com >
Reviewed-by: Jesse Natalie <jenatali@microsoft.com >
Reviewed-by: Timur Kristóf <timur.kristof@gmail.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/22914 >
2023-05-12 20:39:46 +00:00
Alyssa Rosenzweig
d0d2292ac0
ntt: Use unified atomics
...
Nice deduplication of the NIR->TGSI enum translation.
Signed-off-by: Alyssa Rosenzweig <alyssa@rosenzweig.io >
Reviewed-by: Jesse Natalie <jenatali@microsoft.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/22914 >
2023-05-12 20:39:46 +00:00
Alyssa Rosenzweig
bd0a2b1608
gallivm: Use unified atomics
...
This is a huge win because gallivm duplicated the translations in a zillion
places.
Signed-off-by: Alyssa Rosenzweig <alyssa@rosenzweig.io >
Reviewed-by: Jesse Natalie <jenatali@microsoft.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/22914 >
2023-05-12 20:39:46 +00:00
Alyssa Rosenzweig
3c823351c0
pan/mdg: Use unified atomics
...
This doesn't actually save anything, since Italo already introduced magic macros
for this, but it ticks off one more driver on the list to convert. It's also
more legible, so that's nice :-)
Signed-off-by: Alyssa Rosenzweig <alyssa@rosenzweig.io >
Reviewed-by: Jesse Natalie <jenatali@microsoft.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/22914 >
2023-05-12 20:39:46 +00:00
Alyssa Rosenzweig
133af0d6c9
pan/mdg: Fix icky formatting
...
clang-format butchered this initializer pretty badly.
Signed-off-by: Alyssa Rosenzweig <alyssa@rosenzweig.io >
Reviewed-by: Jesse Natalie <jenatali@microsoft.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/22914 >
2023-05-12 20:39:46 +00:00
Alyssa Rosenzweig
e258083e07
pan/bi: Use unified atomics
...
Signed-off-by: Alyssa Rosenzweig <alyssa@rosenzweig.io >
Reviewed-by: Jesse Natalie <jenatali@microsoft.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/22914 >
2023-05-12 20:39:46 +00:00
Alyssa Rosenzweig
f5d73a9989
agx: Use unified atomics
...
Signed-off-by: Alyssa Rosenzweig <alyssa@rosenzweig.io >
Reviewed-by: Jesse Natalie <jenatali@microsoft.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/22914 >
2023-05-12 20:39:46 +00:00
Alyssa Rosenzweig
5c99507028
nir: Add pass to lower atomics to unified
...
In the future, we'd like to have all drivers only ingest unified atomics, and
all frontends only produce unified atomics, and garbage collect the existing
non-unified atomics. To get to that future, it's a lot nicer to convert drivers
one-by-one. Add a pass to translate old-style atomics to new-style atomics so
drivers can opt-in to the new form one-by-one. Once all drivers are converted,
we can convert producers one-by-one. Finally, we can just drop the calls to the
pass and garbage collect this pass and the old atomics. That's probably a while
out, though, so this will be out bridge to get there.
Signed-off-by: Alyssa Rosenzweig <alyssa@rosenzweig.io >
Reviewed-by: Jesse Natalie <jenatali@microsoft.com >
Reviewed-by: Timur Kristóf <timur.kristof@gmail.com >
Reviewed-by: Rob Clark <robclark@freedesktop.org >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/22914 >
2023-05-12 20:39:46 +00:00