Alyssa Rosenzweig
8249e2b9a2
panfrost: Explicitly handle nr_cbufs=0 case
...
Avoids some indirection around colour buffer count.
Signed-off-by: Alyssa Rosenzweig <alyssa.rosenzweig@collabora.com >
Reviewed-by: Tomeu Vizoso <tomeu.vizoso@collabora.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/6373 >
2020-08-20 18:15:01 +02:00
Alyssa Rosenzweig
dc7fbe114b
panfrost: Drop implicit blend pooling
...
We dropped blend shader pools a long time ago for various reasons, but
the indirection required remained. Oops.
Signed-off-by: Alyssa Rosenzweig <alyssa.rosenzweig@collabora.com >
Reviewed-by: Tomeu Vizoso <tomeu.vizoso@collabora.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/6373 >
2020-08-20 18:15:00 +02:00
Alyssa Rosenzweig
d8deb1eb6a
panfrost: Share tiler_heap across batches/contexts
...
There's only one tiler, so this is safe. (The blob does the same
optimization.) This avoids allocating multiple heaps for multiple
batches, which wastes memory and CPU time.
Signed-off-by: Alyssa Rosenzweig <alyssa.rosenzweig@collabora.com >
Reviewed-by: Tomeu Vizoso <tomeu.vizoso@collabora.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/6373 >
2020-08-20 18:15:00 +02:00
Alyssa Rosenzweig
b41692caf4
panfrost: Avoid minimum stack allocations
...
If stack isn't used, don't allocate it - simple as that.
Signed-off-by: Alyssa Rosenzweig <alyssa.rosenzweig@collabora.com >
Reviewed-by: Tomeu Vizoso <tomeu.vizoso@collabora.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/6373 >
2020-08-20 18:15:00 +02:00
Alyssa Rosenzweig
17c617cdb7
panfrost: Introduce invisible pool
...
Whereas the main batch->pool is CPU read/write, the new
batch->invisible_pool is not. This enables GPU-internal structures that
the CPU must allocate from a pool dynamically but does not read,
corresponding to the BO_INVISIBLE create flag.
The use case is speeding up varying allocation by skipping the
CPU-side mmap/munmap.
We simultaneously half the pool's minimal allocation to avoid negatively
affecting memory usage.
Signed-off-by: Alyssa Rosenzweig <alyssa.rosenzweig@collabora.com >
Reviewed-by: Tomeu Vizoso <tomeu.vizoso@collabora.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/6373 >
2020-08-20 18:15:00 +02:00
Alyssa Rosenzweig
40c0d7a13d
panfrost: Pre-allocate memory for pool
...
Seeing random BO creates in the middle of command stream generation is
annoying, let's preallocate memory so CPU profiling is less random.
Signed-off-by: Alyssa Rosenzweig <alyssa.rosenzweig@collabora.com >
Reviewed-by: Tomeu Vizoso <tomeu.vizoso@collabora.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/6373 >
2020-08-20 18:15:00 +02:00
Kenneth Graunke
3fed1c75ef
iris: Fix headerless sampler messages in compute shaders with preemption
...
We were failing to set the "Headerless Message for Preemptable Contexts"
bit in SAMPLER_MODE in the compute context. Other drivers use a single
hardware context, so setting it on the render engine was sufficient to
flip it in both pipelines. But iris uses a separate hardware context
for compute, so we were only getting these set for the render context.
Thanks to Jason Ekstrand for catching this bug.
Reviewed-by: Jason Ekstrand <jason@jlekstrand.net >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/6380 >
2020-08-20 14:57:40 +00:00
Nanley Chery
9d503b36ca
iris: Drop buffer support in resource_from_handle
...
The callers don't seem to pass targets of PIPE_BUFFER. Stop nesting an
if-else block by dropping support for this target.
Reviewed-by: Anuj Phogat <anuj.phogat@gmail.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/6311 >
2020-08-19 22:30:39 +00:00
Nanley Chery
c54bb23967
iris: Add and use iris_resource_configure_main
...
Reduce duplication of ISL surface creation code for main surfaces. This
is similar to iris_resource_configure_aux.
Reviewed-by: Anuj Phogat <anuj.phogat@gmail.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/6311 >
2020-08-19 22:30:39 +00:00
Nanley Chery
51e42e2183
iris: Move size/offset calculations out of configure_aux
...
Not all callers want the result of the offset and size calculations.
Reviewed-by: Anuj Phogat <anuj.phogat@gmail.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/6311 >
2020-08-19 22:30:39 +00:00
Nanley Chery
8b2fc91959
iris: Drop old comment on clear color BO allocation
...
Iris hasn't used a clear color BO on gen9 since commit 1cd13ccee7 .
Reviewed-by: Anuj Phogat <anuj.phogat@gmail.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/6311 >
2020-08-19 22:30:39 +00:00
Nanley Chery
fd3c20674e
iris: Drop unused resource allocation optimization
...
Reviewed-by: Anuj Phogat <anuj.phogat@gmail.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/6311 >
2020-08-19 22:30:39 +00:00
Nanley Chery
2555321a10
iris: Drop iris_resource_alloc_separate_aux
...
When this function was called, the res->mod_info->aux_usage parameter
was ISL_AUX_USAGE_NONE. As a result, no aux buffer was ever allocated.
Reviewed-by: Anuj Phogat <anuj.phogat@gmail.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/6311 >
2020-08-19 22:30:39 +00:00
Karol Herbst
5ef9c110d5
nv50/ir/nir: support load_work_dim
...
Signed-off-by: Karol Herbst <kherbst@redhat.com >
Reviewed-by: Pierre Moreau <dev@pmoreau.org >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/6367 >
2020-08-19 18:11:42 +00:00
Karol Herbst
080bee33da
nvc0: handle nr being 0 in nvc0_set_global_bindings
...
Signed-off-by: Karol Herbst <kherbst@redhat.com >
Reviewed-by: Pierre Moreau <dev@pmoreau.org >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/6367 >
2020-08-19 18:11:42 +00:00
Karol Herbst
b283fb335b
nv50/ir/nir: fix global_atomic_comp_swap
...
Fixes: 20d0ae464c ("nv50/ir: implement global atomics and handle it for nir")
Signed-off-by: Karol Herbst <kherbst@redhat.com >
Reviewed-by: Pierre Moreau <dev@pmoreau.org >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/6367 >
2020-08-19 18:11:42 +00:00
Karol Herbst
38e904f929
nv50/ir/nir: assert on unknown alu ops
...
Signed-off-by: Karol Herbst <kherbst@redhat.com >
Reviewed-by: Pierre Moreau <dev@pmoreau.org >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/6367 >
2020-08-19 18:11:42 +00:00
Karol Herbst
ada8c76cca
nve4: fix uploading unaligned sized input buffers
...
Signed-off-by: Karol Herbst <kherbst@redhat.com >
Reviewed-by: Pierre Moreau <dev@pmoreau.org >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/6367 >
2020-08-19 18:11:42 +00:00
Rob Clark
7e3a788bd3
freedreno/a6xx: fix occlusion query with more than one tile
...
We need to emit epilogue after each tile, not just after the last tile.
Fixes: 13fc03f4c0 ("freedreno/a6xx: Avoid stalling for occlusion queries")
Signed-off-by: Rob Clark <robdclark@chromium.org >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/6376 >
2020-08-19 14:03:42 +00:00
Rob Clark
5550bc0423
freedreno/a6xx: only generate streamout for draw pass shader
...
Previously we were doing this both for draw and binning pass.. resulting
that the stateobj contained first the incorrect state (based on binning
pass shader with varyings DCEd) followed by the correct state.
Also, in the streamout case we should link binning pass VS against the
real FS, rather than the dummy FS, so that OUTLOC's match (since same
streamout stateobj is used for both draw and binning pass).
Signed-off-by: Rob Clark <robdclark@chromium.org >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/6376 >
2020-08-19 14:03:42 +00:00
Alyssa Rosenzweig
415eb43fd5
panfrost: Fix shared memory size computation
...
Based on core count. Also, avoid some of the more complex programming
and stick to powers-of-two for now.
Signed-off-by: Alyssa Rosenzweig <alyssa.rosenzweig@collabora.com >
Reviewed-by: Tomeu Vizoso <tomeu.vizoso@collabora.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/6321 >
2020-08-19 12:08:51 +00:00
Alyssa Rosenzweig
39bf1fb322
panfrost: Fix WRITES_GLOBAL bit
...
Signed-off-by: Alyssa Rosenzweig <alyssa.rosenzweig@collabora.com >
Reviewed-by: Tomeu Vizoso <tomeu.vizoso@collabora.com >
Fixes: dce7722ef8 ("panfrost: Handle writes_memory correctly")
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/6321 >
2020-08-19 12:08:51 +00:00
Eduardo Lima Mitev
a457256e2d
freedreno: Destroy syncobj too when destroying fence
...
This is a missing part of freedreno EXT_semaphore support,
recently merged as part of series adding EXT_external_objects. This hunk was
actually lost due to a mistake on my side while doing a rebase.
Reviewed-by: Hyunjun Ko <zzoon@igalia.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/6383 >
2020-08-19 09:11:21 +00:00
Alyssa Rosenzweig
1cf7a3968f
panfrost: Hoist assert from bind to create
...
Signed-off-by: Alyssa Rosenzweig <alyssa.rosenzweig@collabora.com >
Reviewed-by: Tomeu Vizoso <tomeu.vizoso@collabora.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/6327 >
2020-08-19 08:24:37 +00:00
Alyssa Rosenzweig
3b129dd335
panfrost: Remove useless comment
...
Less than useless, actually - it's not even factually correct.
Signed-off-by: Alyssa Rosenzweig <alyssa.rosenzweig@collabora.com >
Reviewed-by: Tomeu Vizoso <tomeu.vizoso@collabora.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/6327 >
2020-08-19 08:24:37 +00:00
Alyssa Rosenzweig
a2e4159029
panfrost: Hoist add_fbo_bo call
...
Move it to batch initialization, to take it out of the clear/draw path.
This should make sense - as soon as the batch is created, we need to
hold the refference. Functionally there shouldn't be unused batches
floating around anyway.
Signed-off-by: Alyssa Rosenzweig <alyssa.rosenzweig@collabora.com >
Reviewed-by: Tomeu Vizoso <tomeu.vizoso@collabora.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/6327 >
2020-08-19 08:24:37 +00:00
Alyssa Rosenzweig
433fa39c2e
panfrost: Drop QUADS primitive convert
...
Even Bifrost retains QUADS support.
Signed-off-by: Alyssa Rosenzweig <alyssa.rosenzweig@collabora.com >
Reviewed-by: Tomeu Vizoso <tomeu.vizoso@collabora.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/6327 >
2020-08-19 08:24:37 +00:00
Alyssa Rosenzweig
4b21c8b15f
panfrost: Drop panfrost_invalidate_frame
...
Only used to initialize active_queries once at context initialization,
then unneeded.
Signed-off-by: Alyssa Rosenzweig <alyssa.rosenzweig@collabora.com >
Reviewed-by: Tomeu Vizoso <tomeu.vizoso@collabora.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/6327 >
2020-08-19 08:24:37 +00:00
Alyssa Rosenzweig
1362371a96
panfrost: Drop ZSA null checks in draws
...
Likewise.
Signed-off-by: Alyssa Rosenzweig <alyssa.rosenzweig@collabora.com >
Reviewed-by: Tomeu Vizoso <tomeu.vizoso@collabora.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/6327 >
2020-08-19 08:24:37 +00:00
Alyssa Rosenzweig
ec35159fba
panfrost: Drop rasterizer null checks in draw calls
...
rasterizer must be non-null when draw_vbo is called (indeed, we assert
this there), so anything in the per-draw graphics path can safely assume
we have a rasterizer object bound.
Signed-off-by: Alyssa Rosenzweig <alyssa.rosenzweig@collabora.com >
Reviewed-by: Tomeu Vizoso <tomeu.vizoso@collabora.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/6327 >
2020-08-19 08:24:37 +00:00
Alyssa Rosenzweig
e46d4fe8bc
panfrost: Decontextualize rasterizer
...
Tightens the scope.
Signed-off-by: Alyssa Rosenzweig <alyssa.rosenzweig@collabora.com >
Reviewed-by: Tomeu Vizoso <tomeu.vizoso@collabora.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/6327 >
2020-08-19 08:24:36 +00:00
Dave Airlie
eb787773b2
llvmpipe/nir: lower some more packing at nir level.
...
Fixes:
dEQP-VK.glsl.builtin.function.pack_unpack.*
Reviewed-by: Roland Scheidegger <sroland@vmware.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/6339 >
2020-08-19 10:16:49 +10:00
Dave Airlie
95d611e036
llvmpipe: lower mul 2x32_64
...
Fixes:
dEQP-VK.glsl.builtin.function.integer.umulextended*
dEQP-VK.glsl.builtin.function.integer.imulextended*
Reviewed-by: Roland Scheidegger <sroland@vmware.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/6339 >
2020-08-19 10:16:46 +10:00
Dave Airlie
25ba200985
llvmpipe: lower cs local index from id
...
Fixes:
dEQP-VK.glsl.atomic_operations.*_shared
Reviewed-by: Roland Scheidegger <sroland@vmware.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/6339 >
2020-08-19 10:16:43 +10:00
Dave Airlie
e616223024
gallivm/nir: fixup compact TCS variable storage.
...
This fixes a lot of tessellation shaders, since tess factors
get emitted with spir-v now.
Fixes a bunch of:
dEQP-VK.tessellation*
along with 7000 others.
Reviewed-by: Roland Scheidegger <sroland@vmware.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/6339 >
2020-08-19 10:16:36 +10:00
Dave Airlie
fe9667e336
llvmpipe: lower uadd_carry/usub_borrow.
...
Fixes:
dEQP-VK.glsl.builtin.function.integer.uaddcarry.*
dEQP-VK.glsl.builtin.function.integer.usubborrow.*
Reviewed-by: Roland Scheidegger <sroland@vmware.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/6339 >
2020-08-19 10:16:31 +10:00
Dave Airlie
e137bbb87f
llvmpipe/cs: update compute counters not fragment shader.
...
This was updating the wrong counters.
Reviewed-by: Eric Engestrom <eric@engestrom.ch >
Fixes: a6f6ca37c8 ("llvmpipe: add initial shader create/bind/destroy variants framework.")
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/6339 >
2020-08-19 10:16:14 +10:00
Hyunjun Ko
e0e9712a4d
freedreno: support GL_EXT_semaphore
...
Signed-off-by: Hyunjun Ko <zzoon@igalia.com >
Reviewed-by: Rob Clark <robdclark@chromium.org >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/4565 >
2020-08-18 20:40:40 +00:00
Eduardo Lima Mitev
f6187aa1c3
freedreno: Enable GL_EXT_memory_object and GL_EXT_memory_object_fd
...
Reviewed-by: Rob Clark <robdclark@chromium.org >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/4565 >
2020-08-18 20:40:40 +00:00
Eduardo Lima Mitev
e3c39e5052
freedreno: Implement pipe screen's get_device/driver_uuid()
...
v2: Don't need to prefix included uuid headers path with
'freedreno'. (Rob Clark)
Reviewed-by: Rob Clark <robdclark@chromium.org >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/4565 >
2020-08-18 20:40:40 +00:00
Eduardo Lima Mitev
6bef126c62
freedreno: implement pipe screen's resource_from_memobj
...
v2: Use 'prsc' and 'rsc', 'pmemobj' and 'memobj' for consistency with
rest of the code. (Rob Clark)
v3: - Use the existing flag PIPE_BIND_LINEAR instead (Marek Olšák)
- Assert that the resource is not intended for scanout (Rob Clark)
- Use the fd_resource_allocate_and_resolve() helper (Rob Clark)
- Check that bo's resolved size fit into memobj's bo size (Rob Clark)
v4: Don't steal memobj's bo, but share it instead by getting a new
ref. (Rob Clark)
Reviewed-by: Rob Clark <robdclark@chromium.org >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/4565 >
2020-08-18 20:40:40 +00:00
Eduardo Lima Mitev
536ec9d7f5
freedreno: Refactor fd_resource_create_with_modifiers() into a helper
...
The helper just allocates and resolves layout, but does not deal with
scanout buffers nor allocation of the actual bo.
The resolved bo size is returned as an output argument.
Reviewed-by: Rob Clark <robdclark@chromium.org >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/4565 >
2020-08-18 20:40:40 +00:00
Eduardo Lima Mitev
0eecd3d684
freedreno: Implement memory object create/destroy for GL_EXT_memory_object
...
v2: Add implementation of fd_memobj_destroy() virtual func, which was newly
added.
v3: The memobj bo must be non-NULL and destroyed as part of memobj
destruction (instead of its reference being stolen). (Rob Clark)
Reviewed-by: Rob Clark <robdclark@chromium.org >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/4565 >
2020-08-18 20:40:40 +00:00
Dave Airlie
f9e773b920
llvmpipe: enable GL 4.5
...
This passes conformance on both the master and 4.6.0 (with patches)
branches. I'll be submitting results shortly from the 20.2.x branch
this lands in.
Cc: "20.2" <mesa-stable@lists.freedesktop.org >
Reviewed-by: Roland Scheidegger <sroland@vmware.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/6044 >
2020-08-17 20:12:40 +00:00
Dave Airlie
2e40b2c155
llvmpipe/blit: for 32-bit unorm depth blits just copy 32-bit
...
Don't have the shader do a 32-bit unorn to float conversion,
the values don't remain accurate then.
Fixes:
GTF-GL45.gtf30.GL3Tests.framebuffer_blit.framebuffer_blit_functionality_multisampled_to_singlesampled_blit
for 32-bit unorm depth buffers.
Cc: "20.2" <mesa-stable@lists.freedesktop.org >
Reviewed-by: Roland Scheidegger <sroland@vmware.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/6044 >
2020-08-17 20:12:40 +00:00
Karol Herbst
d79c946fb3
nv50/ir/nir: rework indirect function_temp handling
...
Signed-off-by: Karol Herbst <kherbst@redhat.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/6338 >
2020-08-17 12:05:45 +00:00
Alyssa Rosenzweig
ec58cda5da
panfrost: Use packs for varying buffers
...
In addition to better aesthetics, this automatically fixed multiple
instances of accidental CPU readback of GPU buffers -- in a hot path,
too!
Signed-off-by: Alyssa Rosenzweig <alyssa.rosenzweig@collabora.com >
Reviewed-by: Tomeu Vizoso <tomeu.vizoso@collabora.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/6326 >
2020-08-17 11:43:52 +00:00
Alyssa Rosenzweig
7ef205dabd
panfrost: Use MALI_ATTRIBUTE_LENGTH
...
Removes an unwanted reference to mali_attr_meta.
Signed-off-by: Alyssa Rosenzweig <alyssa.rosenzweig@collabora.com >
Reviewed-by: Tomeu Vizoso <tomeu.vizoso@collabora.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/6326 >
2020-08-17 11:43:52 +00:00
Alyssa Rosenzweig
59fa26902d
panfrost: Use pack for general varying
...
Signed-off-by: Alyssa Rosenzweig <alyssa.rosenzweig@collabora.com >
Reviewed-by: Tomeu Vizoso <tomeu.vizoso@collabora.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/6326 >
2020-08-17 11:43:52 +00:00
Alyssa Rosenzweig
6c850637f5
panfrost: Use pack for XFB varying
...
Signed-off-by: Alyssa Rosenzweig <alyssa.rosenzweig@collabora.com >
Reviewed-by: Tomeu Vizoso <tomeu.vizoso@collabora.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/6326 >
2020-08-17 11:43:52 +00:00