Commit Graph

130248 Commits

Author SHA1 Message Date
Marek Olšák b38b5aabee radeonsi: pack LDS better for NGG culling
There is a barrier between lds_pos_cull_* use and lds_pos_* use, so they
can occupy the same LDS space.

Acked-by: Pierre-Eric Pelloux-Prayer <pierre-eric.pelloux-prayer@amd.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/7172>
2020-10-17 01:58:19 +00:00
Marek Olšák 8094367988 radeonsi: write VS/TES system values into LDS after culling
The system values are written into LDS after the new thread ID is known,
so it removes pointer indirection with the old thread ID.

Also, the LDS stores are skipped entirely if vertices are culled.

Acked-by: Pierre-Eric Pelloux-Prayer <pierre-eric.pelloux-prayer@amd.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/7172>
2020-10-17 01:58:19 +00:00
Marek Olšák 1de0bf0a56 radeonsi: remove indirection when loading position at the end for NGG culling
If we store the position into LDS after we know the new thread ID,
we don't need to remember the old thread ID.

The culling code only needs W, X/W, Y/W, so we have to keep those.

Acked-by: Pierre-Eric Pelloux-Prayer <pierre-eric.pelloux-prayer@amd.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/7172>
2020-10-17 01:58:19 +00:00
Marek Olšák 823ee12d57 radeonsi: optimize out LDS bank conflicts in the NGG culling shader
Acked-by: Pierre-Eric Pelloux-Prayer <pierre-eric.pelloux-prayer@amd.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/7172>
2020-10-17 01:58:19 +00:00
Marek Olšák 7648060dc0 radeonsi: enable NGG culling by default on gfx10.3 dGPUs
for better performance

Acked-by: Pierre-Eric Pelloux-Prayer <pierre-eric.pelloux-prayer@amd.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/7172>
2020-10-17 01:58:19 +00:00
Marek Olšák e7d3f22c6a radeonsi: don't disable NGG culling on gfx10.3
This was causing the hangs:
    42f921387b - radeonsi/gfx10: disable vertex grouping

Acked-by: Pierre-Eric Pelloux-Prayer <pierre-eric.pelloux-prayer@amd.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/7172>
2020-10-17 01:58:19 +00:00
Marek Olšák 6810e6e4d0 Revert "radeonsi/gfx10: disable vertex grouping"
This reverts commit 42f921387b.

It causes GPU hangs on gfx10.3.

Fixes: a23802bcb9 - ac,radeonsi: start adding support for gfx10.3

Acked-by: Pierre-Eric Pelloux-Prayer <pierre-eric.pelloux-prayer@amd.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/7172>
2020-10-17 01:58:19 +00:00
Vinson Lee 7d1fb5fffe v3dv: Initialize time before usage by free_stale_bos.
Fix defect reported by Coverity Scan.

Uninitialized scalar variable (UNINIT)
uninit_use_in_call: Using uninitialized value time.tv_sec when calling free_stale_bos.

Fixes: f78c99f357 ("v3dv/bo: add a maximum size for the bo_cache and a envvar to configure it")
Signed-off-by: Vinson Lee <vlee@freedesktop.org>
Reviewed-by: Alejandro Piñeiro <apinheiro@igalia.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/7154>
2020-10-16 22:34:22 +00:00
Vinson Lee 8eb246d7f6 v3dv: Remove unsigned comparison to zero.
index is of type uint32_t.

Fix defect reported by Coverity Scan.

Macro compares unsigned to 0 (NO_EFFECT)
unsigned_compare: This greater-than-or-equal-to-zero comparison of
an unsigned value is always true. index >= 0U.

Signed-off-by: Vinson Lee <vlee@freedesktop.org>
Reviewed-by: Alejandro Piñeiro <apinheiro@igalia.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/7153>
2020-10-16 15:25:37 -07:00
Nanley Chery 5e27e04322 intel/isl: Drop redundant unpack of unorm channels
Fixes: 09ced65420 ("intel/isl: Add format conversion code")
Reviewed-by: Sagar Ghuge <sagar.ghuge@intel.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/7168>
2020-10-16 18:35:57 +00:00
Nanley Chery cf11ebfbc2 st/mesa: Add missing sentinels in format_map[]
Cc: mesa-stable
Reviewed-By: Mike Blumenkrantz <michael.blumenkrantz@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/7169>
2020-10-16 18:19:39 +00:00
Mike Blumenkrantz 0c70268ff7 zink: mark ARB_sample_shading as supported
Reviewed-by: Erik Faye-Lund <erik.faye-lund@collabora.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/7192>
2020-10-16 17:14:51 +00:00
Mike Blumenkrantz bf9a1e0a4b zink: add a pipe_context::get_sample_position hook
standard for most gallium drivers, not sure why it's not a util function

Reviewed-by: Erik Faye-Lund <erik.faye-lund@collabora.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/7192>
2020-10-16 17:14:51 +00:00
Mike Blumenkrantz b009bd9685 zink: add ntv handling for ARB_sample_shading
this involves variable handling and decorations as well as a weird bitcast
for the array[1] gl_SampleMask in spirv

Reviewed-by: Erik Faye-Lund <erik.faye-lund@collabora.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/7192>
2020-10-16 17:14:51 +00:00
Mike Blumenkrantz 441b32bf3f zink: add helper for vec-type input variables in ntv
we'll see a lot of reuse of this type of thing, so we can avoid duplicating
it later

Reviewed-by: Erik Faye-Lund <erik.faye-lund@collabora.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/7192>
2020-10-16 17:14:51 +00:00
Mike Blumenkrantz 7c5129985b zink: implement ARB_draw_indirect
other than the vaguely gross case of primitive restart with incompatible
draw modes and/or restart index, this is no trouble since the buffer formats
are compatible

Reviewed-by: Erik Faye-Lund <erik.faye-lund@collabora.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/7191>
2020-10-16 15:55:09 +00:00
Mike Blumenkrantz 3e3b6e995f zink: set 3.3 complete in features.txt
Reviewed-by: Erik Faye-Lund <erik.faye-lund@collabora.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/7190>
2020-10-16 11:37:52 -04:00
Mike Blumenkrantz 80c66642cc zink: bump GLSL to 3.30
somehow all these tests Just Pass™

Reviewed-by: Erik Faye-Lund <erik.faye-lund@collabora.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/7190>
2020-10-16 11:37:49 -04:00
Mike Blumenkrantz 44baddf1fe zink: set 3.2 complete in features.txt
Reviewed-by: Erik Faye-Lund <erik.faye-lund@collabora.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/7190>
2020-10-16 11:37:47 -04:00
Mike Blumenkrantz 26b076ff66 zink: GLSL 1.50
Reviewed-by: Erik Faye-Lund <erik.faye-lund@collabora.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/7190>
2020-10-16 11:37:45 -04:00
Mike Blumenkrantz b27ec49e02 zink: mark off GL 3.1 as done in features.txt
Reviewed-by: Erik Faye-Lund <erik.faye-lund@collabora.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/7109>
2020-10-16 13:57:56 +00:00
Mike Blumenkrantz 815f0c01b0 zink: bump to glsl 1.40
but leaving compat mode at 1.30 for now

Reviewed-by: Erik Faye-Lund <erik.faye-lund@collabora.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/7109>
2020-10-16 13:57:56 +00:00
Mike Blumenkrantz 8028991f36 zink: enable gs pipe caps
Reviewed-by: Erik Faye-Lund <erik.faye-lund@collabora.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/7139>
2020-10-16 09:15:34 -04:00
Mike Blumenkrantz 4c734da7de zink: add gallium handling for geometry shaders
this is the create/bind/destroy hooks as well as the u_blitter shader
save during blit setup

Reviewed-by: Erik Faye-Lund <erik.faye-lund@collabora.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/7139>
2020-10-16 09:15:32 -04:00
Mike Blumenkrantz d59e4b8ce6 zink: round out handling for streamout buffer stride setting during draw
this adds cases for tess and geometry shaders in the xfb path for grabbing
stride off the shader

Reviewed-by: Erik Faye-Lund <erik.faye-lund@collabora.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/7139>
2020-10-16 09:15:30 -04:00
Mike Blumenkrantz 9915c540b2 zink: remove ADJACENCY prim types from primconvert path
we can (and do) actually handle these natively

Reviewed-by: Erik Faye-Lund <erik.faye-lund@collabora.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/7139>
2020-10-16 09:15:28 -04:00
Mike Blumenkrantz d656c600a3 zink: add handling for gs in ntv
this hooks up execution modes and the gs-specific instructions

Reviewed-by: Erik Faye-Lund <erik.faye-lund@collabora.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/7139>
2020-10-16 09:15:26 -04:00
Mike Blumenkrantz 9671cd9215 zink: re-transform gl_Position for gs input
we've transformed this in the vertex output, so we need to undo that here

ideally we'd only be performing this transform once, but that's going to get
complicated later with the halfz extension which requires shader keys on top
of this, so we can get around to simplifying things at that stage

Reviewed-by: Erik Faye-Lund <erik.faye-lund@collabora.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/7139>
2020-10-16 09:15:24 -04:00
Mike Blumenkrantz ea2279daf1 zink: add ntv handling for geometry shader variables
these can reuse the unified loader codepath

Reviewed-by: Erik Faye-Lund <erik.faye-lund@collabora.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/7139>
2020-10-16 09:15:22 -04:00
Mike Blumenkrantz 423a342ae7 zink: handle shader io vars more generically for use with gs
geometry shaders have more inputs and use a lot of the same codepaths as
vertex shaders, so these changes add the inputs and remove checks for vertex-only
shaders

Reviewed-by: Erik Faye-Lund <erik.faye-lund@collabora.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/7139>
2020-10-16 09:15:20 -04:00
Mike Blumenkrantz 182f7f9ae8 zink: add some spirv_builder functions we'll be using for geometry shaders
Reviewed-by: Erik Faye-Lund <erik.faye-lund@collabora.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/7139>
2020-10-16 09:15:11 -04:00
Gert Wollny 5934fc1708 r600/sfn: Update state docu
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/7142>
2020-10-16 12:03:12 +00:00
Gert Wollny 9f5e5fb912 r600/sfn: Fix the parameter component type
Signed-off-by: Gert Wollny <gert.wollny@collabora.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/7142>
2020-10-16 12:03:12 +00:00
Gert Wollny 5f661977f8 r600/sfn: Use register keep-alive also when scanning the shader
Temporaries don't appear in the mapping, so they are not in the initial
register list.

Signed-off-by: Gert Wollny <gert.wollny@collabora.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/7142>
2020-10-16 12:03:12 +00:00
Gert Wollny 9eda7176e3 r600/sfn: fix remapping of deleted attributes
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/7142>
2020-10-16 12:03:12 +00:00
Gert Wollny f79b7fcf7c r600/sfn: use 32 bit bools
That's closer to what the driver actually does.

Signed-off-by: Gert Wollny <gert.wollny@collabora.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/7142>
2020-10-16 12:03:12 +00:00
Gert Wollny 92a4d45bee r600/sfn: use cacheless op for coherent image write
Signed-off-by: Gert Wollny <gert.wollny@collabora.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/7142>
2020-10-16 12:03:12 +00:00
Gert Wollny 02e39b737a r600/sfn: Handle mem barrier and image barrier by using ACK
When reading from and writing to the same image in a shader the
memory_barrier can possibly be handled by emitting an ack-write and then
wait for the ack when the memory barrier is set.

Not sure whow well this goes with the syncronization across all shader
invocations though.

Signed-off-by: Gert Wollny <gert.wollny@collabora.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/7142>
2020-10-16 12:03:12 +00:00
Gert Wollny f664fc1c7b r600/sfn: use shared pointer to GPR for FS sysvalues
Signed-off-by: Gert Wollny <gert.wollny@collabora.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/7142>
2020-10-16 12:03:12 +00:00
Gert Wollny 876b975bec r600/sfn: Rework get_temp_register to return a smart pointer to GPRValue
Signed-off-by: Gert Wollny <gert.wollny@collabora.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/7142>
2020-10-16 12:03:12 +00:00
Gert Wollny 92bc0661f5 r600/sfn: fix mega fetch count for SSBO/Image atomics result fetch
Signed-off-by: Gert Wollny <gert.wollny@collabora.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/7142>
2020-10-16 12:03:12 +00:00
Gert Wollny d79d20d398 r600/sfn: Fix keepalive patch
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/7142>
2020-10-16 12:03:12 +00:00
Gert Wollny 86254134b3 r600/sfn: Fix ssbo resource offset for buffer loads
Signed-off-by: Gert Wollny <gert.wollny@collabora.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/7142>
2020-10-16 12:03:12 +00:00
Gert Wollny ed66eafb6d r600/sfn: Don't reuse registers for workgroup ID and local invocation ID
This fixes a number of compute shader tests. I'm not sure why though.

Signed-off-by: Gert Wollny <gert.wollny@collabora.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/7142>
2020-10-16 12:03:12 +00:00
Vinson Lee bafb2bb551 glsl: Initialize add_uniform_to_shader member var in constructor.
Fix defect reported by Coverity Scan.

Uninitialized pointer field (UNINIT_CTOR)
uninit_member: Non-static class member var is not initialized in
this constructor nor in any functions that it calls.

Signed-off-by: Vinson Lee <vlee@freedesktop.org>
Reviewed-by: Marek Olšák <marek.olsak@amd.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/7121>
2020-10-16 00:38:09 +00:00
Mike Blumenkrantz aea74eac3d zink: fix stencil wrapping
this was using the wrong enums

Reviewed-by: Eric Anholt <eric@anholt.net>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/7176>
2020-10-16 00:03:17 +00:00
Vinson Lee b17e264e66 glsl: Initialize lower_ubo_reference_visitor members in constructor.
Fix defects reported by Coverity Scan.

Uninitialized pointer field (UNINIT_CTOR)
uninit_member: Non-static class member buffer_access_type is not
initialized in this constructor nor in any functions that it
calls.
uninit_member: Non-static class member uniform_block is not
initialized in this constructor nor in any functions that it
calls.
uninit_member: Non-static class member progress is not initialized
in this constructor nor in any functions that it calls.

Signed-off-by: Vinson Lee <vlee@freedesktop.org>
Reviewed-by: Marek Olšák <marek.olsak@amd.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/7120>
2020-10-15 23:03:12 +00:00
Vinson Lee e32eadc586 v3dv: Fix assert using assign instead of compare.
Fix defect reported by Coverity Scan.

Assign instead of compare (PW.ASSIGN_WHERE_COMPARE_MEANT)
assign_where_compare_meant: use of "=" where "==" may have been intended

Fixes: c75846e674 ("v3dv: implement DRM modifier setup for WSI")
Signed-off-by: Vinson Lee <vlee@freedesktop.org>
Reviewed-by: Alejandro Piñeiro <apinheiro@igalia.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/7124>
2020-10-15 15:55:14 -07:00
Caio Marcelo de Oliveira Filho e7e24d5039 intel/fs: Handle nir_intrinsic_terminate
For terminate operation, jump the invocation without predicating on
the rest of the quad being disabled -- which is what is done for
demote and discard.

Reviewed-by: Jason Ekstrand <jason@jlekstrand.net>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/7150>
2020-10-15 21:40:09 +00:00
Caio Marcelo de Oliveira Filho 886d2d1a9a spirv: Handle SpvOpTerminateInvocation
Reviewed-by: Jason Ekstrand <jason@jlekstrand.net>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/7150>
2020-10-15 21:40:09 +00:00