Dave Airlie
2a9e98130b
gallivm: fix non-32bit ubo loads
...
8/16-bit storage requires ubo loads for the smaller types,
fix the ubo loading and bounds checking.
Acked-by: Adam Jackson <ajax@redhat.com >
Reviewed-by: Roland Scheidegger <sroland@vmware.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/9643 >
2021-03-22 12:16:14 +10:00
Arno Messiaen
07080fd4c9
lima/ppir: increase usage of pipeline regs
...
It's possible to increase usage of ppir_pipeline_reg_fmul and
ppir_pipeline_reg_vmul by reordering arguments in some cases, so let's
do that.
Reviewed-by: Erico Nunes <nunes.erico@gmail.com >
Signed-off-by: Arno Messiaen <arnomessiaen@gmail.com >
Signed-off-by: Vasily Khoruzhick <anarsoul@gmail.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/3232 >
2021-03-22 01:31:11 +00:00
Jesse Natalie
55d153b9f5
nir: Temporarily disable optimizations for MSVC ARM64
...
There's currently an MSVC optimizer bug which causes a stack overflow
in the compiler if it attempts to optimize fsat.
Acked-by: Rob Clark <robdclark@chromium.org >
Acked-by: Jason Ekstrand <jason@jlekstrand.net >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/9700 >
2021-03-21 21:41:41 +00:00
Ilia Mirkin
3e68e7f90d
gallium,st: add missing viewport swizzles
...
Viewports must be initialized with the appropriate swizzles (for
hardware that supports this feature).
Fixes: 90fcb3fef2
(st/mesa: add NV_viewport_swizzle support)
Signed-off-by: Ilia Mirkin <imirkin@alum.mit.edu >
Reviewed-By: Mike Blumenkrantz <michael.blumenkrantz@gmail.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/9732 >
2021-03-21 18:29:50 +00:00
Rob Clark
befd9fbbba
freedreno/a6xx: Fix typo
...
Signed-off-by: Rob Clark <robdclark@chromium.org >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/9535 >
2021-03-21 16:01:01 +00:00
Rob Clark
5b96689fa0
freedreno: Autotune bypass vs GMEM rendering decision
...
In some cases, like gl_driver2, we have all the characteristics that
make our current simplistic bypass vs GMEM decision pick GMEM (ie. batch
starts with a clear, has blend enabled, has a high draw count, etc),
but each draw touches very few pixels and the per-tile state-change
overhead leaves us CP limited. We would be better in this case picking
the bypass path.
So use feedback from # of samples-passed in previous render passes to
the same FBO to give us a bit more information to make better choices.
Closes: https://gitlab.freedesktop.org/mesa/mesa/-/issues/2798
Signed-off-by: Rob Clark <robdclark@chromium.org >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/9535 >
2021-03-21 16:01:01 +00:00
Rob Clark
0610c7ba84
freedreno/a6xx: Fix sRGB/snorm vs sysmem clear path
...
This shows up when, thanks to the next patch, we decide to start doing
bypass instead of GMEM for some dEQP's
Signed-off-by: Rob Clark <robdclark@chromium.org >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/9535 >
2021-03-21 16:01:01 +00:00
Rob Clark
2e529ed7ef
freedreno: Add gmem_reason_mask
...
Older gens had more restrictions about GMEM bypass which do not apply to
newer generations. Add a bitmask so we know which bits are not a hard
requirement for using GMEM.
Signed-off-by: Rob Clark <robdclark@chromium.org >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/9535 >
2021-03-21 16:01:01 +00:00
Rob Clark
1c24e9500b
freedreno/batch: Add a way to clone a batch key
...
For autotune, the lifetime of it's hashtable keys doesn't match the
batch, so we'll need to clone the key before inserting into the
hashtable.
Signed-off-by: Rob Clark <robdclark@chromium.org >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/9535 >
2021-03-21 16:01:01 +00:00
Rob Clark
aa7dd6ff43
freedreno/batch: Export key/hash fxns
...
We are going to re-use these for autotune.
Signed-off-by: Rob Clark <robdclark@chromium.org >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/9535 >
2021-03-21 16:01:01 +00:00
Rob Clark
4f3c16ec05
freedreno: Add draw cost estimation
...
Signed-off-by: Rob Clark <robdclark@chromium.org >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/9535 >
2021-03-21 16:01:01 +00:00
Mike Blumenkrantz
a1d80c6d96
zink: more accurately check samplecount caps for shader images
...
lavapipe can only do up to 4bits, so this isn't just a binary check
Fixes: 0daa61553d
("zink: check if multisample support exists for shader image formats")
Reviewed-by: Erik Faye-Lund <erik.faye-lund@collabora.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/9713 >
2021-03-21 10:15:13 -04:00
Rob Clark
fd4a742cc3
freedreno/a6xx: Emit streamout state on every draw
...
If stream-output is active, we can't skip it's state-emit, even if the
SO buffer(s) have not changed.
Signed-off-by: Rob Clark <robdclark@chromium.org >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/9581 >
2021-03-20 13:29:05 -07:00
Rob Clark
03cf083dba
freedreno: Push multi-draw closer to backend
...
It will take some more extensive work to plumb this through the backends
(although that should increase the benefit further), but this is already
worth a nearly 4x speedup in piglit drawoverhead tests with no state
change, so this seems like a useful intermediate step.
Signed-off-by: Rob Clark <robdclark@chromium.org >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/9581 >
2021-03-20 13:29:05 -07:00
Rob Clark
68e752652c
freedreno: Handle multi-draw edge cases
...
Use the multi-draw emulation helper in the edge cases where we don't
handle multi-draw.
Signed-off-by: Rob Clark <robdclark@chromium.org >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/9581 >
2021-03-20 13:29:05 -07:00
Rob Clark
5765932375
freedreno: Use multi-draw helper
...
In the normal case, we'll be pushing multi-draw (eventually) down into
the backend, but there are still a few remaining edge cases where we
can't deal with it.
Signed-off-by: Rob Clark <robdclark@chromium.org >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/9581 >
2021-03-20 13:29:05 -07:00
Rob Clark
27ab249c9a
u_draw: Add helper to emultate multi-draw
...
No need to duplicate this in every driver.
Signed-off-by: Rob Clark <robdclark@chromium.org >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/9581 >
2021-03-20 13:29:05 -07:00
Rob Clark
7b1505d165
freedreno: Drop u_trim_pipe_prim() from fast-paths
...
Not sure if we need this for a2xx. For a3xx and a4xx we need it for sw
xfb which needs to know the trimmed # of vertices in the VS. We do not
need it on a6xx, and unlikely need it for anything a5xx+.
Signed-off-by: Rob Clark <robdclark@chromium.org >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/9581 >
2021-03-20 13:29:05 -07:00
Rob Clark
9947f950fb
freedreno/a6xx/vsc: Be more tolerate of degenerate prims
...
Before we drop u_trim_pipe_prim(), we need to be more tolerant of the
edge cases it was protecting us from.
Signed-off-by: Rob Clark <robdclark@chromium.org >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/9581 >
2021-03-20 12:14:34 -07:00
Rob Clark
4e82c5da73
freedreno: Only collect sw stats when required
...
Signed-off-by: Rob Clark <robdclark@chromium.org >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/9581 >
2021-03-20 12:14:34 -07:00
Rob Clark
e9652630c7
freedreno: Split out helper for updating sw stats
...
And while we're at it, handle the num_draws > 1 case, to prepare for
plumbing num_draws further down.
Signed-off-by: Rob Clark <robdclark@chromium.org >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/9581 >
2021-03-20 12:14:34 -07:00
Rob Clark
66985973aa
freedreno: Don't ignore geom/tess stage resources
...
The draw resource-tracking logic looks like it never was updated to
account for HS/DS/GS stages. Add it bitmask of bound stages so we only
have to loop over the bound stages.
Signed-off-by: Rob Clark <robdclark@chromium.org >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/9581 >
2021-03-20 12:14:32 -07:00
Rob Clark
8cb51ba30e
freedreno: Add dirty bit for state that needs rsc tracking
...
aa1ddb6fe3
skipped the tracking for the
!dirty case, but we can do a bit better and track at bind time whether
the state change is one that requires resource tracking.
Signed-off-by: Rob Clark <robdclark@chromium.org >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/9581 >
2021-03-20 12:13:09 -07:00
Rob Clark
66cbe66090
freedreno: Small dirty flag re-org
...
Signed-off-by: Rob Clark <robdclark@chromium.org >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/9581 >
2021-03-20 12:13:09 -07:00
Rob Clark
9401d5bf1a
freedreno/a6xx: Convert to dirty_groups
...
Closes: https://gitlab.freedesktop.org/mesa/mesa/-/issues/4106
Signed-off-by: Rob Clark <robdclark@chromium.org >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/9581 >
2021-03-20 12:13:09 -07:00
Rob Clark
32bc809a08
freedreno: Add mapping to generation specific dirty state
...
Signed-off-by: Rob Clark <robdclark@chromium.org >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/9581 >
2021-03-20 12:13:09 -07:00
Rob Clark
0cb989d71f
freedreno: Add helpers to mark dirty state
...
Doesn't change anything yet, but this will let us more easily add
mapping from dirty gallium state to dirty gen-specific state-groups.
Note that the mapping from shader-state to global state in
fd_context_dirty_shader() optimizes out for release builds. This
is kind of important, in the next patch we'll want ffs(SOME_CONST)
to optimize away even more.
Signed-off-by: Rob Clark <robdclark@chromium.org >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/9581 >
2021-03-20 12:13:09 -07:00
Rob Clark
9aef029635
freedreno/ir3: Precompute whether we need driver-params
...
To save a bit of extra math in the draw-path.
Signed-off-by: Rob Clark <robdclark@chromium.org >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/9581 >
2021-03-20 12:13:09 -07:00
Rob Clark
b5e1e99da1
freedreno/drm: Inline iova calculation
...
The shift/or are frequently zero, so this lets the compiler optimize out
some draw-overhead hotpath.
Signed-off-by: Rob Clark <robdclark@chromium.org >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/9581 >
2021-03-20 12:13:09 -07:00
Rob Clark
93d5349fa5
freedreno/drm: Move emit_reloc_tail to head
...
Get this out of the way first to avoid some register push/pop. Only
reloc->bo is needed after writing the address into cmdstream, so this
turns msm_submit_append_bo() into a tail call.
Signed-off-by: Rob Clark <robdclark@chromium.org >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/9581 >
2021-03-20 12:13:09 -07:00
Rob Clark
684586b96e
freedreno/drm: Split 64b vs 32b paths
...
No need to 'if (gpu_id >= 500)' on every reloc
Signed-off-by: Rob Clark <robdclark@chromium.org >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/9581 >
2021-03-20 12:13:09 -07:00
Rob Clark
9168d9cbfb
freedreno/drm: Split softpin "reloc" functions
...
"OBJECT" rb's are long lived, and generating them is not a hotpath, but
relocs to "STREAMING" rb's are a hot path. But we can decouple these.
Signed-off-by: Rob Clark <robdclark@chromium.org >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/9581 >
2021-03-20 12:13:08 -07:00
Jason Ekstrand
731ea06758
intel/tools: Handle BINDING_TABLE_POOL_ALLOC in batch decoding
...
Reviewed-by: Lionel Landwerlin <lionel.g.landwerlin@intel.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/9729 >
2021-03-20 12:46:50 -05:00
Jason Ekstrand
79d9c914ae
intel/genxml: Make BindingTablePoolEnable a bool
...
Reviewed-by: Lionel Landwerlin <lionel.g.landwerlin@intel.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/9729 >
2021-03-20 12:46:50 -05:00
Jason Ekstrand
05e133a84a
intel/tools: Handle GT_MODE in the batch decoder
...
Reviewed-by: Lionel Landwerlin <lionel.g.landwerlin@intel.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/9729 >
2021-03-20 12:46:50 -05:00
Jason Ekstrand
b2421f7b44
intel/tools: Handle milti-LRI in the batch decoder
...
Context batches tend to have a lot of multi-LRI and, if we want to be
able to parse those registers nicely, we really handle it.
Reviewed-by: Lionel Landwerlin <lionel.g.landwerlin@intel.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/9729 >
2021-03-20 12:33:18 -05:00
Jason Ekstrand
65077cdf57
intel/genxml: Binding table pointers are 15 bits on GFX version 12.5+
...
Reviewed-by: Lionel Landwerlin <lionel.g.landwerlin@intel.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/9729 >
2021-03-20 12:33:16 -05:00
Kenneth Graunke
6fb93465bd
intel/genxml: Add a partial GT_MODE definition for Gen11+.
...
I chose to drop "HW" from the name of this field because on Gen11
it applies to both HW and SW binding tables, so it's a bit of a
misnomer.
Reviewed-by: Lionel Landwerlin <lionel.g.landwerlin@intel.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/9729 >
2021-03-20 12:32:55 -05:00
Jose Fonseca
6e6cd7d93c
scons: Remove.
...
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/9720 >
2021-03-20 10:38:55 +00:00
Jose Fonseca
85c1770044
appveyor: Remove integration.
...
It's only testing SCons w/ MSVC at this moment.
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/9720 >
2021-03-20 10:38:55 +00:00
Christian Gmeiner
09117357b7
etnaviv: rename struct members
...
As the structs are used for TE and NTE change the naming of the
struct members to be more generic.
Signed-off-by: Christian Gmeiner <christian.gmeiner@gmail.com >
Reviewed-by: Lucas Stach <l.stach@pengutronix.de >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/8103 >
2021-03-20 10:51:21 +01:00
Christian Gmeiner
53b51a1037
etnaviv: add support for NTE
...
Signed-off-by: Christian Gmeiner <christian.gmeiner@gmail.com >
Reviewed-by: Lucas Stach <l.stach@pengutronix.de >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/8103 >
2021-03-20 10:51:15 +01:00
Christian Gmeiner
a9494a8b9c
etnaviv: factor out TS state emitting
...
Will be reused in NTE path.
Signed-off-by: Christian Gmeiner <christian.gmeiner@gmail.com >
Reviewed-by: Lucas Stach <l.stach@pengutronix.de >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/8103 >
2021-03-20 10:51:12 +01:00
Christian Gmeiner
ec91456952
etnaviv: etnaviv: put sampler limit determination into own function
...
Signed-off-by: Christian Gmeiner <christian.gmeiner@gmail.com >
Reviewed-by: Lucas Stach <l.stach@pengutronix.de >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/8103 >
2021-03-20 10:51:06 +01:00
Vinson Lee
1fe20aa7d9
clover: Add constructor for sampler_argument.
...
Fix defects reported by Coverity Scan.
member_not_init_in_gen_ctor: The compiler-generated constructor for this class does not initialize s.
member_not_init_in_gen_ctor: The compiler-generated constructor for this class does not initialize st.
Signed-off-by: Vinson Lee <vlee@freedesktop.org >
Reviewed-by: Dave Airlie <airlied@redhat.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/8657 >
2021-03-20 02:04:23 +00:00
Bas Nieuwenhuizen
3257ab9f23
radv: Dedupe winsyses per device.
...
The heap usage/budget needs to be tracked per process instead
of per device.
Fixes: 7bef192018
("radv: add support for VK_EXT_memory_budget")
Reviewed-by: Samuel Pitoiset <samuel.pitoiset@gmail.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/9651 >
2021-03-20 01:31:50 +00:00
Lepton Wu
921dafc98b
virgl: Use atomic operation directly.
...
This make sure we don't trigger assert in pipe_reference
Signed-off-by: Lepton Wu <lepton@chromium.org >
Reviewed-by: Chia-I Wu <olvaffe@gmail.com >
Reviewed-by: John Bates <jbates@chromium.org >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/9722 >
2021-03-19 23:57:58 +00:00
Eric Anholt
25c002bae9
ci/freedreno: Mark glx-swap-copy as a flake on a630.
...
Just flaked on a post-merge pipeline.
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/9715 >
2021-03-19 22:07:57 +00:00
Eric Anholt
1af7be02d7
ci/bare-metal: Move the db820c lockup detect to the right boot script.
...
Fixes: 2407952ec9
("ci/bare-metal: Restart a run on intermittent kernel lockups.")
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/9715 >
2021-03-19 22:07:57 +00:00
Eric Anholt
4eb7c4d60c
ci/freedreno: Mark all of dEQP TF as flaky.
...
I keep working on stabilizing it, but no luck yet. Stop blocking CI on
our flakes.
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/9715 >
2021-03-19 22:07:57 +00:00