Marek Olšák [Wed, 1 Jul 2020 00:24:44 +0000 (20:24 -0400)]
glsl: don't lower builtins to mediump that don't allow it
Reviewed-by: Alyssa Rosenzweig <alyssa.rosenzweig@collabora.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/5746>
Marek Olšák [Fri, 26 Jun 2020 11:19:46 +0000 (07:19 -0400)]
glsl: don't lower precision of textureSize
Reviewed-by: Alyssa Rosenzweig <alyssa.rosenzweig@collabora.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/5746>
Marek Olšák [Fri, 26 Jun 2020 11:16:41 +0000 (07:16 -0400)]
glsl: flatten a tautological conditional in lower_precision
Reviewed-by: Alyssa Rosenzweig <alyssa.rosenzweig@collabora.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/5746>
Marek Olšák [Fri, 26 Jun 2020 07:43:25 +0000 (03:43 -0400)]
glsl: cleanups in lower_precision
Reviewed-by: Alyssa Rosenzweig <alyssa.rosenzweig@collabora.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/5746>
Marek Olšák [Wed, 24 Jun 2020 07:26:31 +0000 (03:26 -0400)]
glsl: remove the return type from lower_precision
It's unused.
Reviewed-by: Alyssa Rosenzweig <alyssa.rosenzweig@collabora.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/5746>
Marek Olšák [Wed, 24 Jun 2020 07:20:59 +0000 (03:20 -0400)]
glsl: convert reusable lower_precision util code into helper functions
Reviewed-by: Alyssa Rosenzweig <alyssa.rosenzweig@collabora.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/5746>
Marek Olšák [Wed, 24 Jun 2020 06:39:38 +0000 (02:39 -0400)]
glsl: validate more stuff
Reviewed-by: Alyssa Rosenzweig <alyssa.rosenzweig@collabora.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/5746>
Marek Olšák [Wed, 24 Jun 2020 06:37:34 +0000 (02:37 -0400)]
glsl: run validate_ir_tree if GLSL_VALIDATE=1 regardless of the build config
Reviewed-by: Alyssa Rosenzweig <alyssa.rosenzweig@collabora.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/5746>
Marek Olšák [Sat, 4 Jul 2020 21:43:50 +0000 (17:43 -0400)]
glsl: fix evaluating float16 constant expression matrices
Reviewed-by: Alyssa Rosenzweig <alyssa.rosenzweig@collabora.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/5746>
Marek Olšák [Sat, 4 Jul 2020 18:01:12 +0000 (14:01 -0400)]
glsl: fix the type of ir_constant_data::u16
Reviewed-by: Alyssa Rosenzweig <alyssa.rosenzweig@collabora.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/5746>
Marek Olšák [Sat, 4 Jul 2020 21:13:27 +0000 (17:13 -0400)]
glsl: print constant initializers
Reviewed-by: Alyssa Rosenzweig <alyssa.rosenzweig@collabora.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/5746>
Marek Olšák [Wed, 24 Jun 2020 03:10:16 +0000 (23:10 -0400)]
glsl: print precision qualifiers in IR dumps
Reviewed-by: Alyssa Rosenzweig <alyssa.rosenzweig@collabora.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/5746>
Marek Olšák [Sat, 4 Jul 2020 23:12:13 +0000 (19:12 -0400)]
glsl: make print_type non-static for debugging
Reviewed-by: Alyssa Rosenzweig <alyssa.rosenzweig@collabora.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/5746>
Jason Ekstrand [Tue, 7 Jul 2020 16:08:31 +0000 (11:08 -0500)]
anv: Handle clamping of inverted depth ranges
Tested-by: Mike Blumenkrantz <michael.blumenkrantz@gmail.com>
Reviewed-by: Ivan Briano <ivan.briano@intel.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/5792>
Dave Airlie [Thu, 26 Mar 2020 03:27:17 +0000 (13:27 +1000)]
llvmpipe: add ARB_post_depth_coverage support.
This doesn't pass thie piglits because currently they are broken
for case where GL upgrades 2 samples to 4
Reviewed-by: Roland Scheidegger <sroland@vmware.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/5767>
Dave Airlie [Fri, 3 Jul 2020 23:52:28 +0000 (09:52 +1000)]
ci/virgl: update results after streams fixes.
Reviewed-by: Roland Scheidegger <sroland@vmware.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/5555>
Dave Airlie [Mon, 6 Jul 2020 02:06:46 +0000 (12:06 +1000)]
draw/gs: use mask to limit vertex emission.
When executing for a single primitive, the mask has only one active
lane, however the vertex emit emits for all the lanes, pass in
the active mask and write the excess lanes to the overflow slot.
Fixes:
glsl-1.50-gs-max-output -scan 1 20
Reviewed-by: Roland Scheidegger <sroland@vmware.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/5555>
Dave Airlie [Fri, 19 Jun 2020 05:24:59 +0000 (15:24 +1000)]
draw: free vertex info from geometry streams.
This info needs to be freed for the non-0 stream.
Reviewed-by: Roland Scheidegger <sroland@vmware.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/5555>
Dave Airlie [Fri, 19 Jun 2020 05:22:18 +0000 (15:22 +1000)]
draw: use common exit path in pipeline finish.
I need to add a missing free here, and it seems pointless duplication
Reviewed-by: Roland Scheidegger <sroland@vmware.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/5555>
Dave Airlie [Tue, 14 Apr 2020 02:39:42 +0000 (12:39 +1000)]
draw/gs: reverse the polarity of the invocation/prims execution
The current code runs primitives per invocation, but the spec wants
invocations per primitive. However it means having to flush
after each invocation to get correct XFB behaviour
Fixes:
GTF-GL41.gtf40.GL3Tests.transform_feedback3.transform_feedback3_geometry_instanced
Reviewed-by: Roland Scheidegger <sroland@vmware.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/5555>
Dave Airlie [Fri, 19 Jun 2020 05:04:19 +0000 (15:04 +1000)]
draw: account primitive lengths for all streams.
For correct XFB queries all streams must get primitive lengths
recorded. This allocates larger memory for per-stream lengths
and the shader write into them.
Fixes:
GTF-GL41.gtf40.GL3Tests.transform_feedback3.transform_feedback3_streams_queried
GTF-GL41.gtf40.GL3Tests.transform_feedback3.transform_feedback3_streams_overflow
Reviewed-by: Roland Scheidegger <sroland@vmware.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/5555>
Dave Airlie [Fri, 19 Jun 2020 05:03:25 +0000 (15:03 +1000)]
gallivm/nir: end primitive for all streams.
Call the end primitive for all streams so it can be accounted properly
Reviewed-by: Roland Scheidegger <sroland@vmware.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/5555>
Dave Airlie [Fri, 19 Jun 2020 06:18:22 +0000 (16:18 +1000)]
gallivm/nir: don't access stream var outside bounds
Since we allocate only enough for streams we see, don't access
out of bounds when streams are given
Reviewed-by: Roland Scheidegger <sroland@vmware.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/5555>
Dave Airlie [Fri, 19 Jun 2020 05:02:25 +0000 (15:02 +1000)]
gallivm/gs_iface: pass stream into end primitive interface.
This is just an API change for now
Reviewed-by: Roland Scheidegger <sroland@vmware.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/5555>
Dave Airlie [Fri, 19 Jun 2020 06:17:48 +0000 (16:17 +1000)]
draw/gs: only allocate memory for streams needed.
This just allocates the sizeing for streams that are needed.
Reviewed-by: Roland Scheidegger <sroland@vmware.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/5555>
Dave Airlie [Fri, 19 Jun 2020 04:54:16 +0000 (14:54 +1000)]
gallivm/draw/gs: pass vertex stream count into shader build
The shader builder can avoid iterations using this info.
Reviewed-by: Roland Scheidegger <sroland@vmware.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/5555>
Dave Airlie [Fri, 19 Jun 2020 04:44:59 +0000 (14:44 +1000)]
draw/gs: fix up current verts in output fetching.
This was wrong since I added multi-stream support in
draw/gs: track emitted prims + verts per stream
Reviewed-by: Roland Scheidegger <sroland@vmware.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/5555>
Dave Airlie [Fri, 19 Jun 2020 04:37:19 +0000 (14:37 +1000)]
draw: emit so primitives before ending empty pipeline.
There may be non-stream 0 emitted primitives that have to be processed.
Fixes:
KHR-GL42.transform_feedback_overflow_query_ARB.multiple-streams-one-buffer-per-stream
KHR-GL42.transform_feedback_overflow_query_ARB.multiple-streams-multiple-buffers-per-stream
Reviewed-by: Roland Scheidegger <sroland@vmware.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/5555>
Dave Airlie [Thu, 26 Mar 2020 06:18:27 +0000 (16:18 +1000)]
gallivm/nir: call end prim at end on all GS streams.
Fixes: KHR-GL45.transform_feedback.draw_xfb_stream_test
Reviewed-by: Roland Scheidegger <sroland@vmware.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/5555>
Neil Roberts [Sun, 5 Jul 2020 13:45:19 +0000 (15:45 +0200)]
broadcom/qpu: set VC5_QPU_RADDR_A out of the switch at _pack_branch
Detected after mesa added Wimplicit-fallthrough project wide.
Reviewed-by: Eric Anholt <eric@anholt.net>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/5769>
Rhys Perry [Wed, 24 Jun 2020 10:26:22 +0000 (11:26 +0100)]
aco: use VOP2 version of v_mbcnt_hi_u32_b32 on GFX6/7
fossil-db (Pitcairn):
Totals from 2172 (1.58% of 137414) affected shaders:
CodeSize:
7109080 ->
7100100 (-0.13%)
Signed-off-by: Rhys Perry <pendingchaos02@gmail.com>
Reviewed-by: Daniel Schürmann <daniel@schuermann.dev>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/5623>
Eric Anholt [Wed, 1 Jul 2020 20:33:21 +0000 (13:33 -0700)]
util: Share a single function pointer for the 4-byte rgba unpack function.
Everyone wants the same behavior, and this helps shrink the size of our
format description tables.
Reviewed-by: Marek Olšák <marek.olsak@amd.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/5728>
Eric Anholt [Thu, 2 Jul 2020 00:44:36 +0000 (17:44 -0700)]
util: Remove the stub pack/unpack functions for YUV formats.
If we can't pack/unpack them, the field is supposed to be NULL.
Reviewed-by: Marek Olšák <marek.olsak@amd.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/5728>
Eric Anholt [Thu, 2 Jul 2020 23:39:02 +0000 (16:39 -0700)]
llvmpipe: Generalize "could llvmpipe fetch this format" check in unit testing.
This set of checks matched the "access" list in u_format_table.py that
controls initializing this this function pointer, so just use the function
pointer.
Reviewed-by: Marek Olšák <marek.olsak@amd.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/5728>
Eric Anholt [Wed, 1 Jul 2020 20:14:42 +0000 (13:14 -0700)]
util: Use designated initializers to clean up the format tables' pack/unpack.
The generated .c had a bunch of NULLs and notes for what kind of function
was being skipped, when we can just skip them by filling in the fields
with names.
Reviewed-by: Marek Olšák <marek.olsak@amd.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/5728>
Eric Anholt [Wed, 1 Jul 2020 23:50:02 +0000 (16:50 -0700)]
util: Merge util_format_read_4* functions.
Everyone wants the same thing: unpack 4-bytes-per-channel data based on the
base type of the format.
Reviewed-by: Marek Olšák <marek.olsak@amd.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/5728>
Eric Anholt [Wed, 1 Jul 2020 23:37:05 +0000 (16:37 -0700)]
util: Merge util_format_write_4* functions.
Everyone wants the same thing: pack 4-bytes-per-channel data based on the
base type of the format.
Reviewed-by: Marek Olšák <marek.olsak@amd.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/5728>
Eric Anholt [Wed, 1 Jul 2020 23:27:38 +0000 (16:27 -0700)]
svga: Reuse util_format_unpack_rgba().
This assumes that pipe_color_union is a vec4, but that seems safe.
Reviewed-by: Marek Olšák <marek.olsak@amd.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/5728>
Eric Anholt [Wed, 1 Jul 2020 23:48:54 +0000 (16:48 -0700)]
gallium/util: Move the Z/S handling to the outside of get_tile().
This lets us drop the special case for S8_UINT, and makes our read_4 path
just like other callers.
Reviewed-by: Marek Olšák <marek.olsak@amd.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/5728>
Eric Anholt [Wed, 1 Jul 2020 23:32:37 +0000 (16:32 -0700)]
gallium/util: Clean up the Z/S tile write path.
The switch statement is silly, we have a helper to detect all of Z/S.
And, take the time explain why all of Z/S tile writing is unimplemented.
Reviewed-by: Marek Olšák <marek.olsak@amd.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/5728>
Eric Anholt [Wed, 1 Jul 2020 23:17:32 +0000 (16:17 -0700)]
gallium/util: Fix location of the comment about S8_UINT handling.
I clearly wrote it in the wrong place in "softpipe: Refactor
pipe_get/put_tile_rgba_* paths."
Reviewed-by: Marek Olšák <marek.olsak@amd.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/5728>
Eric Anholt [Wed, 1 Jul 2020 23:14:40 +0000 (16:14 -0700)]
etnaviv: Use the util_pack_color_union() helper.
This snuck in since I cleaned up the other instances of it.
Reviewed-by: Christian Gmeiner <christian.gmeiner@gmail.com>
Reviewed-by: Marek Olšák <marek.olsak@amd.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/5728>
Eric Anholt [Wed, 1 Jul 2020 23:02:15 +0000 (16:02 -0700)]
util: Remove unused util_format_planar_is_supported().
Nothing calls it, and it should have been left in gallium, anyway.
Reviewed-by: Marek Olšák <marek.olsak@amd.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/5728>
Eric Anholt [Wed, 1 Jul 2020 21:30:42 +0000 (14:30 -0700)]
softpipe: Clean up softpipe's SSBO load/store interpreting instructions.
There's no need to go to all this trouble of setting up 16-byte vectors to
pack/unpack our 32-bit values, memcpy is really good at moving 4 bytes
around.
Reviewed-by: Marek Olšák <marek.olsak@amd.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/5728>
Eric Anholt [Wed, 1 Jul 2020 20:33:21 +0000 (13:33 -0700)]
util: Mark util_format_description() as a const function.
It will return the same table every time with no other side effects, so we
want it to be CSEed. Saves 3.5k on my aarch64 GL drivers, almost 9k on
turnip, but weirdly increases my x86 GL driver collection by ~3k.
Reviewed-by: Marek Olšák <marek.olsak@amd.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/5728>
Daniel Schürmann [Wed, 24 Jun 2020 10:23:05 +0000 (11:23 +0100)]
nir: refactor nir_can_move_instr
Reviewed-by: Rhys Perry <pendingchaos02@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/5622>
Daniel Schürmann [Wed, 24 Jun 2020 10:14:18 +0000 (11:14 +0100)]
nir: also move vecN in case of nir_move_copies
Reviewed-by: Rhys Perry <pendingchaos02@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/5622>
Jonathan Marek [Mon, 6 Jul 2020 15:48:54 +0000 (11:48 -0400)]
turnip: use global bo for clear blit shaders
Fill the global bo will all possible shaders for 3D clear/blit. Note the
global bo size is still <4k (so this doesn't cost any extra memory), this
saves having to allocate shaders in sub_cs everytime the 3D path is used.
Signed-off-by: Jonathan Marek <jonathan@marek.ca>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/5776>
Daniel Schürmann [Fri, 19 Jun 2020 15:09:48 +0000 (16:09 +0100)]
aco: remove superflous (bool & exec) if the result comes from VOPC
This works in cases where the VOPC instruction was executed with
the same exec mask.
Totals from affected shaders: (VEGA)
SGPRS:
1342204 ->
1342164 (-0.00 %)
VGPRS: 877220 -> 877220 (0.00 %)
Spilled SGPRs: 157800 -> 157800 (0.00 %)
Spilled VGPRs: 0 -> 0 (0.00 %)
Private memory VGPRs: 0 -> 0 (0.00 %)
Scratch size: 0 -> 0 (0.00 %) dwords per thread
Code Size:
118083212 ->
118021748 (-0.05 %) bytes
LDS: 26 -> 26 (0.00 %) blocks
Max Waves: 144024 -> 144024 (0.00 %)
Reviewed-by: Timur Kristóf <timur.kristof@gmail.com>
Reviewed-by: Rhys Perry <pendingchaos02@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/5563>
Rhys Perry [Wed, 1 Jul 2020 15:00:55 +0000 (16:00 +0100)]
radv: enable zerovram for Quantic Dream games
Fixes various artifacts with Detroit: Become Human. This assumes other
Vulkan games using the same engine could have the same issues.
Signed-off-by: Rhys Perry <pendingchaos02@gmail.com>
Reviewed-by: Samuel Pitoiset <samuel.pitoiset@gmail.com>
Cc: <mesa-stable@lists.freedesktop.org>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/5710>
Tomeu Vizoso [Wed, 1 Apr 2020 11:07:46 +0000 (13:07 +0200)]
gitlab-ci: More stable URL for kernel and ramdisk artifacts, for LAVA
Place the kernel and ramdisk into a place in the file server so the URL
will only change when the contents also change.
Also put the Mesa build into a separate tarball so the ramdisk's
contents don't change every build.
With proper caching in place, all devices in the same farm need only to
download the mesa tarball once, saving time.
As we switch to MinIO for making kernels and rootfs available to LAVA
devices, we can stop using Docker to distribute them.
Instead, build when needed in separate jobs that push directly to MinIO,
from where LAVA devices can download them.
Signed-off-by: Tomeu Vizoso <tomeu.vizoso@collabora.com>
Acked-by: Daniel Stone <daniels@collabora.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/5515>
Tomeu Vizoso [Mon, 15 Jun 2020 07:29:49 +0000 (09:29 +0200)]
gitlab-ci: Build kernel drivers for a few ethernet USB dongles
So LAVA devices can download traces and upload test results.
Signed-off-by: Tomeu Vizoso <tomeu.vizoso@collabora.com>
Acked-by: Alyssa Rosenzweig <alyssa.rosenzweig@collabora.com>
Acked-by: Daniel Stone <daniels@collabora.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/5515>
Karol Herbst [Mon, 6 Jul 2020 18:06:40 +0000 (20:06 +0200)]
nv50/ir/nir: fix cache mode conversion
The nir access qualifier is actually a bitfield, so we need to read out
like one.
Signed-off-by: Karol Herbst <kherbst@redhat.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/5747>
Karol Herbst [Mon, 6 Jul 2020 14:57:07 +0000 (16:57 +0200)]
gv100/ir: fix coherent and volatile memory access
Signed-off-by: Karol Herbst <kherbst@redhat.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/5747>
Karol Herbst [Sat, 4 Jul 2020 20:12:10 +0000 (22:12 +0200)]
gv100/ir: implement sample shading
Fixes sample shading tests in the Khronos OpenGL(ES) CTS
Signed-off-by: Karol Herbst <kherbst@redhat.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/5747>
Karol Herbst [Sat, 4 Jul 2020 09:32:14 +0000 (11:32 +0200)]
nv50/ir/nir: fix interpolation on explicit operations
Fixes a bunch of interpolate tests in the aosp GLES CTS
Signed-off-by: Karol Herbst <kherbst@redhat.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/5747>
Danylo Piliaiev [Thu, 2 Jul 2020 08:39:25 +0000 (11:39 +0300)]
iris: Fix fast-clearing of depth via glClearTex(Sub)Image
If we clear depth only texture via glClearTex(Sub)Image it may cause:
../src/intel/blorp/blorp_genX_exec.h:1554: blorp_emit_surface_states: Assertion `params->depth.enabled || params->stencil.enabled' failed.
due to clear_depth_stencil calling blorp_clear_depth_stencil when
depth is already fast-cleared and there is no stencil.
Fixes piglit test: arb_clear_texture-depth
Fixes: 51638cf18a532510f9e1fd8f36207b56d38137b8
Signed-off-by: Danylo Piliaiev <danylo.piliaiev@globallogic.com>
Reviewed-by: Lionel Landwerlin <lionel.g.landwerlin@intel.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/5770>
Erik Faye-Lund [Thu, 2 Jul 2020 12:15:57 +0000 (14:15 +0200)]
docs: fixup envvar output
Sphinx 2.x has changed how this works, and some of this whitespace now
gets stripped as a result. So let's instead actual whitespace as separate
text-nodes instead.
Reviewed-by: Eric Engestrom <eric@engestrom.ch>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/5706>
Erik Faye-Lund [Thu, 2 Jul 2020 11:24:06 +0000 (13:24 +0200)]
docs: use svg for graphviz output
This works a lot better on hidpi screens.
Reviewed-by: Eric Engestrom <eric@engestrom.ch>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/5706>
Erik Faye-Lund [Tue, 30 Jun 2020 11:01:04 +0000 (13:01 +0200)]
docs: move gallium specific docs into gallium folder
Reviewed-by: Eric Engestrom <eric@engestrom.ch>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/5706>
Erik Faye-Lund [Thu, 2 Jul 2020 10:14:28 +0000 (12:14 +0200)]
docs: add an extension to generate redirects
Reviewed-by: Eric Engestrom <eric@engestrom.ch>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/5706>
Erik Faye-Lund [Tue, 30 Jun 2020 10:51:04 +0000 (12:51 +0200)]
docs: clean up gallium index-file
This makes the TOC make much more sense.
Reviewed-by: Eric Engestrom <eric@engestrom.ch>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/5706>
Erik Faye-Lund [Tue, 30 Jun 2020 10:44:19 +0000 (12:44 +0200)]
merge gallium docs into main docs
Reviewed-by: Eric Engestrom <eric@engestrom.ch>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/5706>
Erik Faye-Lund [Thu, 2 Jul 2020 11:09:36 +0000 (13:09 +0200)]
ci: add graphviz to the .docs-base template
The Gallium docs uses graphviz, so let's make sure it's installed first.
Reviewed-by: Eric Engestrom <eric@engestrom.ch>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/5706>
Connor Abbott [Fri, 19 Jun 2020 11:15:42 +0000 (13:15 +0200)]
freedreno: Sync registers with envytools
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/5557>
Connor Abbott [Mon, 6 Jul 2020 11:35:43 +0000 (13:35 +0200)]
freedreno: Include adreno_pm4.xml.h before adreno_a6xx.xml.h
This matches the XML, and soon adreno_a6xx.xml will start including
types from adreno_pm4.xml.
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/5557>
jzielins [Mon, 6 Jul 2020 15:38:02 +0000 (17:38 +0200)]
gallium/swr: Fix compilation warnings
In some places in SWR cod objects are initialized using
memset/memcpy. This is usually done to enable
allocating those objects in aligned memory.
It generates compilation warnings though,
which are worked around by casting the pointers to void*
before calling memset/memcpy.
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/5777>
Connor Abbott [Fri, 3 Jul 2020 10:04:03 +0000 (12:04 +0200)]
freedreno/a6xx: Force gl_Layer to 0 when necessary
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/5732>
Connor Abbott [Fri, 3 Jul 2020 10:03:00 +0000 (12:03 +0200)]
tu: Force gl_Layer to 0 when necessary
In particular this will help us implement input attachments correctly
with layered rendering.
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/5732>
Connor Abbott [Fri, 3 Jul 2020 10:01:17 +0000 (12:01 +0200)]
ir3: Add layer_zero variant bit
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/5732>
Icecream95 [Mon, 22 Jun 2020 10:49:53 +0000 (22:49 +1200)]
pan/decode: Make mapped memory read-only while decoding
This will help catch any bugs where descriptors are accidentally
modified.
v2: Use a dynarray of ro memory mappings rather than iterating through
the mmap hash table.
Reviewed-by: Alyssa Rosenzweig <alyssa.rosenzweig@collabora.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/5590>
Alyssa Rosenzweig [Tue, 30 Jun 2020 19:19:47 +0000 (15:19 -0400)]
panfrost: Expose MSAA 4x
Signed-off-by: Alyssa Rosenzweig <alyssa.rosenzweig@collabora.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/5782>
Alyssa Rosenzweig [Fri, 3 Jul 2020 18:16:20 +0000 (14:16 -0400)]
panfrost: Save sample_mask before blitting
Signed-off-by: Alyssa Rosenzweig <alyssa.rosenzweig@collabora.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/5782>
Alyssa Rosenzweig [Fri, 3 Jul 2020 16:04:53 +0000 (12:04 -0400)]
panfrost: Enable MSAA if we render to such a surface
We hit this case for clears of MSAA surfaces without draws.
Signed-off-by: Alyssa Rosenzweig <alyssa.rosenzweig@collabora.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/5782>
Alyssa Rosenzweig [Fri, 3 Jul 2020 16:04:36 +0000 (12:04 -0400)]
panfrost: Set depth/stencil_layer_stride accordingly
Same logic as colour layer stride, I think.
Signed-off-by: Alyssa Rosenzweig <alyssa.rosenzweig@collabora.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/5782>
Alyssa Rosenzweig [Fri, 3 Jul 2020 15:27:48 +0000 (11:27 -0400)]
panfrost: Identify depth/stencil layer strides
Signed-off-by: Alyssa Rosenzweig <alyssa.rosenzweig@collabora.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/5782>
Alyssa Rosenzweig [Thu, 2 Jul 2020 15:17:37 +0000 (11:17 -0400)]
panfrost: Implement alpha-to-coverage
Signed-off-by: Alyssa Rosenzweig <alyssa.rosenzweig@collabora.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/5782>
Alyssa Rosenzweig [Thu, 2 Jul 2020 14:07:08 +0000 (10:07 -0400)]
panfrost: Pass sample_mask to the hardware
Gallium computes it for us.
Signed-off-by: Alyssa Rosenzweig <alyssa.rosenzweig@collabora.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/5782>
Alyssa Rosenzweig [Thu, 2 Jul 2020 14:06:33 +0000 (10:06 -0400)]
panfrost: Identify coverage_mask
The driver specifies the mask directly.
Signed-off-by: Alyssa Rosenzweig <alyssa.rosenzweig@collabora.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/5782>
Alyssa Rosenzweig [Tue, 30 Jun 2020 20:53:38 +0000 (16:53 -0400)]
panfrost: Don't advertise MSAA 2x
Let the frontend promote to MSAA 4x if the app requests it. We don't
support MSAA 2x.
Signed-off-by: Alyssa Rosenzweig <alyssa.rosenzweig@collabora.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/5782>
Alyssa Rosenzweig [Tue, 30 Jun 2020 20:49:52 +0000 (16:49 -0400)]
panfrost: Set layer_stride for multisampled rendering
Signed-off-by: Alyssa Rosenzweig <alyssa.rosenzweig@collabora.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/5782>
Alyssa Rosenzweig [Tue, 30 Jun 2020 20:43:47 +0000 (16:43 -0400)]
panfrost: Include pointer for each sample
Treating it like an array/3D texture.
Signed-off-by: Alyssa Rosenzweig <alyssa.rosenzweig@collabora.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/5782>
Alyssa Rosenzweig [Tue, 30 Jun 2020 20:43:32 +0000 (16:43 -0400)]
panfrost: Index texture by sample
This will allow MSAA to route through.
Signed-off-by: Alyssa Rosenzweig <alyssa.rosenzweig@collabora.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/5782>
Alyssa Rosenzweig [Tue, 30 Jun 2020 20:29:16 +0000 (16:29 -0400)]
panfrost: Allocate space for multisampling
As an effective depth. Ugly but matches the blob.
Signed-off-by: Alyssa Rosenzweig <alyssa.rosenzweig@collabora.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/5782>
Alyssa Rosenzweig [Tue, 30 Jun 2020 20:21:18 +0000 (16:21 -0400)]
panfrost: Identify layer_stride
For MSAA.
Signed-off-by: Alyssa Rosenzweig <alyssa.rosenzweig@collabora.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/5782>
Alyssa Rosenzweig [Tue, 30 Jun 2020 19:41:24 +0000 (15:41 -0400)]
panfrost: Set depth to sample_count for MSAA 2D
Treated like a 3D texture.
Signed-off-by: Alyssa Rosenzweig <alyssa.rosenzweig@collabora.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/5782>
Alyssa Rosenzweig [Tue, 30 Jun 2020 19:41:43 +0000 (15:41 -0400)]
pan/mdg: Use _VTX tag for texelFetch in frag shaders
Probably a misnomer, let's match what the blob seemingly does though? At
least in blit shaders?
Signed-off-by: Alyssa Rosenzweig <alyssa.rosenzweig@collabora.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/5782>
Alyssa Rosenzweig [Tue, 30 Jun 2020 19:32:01 +0000 (15:32 -0400)]
pan/mdg: Handle nir_texop_txf_ms
Same as nir_texop_txf, the special case where sample = 0.
Signed-off-by: Alyssa Rosenzweig <alyssa.rosenzweig@collabora.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/5782>
Alyssa Rosenzweig [Tue, 30 Jun 2020 19:31:39 +0000 (15:31 -0400)]
pan/mdg: Handle nir_tex_src_ms_index
Goes in .z for a txf_ms coordinate, same as a shadow comparator so we
reuse the impl.
Signed-off-by: Alyssa Rosenzweig <alyssa.rosenzweig@collabora.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/5782>
Alyssa Rosenzweig [Tue, 30 Jun 2020 19:31:30 +0000 (15:31 -0400)]
pan/mdg: Handle GLSL_SAMPLER_DIM_MS
Same as 2D.
Signed-off-by: Alyssa Rosenzweig <alyssa.rosenzweig@collabora.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/5782>
Alyssa Rosenzweig [Fri, 3 Jul 2020 13:20:44 +0000 (09:20 -0400)]
pan/mdg: Allow ignoring move mode
Ensures we can gaurantee we'll pick something, which matters for
depth/stencil export.
Signed-off-by: Alyssa Rosenzweig <alyssa.rosenzweig@collabora.com>
Fixes: de41c4c103d ("pan/mdg: Prioritize non-moves on VADD/VLUT")
Tested-by: Icecream95 <ixn@keemail.me>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/5782>
Alyssa Rosenzweig [Mon, 6 Jul 2020 22:45:16 +0000 (18:45 -0400)]
pan/decode: Identify layered MSAA flag
Signed-off-by: Alyssa Rosenzweig <alyssa.rosenzweig@collabora.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/5782>
Alyssa Rosenzweig [Tue, 30 Jun 2020 20:21:30 +0000 (16:21 -0400)]
pan/decode: Fix MSAA texture decoding
Signed-off-by: Alyssa Rosenzweig <alyssa.rosenzweig@collabora.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/5782>
Alyssa Rosenzweig [Mon, 6 Jul 2020 14:57:04 +0000 (10:57 -0400)]
pan/mdg: Fix indirect UBO swizzles
Helps a lot of vertex shaders dramatically.
total instructions in shared programs: 48491 -> 48252 (-0.49%)
instructions in affected programs: 3091 -> 2852 (-7.73%)
helped: 30
HURT: 0
helped stats (abs) min: 1 max: 35 x̄: 7.97 x̃: 5
helped stats (rel) min: 0.57% max: 21.60% x̄: 7.98% x̃: 6.85%
95% mean confidence interval for instructions value: -11.11 -4.83
95% mean confidence interval for instructions %-change: -10.17% -5.80%
Instructions are helped.
total bundles in shared programs: 23392 -> 23105 (-1.23%)
bundles in affected programs: 2017 -> 1730 (-14.23%)
helped: 35
HURT: 0
helped stats (abs) min: 1 max: 34 x̄: 8.20 x̃: 7
helped stats (rel) min: 1.11% max: 34.69% x̄: 15.52% x̃: 18.42%
95% mean confidence interval for bundles value: -10.91 -5.49
95% mean confidence interval for bundles %-change: -19.28% -11.77%
Bundles are helped.
total quadwords in shared programs: 39586 -> 39611 (0.06%)
quadwords in affected programs: 1717 -> 1742 (1.46%)
helped: 5
HURT: 24
helped stats (abs) min: 1 max: 1 x̄: 1.00 x̃: 1
helped stats (rel) min: 0.83% max: 3.57% x̄: 2.45% x̃: 2.78%
HURT stats (abs) min: 1 max: 2 x̄: 1.25 x̃: 1
HURT stats (rel) min: 1.00% max: 3.77% x̄: 2.17% x̃: 1.89%
95% mean confidence interval for quadwords value: 0.50 1.22
95% mean confidence interval for quadwords %-change: 0.61% 2.13%
Quadwords are HURT.
total registers in shared programs: 3337 -> 3272 (-1.95%)
registers in affected programs: 373 -> 308 (-17.43%)
helped: 34
HURT: 0
helped stats (abs) min: 1 max: 5 x̄: 1.91 x̃: 1
helped stats (rel) min: 6.25% max: 33.33% x̄: 16.76% x̃: 16.03%
95% mean confidence interval for registers value: -2.31 -1.51
95% mean confidence interval for registers %-change: -19.15% -14.37%
Registers are helped.
total threads in shared programs: 2593 -> 2615 (0.85%)
threads in affected programs: 22 -> 44 (100.00%)
helped: 21
HURT: 0
helped stats (abs) min: 1 max: 2 x̄: 1.05 x̃: 1
helped stats (rel) min: 100.00% max: 100.00% x̄: 100.00% x̃: 100.00%
95% mean confidence interval for threads value: 0.95 1.15
95% mean confidence interval for threads %-change: 100.00% 100.00%
Threads are [helped].
total loops in shared programs: 6 -> 6 (0.00%)
loops in affected programs: 0 -> 0
helped: 0
HURT: 0
total spills in shared programs: 17 -> 1 (-94.12%)
spills in affected programs: 16 -> 0
helped: 2
HURT: 0
total fills in shared programs: 35 -> 5 (-85.71%)
fills in affected programs: 30 -> 0
helped: 2
HURT: 0
Signed-off-by: Alyssa Rosenzweig <alyssa.rosenzweig@collabora.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/5781>
Alyssa Rosenzweig [Mon, 6 Jul 2020 14:33:29 +0000 (10:33 -0400)]
pan/mdg: Respect type/mask in mir_lower_special_reads
Fixes RA issues with the lowered moves, as well as enabling more
aggressive scheduling (hence the slight shdaer-db win).
total instructions in shared programs: 48539 -> 48491 (-0.10%)
instructions in affected programs: 4400 -> 4352 (-1.09%)
helped: 13
HURT: 0
helped stats (abs) min: 1 max: 8 x̄: 3.69 x̃: 3
helped stats (rel) min: 0.50% max: 1.89% x̄: 1.06% x̃: 1.10%
95% mean confidence interval for instructions value: -5.05 -2.33
95% mean confidence interval for instructions %-change: -1.29% -0.84%
Instructions are helped.
total bundles in shared programs: 23447 -> 23392 (-0.23%)
bundles in affected programs: 2224 -> 2169 (-2.47%)
helped: 21
HURT: 1
helped stats (abs) min: 1 max: 8 x̄: 2.67 x̃: 2
helped stats (rel) min: 0.89% max: 20.00% x̄: 9.04% x̃: 2.40%
HURT stats (abs) min: 1 max: 1 x̄: 1.00 x̃: 1
HURT stats (rel) min: 1.20% max: 1.20% x̄: 1.20% x̃: 1.20%
95% mean confidence interval for bundles value: -3.51 -1.49
95% mean confidence interval for bundles %-change: -12.52% -4.63%
Bundles are helped.
total quadwords in shared programs: 39651 -> 39586 (-0.16%)
quadwords in affected programs: 5557 -> 5492 (-1.17%)
helped: 38
HURT: 1
helped stats (abs) min: 1 max: 2 x̄: 1.74 x̃: 2
helped stats (rel) min: 0.61% max: 14.29% x̄: 3.92% x̃: 1.20%
HURT stats (abs) min: 1 max: 1 x̄: 1.00 x̃: 1
HURT stats (rel) min: 0.69% max: 0.69% x̄: 0.69% x̃: 0.69%
95% mean confidence interval for quadwords value: -1.87 -1.47
95% mean confidence interval for quadwords %-change: -5.55% -2.05%
Quadwords are helped.
total registers in shared programs: 3336 -> 3337 (0.03%)
registers in affected programs: 21 -> 22 (4.76%)
helped: 1
HURT: 2
helped stats (abs) min: 1 max: 1 x̄: 1.00 x̃: 1
helped stats (rel) min: 11.11% max: 11.11% x̄: 11.11% x̃: 11.11%
HURT stats (abs) min: 1 max: 1 x̄: 1.00 x̃: 1
HURT stats (rel) min: 16.67% max: 16.67% x̄: 16.67% x̃: 16.67%
total threads in shared programs: 2592 -> 2593 (0.04%)
threads in affected programs: 1 -> 2 (100.00%)
helped: 1
HURT: 0
total spills in shared programs: 17 -> 17 (0.00%)
spills in affected programs: 0 -> 0
helped: 0
HURT: 0
total fills in shared programs: 35 -> 35 (0.00%)
fills in affected programs: 0 -> 0
helped: 0
HURT: 0
Signed-off-by: Alyssa Rosenzweig <alyssa.rosenzweig@collabora.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/5781>
Ilia Mirkin [Sun, 5 Jul 2020 05:58:01 +0000 (01:58 -0400)]
ir3: use empirical size for params as used by the shader
For example only some UCPs may be used by the shader, triggering asserts
that too many consts are being uploaded.
While we're at it, also fix the const size when loading UCPs, since
otherwise it doesn't correspond to what the shader is actually using.
Signed-off-by: Ilia Mirkin <imirkin@alum.mit.edu>
Reviewed-by: Rob Clark <robdclark@chromium.org>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/5752>
Chris Forbes [Sat, 4 Jul 2020 22:26:42 +0000 (15:26 -0700)]
bifrost: Set RTZ rounding mode for f2i conversion
Fixes dEQP-GLES2.functional.shaders.conversions.scalar_to_scalar.float_to_int_fragment
Signed-off-by: Chris Forbes <chrisforbes@google.com>
Reviewed-by: Alyssa Rosenzweig <alyssa.rosenzweig@collabora.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/5779>
Connor Abbott [Mon, 29 Jun 2020 17:33:50 +0000 (19:33 +0200)]
tu: Enable KHR_variable_pointers
Passes dEQP-VK.spirv_assembly.instruction.graphics.variable_pointers.*
and dEQP-VK.spirv_assembly.instruction.compute.variable_pointers.*
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/5684>
Connor Abbott [Mon, 29 Jun 2020 17:18:20 +0000 (19:18 +0200)]
tu: Rewrite variable lowering
Don't lower to offsets, instead use nir_lower_explicit_io here and
use actual pointers for UBO's and SSBO's. This makes
KHR_variable_pointers trivial. This also fixes asserts with shared
variables, which are now supposed to be lowered with
nir_lower_explicit_io.
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/5684>
Lionel Landwerlin [Mon, 6 Jul 2020 14:11:35 +0000 (17:11 +0300)]
anv: garbage collect timeline semaphore when querying value
If we don't garbage collect the timeline, the value never progresses
even though work completed.
Signed-off-by: Lionel Landwerlin <lionel.g.landwerlin@intel.com>
Closes: https://gitlab.freedesktop.org/mesa/mesa/-/issues/3226
Fixes: 34f32a6d664807 ("anv: implement VK_KHR_timeline_semaphore")
Reviewed-by: Bas Nieuwenhuizen <bas@basnieuwenhuizen.nl>
Reviewed-by: Jason Ekstrand <jason@jlekstrand.net>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/5774>