Qiang Yu
ccfe5f9d28
lima: delay add plb buffer to submit when flush
...
Prepare for multi submit in which case plb buffer is known
only when flush.
Keep the write back buffer update which is needed for FB
dirty track.
Reviewed-by: Vasily Khoruzhick <anarsoul@gmail.com >
Signed-off-by: Qiang Yu <yuq825@gmail.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/merge_requests/3755 >
2020-02-17 02:54:15 +00:00
Qiang Yu
92387ca236
lima: pass array as parameter to PLBU and VS command macros
...
Don't assume the ctx parameter, prepare for moving PLBU and
VS arrary from lima_context to lima_submit and adding new
plbu_cmd_head array.
Reviewed-by: Vasily Khoruzhick <anarsoul@gmail.com >
Signed-off-by: Qiang Yu <yuq825@gmail.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/merge_requests/3755 >
2020-02-17 02:54:15 +00:00
Qiang Yu
c3bbe4f7f8
lima: remove lima_ctx_buff_va submit flags (v2)
...
We don't have any shared lima_ctx_buff for both GP and PP,
so no need to have these flags.
v2:
still add submit in lima_ctx_buff_va because some bo need
to exist cross flush, so not every submit will call
lima_ctx_buff_alloc.
Reviewed-by: Vasily Khoruzhick <anarsoul@gmail.com >
Signed-off-by: Qiang Yu <yuq825@gmail.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/merge_requests/3755 >
2020-02-17 02:54:15 +00:00
Qiang Yu
9f924c795b
lima: always add texture bo to submit
...
No matter texture desc change, we need to add texture to submit.
Otherwise texture may be freed before submit finish.
Reviewed-by: Vasily Khoruzhick <anarsoul@gmail.com >
Signed-off-by: Qiang Yu <yuq825@gmail.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/merge_requests/3755 >
2020-02-17 02:54:15 +00:00
Qiang Yu
3c4ff27250
lima: use util_copy_framebuffer_state
...
Use this helper to replace self written code.
Reviewed-by: Vasily Khoruzhick <anarsoul@gmail.com >
Signed-off-by: Qiang Yu <yuq825@gmail.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/merge_requests/3755 >
2020-02-17 02:54:15 +00:00
Qiang Yu
c8b53d8020
lima: remove definition of lima_is_scanout
...
There is no implementation of this function.
Reviewed-by: Vasily Khoruzhick <anarsoul@gmail.com >
Signed-off-by: Qiang Yu <yuq825@gmail.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/merge_requests/3755 >
2020-02-17 02:54:15 +00:00
Alyssa Rosenzweig
0c4a70b64d
pan/decode: Remove extraneous newline
...
pandecode_log already does this.
Signed-off-by: Alyssa Rosenzweig <alyssa.rosenzweig@collabora.com >
Tested-by: Marge Bot <https://gitlab.freedesktop.org/mesa/mesa/merge_requests/3835 >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/merge_requests/3835 >
2020-02-16 09:16:50 -05:00
Alyssa Rosenzweig
8ab0bf1f93
pan/midgard: Use fprintf instead of printf for constants
...
I was wondering where those constants disappeared to :-)
Signed-off-by: Alyssa Rosenzweig <alyssa.rosenzweig@collabora.com >
Fixes: 968f36d1fc ("pan/midgard: Support disassembling to a file")
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/merge_requests/3835 >
2020-02-16 09:16:50 -05:00
Alyssa Rosenzweig
6af14d3685
pan/midgard: Don't crash with constants on unknown ops
...
Just use a dummy name instead.. we can't know a priori what type an
unknown op will consume, but we don't want to dereference a null
pointer.
Signed-off-by: Alyssa Rosenzweig <alyssa.rosenzweig@collabora.com >
Fixes: 24360966ab ("panfrost/midgard: Prettify embedded constant
prints")
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/merge_requests/3835 >
2020-02-16 09:16:50 -05:00
Alyssa Rosenzweig
5c06ecd2c6
pan/midgard: Identify stack barrier flag
...
In case thread local storage is used.
Signed-off-by: Alyssa Rosenzweig <alyssa.rosenzweig@collabora.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/merge_requests/3835 >
2020-02-16 09:16:49 -05:00
Alyssa Rosenzweig
d3747fb1eb
pan/midgard: Set xyzx swizzle for load_compute_arg
...
Probably harmless but the w component doesn't appear valid so let's
match the blob... one less bit to be nervous about.
Signed-off-by: Alyssa Rosenzweig <alyssa.rosenzweig@collabora.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/merge_requests/3835 >
2020-02-16 09:16:48 -05:00
Alyssa Rosenzweig
f0ee55ad2a
pan/midgard: Infer tags entirely
...
We're so close, again marking off a few edge cases is enough to allow us
to omit this data entirely. Woot!
Signed-off-by: Alyssa Rosenzweig <alyssa.rosenzweig@collabora.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/merge_requests/3835 >
2020-02-16 09:16:48 -05:00
Alyssa Rosenzweig
57a84278fd
pan/midgard: Imply next tags
...
As long as we can disambiguate a few edge cases, we can imply next tags
entirely which cleans up the disassembly a fair bit (though not as much
as implying tags entirely would -- we'll get there!)
Signed-off-by: Alyssa Rosenzweig <alyssa.rosenzweig@collabora.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/merge_requests/3835 >
2020-02-16 09:16:47 -05:00
Alyssa Rosenzweig
453c64663c
pan/midgard: Overhaul tag handling
...
We unify disparate metadata about tags into a single structure to ensure
information is not left out.
Signed-off-by: Alyssa Rosenzweig <alyssa.rosenzweig@collabora.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/merge_requests/3835 >
2020-02-16 09:16:47 -05:00
Alyssa Rosenzweig
9168e7a65d
pan/midgard: Improve barrier disassembly
...
Just move some state from unknowns to actual keywords.
Signed-off-by: Alyssa Rosenzweig <alyssa.rosenzweig@collabora.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/merge_requests/3835 >
2020-02-16 09:16:47 -05:00
Alyssa Rosenzweig
d208212f80
pan/midgard: Use dummy tag for empty shaders
...
Fixes INSTR_INVALID_ENC in dEQP-GLES31.functional.compute.basic.empty
Signed-off-by: Alyssa Rosenzweig <alyssa.rosenzweig@collabora.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/merge_requests/3835 >
2020-02-16 09:16:47 -05:00
Alyssa Rosenzweig
b2cab6b6db
pan/midgard: Fix 32/64 mixed swizzle packing
...
Occurs in SSBO address computation.
Signed-off-by: Alyssa Rosenzweig <alyssa.rosenzweig@collabora.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/merge_requests/3835 >
2020-02-16 09:16:47 -05:00
Alyssa Rosenzweig
a55a2e02a5
pan/midgard: Allow jumping out of a shader
...
This comes up as a `return;` instruction in a compute shader. We need to
use the special tag 1 to signify "break". Fixes numerous
INSTR_INVALID_ENC faults in dEQP-GLES31.functional.compute.basic.*
Signed-off-by: Alyssa Rosenzweig <alyssa.rosenzweig@collabora.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/merge_requests/3835 >
2020-02-16 09:16:47 -05:00
Alyssa Rosenzweig
3f59098d1a
pan/midgard: Implement barriers
...
Barriers execute on the texture pipeline on Midgard, so let's
tentatively handle barrier() as conservatively as possible (forcing
memory barriers of both buffers and shared memory). Implementation isn't
quite there yet -- it doesn't look at interactions of adjacent barriers
like it's supposed to -- but the core is there.
Fixes dEQP-GLES31.functional.compute.basic.ssbo_local_barrier_single_invocation
Signed-off-by: Alyssa Rosenzweig <alyssa.rosenzweig@collabora.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/merge_requests/3835 >
2020-02-16 09:16:47 -05:00
Alyssa Rosenzweig
4f0b928921
pan/midgard: Fix swizzles harder
...
Just for disassembly for now~
Signed-off-by: Alyssa Rosenzweig <alyssa.rosenzweig@collabora.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/merge_requests/3835 >
2020-02-16 09:16:47 -05:00
Alyssa Rosenzweig
fbe1fd3de0
pan/midgard: Fix missing prefixes
...
I was wondering where those were going... :)
Signed-off-by: Alyssa Rosenzweig <alyssa.rosenzweig@collabora.com >
Fixes: c1952779d6 ("pan/decode: Dump to a file")
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/merge_requests/3835 >
2020-02-16 09:16:46 -05:00
Alyssa Rosenzweig
521406a069
pan/midgard: Track pressure when scheduling ld/st
...
Fixes RA failure in
dEQP-GLES31.functional.shaders.builtin_functions.common.modf.* (which
uses multiple indirect SSBO writes)
Signed-off-by: Alyssa Rosenzweig <alyssa.rosenzweig@collabora.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/merge_requests/3835 >
2020-02-16 09:16:46 -05:00
Alyssa Rosenzweig
9603126b74
panfrost: Allocate RAM backing of shared memory
...
Unlike other GPUs, Mali does not have dedicated shared memory for
compute workloads. Instead, we allocate shared memory (backed to RAM),
and the general memory access functions have modes to access shared
memory (essentially, think of these modes as adding this allocates base
+ workgroupid * stride in harder). So let's allocate enough memory
based on the shared_size parameter and supply it.
Signed-off-by: Alyssa Rosenzweig <alyssa.rosenzweig@collabora.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/merge_requests/3835 >
2020-02-16 09:16:46 -05:00
Alyssa Rosenzweig
50138abb5a
panfrost: Rename unknown2_8 to padding
...
It's zero everywhere.
Signed-off-by: Alyssa Rosenzweig <alyssa.rosenzweig@collabora.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/merge_requests/3835 >
2020-02-16 09:16:46 -05:00
Alyssa Rosenzweig
6d9ee3e65a
panfrost: Rename bifrost_framebuffer->mali_framebuffer
...
(And bifrost_fb_extra to mali_framebuffer_extra, bifrost_render_target
to mali_render_target)
These structures are the norm on midgard t760+, drop the bifrost names,
it's silly... unrelated to the rest of the series but while I'm messing
with pandecode and cleaning up bifrost abstractions, might as well.
Signed-off-by: Alyssa Rosenzweig <alyssa.rosenzweig@collabora.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/merge_requests/3835 >
2020-02-16 09:16:46 -05:00
Alyssa Rosenzweig
6dc105555b
panfrost: Unify bifrost_scratchpad with mali_shared_memory
...
It looks like these are the same structure, so this allows us to reuse
mali_shared_memory across architectures, and dispels with the
Bifrost-specific mystery of the scratchpads... nothing so mysterious
after all, just stack.
Signed-off-by: Alyssa Rosenzweig <alyssa.rosenzweig@collabora.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/merge_requests/3835 >
2020-02-16 09:16:46 -05:00
Alyssa Rosenzweig
254f40fd53
panfrost: Identify mali_shared_memory structure
...
This small structure is used to configure shared memory and stack for
compute shaders, and is also present at the beginning of framebuffer
descriptors. Let's factor it out.
Signed-off-by: Alyssa Rosenzweig <alyssa.rosenzweig@collabora.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/merge_requests/3835 >
2020-02-16 09:16:46 -05:00
Alyssa Rosenzweig
418ca5dc1a
panfrost: Ensure compute shader_meta is zeroed
...
In theory the hardware doesn't care but it'll make for easier traces.
Signed-off-by: Alyssa Rosenzweig <alyssa.rosenzweig@collabora.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/merge_requests/3835 >
2020-02-16 09:16:46 -05:00
Alyssa Rosenzweig
058faf5a4b
panfrost: Update comment about magic number relating to barriers
...
It's a complicated story. But from what I can tell, in GL compute
without barriers, the blob is able to redistribute the workgroups in
various ways (that are not yet understood), whereas with barriers it
cannot redistribute anything, which accounts for erratic workgroup
packing without barriers.
Signed-off-by: Alyssa Rosenzweig <alyssa.rosenzweig@collabora.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/merge_requests/3835 >
2020-02-16 09:16:46 -05:00
Dave Airlie
8f5a252d35
ci: bump debian image and change llvm deps to 8
...
v3: remove version in a few places (Michel)
Reviewed-by: Michel Dänzer <mdaenzer@redhat.com >
Reviewed-by: Adam Jackson <ajax@redhat.com >
Tested-by: Marge Bot <https://gitlab.freedesktop.org/mesa/mesa/merge_requests/3805 >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/merge_requests/3805 >
2020-02-15 04:15:00 +00:00
Dave Airlie
e7375e1795
gallivm/s390: fix pass init order on s390 with llvm 8 (v2)
...
llvm 8 has some missing pass dependencies, fix the s390 case
as well.
v2: add ARM also (Michel)
Reviewed-by: Michel Dänzer <mdaenzer@redhat.com >
Reviewed-by: Adam Jackson <ajax@redhat.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/merge_requests/3805 >
2020-02-15 04:15:00 +00:00
Kenneth Graunke
a603822b2f
iris: Trim "../../src/gallium/drivers/iris/" out of debug dump filenames
...
Easier to read.
v2: Also trim "/iris/" (Jordan Justen)
Acked-by: Jason Ekstrand <jason@jlekstrand.net >
Reviewed-by: Jordan Justen <jordan.l.justen@intel.com >
Tested-by: Marge Bot <https://gitlab.freedesktop.org/mesa/mesa/merge_requests/3830 >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/merge_requests/3830 >
2020-02-15 00:55:55 +00:00
Kenneth Graunke
96f247d1b3
iris: Dump frame markers with INTEL_DEBUG=submit
...
Now you can see which batches go with which frames.
Acked-by: Jason Ekstrand <jason@jlekstrand.net >
Reviewed-by: Jordan Justen <jordan.l.justen@intel.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/merge_requests/3830 >
2020-02-15 00:55:55 +00:00
Marek Olšák
e395ce03e9
gallium/cso_hash: remove another layer of pointer indirection
...
Convert this:
struct cso_hash {
union {
struct cso_hash_data *d;
struct cso_node *e;
} data;
};
to this:
struct cso_hash {
struct cso_hash_data data;
struct cso_node *end;
};
1) data is not a pointer anymore.
2) "end" points to "data" and acts as the end of the linked list.
3) This code is still crazy.
Acked-by: Pierre-Eric Pelloux-Prayer <pierre-eric.pelloux-prayer@amd.com >
Tested-by: Marge Bot <https://gitlab.freedesktop.org/mesa/mesa/merge_requests/3829 >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/merge_requests/3829 >
2020-02-14 18:16:28 -05:00
Marek Olšák
e0bb7b87e2
gallium/cso_hash: cosmetic changes, no behavior changes
...
Reviewed-by: Pierre-Eric Pelloux-Prayer <pierre-eric.pelloux-prayer@amd.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/merge_requests/3829 >
2020-02-14 18:16:28 -05:00
Marek Olšák
789ed29d59
gallium/cso_hash: remove always constant variable nodeSize
...
Reviewed-by: Pierre-Eric Pelloux-Prayer <pierre-eric.pelloux-prayer@amd.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/merge_requests/3829 >
2020-02-14 18:16:28 -05:00
Marek Olšák
a8bbf10540
gallium/cso_hash: make cso_hash declared within structures instead of alloc'd
...
This removes one level of indirection.
Reviewed-by: Pierre-Eric Pelloux-Prayer <pierre-eric.pelloux-prayer@amd.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/merge_requests/3829 >
2020-02-14 18:16:28 -05:00
Marek Olšák
f8594a06e4
gallium/cso_hash: inline a bunch of functions
...
I'm probably not getting anything out of this, but it's harmless.
Acked-by: Pierre-Eric Pelloux-Prayer <pierre-eric.pelloux-prayer@amd.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/merge_requests/3829 >
2020-02-14 18:16:27 -05:00
Marek Olšák
cf86f522b2
gallium/u_vbuf: adjust the heuristic for unrolling indices
...
This improves performance in the first subtest of Viewperf11/Catia by 10%.
Acked-by: Pierre-Eric Pelloux-Prayer <pierre-eric.pelloux-prayer@amd.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/merge_requests/3829 >
2020-02-14 18:16:27 -05:00
Marek Olšák
55d8baa285
gallium/u_upload_mgr: don't do align twice in the u_upload_alloc fast path
...
Reviewed-by: Pierre-Eric Pelloux-Prayer <pierre-eric.pelloux-prayer@amd.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/merge_requests/3829 >
2020-02-14 18:16:27 -05:00
Marek Olšák
19c18d532e
gallium/u_upload_mgr: reduce dereferences by adding buffer_size
...
Reviewed-by: Pierre-Eric Pelloux-Prayer <pierre-eric.pelloux-prayer@amd.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/merge_requests/3829 >
2020-02-14 18:16:27 -05:00
Marek Olšák
909a2d0ed3
st/mesa: simplify releasing the current attrib buffer
...
Reviewed-by: Pierre-Eric Pelloux-Prayer <pierre-eric.pelloux-prayer@amd.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/merge_requests/3829 >
2020-02-14 18:16:27 -05:00
Marek Olšák
6954efce23
st/mesa: make st_setup_current static
...
Reviewed-by: Pierre-Eric Pelloux-Prayer <pierre-eric.pelloux-prayer@amd.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/merge_requests/3829 >
2020-02-14 18:16:27 -05:00
Marek Olšák
e3617fd00b
st/mesa: change some loops from while to do..while in st_atom_array.c
...
Reviewed-by: Mathias Fröhlich <mathias.froehlich@web.de >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/merge_requests/3829 >
2020-02-14 18:16:27 -05:00
Marek Olšák
fd6636ebc0
st/mesa: simplify determination whether a draw needs min/max index
...
Reviewed-by: Mathias Fröhlich <mathias.froehlich@web.de >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/merge_requests/3829 >
2020-02-14 18:16:27 -05:00
Marek Olšák
1d93372802
st/mesa: simplify determination whether a draw has user vertex buffers
...
Reviewed-by: Mathias Fröhlich <mathias.froehlich@web.de >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/merge_requests/3829 >
2020-02-14 18:16:27 -05:00
Marek Olšák
61e4c582e0
st/mesa: always inline the code setting non-64bit vertex elements
...
Reviewed-by: Mathias Fröhlich <mathias.froehlich@web.de >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/merge_requests/3829 >
2020-02-14 18:16:27 -05:00
Marek Olšák
3c98dccd40
mesa: remove unused _mesa_draw_indirect
...
All drivers that expose ARB_draw_indirect also set the driver callback.
Reviewed-by: Mathias Fröhlich <mathias.froehlich@web.de >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/merge_requests/3829 >
2020-02-14 18:16:27 -05:00
Marek Olšák
e6448f993b
mesa: translate into gallium vertex formats in mesa/main
...
Reviewed-by: Mathias Fröhlich <mathias.froehlich@web.de >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/merge_requests/3829 >
2020-02-14 18:16:27 -05:00
Francisco Jerez
8d3b86e34a
intel/fs/gen7+: Implement discard/demote for SIMD32 programs.
...
At this point this simply involves fixing the initialization of the
sample mask flag register to take the right dispatch mask from the
thread payload, and fixing sample_mask_reg() to return f1.1 for the
second half of a SIMD32 thread. This improves Manhattan 3.1
performance by 2.4%±0.31% (N>40) on my ICL with SIMD32 enabled
relative to falling back to SIMD16 for the shaders that use discard.
Reviewed-by: Kenneth Graunke <kenneth@whitecape.org >
2020-02-14 14:31:49 -08:00