Timur Kristóf
d7b4bb3a88
aco/ngg: Fix exports for NGG VS and TES.
...
The exports in NGG VS and TES work just like VS exports,
so the assembler needs to fix these too in the same manner.
Signed-off-by: Timur Kristóf <timur.kristof@gmail.com >
Reviewed-by: Daniel Schürmann <daniel@schuermann.dev >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/3576 >
2020-04-07 11:29:35 +00:00
Timur Kristóf
ec72c504c6
aco/ngg: Initialize exec mask for NGG VS and TES.
...
They behave like merged ESGS shaders, so the exec mask needs
to be manually initialized for these NGG shaders too.
Signed-off-by: Timur Kristóf <timur.kristof@gmail.com >
Reviewed-by: Daniel Schürmann <daniel@schuermann.dev >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/3576 >
2020-04-07 11:29:35 +00:00
Timur Kristóf
1436c0b8e0
aco/ngg: Add new stage for hw_ngg_gs.
...
This is needed to distinguish between NGG and legacy.
Otherwise, vertex_geometry_gs and ngg_vertex_geometry_gs
have the same value, which we want to avoid.
Also, there is no such thing as ngg_vertex_tess_control_hs.
Signed-off-by: Timur Kristóf <timur.kristof@gmail.com >
Reviewed-by: Daniel Schürmann <daniel@schuermann.dev >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/3576 >
2020-04-07 11:29:35 +00:00
Timur Kristóf
35e58314d8
aco: Treat s_setprio as a scheduling barrier.
...
We want to execute instructions after s_setprio in the given
priority, so we must prevent the scheduler from scheduling beyond
s_setprio, otherwise some instructions could be executed in a
different priority.
Rename hazard_fail_memtime to hazard_fail_unreorderable and include
s_setprio in the list of unreorderable opcodes.
Signed-off-by: Timur Kristóf <timur.kristof@gmail.com >
Reviewed-by: Daniel Schürmann <daniel@schuermann.dev >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/3576 >
2020-04-07 11:29:35 +00:00
Timur Kristóf
d345bfe195
aco: Extract merged_wave_info_to_mask to its own function.
...
Currently we only use this at the beginning of merged shader parts,
but we are going to need to use it with some NGG code as well.
Signed-off-by: Timur Kristóf <timur.kristof@gmail.com >
Reviewed-by: Daniel Schürmann <daniel@schuermann.dev >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/3576 >
2020-04-07 11:29:35 +00:00
Timur Kristóf
90b1047fdf
aco: Print block_kind_export_end.
...
Useful when debugging issues with exports.
Signed-off-by: Timur Kristóf <timur.kristof@gmail.com >
Reviewed-by: Daniel Schürmann <daniel@schuermann.dev >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/3576 >
2020-04-07 11:29:35 +00:00
Timur Kristóf
b9cbdb6a45
aco: Extract uniform if handling to separate functions.
...
Currently we only use this for uniform ifs that come from NIR,
but we are going to need to use it with some NGG parts as well.
Signed-off-by: Timur Kristóf <timur.kristof@gmail.com >
Reviewed-by: Daniel Schürmann <daniel@schuermann.dev >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/3576 >
2020-04-07 11:29:35 +00:00
Timur Kristóf
cc8a85d05a
aco: Fix crash in insert_wait_states.
...
Signed-off-by: Timur Kristóf <timur.kristof@gmail.com >
Reviewed-by: Daniel Schürmann <daniel@schuermann.dev >
Tested-by: Marge Bot <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/4465 >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/4465 >
2020-04-07 09:51:14 +00:00
Alyssa Rosenzweig
eeb626257d
pan/bit: Wire up add/add op+test
...
Signed-off-by: Alyssa Rosenzweig <alyssa.rosenzweig@collabora.com >
Tested-by: Marge Bot <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/4470 >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/4470 >
2020-04-06 19:41:56 +00:00
Alyssa Rosenzweig
e456630bd9
pan/bit: Add fmin/max16 tests
...
Signed-off-by: Alyssa Rosenzweig <alyssa.rosenzweig@collabora.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/4470 >
2020-04-06 19:41:56 +00:00
Alyssa Rosenzweig
fc446dc322
pan/bit: Enable more debug for run
...
Signed-off-by: Alyssa Rosenzweig <alyssa.rosenzweig@collabora.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/4470 >
2020-04-06 19:41:56 +00:00
Alyssa Rosenzweig
0e0f7f110c
pan/bit: Add min/max support to interpreter
...
Signed-off-by: Alyssa Rosenzweig <alyssa.rosenzweig@collabora.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/4470 >
2020-04-06 19:41:56 +00:00
Alyssa Rosenzweig
e9967e9f80
pan/bit: Unify test frontends
...
Random.
Signed-off-by: Alyssa Rosenzweig <alyssa.rosenzweig@collabora.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/4470 >
2020-04-06 19:41:56 +00:00
Alyssa Rosenzweig
f91929e515
pan/bi: Force ADD scheduling for MINMAX
...
Might be GPU version specific.
Signed-off-by: Alyssa Rosenzweig <alyssa.rosenzweig@collabora.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/4470 >
2020-04-06 19:41:56 +00:00
Alyssa Rosenzweig
9279ed1550
pan/bi: Fix incorrect abs flip in fma/fadd16
...
Signed-off-by: Alyssa Rosenzweig <alyssa.rosenzweig@collabora.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/4470 >
2020-04-06 19:41:56 +00:00
Alyssa Rosenzweig
3bbce876e6
pan/bi: Set BI_MODS for MINMAX
...
We support it.
Signed-off-by: Alyssa Rosenzweig <alyssa.rosenzweig@collabora.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/4470 >
2020-04-06 19:41:56 +00:00
Alyssa Rosenzweig
822f127fe5
pan/bi: Add ADD add/min/max fp32 packing
...
Signed-off-by: Alyssa Rosenzweig <alyssa.rosenzweig@collabora.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/4470 >
2020-04-06 19:41:56 +00:00
Alyssa Rosenzweig
36e4c6b267
pan/bi: Structify ADD unit add/min/max
...
..since it's missing for FMA
Signed-off-by: Alyssa Rosenzweig <alyssa.rosenzweig@collabora.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/4470 >
2020-04-06 19:41:56 +00:00
Alyssa Rosenzweig
f6bd0ec907
pan/bi: Implement min/max on FMA
...
Unfortunately, while this looks fine to the disasm, it's raising
INSTR_INVALID_ENC on my g31 board here. Looks like it might be ADD only
on newer Bifrost.
Signed-off-by: Alyssa Rosenzweig <alyssa.rosenzweig@collabora.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/4470 >
2020-04-06 19:41:56 +00:00
Alyssa Rosenzweig
545fc7b26a
pan/bit: Add special unit test
...
Signed-off-by: Alyssa Rosenzweig <alyssa.rosenzweig@collabora.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/4470 >
2020-04-06 19:41:56 +00:00
Alyssa Rosenzweig
8e50d44950
pan/bit: Add special op interpreting
...
Signed-off-by: Alyssa Rosenzweig <alyssa.rosenzweig@collabora.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/4470 >
2020-04-06 19:41:56 +00:00
Alyssa Rosenzweig
c37c799284
pan/bi: Add fp16 support for frcp/frsq
...
More ops.
Signed-off-by: Alyssa Rosenzweig <alyssa.rosenzweig@collabora.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/4470 >
2020-04-06 19:41:56 +00:00
Alyssa Rosenzweig
d7bb7b79a8
pan/bi: Add 32-bit _FAST packing
...
For frcp/frsq on newer Bifrost.
Signed-off-by: Alyssa Rosenzweig <alyssa.rosenzweig@collabora.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/4470 >
2020-04-06 19:41:56 +00:00
Alyssa Rosenzweig
a6ae2d8f94
pan/bi: Remove nontrivial SPECIAL ops
...
These require a lot more handholding in the IR than we can deal with at
this stage; we need to restrict ourselves to frcp/sqrt.
Signed-off-by: Alyssa Rosenzweig <alyssa.rosenzweig@collabora.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/4470 >
2020-04-06 19:41:56 +00:00
Rhys Perry
20a4b1461b
aco: zero-initialize Temp
...
Fixes dEQP-VK.transform_feedback.* crashes from accesses garbage
temporaries in emit_extract_vector().
Fixes: 85521061 ("aco: prepare helper functions for subdword handling")
Signed-off-by: Rhys Perry <pendingchaos02@gmail.com >
Reviewed-by: Daniel Schürmann <daniel@schuermann.dev >
Tested-by: Marge Bot <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/4463 >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/4463 >
2020-04-06 19:15:19 +00:00
Rhys Perry
8dd6a51e80
aco: remove divergence check in sanitize_if()
...
We also need to do this if a side ends in a divergent break.
Signed-off-by: Rhys Perry <pendingchaos02@gmail.com >
Reviewed-by: Daniel Schürmann <daniel@schuermann.dev >
Tested-by: Marge Bot <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/4461 >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/4461 >
2020-04-06 18:39:29 +00:00
Rob Clark
57557783f6
nir/lower_amul: fix slot calculation
...
Fixes incorrect indexing in
dEQP-GLES31.functional.ssbo.layout.instance_array_basic_type.packed.mat2x3
Signed-off-by: Rob Clark <robdclark@chromium.org >
Reviewed-by: Eric Anholt <eric@anholt.net >
Tested-by: Marge Bot <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/4455 >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/4455 >
2020-04-06 18:00:17 +00:00
Rob Clark
4638a16a93
nir: add some swizzle helpers
...
Signed-off-by: Rob Clark <robdclark@chromium.org >
Reviewed-by: Alyssa Rosenzweig <alyssa.rosenzweig@collabora.com >
Reviewed-by: Eric Anholt <eric@anholt.net >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/4455 >
2020-04-06 18:00:17 +00:00
Jason Ekstrand
e78a7a1825
nir: Assert memory loads are aligned
...
We've had alignment parameters on these operations for a while but a
bunch of places weren't setting them. That should be resolved now so we
can start validating that they're always set.
Reviewed-by: Jordan Justen <jordan.l.justen@intel.com >
Reviewed-by: Samuel Pitoiset <samuel.pitoiset@gmail.com >
Reviewed-by: Alyssa Rosenzweig <alyssa.rosenzweig@collabora.com >
Tested-by: Marge Bot <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/4441 >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/4441 >
2020-04-06 15:57:30 +00:00
Marek Olšák
068a3bf0d7
util: move and adjust the vertex upload heuristic equation from u_vbuf
...
This will also be used by glthread.
The new equation is optimized for glthread.
Reviewed-by: Pierre-Eric Pelloux-Prayer <pierre-eric.pelloux-prayer@amd.com >
Tested-by: Marge Bot <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/4466 >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/4466 >
2020-04-06 10:30:10 -04:00
Marek Olšák
d9cb0ec5e6
vbo: expose helper function vbo_get_minmax_index_mapped for glthread
...
Reviewed-by: Pierre-Eric Pelloux-Prayer <pierre-eric.pelloux-prayer@amd.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/4466 >
2020-04-06 10:29:52 -04:00
Marek Olšák
e69e59778c
mesa: split _mesa_primitive_restart_index into a function without gl_context
...
Reviewed-by: Pierre-Eric Pelloux-Prayer <pierre-eric.pelloux-prayer@amd.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/4466 >
2020-04-06 10:29:38 -04:00
Marek Olšák
e6bc1702f4
mesa: precompute _mesa_primitive_restart_index during state changes
...
Reviewed-by: Pierre-Eric Pelloux-Prayer <pierre-eric.pelloux-prayer@amd.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/4466 >
2020-04-06 10:29:16 -04:00
Marek Olšák
10beee8a77
mesa: remove no longer needed _mesa_is_bufferobj function
...
All buffers have Name != 0.
Note that there is no longer the pointer dereference to get Name,
so it's faster.
Reviewed-by: Pierre-Eric Pelloux-Prayer <pierre-eric.pelloux-prayer@amd.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/4466 >
2020-04-06 10:28:53 -04:00
Marek Olšák
58fab9a6fe
mesa: remove NullBufferObj
...
Reviewed-by: Pierre-Eric Pelloux-Prayer <pierre-eric.pelloux-prayer@amd.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/4466 >
2020-04-06 10:28:53 -04:00
Marek Olšák
54525808aa
mesa: don't ever bind NullBufferObj to glBindBuffer(Base,Range) slots
...
Reviewed-by: Pierre-Eric Pelloux-Prayer <pierre-eric.pelloux-prayer@amd.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/4466 >
2020-04-06 10:28:53 -04:00
Marek Olšák
f3cce7087a
mesa: don't ever bind NullBufferObj for glBindBuffer targets
...
Since VAOs don't use NullBufferObj for vertex attribs anymore, let's remove
more uses of NullBufferObj.
Reviewed-by: Pierre-Eric Pelloux-Prayer <pierre-eric.pelloux-prayer@amd.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/4466 >
2020-04-06 10:28:53 -04:00
Marek Olšák
e630271e0e
mesa: don't ever set NullBufferObj in gl_vertex_array_binding
...
This improves performance by 5% in the game "torcs", FPS: 98.83 -> 103.73
It does a lot of glPush/PopClientAttrib, which exacerbates the overhead
of setting NullBufferObj.
Reviewed-by: Pierre-Eric Pelloux-Prayer <pierre-eric.pelloux-prayer@amd.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/4466 >
2020-04-06 10:28:53 -04:00
Marek Olšák
a0a0c68150
mesa: optimize initialization of new VAOs
...
Precompute the default state in gl_context, and just copy it when we create
a VAO.
This also helps glPushClientAttrib function, which always creates a VAO,
which has a substantial CPU overhead in profiles.
Reviewed-by: Pierre-Eric Pelloux-Prayer <pierre-eric.pelloux-prayer@amd.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/4466 >
2020-04-06 10:27:59 -04:00
Mauro Rossi
dbdd0149ed
android: aco: add various compiler statistics
...
Fixes a building error due to compiler/aco_statistics.cpp
missing in src/amd/Makefile.sources
Fixes: b1544352 ("aco: add various compiler statistics")
Signed-off-by: Mauro Rossi <issor.oruam@gmail.com >
Reviewed-by: Daniel Schürmann <daniel@schuermann.dev >
2020-04-06 12:59:13 +02:00
Hyunjun Ko
9f174eb2df
nir: fix wrong assignment to buffer in xfb_varyings_info
...
Tested with dEQP-VK.transform_feedback.fuzz.various_buffers.buffers100_instance_array_vertex
Signed-off-by: Hyunjun Ko <zzoon@igalia.com >
Reviewed-by: Tapani Pälli <tapani.palli@intel.com >
Cc: mesa-stable@lists.freedesktop.org
Tested-by: Marge Bot <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/4459 >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/4459 >
2020-04-06 08:55:05 +00:00
Tapani Pälli
84e845c969
mesa/st: release variants for active programs before unref
...
Programs can be shared among many contexts and each program holds a
variant list which has context specific variants. When context gets
destroyed it must make sure it relases all variants, otherwise remaining
context that utilizes same program will attempt to save a zombie shader
for already deleted context when releasing program and its variants.
Fixes:
dEQP-EGL.functional.sharing.gles2.program.render
and other flaky multihread dEQP-EGL failures.
v2: pass program pointer via & (Marek)
Signed-off-by: Tapani Pälli <tapani.palli@intel.com >
Reviewed-by: Marek Olšák <marek.olsak@amd.com >
Reviewed-by: Jordan Justen <jordan.l.justen@intel.com >
Cc: mesa-stable@lists.freedesktop.org
Tested-by: Marge Bot <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/4386 >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/4386 >
2020-04-06 08:00:00 +03:00
Tapani Pälli
4822cc9700
mesa/st: unbind shader state before deleting it
...
Signed-off-by: Tapani Pälli <tapani.palli@intel.com >
Reviewed-by: Marek Olšák <marek.olsak@amd.com >
Reviewed-by: Jordan Justen <jordan.l.justen@intel.com >
Cc: mesa-stable@lists.freedesktop.org
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/4386 >
2020-04-06 08:00:00 +03:00
Alyssa Rosenzweig
82597c46c3
pan/bit: Add mode to run unit tests
...
Probably the most useful of the bunch going forward.
Signed-off-by: Alyssa Rosenzweig <alyssa.rosenzweig@collabora.com >
Tested-by: Marge Bot <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/4458 >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/4458 >
2020-04-05 23:26:04 +00:00
Alyssa Rosenzweig
1a1c55709e
pan/bit: Make run more useful
...
..by printing some output.
Signed-off-by: Alyssa Rosenzweig <alyssa.rosenzweig@collabora.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/4458 >
2020-04-05 23:26:04 +00:00
Alyssa Rosenzweig
50476efb61
pan/bit: Add csel tests
...
..and pull out common instruction generation to reduce duplication in
tests a bit.
Signed-off-by: Alyssa Rosenzweig <alyssa.rosenzweig@collabora.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/4458 >
2020-04-05 23:26:04 +00:00
Alyssa Rosenzweig
9b262208b6
pan/bit: Add CSEL to interpreter
...
Signed-off-by: Alyssa Rosenzweig <alyssa.rosenzweig@collabora.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/4458 >
2020-04-05 23:26:04 +00:00
Alyssa Rosenzweig
069189ff0f
pan/bit: Add FMA tests
...
Now that the earlier reg ctrl issue is fixed these should pass.
Signed-off-by: Alyssa Rosenzweig <alyssa.rosenzweig@collabora.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/4458 >
2020-04-05 23:26:04 +00:00
Alyssa Rosenzweig
78ba6d50a4
pan/bit: Add 16-bit fmod tests
...
These raise another set of issues -- indeed, not all of these tests are
passing, since it turns out I have an actual bug in the packing code. So
after all this work, test bringup has identified an actual issue :)
Signed-off-by: Alyssa Rosenzweig <alyssa.rosenzweig@collabora.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/4458 >
2020-04-05 23:26:04 +00:00
Alyssa Rosenzweig
40160c576d
pan/bit: Add verbose printing for tests
...
We'd like to dump both the generated IR (so we know exactly what's being
tested) as well as the compiled program (so we know what's running for
comparison).
Signed-off-by: Alyssa Rosenzweig <alyssa.rosenzweig@collabora.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/4458 >
2020-04-05 23:26:04 +00:00