Jason Ekstrand [Sun, 2 May 2021 22:55:15 +0000 (17:55 -0500)]
anv: Support pushing shader constants
Usually, nir_opt_constant_folding will get rid of any load_constant
intrinsics which might possibly be pushed but there are rare cases where
we can still end up with them. Better to handle them.
Cc: mesa-stable@lists.freedesktop.org
Reviewed-by: Kenneth Graunke <kenneth@whitecape.org>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10571>
Jason Ekstrand [Sun, 2 May 2021 22:54:57 +0000 (17:54 -0500)]
anv: Plumb the shader into push constant helpers
Cc: mesa-stable@lists.freedesktop.org
Reviewed-by: Kenneth Graunke <kenneth@whitecape.org>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10571>
Rhys Perry [Mon, 17 May 2021 13:37:54 +0000 (14:37 +0100)]
aco: disallow SGPRs on DPP instructions
They can't be encoded.
Signed-off-by: Rhys Perry <pendingchaos02@gmail.com>
Reviewed-by: Timur Kristóf <timur.kristof@gmail.com>
Cc: mesa-stable
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10841>
Jose Fonseca [Thu, 13 May 2021 11:48:30 +0000 (12:48 +0100)]
d3d10umd: Avoid duplication in CreateDevice.
As suggested by Jesse Natalie.
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10687>
Jose Fonseca [Wed, 5 May 2021 13:51:34 +0000 (14:51 +0100)]
d3d10sw: Add a sanity test.
Reviewed-by: Roland Scheidegger <sroland@vmware.com>
Acked-by: Jesse Natalie <jenatali@microsoft.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10687>
Jose Fonseca [Wed, 5 May 2021 10:57:43 +0000 (11:57 +0100)]
d3d10umd,d3d10sw: Initial import.
This change adds a gallium D3D10 state tracker that works as a WDDM UMD
software driver, similar to Microsoft WARP, but using llvmpipe/softpipe.
The final deliverable is a d3d10sw.dll, which is similar to WARP's
d3d10warp.dll.
This has been used to run Microsoft Windows HCK wgf11* tests with
llvmpipe, and they were at one point passing 100%.
Known limitations:
- TGSI (no NIR)
- D3D10 only (no D3D11 support yet)
- no WINE integration (WINE doesn't implement WDDM DDI.)
For further details see:
- src/gallium/frontends/d3d10umd/README.md
- src/gallium/targets/d3d10sw/README.md
v2: Drop the DXBC-based disassembly. Add missing break statements.
v3: Incorporate Jesse's feedback.
Reviewed-by: Roland Scheidegger <sroland@vmware.com>
Acked-by: Jesse Natalie <jenatali@microsoft.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10687>
Jose Fonseca [Mon, 17 May 2021 06:50:28 +0000 (07:50 +0100)]
draw: Plug leak when combining tessellation with primitive assembly.
Another lavapipe leak found with LeakSanitizer.
This happens when using tessellation without geometry shader but with a
fragment shader that consumes primitive ID, therefore requiring
primitive assembler stage.
Reviewed-by: Roland Scheidegger <sroland@vmware.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10835>
Lionel Landwerlin [Tue, 4 May 2021 06:46:08 +0000 (09:46 +0300)]
anv: fixup physical device properties of fragment shading rate
We've only enabled the extension on Gfx11+ so no need to care about
prior values.
Also fixup values of (min|max)FragmentShadingRateAttachmentTexelSize.
Signed-off-by: Lionel Landwerlin <lionel.g.landwerlin@intel.com>
Fixes:
231651fd89fb00 ("anv: implement VK_KHR_fragment_shading_rate")
Reviewed-by: Tapani Pälli <tapani.palli@intel.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10607>
Samuel Pitoiset [Mon, 26 Apr 2021 11:46:58 +0000 (13:46 +0200)]
radv: enable DCC stores on RDNA2
It seems this gives 2-3% improvements most of the time. This also
enables DCC for concurrent images.
Signed-off-by: Samuel Pitoiset <samuel.pitoiset@gmail.com>
Reviewed-by: Bas Nieuwenhuizen <bas@basnieuwenhuizen.nl>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10454>
Tomeu Vizoso [Tue, 11 May 2021 08:07:30 +0000 (10:07 +0200)]
panfrost/ci: Test Panfrost on the Mali G72 GPU
Make use of some Chromebooks recently added to the Collabora LAVA lab to
test Panfrost on the G72 (Bifrost) GPU.
Signed-off-by: Tomeu Vizoso <tomeu.vizoso@collabora.com>
Reviewed-by: Emma Anholt <emma@anholt.net>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10785>
Tomeu Vizoso [Tue, 11 May 2021 08:06:00 +0000 (10:06 +0200)]
ci: Update kernel to v5.13-rc2
This version adds support for some Chromebooks with the MT8183 SoC that
we want to use to test Panfrost.
Signed-off-by: Tomeu Vizoso <tomeu.vizoso@collabora.com>
Reviewed-by: Emma Anholt <emma@anholt.net>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10785>
Jose Fonseca [Fri, 14 May 2021 15:25:32 +0000 (16:25 +0100)]
draw: Allocate extra padding for extra shader outputs.
This prevents read buffer overflows in dup_vertex(), when draw stages
allocate extra shader outputs after the vertex buffers are allocated.
The original issue can be exercised with upcoming
piglit/tests/general/vertex-fallbacks.c test.
Reviewed-by: Roland Scheidegger <sroland@vmware.com>
Cc: 21.0 21.1 <mesa-stable@lists.freedesktop.org>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10836>
Mike Blumenkrantz [Tue, 11 May 2021 18:47:29 +0000 (14:47 -0400)]
util/primconvert: add C++ guards to header
Reviewed-by: Jesse Natalie <jenatali@microsoft.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10868>
Alyssa Rosenzweig [Tue, 18 May 2021 19:55:12 +0000 (15:55 -0400)]
panfrost: Express viewport in terms of the batch
Easier to say the state dependencies.
Signed-off-by: Alyssa Rosenzweig <alyssa@collabora.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10869>
Alyssa Rosenzweig [Fri, 12 Mar 2021 01:20:52 +0000 (01:20 +0000)]
panfrost: Simplify panfrost_bind_sampler_states
Signed-off-by: Alyssa Rosenzweig <alyssa@collabora.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10869>
Alyssa Rosenzweig [Tue, 18 May 2021 14:29:00 +0000 (10:29 -0400)]
panfrost: Mark job_index > 10000 as unlikely
By definition this is happening <= 0.02% of the time.
Signed-off-by: Alyssa Rosenzweig <alyssa@rosenzweig.io>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10869>
Alyssa Rosenzweig [Tue, 18 May 2021 14:28:08 +0000 (10:28 -0400)]
panfrost: Remove silly assertion
We don't assert the rest of the Gallium contract here either.
Signed-off-by: Alyssa Rosenzweig <alyssa@rosenzweig.io>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10869>
Alyssa Rosenzweig [Tue, 18 May 2021 14:26:27 +0000 (10:26 -0400)]
panfrost: Pass batch to panfrost_get_index_buffer_bounded
Calling batch_for_fbo outside of Gallium entrypoints is an antipattern.
Signed-off-by: Alyssa Rosenzweig <alyssa@rosenzweig.io>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10869>
Alyssa Rosenzweig [Tue, 18 May 2021 14:07:51 +0000 (10:07 -0400)]
panfrost: Deduplicate some code from indirect/direct draws
Signed-off-by: Alyssa Rosenzweig <alyssa@rosenzweig.io>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10869>
Alyssa Rosenzweig [Tue, 18 May 2021 14:00:25 +0000 (10:00 -0400)]
panfrost: Move batch_set_requirements to the CSO
Much of the per-draw work can be precomputed.
Signed-off-by: Alyssa Rosenzweig <alyssa@rosenzweig.io>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10869>
Alyssa Rosenzweig [Fri, 14 May 2021 23:41:33 +0000 (19:41 -0400)]
panfrost: Pack draw-time RSD all-at-once
Manually inline the functions, delete the duplicates, and use GenXML the
way it's meant to be used. Template structs should **never** cross
function boundaries.
Signed-off-by: Alyssa Rosenzweig <alyssa@collabora.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10869>
Alyssa Rosenzweig [Fri, 14 May 2021 23:31:27 +0000 (19:31 -0400)]
panfrost: Hoist part of shader_reads_tilebuffer
The other part is |'d together. Do the happy path at compile time, and
reserve the draw time fixup for a v5 silicon issue.
Signed-off-by: Alyssa Rosenzweig <alyssa@collabora.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10869>
Alyssa Rosenzweig [Fri, 14 May 2021 23:29:38 +0000 (19:29 -0400)]
panfrost: Pull erratum workaround into own function
This _does_ need to be draw-time, but it doesn't need to be in the
monster routine.
Signed-off-by: Alyssa Rosenzweig <alyssa@collabora.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10869>
Alyssa Rosenzweig [Fri, 14 May 2021 23:26:21 +0000 (19:26 -0400)]
panfrost: Distribute masks for FPK selection
We can calculate these at much lower frequencies and just & together at
draw time.
Signed-off-by: Alyssa Rosenzweig <alyssa@collabora.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10869>
Alyssa Rosenzweig [Fri, 14 May 2021 23:17:23 +0000 (19:17 -0400)]
panfrost: Partially determine FPK state
This might be disabled at draw-time, but we can merge part of the state
check to compile-time.
Signed-off-by: Alyssa Rosenzweig <alyssa@collabora.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10869>
Alyssa Rosenzweig [Fri, 14 May 2021 23:17:11 +0000 (19:17 -0400)]
panfrost: Hoist allow_forward_pixel_to_be_killed
Only a function of the shader code.
Signed-off-by: Alyssa Rosenzweig <alyssa@collabora.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10869>
Alyssa Rosenzweig [Fri, 14 May 2021 23:12:00 +0000 (19:12 -0400)]
panfrost: Streamline the !fs_required case
Takes some complexity out of the per-draw path.
Signed-off-by: Alyssa Rosenzweig <alyssa@collabora.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10869>
Alyssa Rosenzweig [Fri, 14 May 2021 22:50:23 +0000 (18:50 -0400)]
panfrost: Move early-z decision earlier
These were already grouped nicely, just never got used. I also added
coverage writes to the list of reasons not to use early-z for
completeness. At the moment this doesn't do anything since this is a
Midgard flag and we haven't hooked up coverage writes on Midgard.
Signed-off-by: Alyssa Rosenzweig <alyssa@collabora.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10869>
Alyssa Rosenzweig [Fri, 14 May 2021 22:42:22 +0000 (18:42 -0400)]
panfrost: Fill out the rasterizer CSO
The RSD state is all over the place but let's try to collect what we
can.
Signed-off-by: Alyssa Rosenzweig <alyssa@collabora.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10869>
Alyssa Rosenzweig [Fri, 14 May 2021 22:28:10 +0000 (18:28 -0400)]
panfrost: Correct the type of sample_mask
Let's not encode impossible masks.
Signed-off-by: Alyssa Rosenzweig <alyssa@collabora.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10869>
Alyssa Rosenzweig [Fri, 14 May 2021 22:27:02 +0000 (18:27 -0400)]
panfrost: Preset evaluate_per_sample
Even though this isn't totally known at compile-time, at least one case
is, so let's handle that one ahead-of-time.
Signed-off-by: Alyssa Rosenzweig <alyssa@collabora.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10869>
Alyssa Rosenzweig [Fri, 14 May 2021 22:23:23 +0000 (18:23 -0400)]
panfrost: Move depth/stencil/alpha to CSO create
Now that we can merge RSD state, there's no reason to pack this at
draw-time. This is fun!
Signed-off-by: Alyssa Rosenzweig <alyssa@collabora.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10869>
Alyssa Rosenzweig [Fri, 14 May 2021 22:00:45 +0000 (18:00 -0400)]
panfrost: Prepack partial RSD at compile time
Even for fragment shaders! Just need to merge the partial descriptors.
Fixes:
c21c6d134bc ("panfrost: Use the pan_shader_prepare_rsd() helper")
Signed-off-by: Alyssa Rosenzweig <alyssa@collabora.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10869>
Alyssa Rosenzweig [Fri, 14 May 2021 22:00:10 +0000 (18:00 -0400)]
panfrost: Add draw-time merge helper
The famous GenXML "OR" trick. Will be *essential* to packing RSDs.
Signed-off-by: Alyssa Rosenzweig <alyssa@collabora.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10869>
Alyssa Rosenzweig [Fri, 14 May 2021 21:43:35 +0000 (17:43 -0400)]
panfrost: Precompute bifrost_blend_type_from_nir
Needed in the draw call hot path. Do it at compile time.
Signed-off-by: Alyssa Rosenzweig <alyssa@collabora.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10869>
Alyssa Rosenzweig [Fri, 14 May 2021 21:19:30 +0000 (17:19 -0400)]
panfrost: Split Bifrost BLEND emit by word
This allows the GenXML packs to be effectively inlined and folded,
skipping over the Midgard pieces.
Signed-off-by: Alyssa Rosenzweig <alyssa@collabora.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10869>
Alyssa Rosenzweig [Fri, 14 May 2021 20:00:40 +0000 (16:00 -0400)]
panfrost: Remove unused dither flag
Signed-off-by: Alyssa Rosenzweig <alyssa@collabora.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10869>
Alyssa Rosenzweig [Fri, 14 May 2021 19:53:52 +0000 (15:53 -0400)]
panfrost: Streamline fixed-function get_blend path
Signed-off-by: Alyssa Rosenzweig <alyssa@collabora.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10869>
Alyssa Rosenzweig [Fri, 14 May 2021 19:40:05 +0000 (15:40 -0400)]
panfrost: Pass batch to panfrost_get_blend
Signed-off-by: Alyssa Rosenzweig <alyssa@collabora.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10869>
Alyssa Rosenzweig [Fri, 14 May 2021 19:37:01 +0000 (15:37 -0400)]
panfrost: Simplify blend_final
Now that we've moved everything but the blend shader up to the CSO, we
can just return a blend shader pointer (or zero to indicate the absence
thereof), and remove a source of name conflicts.
Signed-off-by: Alyssa Rosenzweig <alyssa@collabora.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10869>
Alyssa Rosenzweig [Fri, 14 May 2021 19:23:44 +0000 (15:23 -0400)]
panfrost: Distribute out constant colour code
Signed-off-by: Alyssa Rosenzweig <alyssa@collabora.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10869>
Alyssa Rosenzweig [Fri, 14 May 2021 19:05:31 +0000 (15:05 -0400)]
panfrost: Pack blend equations at CSO create time
These are large. Get them out of the per-draw path.
Signed-off-by: Alyssa Rosenzweig <alyssa@collabora.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10869>
Alyssa Rosenzweig [Fri, 14 May 2021 18:48:09 +0000 (14:48 -0400)]
panfrost: Garbage collect Gallium blend includes
Got moved to common blend handling.
Signed-off-by: Alyssa Rosenzweig <alyssa@collabora.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10869>
Alyssa Rosenzweig [Fri, 14 May 2021 17:22:47 +0000 (13:22 -0400)]
panfrost: Translate fixed-function blend at CSO create
Fixes:
93824b6451a ("panfrost: Move the blend logic out of the gallium driver")
Signed-off-by: Alyssa Rosenzweig <alyssa@collabora.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10869>
Alyssa Rosenzweig [Fri, 14 May 2021 16:55:49 +0000 (12:55 -0400)]
panfrost: Move blend properties to CSO create
Fixes:
93824b6451a ("panfrost: Move the blend logic out of the gallium driver")
Signed-off-by: Alyssa Rosenzweig <alyssa@collabora.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10869>
Alyssa Rosenzweig [Fri, 14 May 2021 14:36:27 +0000 (10:36 -0400)]
panfrost: Fix pan_blend_to_fixed_function_equation prototype
Doesn't need the whole state, just the equation itself.
Signed-off-by: Alyssa Rosenzweig <alyssa@collabora.com>
Fixes:
93824b6451a ("panfrost: Move the blend logic out of the gallium driver")
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10869>
Alyssa Rosenzweig [Fri, 14 May 2021 14:24:23 +0000 (10:24 -0400)]
panfrost: Fix blend fixed-function prototype
Needs to be broken up into different functions for disjoint state.
Simpler prototypes and allows matching to CSOs.
Signed-off-by: Alyssa Rosenzweig <alyssa@collabora.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10869>
Alyssa Rosenzweig [Fri, 14 May 2021 14:01:50 +0000 (10:01 -0400)]
panfrost: Fix blend constant fetch prototype
Signed-off-by: Alyssa Rosenzweig <alyssa@collabora.com>
Fixes:
93824b6451a ("panfrost: Move the blend logic out of the gallium driver")
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10869>
Alyssa Rosenzweig [Fri, 14 May 2021 13:50:14 +0000 (09:50 -0400)]
panfrost: Fix is_opaque prototype
Fixes:
93824b6451a ("panfrost: Move the blend logic out of the gallium driver")
Signed-off-by: Alyssa Rosenzweig <alyssa@collabora.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10869>
Alyssa Rosenzweig [Fri, 14 May 2021 13:47:37 +0000 (09:47 -0400)]
panfrost: Fix the reads_dest prototype
Takes too much state, only pass what we need.
Fixes:
93824b6451a ("panfrost: Move the blend logic out of the gallium driver")
Signed-off-by: Alyssa Rosenzweig <alyssa@collabora.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10869>
Alyssa Rosenzweig [Tue, 18 May 2021 21:57:27 +0000 (17:57 -0400)]
panfrost: Fix blending for unbacked MRT
Signed-off-by: Alyssa Rosenzweig <alyssa@collabora.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10869>
Bas Nieuwenhuizen [Tue, 6 Apr 2021 09:33:38 +0000 (11:33 +0200)]
aco: Implement bvh64_intersect_ray_amd intrinsic.
Reviewed-by: Daniel Schürmann <daniel@schuermann.dev>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10818>
Bas Nieuwenhuizen [Tue, 6 Apr 2021 09:30:34 +0000 (11:30 +0200)]
nir: Add bvh64_intersect_ray_amd intrinsic.
Reviewed-by: Daniel Schürmann <daniel@schuermann.dev>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10818>
Gert Wollny [Fri, 30 Apr 2021 18:14:09 +0000 (20:14 +0200)]
r600: Enable NIR debug flags also for Cayman
Signed-off-by: Gert Wollny <gert.wollny@collabora.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10608>
Gert Wollny [Sun, 9 May 2021 17:14:16 +0000 (19:14 +0200)]
r600/sfn: legalize image access on Cayman
This, seems to avoid hardware resets with the
ARB_shader_image_load_store-invalid
piglit.
Signed-off-by: Gert Wollny <gert.wollny@collabora.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10608>
Gert Wollny [Mon, 10 May 2021 05:57:43 +0000 (07:57 +0200)]
r600/sfn: Add lowering pass to legalize image access
Make sure only existing images are accessed and that the accessed
coordinates are within the image.
The generated code is quite exponsive, because it encapsulates each
access to an image with two if statements, one to check whether the
image index actually exists (this will get optimized away if the
image selection is direct), and one if statement to check whether
the coordinates are in range. For that reason it will only be enabled
for Cayman were invalid access seems to raise more issues.
Signed-off-by: Gert Wollny <gert.wollny@collabora.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10608>
Gert Wollny [Mon, 10 May 2021 05:56:43 +0000 (07:56 +0200)]
r600/sfn: Fix cube query layer number for indirect access
Signed-off-by: Gert Wollny <gert.wollny@collabora.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10608>
Gert Wollny [Sun, 2 May 2021 18:23:11 +0000 (20:23 +0200)]
r600/sfn: read number of images from shader info
Signed-off-by: Gert Wollny <gert.wollny@collabora.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10608>
Gert Wollny [Fri, 30 Apr 2021 21:54:40 +0000 (23:54 +0200)]
r600/sfn: Fix Geometry shader for Cayman
Signed-off-by: Gert Wollny <gert.wollny@collabora.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10608>
Gert Wollny [Fri, 30 Apr 2021 21:26:37 +0000 (23:26 +0200)]
r600/sfn: Fix Cayman SSBO write with more than one value
Signed-off-by: Gert Wollny <gert.wollny@collabora.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10608>
Gert Wollny [Fri, 30 Apr 2021 20:18:16 +0000 (22:18 +0200)]
r600/sfn: Fix ssbo/image atomic swap for Cayman
Signed-off-by: Gert Wollny <gert.wollny@collabora.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10608>
Gert Wollny [Fri, 30 Apr 2021 20:09:27 +0000 (22:09 +0200)]
r600/sfn: Fix texture gather for Cayman
Signed-off-by: Gert Wollny <gert.wollny@collabora.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10608>
Gert Wollny [Fri, 30 Apr 2021 20:08:56 +0000 (22:08 +0200)]
r600/sfn: Use unified code path for index register load
Signed-off-by: Gert Wollny <gert.wollny@collabora.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10608>
Gert Wollny [Fri, 30 Apr 2021 19:11:36 +0000 (21:11 +0200)]
r600/sfn: Use unified index register code for samplers
Signed-off-by: Gert Wollny <gert.wollny@collabora.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10608>
Gert Wollny [Fri, 30 Apr 2021 18:13:48 +0000 (20:13 +0200)]
r600/sfn: Fix Cayman trans ops
v2: return from emit_sin_r600 on > Cayman (Kenn Glennard)
Signed-off-by: Gert Wollny <gert.wollny@collabora.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10608>
Gert Wollny [Fri, 30 Apr 2021 18:13:10 +0000 (20:13 +0200)]
r600/sfn: count only distinct literals per instruction group
This is to avoid useless instruction group splits.
Signed-off-by: Gert Wollny <gert.wollny@collabora.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10608>
Gert Wollny [Fri, 14 May 2021 16:47:50 +0000 (18:47 +0200)]
r600/sfn: Don't check the faction when searching for the input slot
All loads from the same driver location are merged into one variable,
so there is no need to check the frachtion.
Signed-off-by: Gert Wollny <gert.wollny@collabora.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10608>
Gert Wollny [Fri, 30 Apr 2021 18:12:19 +0000 (20:12 +0200)]
r600/sfn: Lower FS pos input w-transform in NIR
Signed-off-by: Gert Wollny <gert.wollny@collabora.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10608>
Gert Wollny [Mon, 10 May 2021 21:32:13 +0000 (23:32 +0200)]
r600/sfn: force new CF if fetch through TC would be used in same clause
Signed-off-by: Gert Wollny <gert.wollny@collabora.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10608>
Gert Wollny [Tue, 18 May 2021 18:19:50 +0000 (20:19 +0200)]
r600/sfn: Use valid pixel mode for SSBO and Image result fetches
Signed-off-by: Gert Wollny <gert.wollny@collabora.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10608>
Gert Wollny [Sun, 9 May 2021 17:46:24 +0000 (19:46 +0200)]
r600/sfn: Use valid pixel mode only in fragment shaders
The doc says that it should only be set in the FS.
Signed-off-by: Gert Wollny <gert.wollny@collabora.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10608>
Gert Wollny [Mon, 10 May 2021 05:50:08 +0000 (07:50 +0200)]
r600: don't put INTERP_X and INTERP_Z into one instruction group
Apparently this is not allowed and results in interpolation errors.
Signed-off-by: Gert Wollny <gert.wollny@collabora.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10608>
Alyssa Rosenzweig [Thu, 13 May 2021 14:39:01 +0000 (10:39 -0400)]
panfrost: Reduce blitter pool size
Blit shaders are small and the average app doesn't use many of them, so
try to pack in a single 4k BO. Saves 60k in a lot of simple apps.
Signed-off-by: Alyssa Rosenzweig <alyssa@collabora.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10866>
Alyssa Rosenzweig [Thu, 13 May 2021 14:25:24 +0000 (10:25 -0400)]
panfrost: Pool texture views
No need to stick these in separate BOs.
Signed-off-by: Alyssa Rosenzweig <alyssa@collabora.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10866>
Alyssa Rosenzweig [Wed, 12 May 2021 22:32:31 +0000 (18:32 -0400)]
panfrost: Pool shaders
Now we can do so without leaking memory :-)
Likewise use a pan_pool for RSDs, to share the common path.
Signed-off-by: Alyssa Rosenzweig <alyssa@collabora.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10866>
Alyssa Rosenzweig [Thu, 13 May 2021 15:25:31 +0000 (11:25 -0400)]
panfrost: Add reference type for unowned pool
This allows implementing the common pattern of allocating from an
unowned pool and immediately taking a reference.
Signed-off-by: Alyssa Rosenzweig <alyssa@collabora.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10866>
Alyssa Rosenzweig [Wed, 12 May 2021 22:47:25 +0000 (18:47 -0400)]
panfrost: Make pool slab size configurable
Different pools have different expected sizes.
Signed-off-by: Alyssa Rosenzweig <alyssa@collabora.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10866>
Alyssa Rosenzweig [Wed, 12 May 2021 22:31:54 +0000 (18:31 -0400)]
panfrost: Label pools
Allows the allocated BOs to be labeled more intelligently.
Signed-off-by: Alyssa Rosenzweig <alyssa@collabora.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10866>
Alyssa Rosenzweig [Wed, 12 May 2021 21:46:10 +0000 (17:46 -0400)]
panfrost: Label all BOs in userspace
Doesn't do any fancy cross-process labeling like @shadeslayer's patches
but helps with all your intra-process labeling needs.
Signed-off-by: Alyssa Rosenzweig <alyssa@collabora.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10866>
Alyssa Rosenzweig [Wed, 12 May 2021 21:06:09 +0000 (17:06 -0400)]
panfrost: Add unowned mode to pan_pool
I would like to reuse pan_pool for persistent uploads (shaders and CSOs)
in Gallium. In theory u_upload_mgr is more appropriate, but pan_pool is
already a knockoff u_upload_mgr, so might as well finish the job.
Signed-off-by: Alyssa Rosenzweig <alyssa@collabora.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10866>
Alyssa Rosenzweig [Thu, 13 May 2021 23:33:23 +0000 (19:33 -0400)]
pan/mdg: Set lower_uniforms_to_ubo
Rip off the band-aid. No other driver in Mesa has this combination, and
there's a reason for that. It confuses nir_to_tgsi; this commit fixes
GALLIUM_HUD (again) on Midgard.
shader-db stats aren't as bad as they appear at first blush, since the
added cycles are from added if-else branches (and only one side of the
if is taken on Midgard, which does no warping*).
total instructions in shared programs: 97036 -> 98107 (1.10%)
instructions in affected programs: 8297 -> 9368 (12.91%)
helped: 0
HURT: 45
HURT stats (abs) min: 1 max: 52 x̄: 23.80 x̃: 25
HURT stats (rel) min: 0.61% max: 61.90% x̄: 16.18% x̃: 14.66%
95% mean confidence interval for instructions value: 20.04 27.56
95% mean confidence interval for instructions %-change: 12.62% 19.74%
Instructions are HURT.
total bundles in shared programs: 45507 -> 46091 (1.28%)
bundles in affected programs: 3138 -> 3722 (18.61%)
helped: 2
HURT: 40
helped stats (abs) min: 1 max: 1 x̄: 1.00 x̃: 1
helped stats (rel) min: 1.54% max: 2.17% x̄: 1.86% x̃: 1.86%
HURT stats (abs) min: 2 max: 44 x̄: 14.65 x̃: 12
HURT stats (rel) min: 2.70% max: 50.00% x̄: 23.03% x̃: 21.25%
95% mean confidence interval for bundles value: 10.35 17.46
95% mean confidence interval for bundles %-change: 16.81% 26.88%
Bundles are HURT.
total quadwords in shared programs: 76952 -> 77849 (1.17%)
quadwords in affected programs: 6556 -> 7453 (13.68%)
helped: 2
HURT: 44
helped stats (abs) min: 1 max: 5 x̄: 3.00 x̃: 3
helped stats (rel) min: 1.73% max: 4.55% x̄: 3.14% x̃: 3.14%
HURT stats (abs) min: 2 max: 58 x̄: 20.52 x̃: 18
HURT stats (rel) min: 2.11% max: 46.34% x̄: 17.20% x̃: 12.96%
95% mean confidence interval for quadwords value: 15.18 23.82
95% mean confidence interval for quadwords %-change: 12.68% 19.96%
Quadwords are HURT.
total registers in shared programs: 6966 -> 6925 (-0.59%)
registers in affected programs: 347 -> 306 (-11.82%)
helped: 26
HURT: 8
helped stats (abs) min: 1 max: 4 x̄: 2.04 x̃: 2
helped stats (rel) min: 6.67% max: 42.86% x̄: 20.92% x̃: 22.22%
HURT stats (abs) min: 1 max: 5 x̄: 1.50 x̃: 1
HURT stats (rel) min: 9.09% max: 50.00% x̄: 17.19% x̃: 11.81%
95% mean confidence interval for registers value: -1.85 -0.56
95% mean confidence interval for registers %-change: -18.97% -4.93%
Registers are helped.
total threads in shared programs: 5040 -> 5050 (0.20%)
threads in affected programs: 13 -> 23 (76.92%)
helped: 10
HURT: 1
helped stats (abs) min: 1 max: 2 x̄: 1.10 x̃: 1
helped stats (rel) min: 100.00% max: 100.00% x̄: 100.00% x̃: 100.00%
HURT stats (abs) min: 1 max: 1 x̄: 1.00 x̃: 1
HURT stats (rel) min: 50.00% max: 50.00% x̄: 50.00% x̃: 50.00%
95% mean confidence interval for threads value: 0.44 1.38
95% mean confidence interval for threads %-change: 55.98% 116.75%
Threads are helped.
Fixes:
24d7c413fe7 ("panfrost: Enable packed uniforms.")
Signed-off-by: Alyssa Rosenzweig <alyssa@collabora.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10866>
Alyssa Rosenzweig [Tue, 18 May 2021 18:49:49 +0000 (14:49 -0400)]
pan/mdg: Fix spills to TLS
LOCAL_STORAGE.zw is workgroup local memory, whereas LOCAL_STORAGE.xy is
thread local memory. Likewise PC_SP.zw is the stack pointer, which is
initialized to (LOCAL_STORAGE.zw + offset) but is modifiable by the
shader. Panfrost doesn't modify the s tack pointer, and the register
allocation logic assumes a zero offset, so let's always spill to thread
local memory = LOCAL_STORAGE.xy, as was intended by Italo's cleanup.
This is visible on any shader that spills. Compute shaders aren't
advertised yet, so WLS will be null, causing a fault like the following
(reproduced on Mali T860 with the glyphy trace):
[15634.148873] panfrost
ff9a0000.gpu: Unhandled Page fault in AS0 at VA 0x0000000000000000
Reason: TODO
raw fault status: 0x70003C2
decoded fault status: SLAVE FAULT
exception type 0xC2: TRANSLATION_FAULT_LEVEL2
access type 0x3: WRITE
source id 0x700
[15634.658170] panfrost
ff9a0000.gpu: gpu sched timeout, js=0, config=0x3300, status=0x8, head=0x31d4540,
tail=0x31d4540, sched_job=
00000000e8101b2e
Fixes:
6a12ea02fee ("pan/mdg: properly encode/decode ldst instructions")
Signed-off-by: Alyssa Rosenzweig <alyssa@collabora.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10866>
Alyssa Rosenzweig [Tue, 18 May 2021 18:44:08 +0000 (14:44 -0400)]
pan/mdg: Fix output types for scalar fields
Already fixed vector, but scalar was missed.
Fixes:
4d9c0a32e7e ("pan/mdg: Use _output_ type for outmod printing")
Signed-off-by: Alyssa Rosenzweig <alyssa@collabora.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10866>
Alyssa Rosenzweig [Tue, 18 May 2021 18:22:02 +0000 (14:22 -0400)]
pan/mdg: Remove unused midgard_int_alu_op_prefix
Signed-off-by: Alyssa Rosenzweig <alyssa@collabora.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10866>
Bas Nieuwenhuizen [Sat, 20 Mar 2021 23:27:17 +0000 (00:27 +0100)]
radv: Use correct border swizzle on GFX9+.
We only need the format swizzle, not the full swizzle.
Fixes:
57e796a12a8 ("radv: Implement VK_EXT_custom_border_color")
Gitlab: https://gitlab.freedesktop.org/mesa/mesa/-/issues/4020
Reviewed-by: Samuel Pitoiset <samuel.pitoiset@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/9731>
Italo Nicola [Wed, 28 Apr 2021 09:22:02 +0000 (09:22 +0000)]
virgl: implement EXT_multisampled_render_to_texture
Signed-off-by: Italo Nicola <italonicola@collabora.com>
Reviewed-by: Gert Wollny <gert.wollny@collabora.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10500>
Bas Nieuwenhuizen [Tue, 23 Mar 2021 03:21:19 +0000 (04:21 +0100)]
radv: Implement vkCmdTraceRays.
Reviewed-by: Samuel Pitoiset <samuel.pitoiset@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/9767>
Bas Nieuwenhuizen [Mon, 22 Mar 2021 00:25:19 +0000 (01:25 +0100)]
radv: Add RT pipeline bind.
Reviewed-by: Samuel Pitoiset <samuel.pitoiset@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/9767>
Bas Nieuwenhuizen [Mon, 22 Mar 2021 00:20:11 +0000 (01:20 +0100)]
radv: Add support for RT bind point.
Reviewed-by: Samuel Pitoiset <samuel.pitoiset@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/9767>
Bas Nieuwenhuizen [Tue, 23 Mar 2021 03:22:10 +0000 (04:22 +0100)]
radv: Use global BO list with raytracing.
The shader binding tables in vkCmdTraceRays have no buffer reference.
Reviewed-by: Samuel Pitoiset <samuel.pitoiset@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/9767>
Bas Nieuwenhuizen [Tue, 23 Mar 2021 01:21:38 +0000 (02:21 +0100)]
aco: Add load_sbt_amd intrinsic implementation.
Reviewed-by: Samuel Pitoiset <samuel.pitoiset@gmail.com>
Reviewed-by: Rhys Perry <pendingchaos02@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/9767>
Bas Nieuwenhuizen [Tue, 23 Mar 2021 01:20:55 +0000 (02:20 +0100)]
radv: Add sbt descriptors user SGPR input.
Reviewed-by: Samuel Pitoiset <samuel.pitoiset@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/9767>
Bas Nieuwenhuizen [Tue, 23 Mar 2021 01:18:35 +0000 (02:18 +0100)]
nir: Add load_sbt_amd intrinsic.
Reviewed-by: Samuel Pitoiset <samuel.pitoiset@gmail.com>
Reviewed-by: Rhys Perry <pendingchaos02@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/9767>
Juan A. Suarez Romero [Tue, 18 May 2021 14:19:54 +0000 (16:19 +0200)]
ci/broadcom: update expected results
Fix also some typos in the expected failed results.
Reviewed-by: Jose Maria Casanova Crespo <jmcasanova@igalia.com>
Signed-off-by: Juan A. Suarez Romero <jasuarez@igalia.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10865>
Antonio Caggiano [Thu, 6 May 2021 11:27:42 +0000 (13:27 +0200)]
pps: Intel documentation
Add documentation for the Intel Perfetto datasource.
Signed-off-by: Antonio Caggiano <antonio.caggiano@collabora.com>
Reviewed-by: Lionel Landwerlin <lionel.g.landwerlin@intel.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10216>
Antonio Caggiano [Wed, 24 Mar 2021 16:51:13 +0000 (17:51 +0100)]
pps: Intel pps driver
Add the Intel pps driver using functionalities provided by
libintel_perf.
v2: Fix build with perfetto not enabled.
v3: Open perf stream with no filtering.
v4: Drop usage of inc/dec_n_users.
v5: Isolate intel_perf in its own class.
Signed-off-by: Antonio Caggiano <antonio.caggiano@collabora.com>
Reviewed-by: Lionel Landwerlin <lionel.g.landwerlin@intel.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10216>
Lionel Landwerlin [Thu, 29 Apr 2021 08:28:30 +0000 (11:28 +0300)]
intel/perf: allow metric sets to be loaded with on OA reports
A bunch of performance counters rely on register snapshots on top of
the OA reports. Those are already conditional to the query mode in the
equations :
availability="true $QueryMode &&"
This change allows to disable counters that are only available with
additional register snapshots. This will be useful if you only want to
OA reports to extract performance counter values.
Signed-off-by: Lionel Landwerlin <lionel.g.landwerlin@intel.com>
Acked-by: Antonio Caggiano <antonio.caggiano@collabora.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10216>
Lionel Landwerlin [Wed, 5 May 2021 20:24:47 +0000 (23:24 +0300)]
intel/perf: allow opening perf stream with no context filtering
Signed-off-by: Lionel Landwerlin <lionel.g.landwerlin@intel.com>
Acked-by: Antonio Caggiano <antonio.caggiano@collabora.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10216>
Antonio Caggiano [Mon, 3 May 2021 15:38:41 +0000 (17:38 +0200)]
intel/perf: Extern C
Allow libintel_perf to be included as a dependency from a C++ project by
wrapping some declaration within an extern "C" block, and then add a
function to allow direct reading of the OA stream.
v2: Don't expose internal helpers (Lionel)
Signed-off-by: Antonio Caggiano <antonio.caggiano@collabora.com>
Reviewed-by: Lionel Landwerlin <lionel.g.landwerlin@intel.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10216>
Erik Faye-Lund [Tue, 18 May 2021 12:57:15 +0000 (14:57 +0200)]
docs/features: mark a few more extensions as done for zink
These are all done, but wasn't marked as done yet.
Reviewed-By: Mike Blumenkrantz <michael.blumenkrantz@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10861>