platform/upstream/mesa.git
2 years agomicrosoft/compiler: Make input_mappings immune to driver_location holes
Boris Brezillon [Thu, 28 Apr 2022 17:27:17 +0000 (10:27 -0700)]
microsoft/compiler: Make input_mappings immune to driver_location holes

Right now, nir_to_dxil() assumes driver_location on inputs will be
contiguous, which is true for GL, and also true for Vulkan shaders
with the current implementation. But we are trying to delegate
the varying linking step to Dozen, and that means the driver will
assign the driver_location field.

For everything except vertex shaders this works fine, because we
are in control of the ID we assign to each variable, and can make
sure no holes exists in this assignment, but vertex inputs expect
the index value (which is directly extracted from the
driver_location field) to match the input index defined at pipeline
creation time. The compiler has a hack to treat Vulkan differently
and extract the index from the var->data.location field instead,
but that's a bit confusing.

Moreover, the input_mappings[] array is already indexed with
the var->data.driver_location field in the input load emission
path, so it makes sense to index it with the same field when
emitting signatures.

Reviewed-by: Jesse Natalie <jenatali@microsoft.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/16221>

2 years agomicrosoft/spirv_to_dxil: Constify the descriptor binding mapping fields
Boris Brezillon [Fri, 29 Apr 2022 13:08:07 +0000 (06:08 -0700)]
microsoft/spirv_to_dxil: Constify the descriptor binding mapping fields

spirv_to_dxil() doesn't modify those, so let's constify them.

Reviewed-by: Jesse Natalie <jenatali@microsoft.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/16221>

2 years agomicrosoft/spirv_to_dxil: Extract NIR passes out of spirv_to_dxil()
Boris Brezillon [Thu, 28 Apr 2022 08:10:54 +0000 (01:10 -0700)]
microsoft/spirv_to_dxil: Extract NIR passes out of spirv_to_dxil()

Extract NIR passes out of spirv_to_dxil() so we can re-use them
without separately and do the varying linking in Dozen. This way
we will also be able to use vk_shader_module_to_nir() which
takes care of the SPIRV -> NIR translation, plus a bunch of
common lowering passes.

Reviewed-by: Jesse Natalie <jenatali@microsoft.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/16221>

2 years agomicrosoft/compiler: Make sure all SV_Position components are written
Boris Brezillon [Tue, 7 Jun 2022 12:49:45 +0000 (05:49 -0700)]
microsoft/compiler: Make sure all SV_Position components are written

Not entirely sure if writing to only some components of
gl_Position/SPIRV-PositionBuiltin from a vertex-processing stage is
allowed, but
https://github.com/dneto0/spirv-samples/blob/main/spvasm/SpvModuleScopeVarParserTest_BuiltinPosition_StorePositionMember_OneAccessChain.spvasm
does exactly that.

Let's make sure all SV_Position components are written, otherwise the
DXIL validator complains.

Reviewed-by: Jesse Natalie <jenatali@microsoft.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/16221>

2 years agomicrosoft/spirv2dxil: Add a debug option
Boris Brezillon [Tue, 7 Jun 2022 08:57:59 +0000 (01:57 -0700)]
microsoft/spirv2dxil: Add a debug option

So we can dump NIR shaders.

Reviewed-by: Jesse Natalie <jenatali@microsoft.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/16221>

2 years agoci/windows: Bump spirv-samples commit-ID
Boris Brezillon [Tue, 7 Jun 2022 10:00:42 +0000 (03:00 -0700)]
ci/windows: Bump spirv-samples commit-ID

We need the fix adding a Block decoration to the BuiltIn struct in
SpvModuleScopeVarParserTest_BuiltinPosition_BuiltIn_Position_Initializer.spvasm.

Reviewed-by: Jesse Natalie <jenatali@microsoft.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/16221>

2 years agogitlab: ask that reporters don't include long logs in descriptions
Rhys Perry [Wed, 26 Jan 2022 14:17:33 +0000 (14:17 +0000)]
gitlab: ask that reporters don't include long logs in descriptions

Signed-off-by: Rhys Perry <pendingchaos02@gmail.com>
Reviewed-by: Timur Kristóf <timur.kristof@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/14733>

2 years agogitlab: ask for useful titles
Rhys Perry [Wed, 26 Jan 2022 14:17:12 +0000 (14:17 +0000)]
gitlab: ask for useful titles

Signed-off-by: Rhys Perry <pendingchaos02@gmail.com>
Reviewed-by: Timur Kristóf <timur.kristof@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/14733>

2 years agoasahi,agx: Don't set PIPE_CAP_POINT_COORD_ORIGIN_UPPER_LEFT
Alyssa Rosenzweig [Sun, 22 May 2022 03:22:27 +0000 (23:22 -0400)]
asahi,agx: Don't set PIPE_CAP_POINT_COORD_ORIGIN_UPPER_LEFT

Tell the state tracker our point coordinates have a lower left origin
instead of an upper left origin, and remove our point coordinate
flipping code. Saves an instruction in any shader that reads
gl_PointCoord.y

Note: the OpenGL blob also emits an "fadd $y', ^y.neg, 1.0" to flip
point coordinates, so this isn't just a Metal weirdness.

Signed-off-by: Alyssa Rosenzweig <alyssa@rosenzweig.io>
Reviewed-by: Erik Faye-Lund <erik.faye-lund@collabora.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/16829>

2 years agomesa,gallium: Make point coord origin a CAP
Alyssa Rosenzweig [Thu, 2 Jun 2022 00:41:58 +0000 (20:41 -0400)]
mesa,gallium: Make point coord origin a CAP

When lower_wpos_pntc is used, the state tracker inserts code to
transform gl_PointCoord.y according to a uniform, to account for
API-requested point coordinate origin and framebuffer orientation. With
the transformation, driver-supplied point coordinates are expected to
have an upper left origin.

If the hardware point coordinate supports (only) a lower left origin,
the backend has to use lower_wpos_pntc and then lower *again* to flip
back. This ends up transforming twice, which is wasteful:

   a = load point coord Y with lower left origin
   a' = 1.0 - a
   a'' = uniform_transform(a')

However, lower_wpos_pntc is quite capable of transforming for a lower
left origin too, it just needs to flip the transformation. Add a CAP
specifying the point coordinate origin convention, rather than assuming
upper-left. This simplifies the Asahi code greatly.

Signed-off-by: Alyssa Rosenzweig <alyssa@rosenzweig.io>
Reviewed-by: Erik Faye-Lund <erik.faye-lund@collabora.com>
Reviewed-by: Marek Olšák <marek.olsak@amd.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/16829>

2 years agopan/perf: Fix performance counters on G57
Alyssa Rosenzweig [Mon, 6 Jun 2022 17:56:50 +0000 (13:56 -0400)]
pan/perf: Fix performance counters on G57

The performance counter layout depends on the number of L2 blocks and the number
of shader cores. It doesn't make a ton of sense to hardcode these into the XML
files. Instead, let's make the coutner offsets in the XML files relative to the
categories (blocks), so we can calculate the offsets of the categories
themselves at runtime based on the computed layout. This fixes performance
counters on Mali-G57 as implemented on MT8192.

There is little code change here, mainly churn from changing the XML definition.
Postprocessing for the XML to make it suitable for Mesa uses Antonio Caggiano's
https://gitlab.freedesktop.org/panfrost/hwc-helper tool.

Signed-off-by: Alyssa Rosenzweig <alyssa@collabora.com>
Reviewed-by: Antonio Caggiano <antonio.caggiano@collabora.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/16803>

2 years agopanfrost: Add panfrost_query_l2_slices helper
Alyssa Rosenzweig [Wed, 25 May 2022 18:34:39 +0000 (14:34 -0400)]
panfrost: Add panfrost_query_l2_slices helper

The number of L2 performance counter blocks equals the number of L2 slices, so
add a query to get this. This information isn't needed by the Mesa driver, so
don't get it in the default device initialization path.

Signed-off-by: Alyssa Rosenzweig <alyssa@collabora.com>
Reviewed-by: Antonio Caggiano <antonio.caggiano@collabora.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/16803>

2 years agopanfrost: Remove is_64b assignments
Alyssa Rosenzweig [Tue, 7 Jun 2022 20:10:43 +0000 (16:10 -0400)]
panfrost: Remove is_64b assignments

These are redundant with GenXML defaults, they're just noise.

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

2 years agopanfrost: Remove redundant first_tag access
Alyssa Rosenzweig [Tue, 7 Jun 2022 20:03:47 +0000 (16:03 -0400)]
panfrost: Remove redundant first_tag access

This already happens in the common prepare_rsd call.

Signed-off-by: Alyssa Rosenzweig <alyssa@collabora.com>
Reviewed-by: Boris Brezillon <boris.brezillon@collabora.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/16916>

2 years agopanfrost: Deduplicate indirect dispatch structs
Alyssa Rosenzweig [Tue, 7 Jun 2022 19:45:56 +0000 (15:45 -0400)]
panfrost: Deduplicate indirect dispatch structs

The input is specified in two identical structs, tear that apart.

Signed-off-by: Alyssa Rosenzweig <alyssa@collabora.com>
Reviewed-by: Boris Brezillon <boris.brezillon@collabora.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/16916>

2 years agopanvk: Use push constants for copy shaders
Alyssa Rosenzweig [Tue, 7 Jun 2022 19:17:02 +0000 (15:17 -0400)]
panvk: Use push constants for copy shaders

Signed-off-by: Alyssa Rosenzweig <alyssa@collabora.com>
Reviewed-by: Boris Brezillon <boris.brezillon@collabora.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/16916>

2 years agopanvk: Use push constants for clear
Alyssa Rosenzweig [Tue, 7 Jun 2022 19:16:51 +0000 (15:16 -0400)]
panvk: Use push constants for clear

Signed-off-by: Alyssa Rosenzweig <alyssa@collabora.com>
Reviewed-by: Boris Brezillon <boris.brezillon@collabora.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/16916>

2 years agopanfrost: Use push constants for indirect draws
Alyssa Rosenzweig [Tue, 7 Jun 2022 19:16:41 +0000 (15:16 -0400)]
panfrost: Use push constants for indirect draws

Signed-off-by: Alyssa Rosenzweig <alyssa@collabora.com>
Reviewed-by: Boris Brezillon <boris.brezillon@collabora.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/16916>

2 years agopanfrost: Use push constants for indirect dispatch
Alyssa Rosenzweig [Tue, 7 Jun 2022 19:15:51 +0000 (15:15 -0400)]
panfrost: Use push constants for indirect dispatch

Much simpler than creating a UBO and relying on it getting optimized to a push
constant, with possible reordering.

Signed-off-by: Alyssa Rosenzweig <alyssa@collabora.com>
Reviewed-by: Boris Brezillon <boris.brezillon@collabora.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/16916>

2 years agopan/bi: Don't reorder push with no_ubo_to_push
Alyssa Rosenzweig [Tue, 7 Jun 2022 19:15:04 +0000 (15:15 -0400)]
pan/bi: Don't reorder push with no_ubo_to_push

Otherwise, load_push_constant won't work properly. This could probably be made
to work if we tried hard enough, but we still don't want reordering for internal
(meta) shaders which are layed out deliberately.

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

2 years agopan/bi: Implement load_push_constant
Alyssa Rosenzweig [Tue, 7 Jun 2022 19:13:11 +0000 (15:13 -0400)]
pan/bi: Implement load_push_constant

Bifrost supports "fast access uniforms" loaded from a single contiguous buffer.
This maps directly to Vulkan push constants, with some caveats:

* No indirect access. Indirects need to be lowered to a UBO pull.
* Strict alignment requirements. These will be met in practice.

Implement the NIR intrinsic and map it to the native hardware construct.

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

2 years agopanfrost: Fix inverted indirect dispatch condition
Alyssa Rosenzweig [Mon, 6 Jun 2022 20:48:57 +0000 (16:48 -0400)]
panfrost: Fix inverted indirect dispatch condition

Inverted condition -- indirect dispatch gets disabled when WLS is in use, not
the other way around. Not sure how this worked before...

Fixes: fd7b44882ce ("panfrost: Use direct dispatch with shared memory")
Signed-off-by: Alyssa Rosenzweig <alyssa@collabora.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/16916>

2 years agoturnip: consider render pass costs in autotune
Chia-I Wu [Thu, 26 May 2022 21:40:49 +0000 (14:40 -0700)]
turnip: consider render pass costs in autotune

To be able to sum drawcall cost and render pass cost, the units of costs
are changed to bytes.  With that, tu_autotune_use_bypass can make
decisions by comparing the costs of sysmem rendering and gmem rendering.

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

2 years agoturnip: estimate render pass costs
Chia-I Wu [Thu, 26 May 2022 16:22:40 +0000 (09:22 -0700)]
turnip: estimate render pass costs

They will be used by autotuner.

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

2 years agoturnip: include stencil test for drawcall costs
Chia-I Wu [Thu, 26 May 2022 21:32:17 +0000 (14:32 -0700)]
turnip: include stencil test for drawcall costs

Stencil test reads from and writes to the stencil buffer.

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

2 years agoturnip: base pipeline draw costs on colorWriteMask
Chia-I Wu [Thu, 26 May 2022 21:18:02 +0000 (14:18 -0700)]
turnip: base pipeline draw costs on colorWriteMask

drawcall_base_cost estimates the memory bandwidth per sample.
colorWriteMask should be more accurate than fs outputs.

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

2 years agoturnip: if-checks autotune debug macros
Chia-I Wu [Thu, 26 May 2022 21:14:54 +0000 (14:14 -0700)]
turnip: if-checks autotune debug macros

This avoids bitrot while the compiler can easily optimize away those
checks.

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

2 years agoradeonsi: set the max UBO size same as the max SSBO size
Marek Olšák [Mon, 6 Jun 2022 01:13:20 +0000 (21:13 -0400)]
radeonsi: set the max UBO size same as the max SSBO size

Reviewed-by: Mihai Preda <mhpreda@gmail.com>
Reviewed-by: Pierre-Eric Pelloux-Prayer <pierre-eric.pelloux-prayer@amd.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/16901>

2 years agoradeonsi: compute PIPE_CAP_MAX_TEXEL_BUFFER_ELEMENTS_UINT correctly
Marek Olšák [Mon, 6 Jun 2022 00:26:30 +0000 (20:26 -0400)]
radeonsi: compute PIPE_CAP_MAX_TEXEL_BUFFER_ELEMENTS_UINT correctly

Reviewed-by: Mihai Preda <mhpreda@gmail.com>
Reviewed-by: Pierre-Eric Pelloux-Prayer <pierre-eric.pelloux-prayer@amd.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/16901>

2 years agoradeonsi: change max TBO/SSBO sizes again and rework max alloc size
Marek Olšák [Sun, 5 Jun 2022 21:32:27 +0000 (17:32 -0400)]
radeonsi: change max TBO/SSBO sizes again and rework max alloc size

Allow 1/4 of the max heap size, but maximum of 512 MB on 32-bit
architectures.

Reviewed-by: Mihai Preda <mhpreda@gmail.com>
Reviewed-by: Pierre-Eric Pelloux-Prayer <pierre-eric.pelloux-prayer@amd.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/16901>

2 years agoradeonsi: clamp against MAX_TEXEL_BUFFER_ELEMENTS correctly
Marek Olšák [Mon, 6 Jun 2022 00:24:49 +0000 (20:24 -0400)]
radeonsi: clamp against MAX_TEXEL_BUFFER_ELEMENTS correctly

Reviewed-by: Mihai Preda <mhpreda@gmail.com>
Reviewed-by: Pierre-Eric Pelloux-Prayer <pierre-eric.pelloux-prayer@amd.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/16901>

2 years agoradeonsi: report correct maximum compute grid sizes
Marek Olšák [Mon, 6 Jun 2022 01:46:14 +0000 (21:46 -0400)]
radeonsi: report correct maximum compute grid sizes

Reviewed-by: Mihai Preda <mhpreda@gmail.com>
Reviewed-by: Pierre-Eric Pelloux-Prayer <pierre-eric.pelloux-prayer@amd.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/16901>

2 years agoradeonsi: increase the max compute LDS size to 64KB for gfx7+
Marek Olšák [Mon, 6 Jun 2022 01:45:43 +0000 (21:45 -0400)]
radeonsi: increase the max compute LDS size to 64KB for gfx7+

Reviewed-by: Mihai Preda <mhpreda@gmail.com>
Reviewed-by: Pierre-Eric Pelloux-Prayer <pierre-eric.pelloux-prayer@amd.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/16901>

2 years agopvr: debug: Implement PVR_DEBUG variable
Matt Coster [Thu, 5 May 2022 10:10:53 +0000 (11:10 +0100)]
pvr: debug: Implement PVR_DEBUG variable

Signed-off-by: Matt Coster <matt.coster@imgtec.com>
Reviewed-by: Frank Binns <frank.binns@imgtec.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/16907>

2 years agopvr: csbgen: Add *_unpack() functions for all generated struct types
Matt Coster [Thu, 12 May 2022 11:00:44 +0000 (12:00 +0100)]
pvr: csbgen: Add *_unpack() functions for all generated struct types

Signed-off-by: Matt Coster <matt.coster@imgtec.com>
Reviewed-by: Frank Binns <frank.binns@imgtec.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/16884>

2 years agopvr: csbgen: Fix "local variable may be undefined" lints
Matt Coster [Fri, 13 May 2022 09:47:33 +0000 (10:47 +0100)]
pvr: csbgen: Fix "local variable may be undefined" lints

Signed-off-by: Matt Coster <matt.coster@imgtec.com>
Reviewed-by: Frank Binns <frank.binns@imgtec.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/16884>

2 years agopvr: csbgen: Replace map() and filter() with list comprehension
Matt Coster [Thu, 12 May 2022 10:16:53 +0000 (11:16 +0100)]
pvr: csbgen: Replace map() and filter() with list comprehension

Guido originally wanted to drop these (along with reduce()) in 3.0, but
compromised to just recommending list comprehension instead [1].

[1]: https://www.artima.com/weblogs/viewpost.jsp?thread=98196

Signed-off-by: Matt Coster <matt.coster@imgtec.com>
Reviewed-by: Frank Binns <frank.binns@imgtec.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/16884>

2 years agopvr: csbgen: Isolate "main" function with __name__ check
Matt Coster [Thu, 12 May 2022 09:27:31 +0000 (10:27 +0100)]
pvr: csbgen: Isolate "main" function with __name__ check

Signed-off-by: Matt Coster <matt.coster@imgtec.com>
Reviewed-by: Frank Binns <frank.binns@imgtec.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/16884>

2 years agopvr: csbgen: Add typing information
Matt Coster [Thu, 12 May 2022 09:26:39 +0000 (10:26 +0100)]
pvr: csbgen: Add typing information

This is generally PEP-484 stuff, but there is one functional change.
The base class Node needed to have an add() method to allow typed
dynamic dispatch. This could have been decorated @abstractmethod, but
that would require an error-raising implementation on all leaf-type
nodes. Instead, I added a base implementation that just errors out with
information from the subclass instance.

As a simple optimization, subclass implementations of add() (instead of
raising the same (or similar) error) now call super().add() in the
case of invalid child nodes.

Signed-off-by: Matt Coster <matt.coster@imgtec.com>
Reviewed-by: Frank Binns <frank.binns@imgtec.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/16884>

2 years agopvr: csbgen: Remove unused function parameters
Matt Coster [Fri, 13 May 2022 09:43:36 +0000 (10:43 +0100)]
pvr: csbgen: Remove unused function parameters

Signed-off-by: Matt Coster <matt.coster@imgtec.com>
Reviewed-by: Frank Binns <frank.binns@imgtec.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/16884>

2 years agopvr: csbgen: Remove "dim" functionality from Group
Matt Coster [Fri, 13 May 2022 09:19:51 +0000 (10:19 +0100)]
pvr: csbgen: Remove "dim" functionality from Group

This allowed for nested groups rendered as arrays. Support for this had
mostly been removed already; this removes the additional value to make
typing easier.

Signed-off-by: Matt Coster <matt.coster@imgtec.com>
Reviewed-by: Frank Binns <frank.binns@imgtec.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/16884>

2 years agopvr: csbgen: Cleanup imports
Matt Coster [Fri, 13 May 2022 09:34:35 +0000 (10:34 +0100)]
pvr: csbgen: Cleanup imports

Signed-off-by: Matt Coster <matt.coster@imgtec.com>
Reviewed-by: Frank Binns <frank.binns@imgtec.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/16884>

2 years agopvr: csbgen: Make some loops more pythonic
Matt Coster [Fri, 13 May 2022 09:31:37 +0000 (10:31 +0100)]
pvr: csbgen: Make some loops more pythonic

Signed-off-by: Matt Coster <matt.coster@imgtec.com>
Reviewed-by: Frank Binns <frank.binns@imgtec.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/16884>

2 years agopvr: csbgen: Add a missing @staticmethod decorator
Matt Coster [Mon, 23 May 2022 08:48:39 +0000 (09:48 +0100)]
pvr: csbgen: Add a missing @staticmethod decorator

Signed-off-by: Matt Coster <matt.coster@imgtec.com>
Reviewed-by: Frank Binns <frank.binns@imgtec.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/16884>

2 years agopvr: csbgen: Formatting pass (PEP-8 plus other minor changes)
Matt Coster [Fri, 13 May 2022 09:30:05 +0000 (10:30 +0100)]
pvr: csbgen: Formatting pass (PEP-8 plus other minor changes)

Signed-off-by: Matt Coster <matt.coster@imgtec.com>
Reviewed-by: Frank Binns <frank.binns@imgtec.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/16884>

2 years agoradv: Implement mesh shader scratch ring.
Timur Kristóf [Fri, 20 May 2022 16:12:36 +0000 (18:12 +0200)]
radv: Implement mesh shader scratch ring.

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/16737>

2 years agoac/nir/ngg: Use variables for outputs without cross-invocation access.
Timur Kristóf [Thu, 26 May 2022 17:54:48 +0000 (19:54 +0200)]
ac/nir/ngg: Use variables for outputs without cross-invocation access.

Signed-off-by: Timur Kristóf <timur.kristof@gmail.com>
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/16737>

2 years agoac/nir/ngg: Use mesh shader scratch ring when outputs don't fit LDS.
Timur Kristóf [Fri, 20 May 2022 16:09:12 +0000 (18:09 +0200)]
ac/nir/ngg: Use mesh shader scratch ring when outputs don't fit LDS.

Signed-off-by: Timur Kristóf <timur.kristof@gmail.com>
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/16737>

2 years agoac/nir/ngg: Clean up mesh shader output LDS layout.
Timur Kristóf [Fri, 20 May 2022 13:27:03 +0000 (15:27 +0200)]
ac/nir/ngg: Clean up mesh shader output LDS layout.

Signed-off-by: Timur Kristóf <timur.kristof@gmail.com>
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/16737>

2 years agonir: Introduce new intrinsics for AMD specific mesh shader task ring.
Timur Kristóf [Wed, 1 Jun 2022 12:32:39 +0000 (14:32 +0200)]
nir: Introduce new intrinsics for AMD specific mesh shader task ring.

The mesh shader task ring is a buffer in VRAM which we will use to
store some mesh shader outputs that don't fit into LDS.

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/16737>

2 years agoradv: Implement task shader draw and payload rings.
Timur Kristóf [Wed, 11 May 2022 22:40:39 +0000 (00:40 +0200)]
radv: Implement task shader draw and payload rings.

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/16737>

2 years agoac: Add task shader ring information.
Timur Kristóf [Tue, 31 May 2022 11:20:23 +0000 (13:20 +0200)]
ac: Add task shader ring information.

Similarly to tessellation rings information, move the task
rings info to ac_gpu_info.

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/16737>

2 years agoac: Add RDNA2 task+mesh shader draw packet opcodes.
Timur Kristóf [Tue, 31 May 2022 16:43:52 +0000 (18:43 +0200)]
ac: Add RDNA2 task+mesh shader draw packet opcodes.

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/16737>

2 years agopvr: Fix incorrect samples to cr_isp_aa_mode conversion.
Karmjit Mahil [Mon, 30 May 2022 10:30:07 +0000 (11:30 +0100)]
pvr: Fix incorrect samples to cr_isp_aa_mode conversion.

This commit fixes the use of 'case 3' where 'case 4' should have
been.

Reported-by: Matt Coster <matt.coster@imgtec.com>
Signed-off-by: Karmjit Mahil <Karmjit.Mahil@imgtec.com>
Reviewed-by: Frank Binns <frank.binns@imgtec.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/16883>

2 years agopvr: Write immutable descriptor words in vkAllocateDescriptorSets().
Karmjit Mahil [Fri, 25 Feb 2022 17:06:38 +0000 (17:06 +0000)]
pvr: Write immutable descriptor words in vkAllocateDescriptorSets().

Signed-off-by: Karmjit Mahil <Karmjit.Mahil@imgtec.com>
Reviewed-by: Frank Binns <frank.binns@imgtec.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/16883>

2 years agopvr: Add csb enum helper funciton header.
Karmjit Mahil [Thu, 26 May 2022 13:22:08 +0000 (14:22 +0100)]
pvr: Add csb enum helper funciton header.

A new header is introduced which groups all vk, uint, rogue types
to csb enum type conversions.

Signed-off-by: Karmjit Mahil <Karmjit.Mahil@imgtec.com>
Reviewed-by: Frank Binns <frank.binns@imgtec.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/16883>

2 years agoradv, aco: Lower txf offset in NIR.
Georg Lehmann [Sat, 4 Jun 2022 18:04:13 +0000 (20:04 +0200)]
radv, aco: Lower txf offset in NIR.

Foz-DB Navi21:
Totals from 384 (0.28% of 134913) affected shaders:
VGPRs: 29736 -> 29536 (-0.67%)
CodeSize: 2455796 -> 2452652 (-0.13%); split: -0.13%, +0.01%
MaxWaves: 6350 -> 6358 (+0.13%)
Instrs: 457743 -> 456273 (-0.32%); split: -0.33%, +0.01%
Latency: 6680266 -> 6730612 (+0.75%); split: -0.03%, +0.78%
InvThroughput: 1562936 -> 1599375 (+2.33%); split: -0.05%, +2.38%
VClause: 9258 -> 9291 (+0.36%); split: -0.14%, +0.50%
SClause: 15713 -> 15707 (-0.04%); split: -0.08%, +0.04%
Copies: 26878 -> 27021 (+0.53%); split: -0.03%, +0.56%
PreVGPRs: 27259 -> 27230 (-0.11%); split: -0.11%, +0.01%

Signed-off-by: Georg Lehmann <dadschoorse@gmail.com>
Reviewed-by: Bas Nieuwenhuizen <bas@basnieuwenhuizen.nl>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/16869>

2 years agoradeonsi: set size in si_texture_get_handle
Pierre-Eric Pelloux-Prayer [Wed, 1 Jun 2022 08:48:58 +0000 (10:48 +0200)]
radeonsi: set size in si_texture_get_handle

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

2 years agova/surface: set the correct size in vaExportSurfaceHandle
Pierre-Eric Pelloux-Prayer [Wed, 1 Jun 2022 08:46:11 +0000 (10:46 +0200)]
va/surface: set the correct size in vaExportSurfaceHandle

The size must be the size of the total object, not the size
of the resource.
For instance, when using a single object for a multi-plane
format, the size of each plane should be equal to the size
of the underlying object to match libva's documentation:

        /** Total size of this object (may include regions which are
         *  not part of the surface). */
        uint32_t size;

Fixes: 13b79266e47 ("frontend/va: Setting the size of VADRMPRIMESurfaceDescriptor")
Reviewed-by: Marek Olšák <marek.olsak@amd.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/16813>

2 years agogallium: add size attribute to winsys_handle
Pierre-Eric Pelloux-Prayer [Wed, 1 Jun 2022 08:45:09 +0000 (10:45 +0200)]
gallium: add size attribute to winsys_handle

This is needed at least for the VA-API frontend where the exporter
needs to know the total size of the object.

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

2 years agogallium: update winsys_handle documentation
Pierre-Eric Pelloux-Prayer [Wed, 1 Jun 2022 08:45:01 +0000 (10:45 +0200)]
gallium: update winsys_handle documentation

The function names are resource_***_handle, not textures_***_handles.

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

2 years agozink: only update layout when doing mixed zs attachment renderpass check
Mike Blumenkrantz [Tue, 7 Jun 2022 00:54:53 +0000 (20:54 -0400)]
zink: only update layout when doing mixed zs attachment renderpass check

avoid doing any sort of extra work here and avoid multi-context weirdness

cc: mesa-stable

Reviewed-by: Dave Airlie <airlied@redhat.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/16900>

2 years agozink: break out of zs mixed layout update loop when work is done
Mike Blumenkrantz [Tue, 7 Jun 2022 00:54:25 +0000 (20:54 -0400)]
zink: break out of zs mixed layout update loop when work is done

Reviewed-by: Dave Airlie <airlied@redhat.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/16900>

2 years agointel: Build mi_builder_test whenever build-tests is set
Jordan Justen [Tue, 7 Jun 2022 06:15:27 +0000 (23:15 -0700)]
intel: Build mi_builder_test whenever build-tests is set

Previously `install-intel-gpu-tests` controlled this, but now
`install-intel-gpu-tests` will only be used to decide if it should be
installed.

Signed-off-by: Jordan Justen <jordan.l.justen@intel.com>
Reviewed-by: Lionel Landwerlin <lionel.g.landwerlin@intel.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/16902>

2 years agolavapipe: Use vk_image_buffer_copy_layout
Jason Ekstrand [Mon, 6 Jun 2022 13:52:24 +0000 (08:52 -0500)]
lavapipe: Use vk_image_buffer_copy_layout

Reviewed-by: Mike Blumenkrantz <michael.blumenkrantz@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/16873>

2 years agopanvk: Use vk_image_buffer_copy_layout
Jason Ekstrand [Mon, 6 Jun 2022 13:27:41 +0000 (08:27 -0500)]
panvk: Use vk_image_buffer_copy_layout

Reviewed-by: Boris Brezillon <boris.brezillon@collabora.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/16873>

2 years agoradv: Use vk_image_buffer_copy_layout
Jason Ekstrand [Mon, 6 Jun 2022 13:22:12 +0000 (08:22 -0500)]
radv: Use vk_image_buffer_copy_layout

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

2 years agovulkan,radv: Steal some image offset/extent helpers from radv
Jason Ekstrand [Sun, 5 Jun 2022 04:30:21 +0000 (23:30 -0500)]
vulkan,radv: Steal some image offset/extent helpers from radv

Reviewed-by: Dave Airlie <airlied@redhat.com>
Reviewed-by: Lionel Landwerlin <lionel.g.landwerlin@intel.com>
Reviewed-by: Samuel Pitoiset <samuel.pitoiset@gmail.com>
Reviewed-by: Boris Brezillon <boris.brezillon@collabora.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/16873>

2 years agoanv: Use the common image<->buffer copy helper
Jason Ekstrand [Sun, 5 Jun 2022 04:07:51 +0000 (23:07 -0500)]
anv: Use the common image<->buffer copy helper

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

2 years agovulkan: Add a helper for image<->buffer copies
Jason Ekstrand [Sun, 5 Jun 2022 04:00:51 +0000 (23:00 -0500)]
vulkan: Add a helper for image<->buffer copies

Reviewed-by: Dave Airlie <airlied@redhat.com>
Reviewed-by: Lionel Landwerlin <lionel.g.landwerlin@intel.com>
Reviewed-by: Samuel Pitoiset <samuel.pitoiset@gmail.com>
Reviewed-by: Boris Brezillon <boris.brezillon@collabora.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/16873>

2 years agovulkan/format: Add a vk_format_get_aspect_format helper
Jason Ekstrand [Mon, 6 Jun 2022 16:32:43 +0000 (11:32 -0500)]
vulkan/format: Add a vk_format_get_aspect_format helper

Reviewed-by: Boris Brezillon <boris.brezillon@collabora.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/16873>

2 years agovulkan,radv: Move vk_format_get_plane_format to common code
Jason Ekstrand [Mon, 6 Jun 2022 16:25:45 +0000 (11:25 -0500)]
vulkan,radv: Move vk_format_get_plane_format to common code

Reviewed-by: Boris Brezillon <boris.brezillon@collabora.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/16873>

2 years agoradv: Use the common image offset/extent sanitize helpers
Jason Ekstrand [Sun, 5 Jun 2022 03:33:37 +0000 (22:33 -0500)]
radv: Use the common image offset/extent sanitize helpers

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

2 years agovulkan,anv: Move the image offset/extent sanitize helpers to common code
Jason Ekstrand [Sun, 5 Jun 2022 03:22:15 +0000 (22:22 -0500)]
vulkan,anv: Move the image offset/extent sanitize helpers to common code

Reviewed-by: Dave Airlie <airlied@redhat.com>
Reviewed-by: Lionel Landwerlin <lionel.g.landwerlin@intel.com>
Reviewed-by: Samuel Pitoiset <samuel.pitoiset@gmail.com>
Reviewed-by: Boris Brezillon <boris.brezillon@collabora.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/16873>

2 years agottn: Populate the images/textures/samplers_used fields in shader_info
Jason Ekstrand [Tue, 7 Jun 2022 15:59:23 +0000 (10:59 -0500)]
ttn: Populate the images/textures/samplers_used fields in shader_info

Closes: https://gitlab.freedesktop.org/mesa/mesa/-/issues/6630
Fixes: 625b352f14b7 ("nir: Set image_buffers and msaa_images in lower_samplers_as_deref")
Tested-by: Pierre-Eric Pelloux-Prayer <pierre-eric.pelloux-prayer@amd.com>
Reviewed-by: Emma Anholt <emma@anholt.net>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/16910>

2 years agod3d12: Report PIPE_CAP_ACCELERATED as 0 on WARP
Jesse Natalie [Mon, 6 Jun 2022 16:30:59 +0000 (09:30 -0700)]
d3d12: Report PIPE_CAP_ACCELERATED as 0 on WARP

Acked-by: Qiang Yu <yuq825@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/16892>

2 years agodocs: Fixes dispatch.rst with __THREAD_INITIAL_EXEC
Yonggang Luo [Sat, 9 Apr 2022 14:50:04 +0000 (22:50 +0800)]
docs: Fixes dispatch.rst with __THREAD_INITIAL_EXEC

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/16858>

2 years agopvr: Remove clang-format off comment from vk_format.h
Rajnesh Kanwal [Tue, 24 May 2022 13:17:09 +0000 (14:17 +0100)]
pvr: Remove clang-format off comment from vk_format.h

This enables clang formatting for vk_format.h. This was disabled
as we were using tabs for indentation and vk_format.h uses three
spaces for indentation.

Signed-off-by: Rajnesh Kanwal <rajnesh.kanwal@imgtec.com>
Reviewed-by: Frank Binns <frank.binns@imgtec.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/16897>

2 years agopvr: Move transfer logic to pvr_job_transfer.[ch]
Rajnesh Kanwal [Tue, 19 Apr 2022 16:21:16 +0000 (17:21 +0100)]
pvr: Move transfer logic to pvr_job_transfer.[ch]

Signed-off-by: Rajnesh Kanwal <rajnesh.kanwal@imgtec.com>
Reviewed-by: Frank Binns <frank.binns@imgtec.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/16897>

2 years agopvr: Add services winsys transfer cmd submit interface.
Rajnesh Kanwal [Tue, 19 Apr 2022 15:36:43 +0000 (16:36 +0100)]
pvr: Add services winsys transfer cmd submit interface.

Signed-off-by: Rajnesh Kanwal <rajnesh.kanwal@imgtec.com>
Reviewed-by: Frank Binns <frank.binns@imgtec.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/16897>

2 years agopvr: Change ALIGN macro to ALIGN_ATTR.
Rajnesh Kanwal [Mon, 30 May 2022 15:57:55 +0000 (16:57 +0100)]
pvr: Change ALIGN macro to ALIGN_ATTR.

ALIGN is defined as a function in u_math.h and same name is
used to define a macro in pvr_rogue_fwif_shared.h. This commit
resolves this conflict.

Signed-off-by: Rajnesh Kanwal <rajnesh.kanwal@imgtec.com>
Reviewed-by: Frank Binns <frank.binns@imgtec.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/16897>

2 years agopvr: Fix UTIL_ARCH_BIG_ENDIAN check in vk_format.h.
Rajnesh Kanwal [Mon, 16 May 2022 15:53:18 +0000 (16:53 +0100)]
pvr: Fix UTIL_ARCH_BIG_ENDIAN check in vk_format.h.

Signed-off-by: Rajnesh Kanwal <rajnesh.kanwal@imgtec.com>
Reviewed-by: Frank Binns <frank.binns@imgtec.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/16897>

2 years agopvr: Restrict argument to dev_info where possible.
Rajnesh Kanwal [Mon, 16 May 2022 15:37:32 +0000 (16:37 +0100)]
pvr: Restrict argument to dev_info where possible.

Avoid passing whole device structure. In most of the cases
we only need dev_info from device pointer to check for
features and ERNs.
This commits simply avoids the need to carry device pointer
where ever we go.

Signed-off-by: Rajnesh Kanwal <rajnesh.kanwal@imgtec.com>
Reviewed-by: Frank Binns <frank.binns@imgtec.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/16897>

2 years agopvr: Fix ISP_RENDER_MODE_TYPE enum in rogue_cr.xml
Rajnesh Kanwal [Mon, 16 May 2022 15:29:31 +0000 (16:29 +0100)]
pvr: Fix ISP_RENDER_MODE_TYPE enum in rogue_cr.xml

Signed-off-by: Rajnesh Kanwal <rajnesh.kanwal@imgtec.com>
Reviewed-by: Frank Binns <frank.binns@imgtec.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/16897>

2 years agopvr: Add transfer 3d parameter heap support.
Rajnesh Kanwal [Mon, 16 May 2022 13:52:13 +0000 (14:52 +0100)]
pvr: Add transfer 3d parameter heap support.

Signed-off-by: Rajnesh Kanwal <rajnesh.kanwal@imgtec.com>
Reviewed-by: Frank Binns <frank.binns@imgtec.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/16897>

2 years agopvr: Remove vk_format_is_pure_integer and use common helper.
Rajnesh Kanwal [Mon, 16 May 2022 13:45:31 +0000 (14:45 +0100)]
pvr: Remove vk_format_is_pure_integer and use common helper.

Signed-off-by: Rajnesh Kanwal <rajnesh.kanwal@imgtec.com>
Reviewed-by: Frank Binns <frank.binns@imgtec.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/16897>

2 years agopvr: Allow signal_sync pointer to be NULL in job submission.
Rajnesh Kanwal [Mon, 16 May 2022 13:28:43 +0000 (14:28 +0100)]
pvr: Allow signal_sync pointer to be NULL in job submission.

This allows the common driver to pass NULL signal_sync for cases
where there are multiple jobs (of the same type) to be processed.
In that case, it's useless to maintain the signal_syncs other than
the one returned by the last submission.

Signed-off-by: Rajnesh Kanwal <rajnesh.kanwal@imgtec.com>
Reviewed-by: Frank Binns <frank.binns@imgtec.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/16897>

2 years agopvr: Add support for R32G32B32A32_UINT, R32_UINT and R8_UINT formats.
Rajnesh Kanwal [Mon, 16 May 2022 13:27:40 +0000 (14:27 +0100)]
pvr: Add support for R32G32B32A32_UINT, R32_UINT and R8_UINT formats.

These formats are required by vkCmdCopyBuffer implementation. The
formats in pvr_format_table are exposed to applications as well.
Given these formats are supported for rendering and sampling, there
shouldn't be a problem exposing these to applications.

Co-authored-by: Karmjit Mahil <Karmjit.Mahil@imgtec.com>
Signed-off-by: Rajnesh Kanwal <rajnesh.kanwal@imgtec.com>
Signed-off-by: Karmjit Mahil <Karmjit.Mahil@imgtec.com>
Reviewed-by: Frank Binns <frank.binns@imgtec.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/16897>

2 years agopvr: Pass device info struct in pds generator.
Rajnesh Kanwal [Mon, 16 May 2022 13:26:43 +0000 (14:26 +0100)]
pvr: Pass device info struct in pds generator.

Fixes a potential NULL pointer dereference.

Signed-off-by: Rajnesh Kanwal <rajnesh.kanwal@imgtec.com>
Reviewed-by: Frank Binns <frank.binns@imgtec.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/16897>

2 years agoradv: Fix the accel struct size calculation
Konstantin Seurer [Sun, 5 Jun 2022 09:12:10 +0000 (11:12 +0200)]
radv: Fix the accel struct size calculation

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/16874>

2 years agoac: use ResetAllOptionOccurrences instead of ResetCommandLineParser
Rhys Perry [Fri, 3 Jun 2022 11:15:56 +0000 (12:15 +0100)]
ac: use ResetAllOptionOccurrences instead of ResetCommandLineParser

Fixes -amdgpu-atomic-optimizations=true option.

From CommandLine.h:
/// Reset all command line options to a state that looks as if they have
/// never appeared on the command line.  This is useful for being able to parse
/// a command line multiple times (especially useful for writing tests).
void ResetAllOptionOccurrences();

/// Reset the command line parser back to its initial state.  This
/// removes
/// all options, categories, and subcommands and returns the parser to a state
/// where no options are supported.
void ResetCommandLineParser();

Signed-off-by: Rhys Perry <pendingchaos02@gmail.com>
Reviewed-by: Marek Olšák <marek.olsak@amd.com>
Reviewed-by: Pierre-Eric Pelloux-Prayer <pierre-eric.pelloux-prayer@amd.com>
Fixes: 7e2874dc93a ("ac: reset LLVM command line parser")
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/16850>

2 years agov3d: release all color buffers on context destroy
Juan A. Suarez Romero [Tue, 7 Jun 2022 06:54:34 +0000 (08:54 +0200)]
v3d: release all color buffers on context destroy

All of them must be released on context destroy, and not only the first
one.

Signed-off-by: Juan A. Suarez Romero <jasuarez@igalia.com>
Reviewed-by: Alejandro Piñeiro <apinheiro@igalia.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/16903>

2 years agointel: Fix build of mi_builder_tests by including c99_compat.h
Jordan Justen [Mon, 6 Jun 2022 23:14:32 +0000 (16:14 -0700)]
intel: Fix build of mi_builder_tests by including c99_compat.h

We need this so C++ will understand "restrict" which is used in the
genxml output.

Fixes: 9f717b5f23c ("util: remove needless c99_compat.h includes")
Signed-off-by: Jordan Justen <jordan.l.justen@intel.com>
Acked-by: Jason Ekstrand <jason.ekstrand@collabora.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/16899>

2 years agodzn: Emit missing transition barriers for rendering attachments
Boris Brezillon [Mon, 30 May 2022 10:00:43 +0000 (03:00 -0700)]
dzn: Emit missing transition barriers for rendering attachments

VkRenderingAttachmentInitialLayoutInfoMESA provides information about
the initialLayout -> currentLayout that's expected when we begin a
render pass. Let's take it into account.

Fixes: 2d0798440b4 ("dzn: Add support for dynamic rendering")
Reviewed-by: Erik Faye-Lund <erik.faye-lund@collabora.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/16792>

2 years agoradv: report the marketing name as part of the device name
Samuel Pitoiset [Thu, 27 May 2021 07:03:24 +0000 (09:03 +0200)]
radv: report the marketing name as part of the device name

This now reports something like "AMD Radeon RX 5700 XT (RADV NAVI10)".

This introduces a new variable for storing the marketing name because
the existing device name is used by the shaders cache and must remain
the same to avoid any issues with precompilation.

Closes: https://gitlab.freedesktop.org/mesa/mesa/-/issues/4802
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/11027>

2 years agoradv/winsys: add get_chip_name() to the null winsys
Samuel Pitoiset [Thu, 27 May 2021 09:51:25 +0000 (11:51 +0200)]
radv/winsys: add get_chip_name() to the null winsys

Make it return "Null hardware", this is just for RADV_FORCE_FAMILY.

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/11027>

2 years agogallium: rename PIPE_CAP_MAX_SHADER_BUFFER_SIZE -> *_UINT
Marek Olšák [Mon, 6 Jun 2022 00:55:50 +0000 (20:55 -0400)]
gallium: rename PIPE_CAP_MAX_SHADER_BUFFER_SIZE -> *_UINT

to imply the maximum of 4GB - 1.

Reviewed-By: Mike Blumenkrantz <michael.blumenkrantz@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/16881>

2 years agogallium: rename PIPE_CAP_MAX_TEXTURE_BUFFER_SIZE->MAX_TEXEL_BUFFER_ELEMENTS_UINT
Marek Olšák [Mon, 6 Jun 2022 00:15:44 +0000 (20:15 -0400)]
gallium: rename PIPE_CAP_MAX_TEXTURE_BUFFER_SIZE->MAX_TEXEL_BUFFER_ELEMENTS_UINT

to allow exposing 4G - 1. The "SIZE" was also a misnomer because it meant
elements. This no longer clamps the size to INT_MAX in st/mesa.

Reviewed-By: Mike Blumenkrantz <michael.blumenkrantz@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/16881>

2 years agogallium: add PIPE_CAP_MAX_CONSTANT_BUFFER_SIZE_UINT for UBOs
Marek Olšák [Sun, 5 Jun 2022 22:56:07 +0000 (18:56 -0400)]
gallium: add PIPE_CAP_MAX_CONSTANT_BUFFER_SIZE_UINT for UBOs

We plan to report UINT32_MAX for UBOs.

Reviewed-By: Mike Blumenkrantz <michael.blumenkrantz@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/16881>

2 years agogallium: rename PIPE_SHADER_CAP_MAX_CONST_BUFFER_SIZE to *_BUFFER0_*
Marek Olšák [Sun, 5 Jun 2022 22:47:09 +0000 (18:47 -0400)]
gallium: rename PIPE_SHADER_CAP_MAX_CONST_BUFFER_SIZE to *_BUFFER0_*

UBOs will use a larger limit.

Reviewed-By: Mike Blumenkrantz <michael.blumenkrantz@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/16881>