platform/upstream/mesa.git
2 years agoaco/ra: fix usage of invalidated iterator
Rhys Perry [Wed, 11 May 2022 14:10:22 +0000 (15:10 +0100)]
aco/ra: fix usage of invalidated iterator

Signed-off-by: Rhys Perry <pendingchaos02@gmail.com>
Reviewed-by: Daniel Schürmann <daniel@schuermann.dev>
Fixes: 58bd9a379ef ("aco/ra: fix live-range splits of phi definitions")
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/16454>

2 years agopan/bi: Don't allow spilling coverage mask writes
Alyssa Rosenzweig [Fri, 27 May 2022 15:36:01 +0000 (11:36 -0400)]
pan/bi: Don't allow spilling coverage mask writes

The register precolouring logic assumes that coverage masks are always in R60,
so spilling them causes incorrect results. We could do better. Fixes on Valhall:

   dEQP-GLES3.functional.ubo.random.all_per_block_buffers.28

Fixes: 3df5446cbd4 ("pan/bi: Simplify register precolouring in the IR")
Signed-off-by: Alyssa Rosenzweig <alyssa@collabora.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/16748>

2 years agopanfrost: Set allow_rotating_primitives
Alyssa Rosenzweig [Fri, 27 May 2022 13:06:31 +0000 (09:06 -0400)]
panfrost: Set allow_rotating_primitives

On Valhall, the driver should set this flag if the hardware may rotate
primitives. This happens if:

1. The rasterization of lines does not matter, AND
2. The provoking vertex does not matter.

The first condition we may satisfy by checking for LINES and the second by
checking for flat shading. Otherwise, we should set this flag to allow
optimizations. This may be more efficient for tiling.

Signed-off-by: Alyssa Rosenzweig <alyssa@collabora.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/16748>

2 years agopanfrost: Set overdraw_alpha[01] flags
Alyssa Rosenzweig [Fri, 27 May 2022 12:46:46 +0000 (08:46 -0400)]
panfrost: Set overdraw_alpha[01] flags

These basically correspond to the alpha_zero_nop and alpha_one_store flags we
already compute and set. Except those flags don't exist on Valhall, so these
need to be used instead (on Bifrost, in addition .. unclear why the duplication
on Bifrost).

Set these flags when we can. Ostensibly this is for performance (neglible
improvement on glmark2 score), but mostly I want to get us using the hardware
optimally.

Signed-off-by: Alyssa Rosenzweig <alyssa@collabora.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/16748>

2 years agopanfrost: Allow FPK on Valhall
Alyssa Rosenzweig [Wed, 25 May 2022 21:29:17 +0000 (17:29 -0400)]
panfrost: Allow FPK on Valhall

Reuse the logic from Bifrost for a performance win.

Signed-off-by: Alyssa Rosenzweig <alyssa@collabora.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/16748>

2 years agoradv: init states from VkPipelineFragmentShadingRateState at only one place
Samuel Pitoiset [Mon, 23 May 2022 09:33:30 +0000 (11:33 +0200)]
radv: init states from VkPipelineFragmentShadingRateState at only one place

Signed-off-by: Samuel Pitoiset <samuel.pitoiset@gmail.com>
Reviewed-By: Mike Blumenkrantz <michael.blumenkrantz@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/16672>

2 years agoradv: init states from VkPipelineDiscardRectangleState at only one place
Samuel Pitoiset [Fri, 20 May 2022 13:44:57 +0000 (15:44 +0200)]
radv: init states from VkPipelineDiscardRectangleState at only one place

Signed-off-by: Samuel Pitoiset <samuel.pitoiset@gmail.com>
Reviewed-By: Mike Blumenkrantz <michael.blumenkrantz@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/16672>

2 years agoradv: init states from VkAttachmentSampleCountInfo at only one place
Samuel Pitoiset [Fri, 20 May 2022 13:25:12 +0000 (15:25 +0200)]
radv: init states from VkAttachmentSampleCountInfo at only one place

Signed-off-by: Samuel Pitoiset <samuel.pitoiset@gmail.com>
Reviewed-By: Mike Blumenkrantz <michael.blumenkrantz@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/16672>

2 years agoradv: init states from pColorBlendState at only one place
Samuel Pitoiset [Fri, 20 May 2022 11:44:42 +0000 (13:44 +0200)]
radv: init states from pColorBlendState at only one place

Signed-off-by: Samuel Pitoiset <samuel.pitoiset@gmail.com>
Reviewed-By: Mike Blumenkrantz <michael.blumenkrantz@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/16672>

2 years agoradv: use AMD values for computing blend related state
Samuel Pitoiset [Fri, 20 May 2022 09:56:11 +0000 (11:56 +0200)]
radv: use AMD values for computing blend related state

This will allow to translate the function and factors earlier.

Signed-off-by: Samuel Pitoiset <samuel.pitoiset@gmail.com>
Reviewed-By: Mike Blumenkrantz <michael.blumenkrantz@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/16672>

2 years agoradv: init states from VkPipelineRenderingCreateInfo at only one place
Samuel Pitoiset [Fri, 20 May 2022 06:25:13 +0000 (08:25 +0200)]
radv: init states from VkPipelineRenderingCreateInfo at only one place

Signed-off-by: Samuel Pitoiset <samuel.pitoiset@gmail.com>
Reviewed-By: Mike Blumenkrantz <michael.blumenkrantz@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/16672>

2 years agoradv: init states from pDepthStencilState at only one place
Samuel Pitoiset [Wed, 18 May 2022 07:22:59 +0000 (09:22 +0200)]
radv: init states from pDepthStencilState at only one place

Signed-off-by: Samuel Pitoiset <samuel.pitoiset@gmail.com>
Reviewed-By: Mike Blumenkrantz <michael.blumenkrantz@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/16672>

2 years agoradv: init states from pMultisampleState at only one place
Samuel Pitoiset [Thu, 19 May 2022 14:04:17 +0000 (16:04 +0200)]
radv: init states from pMultisampleState at only one place

Signed-off-by: Samuel Pitoiset <samuel.pitoiset@gmail.com>
Reviewed-By: Mike Blumenkrantz <michael.blumenkrantz@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/16672>

2 years agoradv: copy viewport/scissor when initializing radv_viewport_info
Samuel Pitoiset [Fri, 20 May 2022 14:07:13 +0000 (16:07 +0200)]
radv: copy viewport/scissor when initializing radv_viewport_info

Signed-off-by: Samuel Pitoiset <samuel.pitoiset@gmail.com>
Reviewed-By: Mike Blumenkrantz <michael.blumenkrantz@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/16672>

2 years agoanv: remove invalid copy/pasted comment
Marcin Ślusarz [Tue, 24 May 2022 10:53:53 +0000 (12:53 +0200)]
anv: remove invalid copy/pasted comment

Reviewed-by: Lionel Landwerlin <lionel.g.landwerlin@intel.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/16773>

2 years agoanv: remove redundant code calculating dynamic states mask
Marcin Ślusarz [Tue, 24 May 2022 10:49:14 +0000 (12:49 +0200)]
anv: remove redundant code calculating dynamic states mask

pipeline->dynamic_states is already set by anv_graphics_pipeline_init
since 231651fd89fb007610568b3ca76837253e7683ff.

Reviewed-by: Lionel Landwerlin <lionel.g.landwerlin@intel.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/16773>

2 years agoci/iris: skqp: remove flaking atlastext for TGL (gl version)
David Heidelberg [Mon, 30 May 2022 07:48:01 +0000 (09:48 +0200)]
ci/iris: skqp: remove flaking atlastext for TGL (gl version)

gles version of atlastext was already removed due to same behavior

Signed-off-by: David Heidelberg <david.heidelberg@collabora.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/16772>

2 years agoradv/ci: skip image.sample_texture.*_compressed_format*
Tatsuyuki Ishi [Mon, 30 May 2022 05:40:37 +0000 (14:40 +0900)]
radv/ci: skip image.sample_texture.*_compressed_format*

These tests are flaky due to missing barriers, exposed by 211db6d3336
("radv: Fix redundant subpass barriers due to erroneous comparison").

Reviewed-by: Martin Roukala <martin.roukala@mupuf.org>
Reviewed-by: Samuel Pitoiset <samuel.pitoiset@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/16762>

2 years agoradv/ci: Move transient_attachment_bit from fail to skip list
Tatsuyuki Ishi [Sat, 28 May 2022 02:11:59 +0000 (11:11 +0900)]
radv/ci: Move transient_attachment_bit from fail to skip list

These tests are flaky and should not be treated as expected-fail.

This also removes the duplicates from the fail list which was breaking CTS
runner.

Fixes: cd14431b8ca ("radv/ci: skip dEQP-VK.fragment_operations.transient_attachment_bit")
Reviewed-by: Martin Roukala <martin.roukala@mupuf.org>
Reviewed-by: Samuel Pitoiset <samuel.pitoiset@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/16762>

2 years agomicrosoft/compiler: Fixup sampler derefs in tex instrs that don't *need* samplers
Jesse Natalie [Wed, 18 May 2022 19:42:04 +0000 (12:42 -0700)]
microsoft/compiler: Fixup sampler derefs in tex instrs that don't *need* samplers

Sometimes you can end up with tex instructions that have sampler deref srcs, even though
they don't need them, e.g. a txs. In this case, still fix up those derefs in the sampler
splitting pass rather than leaving them pointing to a typed sampler.

Reviewed-by: Erik Faye-Lund <erik.faye-lund@collabora.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/16639>

2 years agoradv: Ignore transformOffset if transformData is 0
Konstantin Seurer [Thu, 26 May 2022 14:38:56 +0000 (16:38 +0200)]
radv: Ignore transformOffset if transformData is 0

There is also a hypothetical scenario where
transformData is 0 and transformOffset is not 0
and we end up reading from transformOffset because
transform_addr is not 0.
VkAccelerationStructureBuildRangeInfoKHR spec:

If VkAccelerationStructureGeometryTrianglesDataKHR::transformData is not NULL, a single VkTransformMatrixKHR structure is consumed from VkAccelerationStructureGeometryTrianglesDataKHR::transformData, at an offset of transformOffset. This matrix describes a transformation from the space in which the vertices for all triangles in this geometry are described to the space in which the acceleration structure is defined.

Which I think means, that we should ignore
transformOffset if transformData is NULL.

Signed-off-by: Konstantin Seurer <konstantin.seurer@gmail.com>
Reviewed-by: Bas Nieuwenhuizen <bas@basnieuwenhuizen.nl>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/16719>

2 years agoradv: Fix handling of primitiveOffset
Konstantin Seurer [Thu, 26 May 2022 11:24:45 +0000 (13:24 +0200)]
radv: Fix handling of primitiveOffset

VkAccelerationStructureBuildRangeInfoKHR spec:
If the geometry uses indices, primitiveCount × 3 indices are consumed from VkAccelerationStructureGeometryTrianglesDataKHR::indexData, starting at an offset of primitiveOffset. The value of firstVertex is added to the index values before fetching vertices.

If the geometry does not use indices, primitiveCount × 3 vertices are consumed from VkAccelerationStructureGeometryTrianglesDataKHR::vertexData, starting at an offset of primitiveOffset + VkAccelerationStructureGeometryTrianglesDataKHR::vertexStride × firstVertex.

Meaning: We always add firstVertex * vertexStride
to the vertex address and add primitiveOffset
either to the vertex address or the index address,
depending on wether indices are used.

Also add missing handling with instances.

Fixes: 0dad88b ("radv: Implement device-side BVH building.")
Signed-off-by: Konstantin Seurer <konstantin.seurer@gmail.com>
Reviewed-by: Bas Nieuwenhuizen <bas@basnieuwenhuizen.nl>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/16719>

2 years agoRevert "radeonsi: Set display_remote for non-refernced frames"
SureshGuttula [Fri, 27 May 2022 10:49:42 +0000 (16:19 +0530)]
Revert "radeonsi: Set display_remote for non-refernced frames"

This reverts commit ef76b83633dc34eefed11f295cb3185c3991fecd.
Reason for revert: This only helps in using I MBs.To further
fix in dpb , reverting this.

Fix added : https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/16745

Signed-off-by: SureshGuttula <suresh.guttula@amd.com>
Reviewed-by: Thong Thai <thong.thai@amd.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/16744>

2 years agod3d12: Fix forward decl for sw_winsys
Jesse Natalie [Fri, 27 May 2022 23:31:29 +0000 (16:31 -0700)]
d3d12: Fix forward decl for sw_winsys

Closes part of: https://gitlab.freedesktop.org/mesa/mesa/-/issues/4099

Reviewed-by: Bill Kristiansen <billkris@microsoft.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/16760>

2 years agoradeonsi/vcn : update enc->dpb ref_use for index 0
SureshGuttula [Fri, 27 May 2022 11:00:52 +0000 (16:30 +0530)]
radeonsi/vcn : update enc->dpb ref_use for index 0

Currently dpb_enc referneces not updated properly when index 0, as
we are skipping clearing that ref.

This patch will fix this for index 0. So that when ever we set
non_referenced flag, that is not used as ref and not pushed to DPB.
This is helping in SVC encoding.

Signed-off-by: SureshGuttula <suresh.guttula@amd.com>
Reviewed-by: Thong Thai <thong.thai@amd.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/16745>

2 years agoanv: move internal RT shaders to the internal cache
Lionel Landwerlin [Fri, 27 May 2022 08:27:55 +0000 (11:27 +0300)]
anv: move internal RT shaders to the internal cache

Those shaders are just like the blorp ones.

v2: Use a single internal cache for blorp/RT (Jason)

Signed-off-by: Lionel Landwerlin <lionel.g.landwerlin@intel.com>
Fixes: 7f1e82306c9b ("anv: Switch to the new common pipeline cache")
Reviewed-by: Jason Ekstrand <jason.ekstrand@collabora.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/16741>

2 years agopanvk: Use the vk_buffer base struct
Jason Ekstrand [Thu, 19 May 2022 14:20:33 +0000 (09:20 -0500)]
panvk: Use the vk_buffer base struct

Reviewed-by: Alyssa Rosenzweig <alyssa.rosenzweig@collabora.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/16607>

2 years agoanv: Use the base vk_buffer struct
Jason Ekstrand [Thu, 19 May 2022 14:00:30 +0000 (09:00 -0500)]
anv: Use the base vk_buffer struct

This mostly gets us the vk_buffer_range() helper but may be useful in
the future.

Reviewed-by: Lionel Landwerlin <lionel.g.landwerlin@intel.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/16607>

2 years agovulkan: Add a base struct for buffers
Jason Ekstrand [Thu, 19 May 2022 13:41:21 +0000 (08:41 -0500)]
vulkan: Add a base struct for buffers

Reviewed-by: Alyssa Rosenzweig <alyssa.rosenzweig@collabora.com>
Reviewed-by: Lionel Landwerlin <lionel.g.landwerlin@intel.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/16607>

2 years agod3d12: Initialize d3d12_video_encoder_bitstream member m_uiOffset.
Vinson Lee [Tue, 24 May 2022 00:02:20 +0000 (17:02 -0700)]
d3d12: Initialize d3d12_video_encoder_bitstream member m_uiOffset.

Fix defect reported by Coverity Scan.

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

Fixes: b171a6baa21 ("d3d12: Add video encode implementation of pipe_video_codec")
Signed-off-by: Vinson Lee <vlee@freedesktop.org>
Reviewed-by: Sil Vilerino <sivileri@microsoft.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/16682>

2 years agointel: Only set VectorMaskEnable when needed
Jason Ekstrand [Fri, 7 Jun 2019 23:17:36 +0000 (18:17 -0500)]
intel: Only set VectorMaskEnable when needed

For cases with lots of very small primitives, this may improve
performance because we're not executing those dead channels all the
time.

Shader-db reports no instruction or cycle-count changes.  However, by
hacking up the driver to report when this optimization triggers, it
appears to affect about 10% of shader-db.

v2 (Kenneth Graunke): Always enable VMask prior to XeHP for now,
because using VMask on those platforms allows us to perform the
eliminate_find_live_channel() optimization.  However, XeHP doesn't
seem to have packed fragment shader dispatch, so we lose that
optimization regardless, and there's no reason not to avoid vmask.

Reviewed-by: Kenneth Graunke <kenneth@whitecape.org>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/1054>

2 years agoegl: Fix DETECT_OS macro usage
Erico Nunes [Fri, 27 May 2022 18:54:40 +0000 (20:54 +0200)]
egl: Fix DETECT_OS macro usage

As described in src/util/detect_os.h, the DETECT_OS macros are always
defined to a 0 or 1 value, and they should be used with #if rather
than #ifdef.
Commit 54b7227f158 accidentally disabled those extensions on all
platforms, so enable them again.

Fixes: 54b7227f158 ("egl/wgl: On win32, there is no support for EGL_EXT_device and EGL_EXT_platform_device")

Signed-off-by: Erico Nunes <nunes.erico@gmail.com>
Reviewed-by: Jesse Natalie <jenatali@microsoft.com>
Acked-by: Yonggang Luo <luoyonggang@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/16751>

2 years agoanv: Don't disable the fragment shader if XFB is enabled
Jason Ekstrand [Fri, 13 May 2022 22:09:52 +0000 (17:09 -0500)]
anv: Don't disable the fragment shader if XFB is enabled

It turns out that we need a fragment shader for streamout.  Whh?  From
Lionel's reading of simulator sources, it seems the streamout unit is
looking at enabled next stages.  It'll generate output to the clipper in
the following cases :

 - 3DSTATE_STREAMOUT::ForceRendering = ON
 - PS enabled
 - Stencil test enabled
 - depth test enabled
 - depth write enabled
 - some other depth/hiz clear condition

Forcing rendering without a PS seems like a recipe for hangs so it's
probably better to just enable the PS in this case.

Fixes: 36ee2fd61c8f ("anv: Implement the basic form of VK_EXT_transform_feedback")
Reviewed-by: Lionel Landwerlin <lionel.g.landwerlin@intel.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/16506>

2 years agoanv: Handle the null FS optimization after compiling shaders
Jason Ekstrand [Fri, 13 May 2022 22:06:50 +0000 (17:06 -0500)]
anv: Handle the null FS optimization after compiling shaders

Actually compile and cache the no-op fragment shader but remove it from
the pipeline if we determine it's a no-op.  This way we always have it
even if it's not strictly needed.

Fixes: 36ee2fd61c8f ("anv: Implement the basic form of VK_EXT_transform_feedback")
Reviewed-by: Lionel Landwerlin <lionel.g.landwerlin@intel.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/16506>

2 years agoanv: Drop alpha_to_coverage from the NULL FS optimization
Jason Ekstrand [Fri, 13 May 2022 22:01:06 +0000 (17:01 -0500)]
anv: Drop alpha_to_coverage from the NULL FS optimization

Starting with Ivy Bridge, we implement alpha-to-coverage by writting
gl_SampleMask with a pattern based on alpha.  This will show up in
wm_prog_data::uses_omask so we don't need to look at the key.

Fixes: 36ee2fd61c8f ("anv: Implement the basic form of VK_EXT_transform_feedback")
Reviewed-by: Lionel Landwerlin <lionel.g.landwerlin@intel.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/16506>

2 years agointel/fs: Copy color_outputs_valid into wm_prog_data
Jason Ekstrand [Fri, 13 May 2022 21:54:26 +0000 (16:54 -0500)]
intel/fs: Copy color_outputs_valid into wm_prog_data

Fixes: 36ee2fd61c8f ("anv: Implement the basic form of VK_EXT_transform_feedback")
Reviewed-by: Lionel Landwerlin <lionel.g.landwerlin@intel.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/16506>

2 years agointel/fs: Drop fs_visitor::emit_alpha_to_coverage_workaround()
Jason Ekstrand [Fri, 13 May 2022 21:47:35 +0000 (16:47 -0500)]
intel/fs: Drop fs_visitor::emit_alpha_to_coverage_workaround()

It no longer exists.

Reviewed-by: Lionel Landwerlin <lionel.g.landwerlin@intel.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/16506>

2 years agovtn: assert that composite members have the same bit size as the result
Mike Blumenkrantz [Sat, 21 May 2022 22:53:26 +0000 (18:53 -0400)]
vtn: assert that composite members have the same bit size as the result

Reviewed-by: Jason Ekstrand <jason.ekstrand@collabora.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/16667>

2 years agovtn: assert that vector shuffle indices are in-bounds
Mike Blumenkrantz [Sat, 21 May 2022 22:53:07 +0000 (18:53 -0400)]
vtn: assert that vector shuffle indices are in-bounds

Reviewed-by: Jason Ekstrand <jason.ekstrand@collabora.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/16667>

2 years agopan/bi: Test CMP result_type optimization
Alyssa Rosenzweig [Thu, 6 Jan 2022 21:43:07 +0000 (16:43 -0500)]
pan/bi: Test CMP result_type optimization

Add unit tests ensuring the optimization applies in all the cases we care about,
as functional integration tests (CTS and Piglit) won't test this. Also add unit
tests for a few cases where we specifically cannot fuse, in case these cases are
missed by the tests.

Signed-off-by: Alyssa Rosenzweig <alyssa@collabora.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/16725>

2 years agopan/bi: Fuse result types
Alyssa Rosenzweig [Thu, 6 Jan 2022 22:12:56 +0000 (17:12 -0500)]
pan/bi: Fuse result types

In NIR, comparison instructions always produce 0/~0 results. For other result
types, a separate b2f32 or b2i32 instruction is used to transform the result.
However, Mali's comparison instructions have modifiers for these alternate
result types, so we can implement expressions like int(a < b) and float(a ==
b) in single instruction. Add a peephole optimization to fuse comparisons
with result type transformations.

Results on Mali-G52:

total instructions in shared programs: 2439696 -> 2434339 (-0.22%)
instructions in affected programs: 418703 -> 413346 (-1.28%)
helped: 1630
HURT: 0
helped stats (abs) min: 1.0 max: 28.0 x̄: 3.29 x̃: 2
helped stats (rel) min: 0.11% max: 19.35% x̄: 1.64% x̃: 1.39%
95% mean confidence interval for instructions value: -3.44 -3.13
95% mean confidence interval for instructions %-change: -1.72% -1.56%
Instructions are helped.

total tuples in shared programs: 1946581 -> 1943005 (-0.18%)
tuples in affected programs: 251742 -> 248166 (-1.42%)
helped: 1113
HURT: 11
helped stats (abs) min: 1.0 max: 32.0 x̄: 3.23 x̃: 2
helped stats (rel) min: 0.17% max: 15.38% x̄: 1.80% x̃: 1.38%
HURT stats (abs)   min: 1.0 max: 2.0 x̄: 1.45 x̃: 1
HURT stats (rel)   min: 0.21% max: 3.12% x̄: 1.23% x̃: 0.89%
95% mean confidence interval for tuples value: -3.35 -3.01
95% mean confidence interval for tuples %-change: -1.88% -1.66%
Tuples are helped.

total clauses in shared programs: 357791 -> 357349 (-0.12%)
clauses in affected programs: 15879 -> 15437 (-2.78%)
helped: 371
HURT: 3
helped stats (abs) min: 1.0 max: 8.0 x̄: 1.20 x̃: 1
helped stats (rel) min: 0.80% max: 33.33% x̄: 3.85% x̃: 2.17%
HURT stats (abs)   min: 1.0 max: 1.0 x̄: 1.00 x̃: 1
HURT stats (rel)   min: 2.94% max: 5.26% x̄: 4.49% x̃: 5.26%
95% mean confidence interval for clauses value: -1.27 -1.09
95% mean confidence interval for clauses %-change: -4.21% -3.36%
Clauses are helped.

total cycles in shared programs: 167922.04 -> 167810.71 (-0.07%)
cycles in affected programs: 6772.08 -> 6660.75 (-1.64%)
helped: 655
HURT: 12
helped stats (abs) min: 0.041665999999999315 max: 1.3333319999999986 x̄: 0.17 x̃: 0
helped stats (rel) min: 0.18% max: 20.00% x̄: 2.02% x̃: 1.60%
HURT stats (abs)   min: 0.041665999999999315 max: 0.125 x̄: 0.05 x̃: 0
HURT stats (rel)   min: 0.21% max: 3.80% x̄: 1.23% x̃: 0.88%
95% mean confidence interval for cycles value: -0.18 -0.16
95% mean confidence interval for cycles %-change: -2.10% -1.81%
Cycles are helped.

total arith in shared programs: 74393.17 -> 74243.08 (-0.20%)
arith in affected programs: 10157.50 -> 10007.42 (-1.48%)
helped: 1129
HURT: 12
helped stats (abs) min: 0.041665999999999315 max: 1.3333319999999986 x̄: 0.13 x̃: 0
helped stats (rel) min: 0.18% max: 50.00% x̄: 1.94% x̃: 1.40%
HURT stats (abs)   min: 0.041665999999999315 max: 0.125 x̄: 0.05 x̃: 0
HURT stats (rel)   min: 0.21% max: 3.80% x̄: 1.23% x̃: 0.88%
95% mean confidence interval for arith value: -0.14 -0.12
95% mean confidence interval for arith %-change: -2.06% -1.76%
Arith are helped.

total quadwords in shared programs: 1692019 -> 1688164 (-0.23%)
quadwords in affected programs: 216669 -> 212814 (-1.78%)
helped: 1148
HURT: 11
helped stats (abs) min: 1.0 max: 41.0 x̄: 3.37 x̃: 2
helped stats (rel) min: 0.17% max: 17.24% x̄: 2.25% x̃: 1.73%
HURT stats (abs)   min: 1.0 max: 2.0 x̄: 1.09 x̃: 1
HURT stats (rel)   min: 0.60% max: 1.32% x̄: 0.85% x̃: 0.83%
95% mean confidence interval for quadwords value: -3.49 -3.16
95% mean confidence interval for quadwords %-change: -2.33% -2.10%
Quadwords are helped.

Signed-off-by: Alyssa Rosenzweig <alyssa@collabora.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/16725>

2 years agonir: Keep track of cross-invocation mesh shader output access.
Timur Kristóf [Thu, 26 May 2022 17:03:19 +0000 (19:03 +0200)]
nir: Keep track of cross-invocation mesh shader output access.

On some implementations eg. AMD RDNA2 the driver can generate a
more optimal code path knowing whether outputs are indexed using the
local invocation index or not.

Signed-off-by: Timur Kristóf <timur.kristof@gmail.com>
Reviewed-by: Marcin Ślusarz <marcin.slusarz@intel.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/16736>

2 years agoradv/ci: skip dEQP-VK.fragment_operations.transient_attachment_bit
Tatsuyuki Ishi [Thu, 26 May 2022 10:39:03 +0000 (19:39 +0900)]
radv/ci: skip dEQP-VK.fragment_operations.transient_attachment_bit

Until the CTS bug is fixed.

Reviewed-by: Samuel Pitoiset <samuel.pitoiset@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/16663>

2 years agoradv: Fix redundant subpass barriers due to erroneous comparison
Tatsuyuki Ishi [Mon, 23 May 2022 10:14:25 +0000 (19:14 +0900)]
radv: Fix redundant subpass barriers due to erroneous comparison

We accidentally compared the stencil layout to the color/depth layout.

Reviewed-By: Mike Blumenkrantz <michael.blumenkrantz@gmail.com>
Reviewed-by: Samuel Pitoiset <samuel.pitoiset@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/16663>

2 years agovulkan/wsi: fix extra free if buffer_blit_queue
Yogesh Mohan Marimuthu [Sat, 21 May 2022 17:34:21 +0000 (23:04 +0530)]
vulkan/wsi: fix extra free if buffer_blit_queue

In wsi_destroy_image(), if buffer_blit_queue then
do not call extra free. This will fix assert in
debug release and accessing out of allocated memory.

Fixes:
  7bd5aa111cf
  ("vulkan/wsi: add a private transfer pool to exec the DRI_PRIME blit")

Signed-off-by: Yogesh Mohan Marimuthu <yogesh.mohanmarimuthu@amd.com>
Reviewed-by: Pierre-Eric Pelloux-Prayer <pierre-eric.pelloux-prayer@amd.com>
Reviewed-by: Samuel Pitoiset's avatarSamuel Pitoiset <samuel.pitoiset@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/16649>

2 years agoradv: Add mesh and task stage names to pipeline executable properties.
Timur Kristóf [Mon, 23 May 2022 15:00:44 +0000 (17:00 +0200)]
radv: Add mesh and task stage names to pipeline executable properties.

Signed-off-by: Timur Kristóf <timur.kristof@gmail.com>
Reviewed-by: Samuel Pitoiset <samuel.pitoiset@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/16712>

2 years agonir: Add common task shader lowering to make the backend's job easier.
Timur Kristóf [Thu, 26 May 2022 11:20:36 +0000 (13:20 +0200)]
nir: Add common task shader lowering to make the backend's job easier.

1. Lowers NV_mesh_shader TASK_COUNT output to launch_mesh_workgroups.

2. Removes all code after launch_mesh_workgroups, enforcing the
fact that it's a terminating instruction.

3. Ensures that task shaders always have at least one
launch_mesh_workgroups instruction, so the backend doesn't
need to implement a special case when the shader doesn't have it.

4. Optionally, implements task_payload using shared memory when
task_payload atomics are used.
This is useful when the backend is otherwise not capable of
handling the same atomic features as it can for shared memory.
If this is used, the backend only has to implement the basic
load/store operations for task_payload.

Signed-off-by: Timur Kristóf <timur.kristof@gmail.com>
Reviewed-by: Marcin Ślusarz <marcin.slusarz@intel.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/16720>

2 years agonir: Add new launch_mesh_workgroups intrinsic.
Timur Kristóf [Thu, 26 May 2022 11:24:58 +0000 (13:24 +0200)]
nir: Add new launch_mesh_workgroups intrinsic.

The new intrinsic launches mesh shader workgroups
from a task shader, with explicit task_payload.

Signed-off-by: Timur Kristóf <timur.kristof@gmail.com>
Reviewed-by: Marcin Ślusarz <marcin.slusarz@intel.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/16720>

2 years agoci/panfrost: add RoR and Nheko traces
David Heidelberg [Wed, 18 May 2022 19:01:15 +0000 (21:01 +0200)]
ci/panfrost: add RoR and Nheko traces

Signed-off-by: David Heidelberg <david.heidelberg@collabora.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/16633>

2 years agoci/virgl: traces: add RoR and Nheko traces
David Heidelberg [Thu, 19 May 2022 17:57:40 +0000 (19:57 +0200)]
ci/virgl: traces: add RoR and Nheko traces

Signed-off-by: David Heidelberg <david.heidelberg@collabora.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/16633>

2 years agoci/radeonsi: add RoR and Nheko traces
David Heidelberg [Fri, 20 May 2022 11:44:17 +0000 (13:44 +0200)]
ci/radeonsi: add RoR and Nheko traces

Signed-off-by: David Heidelberg <david.heidelberg@collabora.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/16633>

2 years agoci/llvmpipe: add RoR and Nheko traces
David Heidelberg [Fri, 20 May 2022 11:43:27 +0000 (13:43 +0200)]
ci/llvmpipe: add RoR and Nheko traces

Signed-off-by: David Heidelberg <david.heidelberg@collabora.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/16633>

2 years agoci/crocus: add RoR and Nheko traces
David Heidelberg [Fri, 20 May 2022 11:42:23 +0000 (13:42 +0200)]
ci/crocus: add RoR and Nheko traces

Signed-off-by: David Heidelberg <david.heidelberg@collabora.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/16633>

2 years agoci/intel: add RoR and Nheko traces and reenable most of Valve traces
David Heidelberg [Tue, 17 May 2022 13:40:13 +0000 (15:40 +0200)]
ci/intel: add RoR and Nheko traces and reenable most of Valve traces

Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/16633>

2 years agoci/i915: add entries for RoR and Nheko traces
David Heidelberg [Wed, 18 May 2022 19:03:09 +0000 (21:03 +0200)]
ci/i915: add entries for RoR and Nheko traces

Signed-off-by: David Heidelberg <david.heidelberg@collabora.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/16633>

2 years agoci/freedreno: enable ROR and Nheko traces
David Heidelberg [Tue, 17 May 2022 11:46:25 +0000 (13:46 +0200)]
ci/freedreno: enable ROR and Nheko traces

Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/16633>

2 years agoci/virgl: fix checksum for valve traces which run on iris
David Heidelberg [Thu, 19 May 2022 18:45:33 +0000 (20:45 +0200)]
ci/virgl: fix checksum for valve traces which run on iris

Signed-off-by: David Heidelberg <david.heidelberg@collabora.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/16633>

2 years agomesa: Avoid temp images in _mesa_texstore_*_dxt* for stride = 0
Kenneth Graunke [Mon, 2 May 2022 20:10:07 +0000 (13:10 -0700)]
mesa: Avoid temp images in _mesa_texstore_*_dxt* for stride = 0

We're getting a source stride of 0 here sometimes, which I believe means
to just use the natural stride, which is what we wanted anyway.  No need
to fall back to a temporary image in that case.

Reviewed-by: Marek Olšák <marek.olsak@amd.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/16631>

2 years agomesa: Require temp images in _mesa_texstore_*_dxt* with SkipImages
Kenneth Graunke [Fri, 20 May 2022 09:36:34 +0000 (02:36 -0700)]
mesa: Require temp images in _mesa_texstore_*_dxt* with SkipImages

The S3TC compressor code doesn't support this, but our lack of checking
was being papered over by the stride checks being overly picky.  This
is needed to prevent regressions in the next commit.

Reviewed-by: Marek Olšák <marek.olsak@amd.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/16631>

2 years agomesa: Avoid temp images in _mesa_texstore_rgb_dxt1 for GL_RGBA source
Kenneth Graunke [Mon, 2 May 2022 19:59:12 +0000 (12:59 -0700)]
mesa: Avoid temp images in _mesa_texstore_rgb_dxt1 for GL_RGBA source

The compressor can handle 3 or 4-component sources, so allow a GL_RGBA
source and just pass that along with the correct number of components.

Reviewed-by: Marek Olšák <marek.olsak@amd.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/16631>

2 years agomesa: Split tx_compress_dxtn into per-format functions
Kenneth Graunke [Mon, 2 May 2022 19:06:38 +0000 (12:06 -0700)]
mesa: Split tx_compress_dxtn into per-format functions

This avoids an unnecessary switch statement in many cases.

Reviewed-by: Marek Olšák <marek.olsak@amd.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/16631>

2 years agost/mesa: remove unused GENERIC input and output from the clear VS
Marek Olšák [Wed, 25 May 2022 23:42:56 +0000 (19:42 -0400)]
st/mesa: remove unused GENERIC input and output from the clear VS

Reviewed-by: Charmaine Lee <charmainel@vmware.com>
Tested-by: Pavel Ondračka <pavel.ondracka@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/16711>

2 years agor300,r600,svga: save the FS constant buffer for u_blitter to fix a regression
Marek Olšák [Wed, 25 May 2022 16:22:45 +0000 (12:22 -0400)]
r300,r600,svga: save the FS constant buffer for u_blitter to fix a regression

Fixes: 773a23eb6da - gallium/u_blitter: clear color buffers using color from a constant buffer
Closes: https://gitlab.freedesktop.org/mesa/mesa/-/issues/6548
Closes: https://gitlab.freedesktop.org/mesa/mesa/-/issues/6539

Tested-by: Gert Wollny <gert.wollny@collabora.com>
Reviewed-by: Charmaine Lee <charmainel@vmware.com>
Tested-by: Pavel Ondračka <pavel.ondracka@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/16711>

2 years agoutil: Fixes typo in test_util_get_process_exec_path
Yonggang Luo [Wed, 30 Mar 2022 18:19:40 +0000 (02:19 +0800)]
util: Fixes typo in test_util_get_process_exec_path

Signed-off-by: Yonggang Luo <luoyonggang@gmail.com>
Reviewed-by: Jesse Natalie <jenatali@microsoft.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/16723>

2 years agoutil: Fixes test_util_get_process_exec_path on windows host with msys2/mingw
Yonggang Luo [Wed, 30 Mar 2022 18:19:21 +0000 (02:19 +0800)]
util: Fixes test_util_get_process_exec_path on windows host with msys2/mingw

```
stderr:
Error: Test 'test_util_get_process_exec_path' failed:
        Expected="C:/work/xemu/xemu-opengl/mesa/build/windows-mingw64/src/util/process_test.exe", Actual="C:\work\xemu\xemu-opengl\mesa\build\windows-mingw64\src\util\process_test.exe"
――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――
```

Signed-off-by: Yonggang Luo <luoyonggang@gmail.com>
Reviewed-by: Jesse Natalie <jenatali@microsoft.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/16723>

2 years agov3dv/format: Add support for VK_KHR_format_feature_flags2
Alejandro Piñeiro [Tue, 10 May 2022 20:01:51 +0000 (22:01 +0200)]
v3dv/format: Add support for VK_KHR_format_feature_flags2

VK_KHR_format_feature_flags2 is mostly about define a new 64-bit
VkFormatFeatureFlagBits2KHR format feature flag type, as 29 bits of
the 32-bit VkFormatFeatureFlagBits are already in use.

So all the bits from VkFormatFeatureFlagBits are being replicated, and
most of the work here consist on switch to the new flags.

From the new (not replicated from VkFormatFeatureFlagBits) flag bits,
we don't support
VK_FORMAT_FEATURE_2_STORAGE_READ_WITHOUT_FORMAT_BIT_KHR or
VK_FORMAT_FEATURE_2_STORAGE_WRITE_WITHOUT_FORMAT_BIT_KHR, as right now
we require the format on the shader for doing the read and stores.

We use now VK_FORMAT_FEATURE_2_SAMPLED_IMAGE_DEPTH_COMPARISON_BIT_KHR,
but only applying it for depth formats.

Reviewed-by: Iago Toral Quiroga <itoral@igalia.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/16718>

2 years agov3dv/format: no need for GetPhysicalDeviceFormatProperties
Alejandro Piñeiro [Tue, 17 May 2022 23:31:39 +0000 (01:31 +0200)]
v3dv/format: no need for GetPhysicalDeviceFormatProperties

The common Mesa Vulkan framework already provides a common
implementation based on GetPhysicalDeviceFormatProperties2.

Reviewed-by: Iago Toral Quiroga <itoral@igalia.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/16718>

2 years agozink: update radv piglit fails
Mike Blumenkrantz [Thu, 26 May 2022 18:40:27 +0000 (14:40 -0400)]
zink: update radv piglit fails

Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/16727>

2 years agopanfrost: Use tiled AFBC textures
Alyssa Rosenzweig [Thu, 5 May 2022 15:05:32 +0000 (11:05 -0400)]
panfrost: Use tiled AFBC textures

On GPUs that support AFBC with tiled headers, try to use tiled headers instead
of linear headers. This should be a bit more efficient for the caches.
Additionally, on Mali, tiled headers are tied to solid colour blocks, so this
has the effect of enabling AFBC with solid colour blocks where supported.

Unfortunately, results are disappointing. Mali-G52:

-btexture from 856fps to 859fps
-bdesktop from 292fps to 294fps

Signed-off-by: Alyssa Rosenzweig <alyssa@collabora.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/16697>

2 years agopanfrost: Advertise 16x16 tiled AFBC
Alyssa Rosenzweig [Wed, 4 May 2022 20:55:52 +0000 (16:55 -0400)]
panfrost: Advertise 16x16 tiled AFBC

Signed-off-by: Alyssa Rosenzweig <alyssa@collabora.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/16697>

2 years agopanfrost: Gate tiled AFBC on GPUs that support it
Alyssa Rosenzweig [Wed, 4 May 2022 21:11:59 +0000 (17:11 -0400)]
panfrost: Gate tiled AFBC on GPUs that support it

Introduced with v7.

Signed-off-by: Alyssa Rosenzweig <alyssa@collabora.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/16697>

2 years agopanfrost: Add helper checking tiled AFBC support
Alyssa Rosenzweig [Tue, 24 May 2022 20:21:12 +0000 (16:21 -0400)]
panfrost: Add helper checking tiled AFBC support

Tiled AFBC support was introduced with v7. Add a helper encoding this fact.

Signed-off-by: Alyssa Rosenzweig <alyssa@collabora.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/16697>

2 years agopanfrost: Handle AFBC Tiled
Alyssa Rosenzweig [Thu, 7 Apr 2022 21:04:58 +0000 (17:04 -0400)]
panfrost: Handle AFBC Tiled

Signed-off-by: Alyssa Rosenzweig <alyssa@collabora.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/16697>

2 years agopanfrost: Put comment in correct #ifdef
Alyssa Rosenzweig [Thu, 7 Apr 2022 20:06:54 +0000 (16:06 -0400)]
panfrost: Put comment in correct #ifdef

Minor fix to make the code less confusing.

Signed-off-by: Alyssa Rosenzweig <alyssa@collabora.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/16697>

2 years agopanfrost: Fix AFBC flags on v6
Alyssa Rosenzweig [Thu, 7 Apr 2022 19:59:54 +0000 (15:59 -0400)]
panfrost: Fix AFBC flags on v6

Tiled headers and bounds checking were introduced with v7. The flags don't exist
on v6. Fix the XML accordingly so we don't accidentally use features too new for
the hardware.

Signed-off-by: Alyssa Rosenzweig <alyssa@collabora.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/16697>

2 years agopanfrost: Add 1x1 layout unit tests
Alyssa Rosenzweig [Wed, 4 May 2022 15:22:43 +0000 (11:22 -0400)]
panfrost: Add 1x1 layout unit tests

These check the alignments are correct. Of course, ideally these cases aren't
hit in practice, since it's a waste of memory.

Signed-off-by: Alyssa Rosenzweig <alyssa@collabora.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/16697>

2 years agopanfrost: Add a tiled 16x16 layout unit test
Alyssa Rosenzweig [Wed, 4 May 2022 15:16:48 +0000 (11:16 -0400)]
panfrost: Add a tiled 16x16 layout unit test

To exercise the layout code introduced in this series.

Signed-off-by: Alyssa Rosenzweig <alyssa@collabora.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/16697>

2 years agopanfrost: Calculate header_size based on row_stride
Alyssa Rosenzweig [Wed, 4 May 2022 15:16:11 +0000 (11:16 -0400)]
panfrost: Calculate header_size based on row_stride

The header size is the header stride times the number of rows in the header
(number of tiles of superblocks). We already calculate the header stride, so
eliminate the separate header size calculation.

Delete the old header size calculation. It has no notion of wide blocks, let
alone tiled AFBC headers.

Signed-off-by: Alyssa Rosenzweig <alyssa@collabora.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/16697>

2 years agopanfrost: Add 3D texture layout unit test
Alyssa Rosenzweig [Thu, 5 May 2022 14:29:37 +0000 (10:29 -0400)]
panfrost: Add 3D texture layout unit test

3D AFBC is pretty subtle, let's make sure we have adequate unit test coverage.

Signed-off-by: Alyssa Rosenzweig <alyssa@collabora.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/16697>

2 years agopanfrost: Add AFBC stride unit tests
Alyssa Rosenzweig [Wed, 4 May 2022 14:46:23 +0000 (10:46 -0400)]
panfrost: Add AFBC stride unit tests

Demonstrating correctness of the low level calculations.

Signed-off-by: Alyssa Rosenzweig <alyssa@collabora.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/16697>

2 years agopanfrost: Align layouts to tiles of superblocks
Alyssa Rosenzweig [Wed, 4 May 2022 14:14:41 +0000 (10:14 -0400)]
panfrost: Align layouts to tiles of superblocks

Required to satisfy the alignment constraints on tiled AFBC.

Signed-off-by: Alyssa Rosenzweig <alyssa@collabora.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/16697>

2 years agopanfrost: Support tiled AFBC in stride helpers
Alyssa Rosenzweig [Wed, 4 May 2022 14:01:32 +0000 (10:01 -0400)]
panfrost: Support tiled AFBC in stride helpers

Part 1 of tiled AFBC. This requires modifier information.

Signed-off-by: Alyssa Rosenzweig <alyssa@collabora.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/16697>

2 years agopanfrost: Add pan_afbc_tile_size helper
Alyssa Rosenzweig [Wed, 4 May 2022 13:59:35 +0000 (09:59 -0400)]
panfrost: Add pan_afbc_tile_size helper

To unify calculations with linear and tiled AFBC formats.

Signed-off-by: Alyssa Rosenzweig <alyssa@collabora.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/16697>

2 years agopanfrost: Fix is_wide return type
Alyssa Rosenzweig [Wed, 4 May 2022 13:38:20 +0000 (09:38 -0400)]
panfrost: Fix is_wide return type

By inspection.

Fixes: e4ee2c213a0 ("panfrost: Extract panfrost_afbc_is_wide helper")
Signed-off-by: Alyssa Rosenzweig <alyssa@collabora.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/16697>

2 years agopanfrost: Extract pan_afbc_row_stride helper
Alyssa Rosenzweig [Wed, 4 May 2022 13:35:22 +0000 (09:35 -0400)]
panfrost: Extract pan_afbc_row_stride helper

Extract a helper for calculating AFBC strides. This is used in two places in
pan_layout. It will need extension for tiled AFBC, and the extended version
could benefit from unit testing.

Signed-off-by: Alyssa Rosenzweig <alyssa@collabora.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/16697>

2 years agopanfrost: Extract afbc_stride_blocks helper
Alyssa Rosenzweig [Wed, 4 May 2022 12:14:37 +0000 (08:14 -0400)]
panfrost: Extract afbc_stride_blocks helper

Let's keep all the AFBC computations inside the layout code, to keep pan_cs
dumb. This helper will need some extension for tiled AFBC.

Signed-off-by: Alyssa Rosenzweig <alyssa@collabora.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/16697>

2 years agopanfrost: Fix crash with GALLIUM_HUD
Alyssa Rosenzweig [Fri, 20 May 2022 20:30:46 +0000 (16:30 -0400)]
panfrost: Fix crash with GALLIUM_HUD

Due to the order of binding shaders, GALLIUM_HUD triggered a NULL pointer
dereference in the new shader variants code.

Fixes: 0fcddd4d2c4 ("pan/bi: Rework varying linking on Valhall")
Signed-off-by: Alyssa Rosenzweig <alyssa@collabora.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/16707>

2 years agoradeonsi: Set display_remote for non-refernced frames
SureshGuttula [Thu, 12 May 2022 03:07:19 +0000 (08:37 +0530)]
radeonsi: Set display_remote for non-refernced frames

When we do SVC temporal encoding, we see output bitsream is not proper. To fix
this , incase of SVC passing session init varaible display_remote as enable.

Signed-off-by: SureshGuttula <suresh.guttula@amd.com>
Reviewed-by: Thong Thai <thong.thai@amd.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/16468>

2 years agoir3: handle gl_Layer and gl_ViewportIndex when there is TES + GS
Danylo Piliaiev [Tue, 24 May 2022 17:31:44 +0000 (20:31 +0300)]
ir3: handle gl_Layer and gl_ViewportIndex when there is TES + GS

Fixes CTS tests:
 KHR-GL46.shader_viewport_layer_array.ShaderViewportIndexTestCase
 KHR-GL46.shader_viewport_layer_array.ShaderLayerFramebufferLayeredTestCase
 KHR-GL46.shader_viewport_layer_array.ShaderLayerFramebufferNonLayeredTestCase

Closes: https://gitlab.freedesktop.org/mesa/mesa/-/issues/6497

Signed-off-by: Danylo Piliaiev <dpiliaiev@igalia.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/16696>

2 years agoradv: fix writing buffer markers with non-zero memory offset
Samuel Pitoiset [Tue, 24 May 2022 21:29:15 +0000 (23:29 +0200)]
radv: fix writing buffer markers with non-zero memory offset

Found by insepction.

Cc: mesa-stable
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/16698>

2 years agoradv: use pipeline->slab_bo in more places
Samuel Pitoiset [Tue, 24 May 2022 08:31:00 +0000 (10:31 +0200)]
radv: use pipeline->slab_bo in more places

Signed-off-by: Samuel Pitoiset <samuel.pitoiset@gmail.com>
Reviewed-by: Dave Airlie <airlied@redhat.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/16687>

2 years agoradv: disable attachementFragmentShadingRate on GFX11
Samuel Pitoiset [Tue, 10 May 2022 13:05:18 +0000 (15:05 +0200)]
radv: disable attachementFragmentShadingRate on GFX11

The VRS image no longer uses HTILE like on GFX10.3 and I don't know
yet how to program it.

Signed-off-by: Samuel Pitoiset <samuel.pitoiset@gmail.com>
Reviewed-by: Timur Kristóf <timur.kristof@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/16557>

2 years agoradv: disable VK_AMD_shader_fragment_mask on GFX11
Samuel Pitoiset [Tue, 10 May 2022 11:51:30 +0000 (13:51 +0200)]
radv: disable VK_AMD_shader_fragment_mask on GFX11

No FMASK on GFX11 which means I don't think we can expose this ext.

Signed-off-by: Samuel Pitoiset <samuel.pitoiset@gmail.com>
Reviewed-by: Timur Kristóf <timur.kristof@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/16557>

2 years agoradv: configure DB_Z_INFO.NUM_SAMPLES correctly on GFX11
Samuel Pitoiset [Tue, 17 May 2022 14:28:44 +0000 (16:28 +0200)]
radv: configure DB_Z_INFO.NUM_SAMPLES correctly on GFX11

It affects VRS and occlusion queries.

Signed-off-by: Samuel Pitoiset <samuel.pitoiset@gmail.com>
Reviewed-by: Timur Kristóf <timur.kristof@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/16557>

2 years agoradv: fix VK_BLEND_FACTOR_CONSTANT_COLOR translation on GFX11
Samuel Pitoiset [Tue, 17 May 2022 14:02:12 +0000 (16:02 +0200)]
radv: fix VK_BLEND_FACTOR_CONSTANT_COLOR translation on GFX11

This one was missing.

Signed-off-by: Samuel Pitoiset <samuel.pitoiset@gmail.com>
Reviewed-by: Timur Kristóf <timur.kristof@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/16557>

2 years agoradv: fix configuring COLOR_INVALID on GFX11
Samuel Pitoiset [Tue, 17 May 2022 13:59:03 +0000 (15:59 +0200)]
radv: fix configuring COLOR_INVALID on GFX11

It's a different bitfield but this one was missing.

Signed-off-by: Samuel Pitoiset <samuel.pitoiset@gmail.com>
Reviewed-by: Timur Kristóf <timur.kristof@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/16557>

2 years agoradv: report adjusted LDS size for fragment shaders on GFX11
Samuel Pitoiset [Tue, 17 May 2022 12:19:15 +0000 (14:19 +0200)]
radv: report adjusted LDS size for fragment shaders on GFX11

Signed-off-by: Samuel Pitoiset <samuel.pitoiset@gmail.com>
Reviewed-by: Timur Kristóf <timur.kristof@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/16557>

2 years agoradv: use the fragment resolve path by default on GFX11
Samuel Pitoiset [Tue, 17 May 2022 11:28:02 +0000 (13:28 +0200)]
radv: use the fragment resolve path by default on GFX11

GFX11 doesn't support CB_RESOLVE which means it doesn't support the
hardware resolve path. If necessary (for arrays or integer formats)
the driver will select the compute path.

No CTS regressions by forcing the fragment resolve path on GFX10.3

Signed-off-by: Samuel Pitoiset <samuel.pitoiset@gmail.com>
Reviewed-by: Timur Kristóf <timur.kristof@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/16557>

2 years agoradv: update VRS rates on GFX11
Samuel Pitoiset [Tue, 10 May 2022 13:02:57 +0000 (15:02 +0200)]
radv: update VRS rates on GFX11

GFX11 uses enum instead of 2-bit integer numbers.

Signed-off-by: Samuel Pitoiset <samuel.pitoiset@gmail.com>
iReviewed-by: Timur Kristóf <timur.kristof@gmail.com>

Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/16557>

2 years agoradv: update framebuffer registers on GFX11
Samuel Pitoiset [Tue, 10 May 2022 09:23:47 +0000 (11:23 +0200)]
radv: update framebuffer registers on GFX11

Signed-off-by: Samuel Pitoiset <samuel.pitoiset@gmail.com>
Reviewed-by: Timur Kristóf <timur.kristof@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/16557>