Caio Oliveira
a88084f8be
intel/compiler: Rename brw_image_param to isl_image_param
...
And move them to ISL.
Reviewed-by: Kenneth Graunke <kenneth@whitecape.org>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/27475 >
2024-02-14 22:31:23 -08:00
Timothy Arceri
219be55807
glsl: add missing error check for half float varying
...
We should never get here currently as the parser should not even
process float16_t without half float enabled. However it seems
like a good idea to add this for completeness.
Reviewed-by: Marek Olšák <marek.olsak@amd.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/27585 >
2024-02-14 23:50:21 +00:00
Alyssa Rosenzweig
cb0b027c59
asahi: make clip_halfz dynamic
...
we could move this to the linker but meh, this is good enough for now
Signed-off-by: Alyssa Rosenzweig <alyssa@rosenzweig.io>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/27616 >
2024-02-14 21:02:32 +00:00
Alyssa Rosenzweig
6673924b7e
asahi: make gs topology dynamic
...
even with shobjs, we know the class of topology statically, so we just need to
select between the (up to) 3 compatible topologies, and luckily there are common
subexpressions we can factor out when calculating all 3 at once.
Signed-off-by: Alyssa Rosenzweig <alyssa@rosenzweig.io>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/27616 >
2024-02-14 21:02:32 +00:00
Alyssa Rosenzweig
17896f1699
nir: rm load_vert_id_in_prim_agx
...
now unused since we separate vs/gs
Signed-off-by: Alyssa Rosenzweig <alyssa@rosenzweig.io>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/27616 >
2024-02-14 21:02:31 +00:00
Alyssa Rosenzweig
c6c8262ce1
asahi: implement pipeline stats as a checkbox
...
real impl is blocked on uapi to plumb thru hw perf counters.
Signed-off-by: Alyssa Rosenzweig <alyssa@rosenzweig.io>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/27616 >
2024-02-14 21:02:30 +00:00
Asahi Lina
b89da92a5e
agx: compiler: Add fence_helper_exit_agx barrier
...
This is used by the helper program on exit.
Signed-off-by: Asahi Lina <lina@asahilina.net>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/27616 >
2024-02-14 21:02:29 +00:00
Asahi Lina
b07dbf7b0f
nir: Add AGX-specific helper opcodes
...
These opcodes are used by the helper program to fetch the current
operation info and core ID.
Signed-off-by: Asahi Lina <lina@asahilina.net>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/27616 >
2024-02-14 21:02:29 +00:00
Alyssa Rosenzweig
311070f7af
nir: add active_subgroup_invocation_agx sysval
...
Signed-off-by: Alyssa Rosenzweig <alyssa@rosenzweig.io>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/27616 >
2024-02-14 21:02:29 +00:00
Alyssa Rosenzweig
5dc0f5ccba
asahi: implement VBO robustness
...
GL semantics. GLES (weaker) and VK (stronger) semantics are left as a todo, with
explanations given. Enabled always to deal with null VBOs, this should be
optimized once we have soft fault.
This necessitates a rework of VBO keys, but hopefully for the best.
Signed-off-by: Alyssa Rosenzweig <alyssa@rosenzweig.io>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/27616 >
2024-02-14 21:02:29 +00:00
Alyssa Rosenzweig
9753cd44f7
asahi: Implement skeleton for tessellation
...
This implements a rough skeleton of what's needed for tessellation. It contains
the relevant lowerings to merge the VS and TCS, running them as a compute
kernel, and to lower the TES to a new VS (possibly merged in with a subsequent
GS). This is sufficient for both standalone tessellation and tess + geom/xfb
together. It does not yet contain a GPU accellerated tessellator, simply falling
back to the CPU for that for now. Nevertheless the data structures are
engineered with that end goal in mind, in particular to be able to tessellate
all patches in parallel without needing any prefix sums etc (using simple
watermark allocation for the heap).
Work on fleshing out the skeleton continues in parallel. For now, this does pass
the tests and lets the harder stuff get regression tested more easily. And
merging early will ease rebase.
Signed-off-by: Alyssa Rosenzweig <alyssa@rosenzweig.io>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/27616 >
2024-02-14 21:02:28 +00:00
Alyssa Rosenzweig
2d37d1b704
asahi: lower poly stipple
...
Signed-off-by: Alyssa Rosenzweig <alyssa@rosenzweig.io>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/27616 >
2024-02-14 21:02:28 +00:00
Alyssa Rosenzweig
db144685a9
compiler: add a vs.tes_agx bit
...
So we can distinguish lowered tess eval shaders masquerading as hardware vertex
shaders from actual software vertex shaders, for determining what stage to pull
descriptors.
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/27616 >
2024-02-14 21:02:28 +00:00
Mike Blumenkrantz
9e2c7314f2
nir/lower_io: fix handling for compact arrays with indirect derefs
...
this logic relies on constant indexing for compact arrays, but this is
frequently not the case for compact array builtins (e.g., gl_TessLevelOuter).
the usual strategy of lowering to temps isn't viable in TCS, which means
io lowering has to be able to handle indirect access to these builtins
without crashing
cc: mesa-stable
Reviewed-by: Dave Airlie <airlied@redhat.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/27534 >
2024-02-13 16:13:13 +00:00
Karol Herbst
727cddd338
nir/lower_cl_images: record image_buffers and msaa_images
...
Cc: mesa-stable
Signed-off-by: Karol Herbst <kherbst@redhat.com>
Reviewed-by: Jesse Natalie <jenatali@microsoft.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/27385 >
2024-02-13 10:12:13 +00:00
Connor Abbott
6a744ddebc
ir3: Initial support for pushing globals with ldg.k
...
Add a separate pass which uses the analyze_ubo_ranges machinery to
construct ranges of readonly globals accessed in the shader and push
them to constants in the preamble, using ldg.k if possible. This is
enough to handle inline uniforms in turnip but also provides a base for
OpenCL, although the pass would need further work for that.
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26934 >
2024-02-12 22:05:13 +00:00
Connor Abbott
45c71803f9
tu: Add more info to ldg inline uniform path
...
This will let us push the ldg into the preamble.
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26934 >
2024-02-12 22:05:13 +00:00
Sagar Ghuge
c984d6e2fc
nir: Drop intel specific lowering code
...
In previous patches, we have moved the Intel specific lowering code in
brw_nir_lower_texture file. We can go ahead and drop the Intel specific
texture source too.
Signed-off-by: Sagar Ghuge <sagar.ghuge@intel.com>
Reviewed-by: Alyssa Rosenzweig <alyssa@rosenzweig.io>
Reviewed-by: Ian Romanick <ian.d.romanick@intel.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/27458 >
2024-02-12 21:25:48 +00:00
Timothy Arceri
6fbf336788
compiler/types: Add a contains_32bit helper
...
Acked-by: Marek Olšák <marek.olsak@amd.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/18540 >
2024-02-12 13:23:14 +00:00
Timothy Arceri
5f1f6d7496
glsl: add half float AMD_shader_trinary_minmax functions
...
Acked-by: Marek Olšák <marek.olsak@amd.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/18540 >
2024-02-12 13:23:14 +00:00
Timothy Arceri
d619c16c3f
glsl: add half float derivative functions
...
Acked-by: Marek Olšák <marek.olsak@amd.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/18540 >
2024-02-12 13:23:14 +00:00
Timothy Arceri
14de2eff89
glsl: add half float interpolation functions
...
Acked-by: Marek Olšák <marek.olsak@amd.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/18540 >
2024-02-12 13:23:14 +00:00
Timothy Arceri
9dc5eec02c
glsl: allow half float varyings
...
Acked-by: Marek Olšák <marek.olsak@amd.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/18540 >
2024-02-12 13:23:14 +00:00
Timothy Arceri
3dc67c2c7e
glsl: add half float vector relational functions
...
Acked-by: Marek Olšák <marek.olsak@amd.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/18540 >
2024-02-12 13:23:14 +00:00
Timothy Arceri
e7f1be1ceb
glsl: add half float matrix functions
...
Acked-by: Marek Olšák <marek.olsak@amd.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/18540 >
2024-02-12 13:23:14 +00:00
Timothy Arceri
99a80ac930
glsl: add half float geometric functions
...
Acked-by: Marek Olšák <marek.olsak@amd.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/18540 >
2024-02-12 13:23:14 +00:00
Timothy Arceri
6a170051a9
glsl: add support for half float packing functions
...
Acked-by: Marek Olšák <marek.olsak@amd.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/18540 >
2024-02-12 13:23:14 +00:00
Timothy Arceri
c386d56915
glsl: add half float support for common functions
...
Acked-by: Marek Olšák <marek.olsak@amd.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/18540 >
2024-02-12 13:23:14 +00:00
Timothy Arceri
eea1c1fa7b
glsl: add f2f16() helper to ir_builder
...
Acked-by: Marek Olšák <marek.olsak@amd.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/18540 >
2024-02-12 13:23:14 +00:00
Timothy Arceri
94865a45f8
glsl: add half float exponential functions
...
Acked-by: Marek Olšák <marek.olsak@amd.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/18540 >
2024-02-12 13:23:14 +00:00
Timothy Arceri
829c99def1
glsl: add half float angle and trigonometry functions
...
Acked-by: Marek Olšák <marek.olsak@amd.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/18540 >
2024-02-12 13:23:13 +00:00
Timothy Arceri
3ff22ee4ae
glsl: add some new helpers for half float builtin functions
...
These helpers will be used in the following patches.
Acked-by: Marek Olšák <marek.olsak@amd.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/18540 >
2024-02-12 13:23:13 +00:00
Timothy Arceri
66633dbbd0
glsl: add ubo packing support for half floats
...
Acked-by: Marek Olšák <marek.olsak@amd.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/18540 >
2024-02-12 13:23:13 +00:00
Timothy Arceri
5803417c67
glsl: add implicit half float conversions
...
Acked-by: Marek Olšák <marek.olsak@amd.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/18540 >
2024-02-12 13:23:13 +00:00
Timothy Arceri
b83477973f
glsl: add glsl_type_is_float_16() helper
...
Acked-by: Marek Olšák <marek.olsak@amd.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/18540 >
2024-02-12 13:23:13 +00:00
Timothy Arceri
5eea4c42f5
glsl: update assert to allow for half float support
...
Acked-by: Marek Olšák <marek.olsak@amd.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/18540 >
2024-02-12 13:23:13 +00:00
Timothy Arceri
b2a7717717
glsl: add explicit half float conversion support
...
Acked-by: Marek Olšák <marek.olsak@amd.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/18540 >
2024-02-12 13:23:13 +00:00
Timothy Arceri
edbe1b5bb4
glsl: add half float support to the parser
...
Acked-by: Marek Olšák <marek.olsak@amd.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/18540 >
2024-02-12 13:23:13 +00:00
Timothy Arceri
72fb49516e
glsl: add basic params for AMD_gpu_shader_half_float extension
...
This sets us the basic infrastructure to required to add an
extension.
Acked-by: Marek Olšák <marek.olsak@amd.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/18540 >
2024-02-12 13:23:13 +00:00
Alyssa Rosenzweig
9c006d5dce
nir/passthrough_gs: flesh out gs_in_prim
...
geometry shaders don't specify the input topology, only the class of topology.
normalize when generating a passthrough gs.
asahi will be more picky about this in the future.
Signed-off-by: Alyssa Rosenzweig <alyssa@rosenzweig.io>
Reviewed-by: Antonino Maniscalco <antonino.maniscalco@collabora.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/27457 >
2024-02-09 11:53:31 +00:00
Alyssa Rosenzweig
3c3f7cb747
compiler,gallium: move u_decomposed_prim to common
...
nir will use
Signed-off-by: Alyssa Rosenzweig <alyssa@rosenzweig.io>
Reviewed-by: Antonino Maniscalco <antonino.maniscalco@collabora.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/27457 >
2024-02-09 11:53:31 +00:00
Daniel Schürmann
312d0784c5
spirv: implement SPV_KHR_quad_control
...
Reviewed-by: Georg Lehmann <dadschoorse@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/27277 >
2024-02-09 05:32:35 +00:00
Daniel Schürmann
6588f5a123
spirv: implement SPV_KHR_maximal_reconvergence
...
Reviewed-by: Georg Lehmann <dadschoorse@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/27277 >
2024-02-09 05:32:35 +00:00
Christian Gmeiner
7c198d4404
isaspec: encode.py: Include assert.h
...
pack_field(..) makes use of assert(..).
Signed-off-by: Christian Gmeiner <christian.gmeiner@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/27491 >
2024-02-06 16:38:01 +00:00
Marek Olšák
e98bbcad17
nir: add vertex divergence into nir_divergence_analysis
...
This is a prerequisite for the new nir_opt_varyings pass.
It reuses the same divergent field in nir_def and nir_loop.
Reviewed-by: Daniel Schürmann <daniel@schuermann.dev>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26918 >
2024-02-02 16:45:52 -05:00
Marek Olšák
5ffa4d879c
nir: add a lower_mediump_io callback into options
...
This will be called by the GLSL linker before nir_opt_varyings.
Reviewed-by: Alyssa Rosenzweig <alyssa@rosenzweig.io>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26918 >
2024-02-02 16:45:51 -05:00
Marek Olšák
ecf0fe09f0
nir: replace lower_io_variables with a GLSL NIR flag
...
This stops using it in nir_lower_io_passes because all callers call it
only when it's true.
Reviewed-by: Alyssa Rosenzweig <alyssa@rosenzweig.io>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26918 >
2024-02-02 16:45:49 -05:00
Marek Olšák
c4acab77a8
nir: remove and replace underused option pack_varying_options
...
This will also be used by nir_opt_varyings.
Reviewed-by: Alyssa Rosenzweig <alyssa@rosenzweig.io>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26918 >
2024-02-02 16:45:47 -05:00
Marek Olšák
c844b5dc85
nir: relax validation failure for generic TCS outputs with no_varying
...
Reviewed-by: Alyssa Rosenzweig <alyssa@rosenzweig.io>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26918 >
2024-02-02 16:45:45 -05:00
Marek Olšák
d84a616d4d
nir: remove INTERP_MODE_COLOR
...
It's only used by radeonsi and doesn't have to be public.
Reviewed-by: Alyssa Rosenzweig <alyssa@rosenzweig.io>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26918 >
2024-02-02 16:45:35 -05:00