platform/upstream/mesa.git
2 years agoaco: use explicit zero-padding for 64bit image loads in expand_vector()
Daniel Schürmann [Wed, 15 Dec 2021 10:18:03 +0000 (11:18 +0100)]
aco: use explicit zero-padding for 64bit image loads in expand_vector()

Previously, this only worked because of regClass mismatches
in the allocated vector.

Reviewed-by: Timur Kristóf <timur.kristof@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/13576>

2 years agoaco/optimizer: apply extract from subdword p_split_vector
Daniel Schürmann [Mon, 25 Oct 2021 14:44:42 +0000 (16:44 +0200)]
aco/optimizer: apply extract from subdword p_split_vector

Totals from 1345 (1.00% of 134572) affected shaders: (GFX10.3)
VGPRs: 76752 -> 76744 (-0.01%); split: -0.02%, +0.01%
SpillSGPRs: 1459 -> 1460 (+0.07%)
SpillVGPRs: 1776 -> 1784 (+0.45%); split: -0.39%, +0.84%
CodeSize: 13310964 -> 13309420 (-0.01%); split: -0.06%, +0.05%
Scratch: 178176 -> 179200 (+0.57%)
Instrs: 2516874 -> 2516860 (-0.00%); split: -0.05%, +0.05%
Latency: 23228506 -> 23230338 (+0.01%); split: -0.14%, +0.15%
InvThroughput: 6002384 -> 6000158 (-0.04%); split: -0.24%, +0.21%
VClause: 41115 -> 41117 (+0.00%); split: -0.28%, +0.29%
SClause: 104639 -> 104664 (+0.02%); split: -0.07%, +0.09%
Copies: 185121 -> 184862 (-0.14%); split: -0.69%, +0.55%
Branches: 100740 -> 100735 (-0.00%); split: -0.01%, +0.00%
PreVGPRs: 70119 -> 69968 (-0.22%)

Reviewed-by: Rhys Perry <pendingchaos02@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/13576>

2 years agoaco/optimizer: optimize extract(extract())
Daniel Schürmann [Tue, 5 Oct 2021 12:09:02 +0000 (13:09 +0100)]
aco/optimizer: optimize extract(extract())

Totals from 53 (0.04% of 134572) affected shaders: (GFX10.3)
SpillVGPRs: 1780 -> 1776 (-0.22%); split: -0.34%, +0.11%
CodeSize: 968352 -> 963196 (-0.53%); split: -0.55%, +0.02%
Scratch: 180224 -> 178176 (-1.14%)
Instrs: 169800 -> 169158 (-0.38%); split: -0.39%, +0.01%
Latency: 6186064 -> 6141408 (-0.72%); split: -1.16%, +0.44%
InvThroughput: 2605044 -> 2582967 (-0.85%); split: -1.37%, +0.52%
VClause: 4851 -> 4866 (+0.31%); split: -0.16%, +0.47%
SClause: 1744 -> 1746 (+0.11%)
Copies: 42874 -> 42325 (-1.28%); split: -1.40%, +0.12%
Branches: 5762 -> 5765 (+0.05%); split: -0.02%, +0.07%

Reviewed-by: Rhys Perry <pendingchaos02@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/13576>

2 years agoaco/optimizer: apply extract from p_extract_vector
Daniel Schürmann [Mon, 4 Oct 2021 10:13:08 +0000 (11:13 +0100)]
aco/optimizer: apply extract from p_extract_vector

Reviewed-by: Rhys Perry <pendingchaos02@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/13576>

2 years agoaco/optimizer: keep instr_mod_labels after applying extract
Daniel Schürmann [Mon, 4 Oct 2021 10:03:14 +0000 (11:03 +0100)]
aco/optimizer: keep instr_mod_labels after applying extract

This allows to use clamp on SDWA and VOP3 opsel instructions.

Totals from 32 (0.02% of 134572) affected shaders: (GFX10.3)
SpillVGPRs: 1783 -> 1780 (-0.17%); split: -0.50%, +0.34%
CodeSize: 881480 -> 881496 (+0.00%); split: -0.15%, +0.15%
Instrs: 154400 -> 154388 (-0.01%); split: -0.13%, +0.12%
Latency: 5021791 -> 5033485 (+0.23%); split: -0.67%, +0.90%
InvThroughput: 2486454 -> 2492312 (+0.24%); split: -0.67%, +0.91%
VClause: 4763 -> 4755 (-0.17%); split: -0.52%, +0.36%
Copies: 42866 -> 42965 (+0.23%); split: -0.25%, +0.48%
Branches: 5640 -> 5639 (-0.02%)

Reviewed-by: Rhys Perry <pendingchaos02@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/13576>

2 years agoaco: don't allow SDWA on VOP3P instructions
Daniel Schürmann [Mon, 20 Dec 2021 09:46:43 +0000 (10:46 +0100)]
aco: don't allow SDWA on VOP3P instructions

Reviewed-by: Timur Kristóf <timur.kristof@gmail.com>
Cc: mesa-stable
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/13576>

2 years agoradv: add drirc radv_disable_htile_layers and enable it for F1 2021
Samuel Pitoiset [Thu, 30 Dec 2021 17:24:10 +0000 (18:24 +0100)]
radv: add drirc radv_disable_htile_layers and enable it for F1 2021

To workaround some flickering issues in the main menu.
See https://github.com/HansKristian-Work/vkd3d-proton/issues/950

Cc: 21.3 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/14354>

2 years agoradv: fix copying mutable descriptors to sampler descriptors
Samuel Pitoiset [Tue, 28 Dec 2021 10:01:38 +0000 (11:01 +0100)]
radv: fix copying mutable descriptors to sampler descriptors

This fixes a heap-buffer-overflow detected by ASAN.

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

2 years agoradv: Enable NV_mesh_shader with a perftest flag.
Timur Kristóf [Thu, 28 Oct 2021 19:25:48 +0000 (21:25 +0200)]
radv: Enable NV_mesh_shader with a perftest flag.

We don't plan to support NV_mesh_shader officially on RADV,
because it performs poorly on AMD hardware. However, we are
implementing this extension to get some experience with mesh
shader technology.

Users should not rely on this support because we are going
to remove it if/when a potential cross-vendor extension appears.

Signed-off-by: Timur Kristóf <timur.kristof@gmail.com>
Acked-by: Bas Nieuwenhuizen <bas@basnieuwenhuizen.nl>
Reviewed-by: Samuel Pitoiset <samuel.pitoiset@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/13580>

2 years agoradv: Implement NV_mesh_shader draw calls.
Timur Kristóf [Thu, 28 Oct 2021 19:18:35 +0000 (21:18 +0200)]
radv: Implement NV_mesh_shader draw calls.

The NV indirect command buffer format is not supported by
the hardware, so we have to emit several copy packets to
make it work.

Otherwise it works by emulating the number of launched
MS workgroups by setting the number of "input vertices".

Signed-off-by: Timur Kristóf <timur.kristof@gmail.com>
Acked-by: Bas Nieuwenhuizen <bas@basnieuwenhuizen.nl>
Reviewed-by: Samuel Pitoiset <samuel.pitoiset@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/13580>

2 years agoaco: Export per-primitive mesh shader output attributes.
Timur Kristóf [Thu, 21 Oct 2021 09:33:28 +0000 (11:33 +0200)]
aco: Export per-primitive mesh shader output attributes.

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

2 years agoaco: Use the correct outinfo for mesh shaders.
Timur Kristóf [Thu, 28 Oct 2021 19:04:16 +0000 (21:04 +0200)]
aco: Use the correct outinfo for mesh shaders.

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

2 years agoaco: Add 1D workgroup_id support for mesh shaders.
Timur Kristóf [Thu, 28 Oct 2021 14:41:41 +0000 (16:41 +0200)]
aco: Add 1D workgroup_id support for mesh shaders.

I'll add support for 3D workgroup_id later, but NV_mesh_shader only
supports 1D workgroups.

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

2 years agoaco: Update README about NGG and mesh shaders.
Timur Kristóf [Fri, 29 Oct 2021 12:22:15 +0000 (14:22 +0200)]
aco: Update README about NGG and mesh shaders.

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

2 years agoaco: Add Mesh and Task shader stages.
Timur Kristóf [Thu, 21 Oct 2021 09:33:10 +0000 (11:33 +0200)]
aco: Add Mesh and Task shader stages.

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

2 years agoradv: Add support for mesh shading pipelines in the command buffer.
Timur Kristóf [Thu, 28 Oct 2021 19:18:12 +0000 (21:18 +0200)]
radv: Add support for mesh shading pipelines in the command buffer.

- Prefetch mesh shaders
- Flush mesh shader descriptors
- Assert that input assembly, etc. are ignored.

Signed-off-by: Timur Kristóf <timur.kristof@gmail.com>
Acked-by: Bas Nieuwenhuizen <bas@basnieuwenhuizen.nl>
Reviewed-by: Samuel Pitoiset <samuel.pitoiset@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/13580>

2 years agoradv: Create mesh shading pipelines.
Timur Kristóf [Wed, 22 Dec 2021 20:25:23 +0000 (21:25 +0100)]
radv: Create mesh shading pipelines.

- Fill gfx10_ngg_info
- Allow NULL input assembly state
- Assert that the correct shader stages are used
- Program VGT_GS_MAX_VERT_OUT, GS_EN, GS_FAST_LAUNCH

Signed-off-by: Timur Kristóf <timur.kristof@gmail.com>
Acked-by: Bas Nieuwenhuizen <bas@basnieuwenhuizen.nl>
Reviewed-by: Samuel Pitoiset <samuel.pitoiset@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/13580>

2 years agoradv: Set output driver locations for mesh shaders.
Timur Kristóf [Thu, 28 Oct 2021 19:09:46 +0000 (21:09 +0200)]
radv: Set output driver locations for mesh shaders.

Ignore primitive count and indices which work differently.

Then, assign driver locations to per-vertex and per-primitive
outputs independently because we allocate separate LDS
areas for them.

Signed-off-by: Timur Kristóf <timur.kristof@gmail.com>
Acked-by: Bas Nieuwenhuizen <bas@basnieuwenhuizen.nl>
Reviewed-by: Samuel Pitoiset <samuel.pitoiset@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/13580>

2 years agoradv: Compile mesh shaders and apply the necessary NIR lowerings.
Timur Kristóf [Thu, 28 Oct 2021 19:08:29 +0000 (21:08 +0200)]
radv: Compile mesh shaders and apply the necessary NIR lowerings.

Mesh shaders use NGG, but the API allows many compute shader
features such as workgroups and shared memory.
Use the appropriate NIR lowerings for these, then
call ac_nir_lower_ngg_ms.

Signed-off-by: Timur Kristóf <timur.kristof@gmail.com>
Acked-by: Bas Nieuwenhuizen <bas@basnieuwenhuizen.nl>
Reviewed-by: Samuel Pitoiset <samuel.pitoiset@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/13580>

2 years agoradv: Setup shader arguments for mesh shaders.
Timur Kristóf [Thu, 28 Oct 2021 19:07:45 +0000 (21:07 +0200)]
radv: Setup shader arguments for mesh shaders.

Use the same code path as other NGG shaders, but with
a few special cases.

Signed-off-by: Timur Kristóf <timur.kristof@gmail.com>
Acked-by: Bas Nieuwenhuizen <bas@basnieuwenhuizen.nl>
Reviewed-by: Samuel Pitoiset <samuel.pitoiset@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/13580>

2 years agoradv: Add support for per-primitive mesh shader outputs.
Timur Kristóf [Thu, 28 Oct 2021 14:52:35 +0000 (16:52 +0200)]
radv: Add support for per-primitive mesh shader outputs.

Generic per-primitive outputs:

They work similarly to other NGG outputs.
In the ISA they are param export instructions that are executed
on the primitive threads. These per-primitive params must be
sorted last among both mesh shader outputs and pixel shader inputs.

PS can read these inputs using the same old VINTRP instructions.
They use the same amount of LDS space as per-vertex PS inputs.

Special per-primitive outputs:

The VRS rate x, y, viewport and layer are special per-primitive
outputs which must go to the second channel of the primitive
export instruction, which is enabled by EN_PRIM_PAYLOAD.

If the PS wants to read these, they must also be exported as
a generic param.

Signed-off-by: Timur Kristóf <timur.kristof@gmail.com>
Acked-by: Bas Nieuwenhuizen <bas@basnieuwenhuizen.nl>
Reviewed-by: Samuel Pitoiset <samuel.pitoiset@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/13580>

2 years agoradv: Cleanup VS output param assignment.
Timur Kristóf [Wed, 15 Dec 2021 10:18:39 +0000 (11:18 +0100)]
radv: Cleanup VS output param assignment.

Makes the code a little cleaner, and makes it easier to add
per-primitive PS inputs.

Signed-off-by: Timur Kristóf <timur.kristof@gmail.com>
Acked-by: Bas Nieuwenhuizen <bas@basnieuwenhuizen.nl>
Reviewed-by: Samuel Pitoiset <samuel.pitoiset@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/13580>

2 years agoradv: Cleanup PS input generation.
Timur Kristóf [Wed, 15 Dec 2021 09:56:54 +0000 (10:56 +0100)]
radv: Cleanup PS input generation.

This cleans up radv_pipeline_generate_ps_inputs.
Makes the code a little cleaner, and makes it easier to add
per-primitive PS inputs.

Signed-off-by: Timur Kristóf <timur.kristof@gmail.com>
Acked-by: Bas Nieuwenhuizen <bas@basnieuwenhuizen.nl>
Reviewed-by: Samuel Pitoiset <samuel.pitoiset@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/13580>

2 years agoradv: Add mesh shader specific info.
Timur Kristóf [Thu, 28 Oct 2021 14:45:18 +0000 (16:45 +0200)]
radv: Add mesh shader specific info.

Use the same old outinfo structure as other NGG shaders.
Additionally, store the output primitive type.

Signed-off-by: Timur Kristóf <timur.kristof@gmail.com>
Acked-by: Bas Nieuwenhuizen <bas@basnieuwenhuizen.nl>
Reviewed-by: Samuel Pitoiset <samuel.pitoiset@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/13580>

2 years agoradv: Add radv_pipeline_has_mesh helper.
Timur Kristóf [Thu, 28 Oct 2021 14:50:06 +0000 (16:50 +0200)]
radv: Add radv_pipeline_has_mesh helper.

This will be used to determine whether a pipeline uses
mesh shading or not.

Signed-off-by: Timur Kristóf <timur.kristof@gmail.com>
Acked-by: Bas Nieuwenhuizen <bas@basnieuwenhuizen.nl>
Reviewed-by: Samuel Pitoiset <samuel.pitoiset@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/13580>

2 years agoac/nir/ngg: Lower NV mesh shaders to NGG semantics.
Timur Kristóf [Sun, 29 Aug 2021 08:32:01 +0000 (10:32 +0200)]
ac/nir/ngg: Lower NV mesh shaders to NGG semantics.

Lower mesh shader outputs to shared memory.

At the end of the shader, read the outputs from shared memory
and export their values as NGG expects.

We allocate separate shared memory (LDS) areas for per-vertex,
per-primitive outputs, primitive indices, primitive count.

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

2 years agogitlab-ci: Disable radv-fossils again.
Timur Kristóf [Fri, 31 Dec 2021 12:33:28 +0000 (13:33 +0100)]
gitlab-ci: Disable radv-fossils again.

It gets a HTTP 504 error code when trying to access a git repo.
Disable it again until this issue is resolved.

Signed-off-by: Timur Kristóf <timur.kristof@gmail.com>
Reviewed-by: Bas Nieuwenhuizen <bas@basnieuwenhuizen.nl>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/14364>

2 years agoFixed you're to your
Markus_included [Sat, 11 Dec 2021 21:54:01 +0000 (21:54 +0000)]
Fixed you're to your

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

2 years agointel/compiler/test: Fix build with GCC 7
Henry Goffin [Thu, 30 Dec 2021 07:13:41 +0000 (07:13 +0000)]
intel/compiler/test: Fix build with GCC 7

Without this change, test_fs_scoreboard.cpp does not compile on GCC 7
due to the use of C99 initializers in a C++ source file.

Fixes: c847bfaaf5c ("intel/fs/gen12: Add tests for scoreboard pass")

Reviewed-by: Matt Turner <mattst88@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/14349>

2 years agomicrosoft/compiler: Fix LOD instruction to return 2 values
Jesse Natalie [Fri, 10 Dec 2021 23:03:32 +0000 (15:03 -0800)]
microsoft/compiler: Fix LOD instruction to return 2 values

Reviewed-by: Sil Vilerino <sivileri@microsoft.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/14161>

2 years agod3d12: Enable texture gather
Jesse Natalie [Wed, 8 Dec 2021 19:01:29 +0000 (11:01 -0800)]
d3d12: Enable texture gather

The CI changes are because WARP fails really hard at gather,
with crashes when doing it on a 1x1 or Nx1 texture, and incorrectly
applying swizzling to the result vector instead of the actual texture
accesses.

Reviewed-by: Sil Vilerino <sivileri@microsoft.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/14161>

2 years agod3d12: Handle cubemap gather on int cubemaps
Jesse Natalie [Thu, 9 Dec 2021 21:38:58 +0000 (13:38 -0800)]
d3d12: Handle cubemap gather on int cubemaps

There were 2 options: This, or double-bind the cubemap so we can reference
it as both a cube and as a 2D array, and only run gathers on the cubemap.

As ugly as this is, I think I like it better.

Reviewed-by: Sil Vilerino <sivileri@microsoft.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/14161>

2 years agomicrosoft/compiler: Position should always be no-perspective
Jesse Natalie [Wed, 8 Dec 2021 21:51:28 +0000 (13:51 -0800)]
microsoft/compiler: Position should always be no-perspective

Debug WARP asserts on this, and sure enough, the spec says it
should be no-perspective.

Reviewed-by: Sil Vilerino <sivileri@microsoft.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/14161>

2 years agod3d12: Enable cubemap arrays
Jesse Natalie [Wed, 8 Dec 2021 15:05:53 +0000 (07:05 -0800)]
d3d12: Enable cubemap arrays

Reviewed-by: Sil Vilerino <sivileri@microsoft.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/14161>

2 years agod3d12: Replace pipe cap literals with D3D12 defines when available
Jesse Natalie [Wed, 8 Dec 2021 14:48:39 +0000 (06:48 -0800)]
d3d12: Replace pipe cap literals with D3D12 defines when available

Also remove references to feature levels < 11.0, D3D12 doesn't support those

Reviewed-by: Sil Vilerino <sivileri@microsoft.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/14161>

2 years agoradeonsi: enable ARB_sparse_texture
Qiang Yu [Fri, 10 Dec 2021 13:59:58 +0000 (21:59 +0800)]
radeonsi: enable ARB_sparse_texture

Reviewed-by: Marek Olšák <marek.olsak@amd.com>
Signed-off-by: Qiang Yu <yuq825@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/14223>

2 years agoradeonsi: support texture resource commit
Qiang Yu [Fri, 10 Dec 2021 10:33:38 +0000 (18:33 +0800)]
radeonsi: support texture resource commit

Reviewed-by: Marek Olšák <marek.olsak@amd.com>
Signed-off-by: Qiang Yu <yuq825@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/14223>

2 years agoradeonsi: implement get_sparse_texture_virtual_page_size
Qiang Yu [Fri, 10 Dec 2021 03:26:16 +0000 (11:26 +0800)]
radeonsi: implement get_sparse_texture_virtual_page_size

Reviewed-by: Marek Olšák <marek.olsak@amd.com>
Signed-off-by: Qiang Yu <yuq825@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/14223>

2 years agoradeonsi: use staging buffer for sparse texture when transfer map
Qiang Yu [Tue, 14 Dec 2021 06:14:24 +0000 (14:14 +0800)]
radeonsi: use staging buffer for sparse texture when transfer map

Can't map sparse texture directly.

Reviewed-by: Marek Olšák <marek.olsak@amd.com>
Signed-off-by: Qiang Yu <yuq825@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/14223>

2 years agoradeonsi: support alloc a sparse texture
Qiang Yu [Fri, 10 Dec 2021 02:48:47 +0000 (10:48 +0800)]
radeonsi: support alloc a sparse texture

Reviewed-by: Marek Olšák <marek.olsak@amd.com>
Signed-off-by: Qiang Yu <yuq825@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/14223>

2 years agoac/surface: add prt_tile_depth
Qiang Yu [Wed, 15 Dec 2021 03:22:17 +0000 (11:22 +0800)]
ac/surface: add prt_tile_depth

For supporting 3D sparse texture.

Reviewed-by: Marek Olšák <marek.olsak@amd.com>
Signed-off-by: Qiang Yu <yuq825@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/14223>

2 years agoac/surface: fix prt_first_mip_tail calculation for gfx9+
Qiang Yu [Thu, 16 Dec 2021 02:07:46 +0000 (10:07 +0800)]
ac/surface: fix prt_first_mip_tail calculation for gfx9+

Use firstMipIdInTail directly from addrlib which calculated this
in a different way:

Original way: either dimension size of mipmap should be less than
the tile size.

Addrlib way: all dimesion size of the mipmap should be less than
the tile size and at lest one dimension size should be less than
half of the tile size, so that all following mip levels can fit
in one tile and any commit for level in the mip tail also commit
for all levels in mip tail.

Theoretically either way is OK but addrlib way needs less care
about the mip tail commit and better align with the true memory
layout given by itself.

Reviewed-by: Marek Olšák <marek.olsak@amd.com>
Signed-off-by: Qiang Yu <yuq825@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/14223>

2 years agowinsys/radeon: change surface_init flags to 64bit
Qiang Yu [Tue, 14 Dec 2021 01:24:15 +0000 (09:24 +0800)]
winsys/radeon: change surface_init flags to 64bit

RADEON_SURF_PRT is (1ull << 32).

Reviewed-by: Marek Olšák <marek.olsak@amd.com>
Signed-off-by: Qiang Yu <yuq825@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/14223>

2 years agomesa/st: update NumSparseLevels from pipe_resource
Qiang Yu [Fri, 10 Dec 2021 01:53:59 +0000 (09:53 +0800)]
mesa/st: update NumSparseLevels from pipe_resource

Add nr_sparse_levels in pipe_resource for updating the
gl_texture_object->NumSparseLevels.

Reviewed-by: Marek Olšák <marek.olsak@amd.com>
Signed-off-by: Qiang Yu <yuq825@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/14223>

2 years agomesa: implement glTexPageCommitmentARB/glTexturePageCommitmentEXT
Qiang Yu [Thu, 9 Dec 2021 07:40:13 +0000 (15:40 +0800)]
mesa: implement glTexPageCommitmentARB/glTexturePageCommitmentEXT

Reviewed-by: Marek Olšák <marek.olsak@amd.com>
Signed-off-by: Qiang Yu <yuq825@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/14223>

2 years agomesa/st: add st_TexturePageCommitment interface
Qiang Yu [Wed, 8 Dec 2021 09:00:58 +0000 (17:00 +0800)]
mesa/st: add st_TexturePageCommitment interface

Reviewed-by: Marek Olšák <marek.olsak@amd.com>
Signed-off-by: Qiang Yu <yuq825@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/14223>

2 years agomesa: glTexStorage* support sparse texture allocation
Qiang Yu [Wed, 8 Dec 2021 08:05:05 +0000 (16:05 +0800)]
mesa: glTexStorage* support sparse texture allocation

Reviewed-by: Marek Olšák <marek.olsak@amd.com>
Signed-off-by: Qiang Yu <yuq825@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/14223>

2 years agomesa/st: add st_GetSparseTextureVirtualPageSize interface
Qiang Yu [Tue, 7 Dec 2021 09:43:02 +0000 (17:43 +0800)]
mesa/st: add st_GetSparseTextureVirtualPageSize interface

For ARB_sparse_texture implementation.

Reviewed-by: Marek Olšák <marek.olsak@amd.com>
Signed-off-by: Qiang Yu <yuq825@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/14223>

2 years agomesa: add ARB_sparse_texture texture param set/get
Qiang Yu [Tue, 7 Dec 2021 02:14:27 +0000 (10:14 +0800)]
mesa: add ARB_sparse_texture texture param set/get

Reviewed-by: Marek Olšák <marek.olsak@amd.com>
Signed-off-by: Qiang Yu <yuq825@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/14223>

2 years agomesa: add ARB_sparse_texture query in glGetInternalformativ
Qiang Yu [Mon, 6 Dec 2021 09:45:59 +0000 (17:45 +0800)]
mesa: add ARB_sparse_texture query in glGetInternalformativ

Add new parameter of glGetInternalformativ for ARB_sparse_texture.

Reviewed-by: Marek Olšák <marek.olsak@amd.com>
Signed-off-by: Qiang Yu <yuq825@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/14223>

2 years agogallium: add get_sparse_texture_virtual_page_size for noop/rbug/trace
Qiang Yu [Mon, 6 Dec 2021 09:43:20 +0000 (17:43 +0800)]
gallium: add get_sparse_texture_virtual_page_size for noop/rbug/trace

Reviewed-by: Marek Olšák <marek.olsak@amd.com>
Signed-off-by: Qiang Yu <yuq825@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/14223>

2 years agogallium: add screen get_sparse_texture_virtual_page_size callback
Qiang Yu [Mon, 6 Dec 2021 09:37:35 +0000 (17:37 +0800)]
gallium: add screen get_sparse_texture_virtual_page_size callback

For ARB_sparse_texture extension to query driver supported page
size for each texture format.

Reviewed-by: Marek Olšák <marek.olsak@amd.com>
Signed-off-by: Qiang Yu <yuq825@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/14223>

2 years agomesa: add ARB_sparse_texture constants
Qiang Yu [Sat, 4 Dec 2021 03:47:33 +0000 (11:47 +0800)]
mesa: add ARB_sparse_texture constants

Reviewed-by: Marek Olšák <marek.olsak@amd.com>
Signed-off-by: Qiang Yu <yuq825@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/14223>

2 years agomesa: add ARB_sparse_texture extension
Qiang Yu [Sat, 4 Dec 2021 03:36:03 +0000 (11:36 +0800)]
mesa: add ARB_sparse_texture extension

Reviewed-by: Marek Olšák <marek.olsak@amd.com>
Signed-off-by: Qiang Yu <yuq825@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/14223>

2 years agogallium: add caps for sparse texture support
Qiang Yu [Fri, 3 Dec 2021 08:12:42 +0000 (16:12 +0800)]
gallium: add caps for sparse texture support

Reviewed-by: Marek Olšák <marek.olsak@amd.com>
Signed-off-by: Qiang Yu <yuq825@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/14223>

2 years agoglapi: should not add alias function to static_data.py
Qiang Yu [Sat, 4 Dec 2021 02:46:53 +0000 (10:46 +0800)]
glapi: should not add alias function to static_data.py

Alias function should not be assigned an offset, otherwise new added
function will get error:

  Exception: entries are not ordered by slots

Fixes: 757bc6d37a6 ("mesa: Add support for EXT_clear_texture")

Reviewed-by: Marek Olšák <marek.olsak@amd.com>
Signed-off-by: Qiang Yu <yuq825@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/14223>

2 years agor600/sfn: Remove unused AluInstruction members.
Vinson Lee [Tue, 10 Aug 2021 00:33:04 +0000 (17:33 -0700)]
r600/sfn: Remove unused AluInstruction members.

Fix defects reported by Coverity Scan.

uninit_member: Non-static class member m_omod is not initialized in this constructor nor in any functions that it calls.
uninit_member: Non-static class member m_pred_sel is not initialized in this constructor nor in any functions that it calls.

Suggested-by: Emma Anholt <emma@anholt.net>
Signed-off-by: Vinson Lee <vlee@freedesktop.org>
Reviewed-by: Emma Anholt <emma@anholt.net>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/12294>

2 years agocrocus: set max clip planes to 6 for gen4.
Dave Airlie [Thu, 30 Dec 2021 01:10:46 +0000 (11:10 +1000)]
crocus: set max clip planes to 6 for gen4.

Fixes piglit gl-1.0-user-clip-all-planes

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

2 years agogallium/mesa: enhance PIPE_CAP_CLIP_PLANES to support override number
Dave Airlie [Thu, 30 Dec 2021 01:09:07 +0000 (11:09 +1000)]
gallium/mesa: enhance PIPE_CAP_CLIP_PLANES to support override number

There exists hardware intel gen4 specifically that has only 6 clip planes
but supports GLSL 1.30. This enhances the CAP so that the current values
of 0,1 remain the same, but giving it a larger number will override the
max.

This allows the gen4 intel to set this to 6 and leave everyone else alone.

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

2 years agocrocus: don't create staging resources > half aperture
Dave Airlie [Thu, 30 Dec 2021 01:52:32 +0000 (11:52 +1000)]
crocus: don't create staging resources > half aperture

The theory here is that a staging resource will need to be transferred
into or out of a non-staging resource. If the staging resource is too
big for 1/2 aperture threshold, then it the corresponding non-stage
resource will be similiarly sized. This means there's no hope of fitting
both of them in.

This will cause the st blit transfer path to fall back and allow
max-texture-size to pass.

Fixes piglit max-texture-size

Reviewed-by: Emma Anholt <emma@anholt.net>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/14347>

2 years agocrocus: fail resource allocation properly.
Dave Airlie [Wed, 29 Dec 2021 07:32:12 +0000 (17:32 +1000)]
crocus: fail resource allocation properly.

Older gens have a limit of 2GB on surfaces, this results in
isl_surf_init_s failing if the surface exceeds that, in this
case this should fail all the way back up the stack.

This fixes some cases of max-texture-size on crocus

Fixes: f3630548f1da ("crocus: initial gallium driver for Intel gfx 4-7")

Reviewed-by: Emma Anholt <emma@anholt.net>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/14347>

2 years agointel/genxml/gen4-5: fix more Raster Operation in BLT to be a uint
Dave Airlie [Thu, 30 Dec 2021 01:25:13 +0000 (11:25 +1000)]
intel/genxml/gen4-5: fix more Raster Operation in BLT to be a uint

This has been partly fixed twice before, but looks like some got missed.

Fixes arb_copy_image on gen4 with crocus

Fixes: de625dddeea4 ("intel/genxml: fix raster operation field in blt genxml")

Acked-by: Jason Ekstrand <jason@jlekstrand.net>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/14345>

2 years agoci/i915g: Add a couple more recent regressions.
Emma Anholt [Mon, 20 Dec 2021 23:21:14 +0000 (15:21 -0800)]
ci/i915g: Add a couple more recent regressions.

The new frontfacing one is just different UB for the same lack of
frontfacing support.  And for RGB10_A2, we have another fail in that area
already as well.

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

2 years agoci: Enable reporting to the flakes IRC channel for i915g and crocus.
Emma Anholt [Thu, 23 Dec 2021 17:15:27 +0000 (09:15 -0800)]
ci: Enable reporting to the flakes IRC channel for i915g and crocus.

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

2 years agoci/crocus: Add manual CI for the new HSW box I have at home.
Emma Anholt [Thu, 23 Dec 2021 15:15:28 +0000 (07:15 -0800)]
ci/crocus: Add manual CI for the new HSW box I have at home.

Also extend the set of traces being tested and add more notes about them,
as well as add some g41 flakes since I did more runs.

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

2 years agodocs: update calendar and link releases notes for 21.3.3
Eric Engestrom [Wed, 29 Dec 2021 21:51:22 +0000 (21:51 +0000)]
docs: update calendar and link releases notes for 21.3.3

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

2 years agodocs: add release notes for 21.3.3
Eric Engestrom [Wed, 29 Dec 2021 21:00:13 +0000 (21:00 +0000)]
docs: add release notes for 21.3.3

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

2 years agor300: fix handling swizzle in transform_source_conflicts
Filip Gawin [Tue, 21 Dec 2021 17:52:31 +0000 (18:52 +0100)]
r300: fix handling swizzle in transform_source_conflicts

these tests are now passing:
dEQP-GLES2.functional.shaders.operator.exponential.pow.highp_vec2_vertex,Fail
dEQP-GLES2.functional.shaders.operator.exponential.pow.highp_vec3_vertex,Fail
dEQP-GLES2.functional.shaders.operator.exponential.pow.highp_vec4_vertex,Fail
dEQP-GLES2.functional.shaders.operator.exponential.pow.mediump_vec2_vertex,Fail
dEQP-GLES2.functional.shaders.operator.exponential.pow.mediump_vec3_vertex,Fail
dEQP-GLES2.functional.shaders.operator.exponential.pow.mediump_vec4_vertex,Fail

Fixes: 1c2c4ddbd1e9 ("r300g: copy the compiler from r300c")

Reviewed-by: Emma Anholt <emma@anholt.net>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/14282>

2 years agor300: Replace RADEON_NO_TCL with RADEON_DEBUG=notcl
Pavel Ondračka [Wed, 29 Dec 2021 10:07:17 +0000 (11:07 +0100)]
r300: Replace RADEON_NO_TCL with RADEON_DEBUG=notcl

The old option was broken with shader cache.

Reviewed-by: Marek Olšák <marek.olsak@amd.com>
Signed-off-by: Pavel Ondračka <pavel.ondracka@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/14333>

2 years agor300: Document the RADEON_DEBUG options
Pavel Ondračka [Wed, 29 Dec 2021 10:04:51 +0000 (11:04 +0100)]
r300: Document the RADEON_DEBUG options

Reviewed-by: Marek Olšák <marek.olsak@amd.com>
Signed-off-by: Pavel Ondračka <pavel.ondracka@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/14333>

2 years agoradv: print number of levels with RADV_DEBUG=img
Samuel Pitoiset [Wed, 29 Dec 2021 13:13:23 +0000 (14:13 +0100)]
radv: print number of levels with RADV_DEBUG=img

Might help debugging image related issues like DCC or HTILE.

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

2 years agoradv: stop checking buffer size in vkCreateBuffer()
Samuel Pitoiset [Wed, 29 Dec 2021 09:29:05 +0000 (10:29 +0100)]
radv: stop checking buffer size in vkCreateBuffer()

This was added to fix dEQP-VK.api.buffer.basic.size_max_uint64 but
with VK_KHR_maintenance4 this is now considered invalid usage.

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

2 years agoRevert "gitlab-ci: disable radv-fossils"
Daniel Stone [Wed, 29 Dec 2021 13:48:03 +0000 (13:48 +0000)]
Revert "gitlab-ci: disable radv-fossils"

The fossils-db repository is fixed now.

This reverts commit 7b8ea3384832656e7db0e94692aca47f10083cce.

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

2 years agodri_drawable: missing header
Eleni Maria Stea [Tue, 28 Dec 2021 13:52:44 +0000 (15:52 +0200)]
dri_drawable: missing header

dri_util.h must be included in dri_drawable.h for __DRI* types and
driDrawPriv to be defined.

Signed-off-by: Eleni Maria Stea <elene.mst@gmail.com>
Reviewed-by: Marek Olšák <marek.olsak@amd.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/14334>

2 years agozink: Fix building on macOS
Hamish Arblaster [Sun, 19 Dec 2021 00:10:11 +0000 (00:10 +0000)]
zink: Fix building on macOS

This fixes building on macOS:
  Disable ZINK_USE_DMABUF on macOS, it is unsupported.
  Import vk_mvk_moltenvk.h for MVK_VERSION in zink_resource.c.
  Add additional build arguments (see meson.build) to build properly.

To build on macOS, you will probably need to run:
  brew install bison llvm cmake libxext xquartz ninja xorgproto meson

And you also need to setup meson with something like:
  -Dmoltenvk-dir=/Users/<Username>/VulkanSDK/<VersionNumber>/MoltenVK
  -Dc_std=c11

Reviewed-by: Hoe Hao Cheng <haochengho12907@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/14255>

2 years agointel/devinfo: adjust subslice array size
Lionel Landwerlin [Thu, 30 Jul 2020 12:56:14 +0000 (15:56 +0300)]
intel/devinfo: adjust subslice array size

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

2 years agoiris: Use util packing fns in convert_clear_color
Nanley Chery [Mon, 26 Oct 2020 00:08:20 +0000 (17:08 -0700)]
iris: Use util packing fns in convert_clear_color

A couple things happen as a result of this:

1. This function is more consistent. It aims to clamp clear color ranges
   to format-dependent values, but it didn't clamp the upper ranges of
   10-bit and 11-bit floats (64512 and 65024 respectively). Those are
   handled now.

2. The clear colors are quantized. The quantization method seems to
   differ from what the HW uses for slow (and obviously fast) clears.
   Due to this change in quantization method, iris starts failing
   dEQP-EGL.functional.image.modify.renderbuffer_rgba4_renderbuffer_clear_color.
   That's okay however. That test was removed from the mustpass list
   because of threshold issues (see egl-test-issues.txt).

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

2 years agoradv: fix clears with value of "1" and different DCC signedness
Samuel Pitoiset [Thu, 16 Dec 2021 14:40:38 +0000 (15:40 +0100)]
radv: fix clears with value of "1" and different DCC signedness

For example, if the driver clears a view of SINT with 127 and the image
format is UNORM, the hw fills "1" instead of the clear value
(127.0f / 255.0f). This CB feature is GFX9+ only.

This should fix test_typed_srv_cast_clear from vkd3d-proton once it
correctly sets the MUTABLE flag (which is still buggy as of c0a3fa8a).

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

2 years agoradv: Increase maxFragmentCombinedOutputResources.
Georg Lehmann [Mon, 27 Dec 2021 13:36:27 +0000 (14:36 +0100)]
radv: Increase maxFragmentCombinedOutputResources.

This also includes storage images and storage buffers, not just color
attachments.

Signed-off-by: Georg Lehmann <dadschoorse@gmail.com>
Reviewed-by: Samuel Pitoiset <samuel.pitoiset@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/14311>

2 years agoradv/amdgpu: Use VkResult for wait_timeline_syncobj.
Bas Nieuwenhuizen [Sat, 11 Dec 2021 18:44:53 +0000 (19:44 +0100)]
radv/amdgpu: Use VkResult for wait_timeline_syncobj.

So we can actually return errors.

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

2 years agoradv: Skip wait timeline ioctl with 0 handles.
Bas Nieuwenhuizen [Sun, 12 Dec 2021 00:01:55 +0000 (01:01 +0100)]
radv: Skip wait timeline ioctl with 0 handles.

Fixes: 55d8022878f "radv: Add winsys functions for timeline syncobj."
Reviewed-by: Samuel Pitoiset <samuel.pitoiset@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/14165>

2 years agoradv: Use correct buffer size for query pool result copies.
Bas Nieuwenhuizen [Fri, 17 Dec 2021 09:08:23 +0000 (10:08 +0100)]
radv: Use correct buffer size for query pool result copies.

1. the dst stride may be too small if count=1.
2. the src stride may be too small due to the availability bit.

So lets just compute the size needed explicitly and use it.

Fixes: 90a0556c ("radv: use pool stride when copying single query results")
Reviewed-by: Samuel Pitoiset <samuel.pitoiset@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/14242>

2 years agoradv: re-apply "Do not access set layout during vkCmdBindDescriptorSets."
Samuel Pitoiset [Tue, 28 Dec 2021 14:14:02 +0000 (15:14 +0100)]
radv: re-apply "Do not access set layout during vkCmdBindDescriptorSets."

Uplay needs this to avoid a crash because it does an use-after-free
of a descriptor set layout. This was initially introduced by Bas to
workaround a similar issue with Baldur's Gate 3, it seems needed again.

Cc: 21.3 mesa-stable
Closes: https://gitlab.freedesktop.org/mesa/mesa/-/issues/5789
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/14318>

2 years agoradv: re-enable fast clears for images that support comp-to-single
Samuel Pitoiset [Mon, 29 Nov 2021 15:34:47 +0000 (16:34 +0100)]
radv: re-enable fast clears for images that support comp-to-single

This optimized path was disabled, oops.

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

2 years agopanfrost: Make pan_merge macro more robust
Alyssa Rosenzweig [Mon, 6 Dec 2021 20:06:23 +0000 (15:06 -0500)]
panfrost: Make pan_merge macro more robust

Consider the following innocuous-looking code:

   pan_merge(packed, vtx->attributes[i], ATTRIBUTE);

Under the current implementation, this code is completely broken. Why?
The current implemention is a macro which hardcodes the loop index i,
which shadows the i used to index attributes. Pull out a helper method
so we do the right thing without resulting to further preprocessor abuse
(__COUNTER__).

While making things more robust, assert the crucial pan_merge
invariant that the total size is a multiple of 4; if this fails, the
routine risks memory corruption.

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

2 years agoFix typo
Jason2013 [Mon, 13 Dec 2021 08:11:44 +0000 (08:11 +0000)]
Fix typo

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

2 years agoradv: fix restoring subpass during hw/fs color resolves
Samuel Pitoiset [Tue, 28 Dec 2021 09:38:41 +0000 (10:38 +0100)]
radv: fix restoring subpass during hw/fs color resolves

This fixes an stack-use-after-scope detect by ASAN because the
subpass is used after the loop by radv_mark_noncoherent_rb().

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

2 years agoradv/winsys: remove radv_amdgpu_winsys_bo::is_shared
Samuel Pitoiset [Wed, 15 Dec 2021 11:53:31 +0000 (12:53 +0100)]
radv/winsys: remove radv_amdgpu_winsys_bo::is_shared

This has never been used.

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

2 years agoradv/winsys: stop zeroing few structs in buffer_from_fd()
Samuel Pitoiset [Wed, 15 Dec 2021 11:49:04 +0000 (12:49 +0100)]
radv/winsys: stop zeroing few structs in buffer_from_fd()

Errors are correctly handled here.

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

2 years agoradv: remove unnecessary NULL checks in vkMapMemory()/vkUnmapMemory()
Samuel Pitoiset [Wed, 15 Dec 2021 11:33:07 +0000 (12:33 +0100)]
radv: remove unnecessary NULL checks in vkMapMemory()/vkUnmapMemory()

It's required to have a valid device memory handle and it would make
no sense to call these functions with a NULL pointer.

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

2 years agotu/clear_blit: use || when working with bools
Thomas H.P. Andersen [Tue, 28 Dec 2021 01:24:42 +0000 (02:24 +0100)]
tu/clear_blit: use || when working with bools

Fixes a warning with clang

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

2 years agod3d12: Avoid a debug warning trying to unmap a not-mapped resource
Jesse Natalie [Wed, 22 Dec 2021 02:22:50 +0000 (18:22 -0800)]
d3d12: Avoid a debug warning trying to unmap a not-mapped resource

Reviewed-by: Sil Vilerino <sivileri@microsoft.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/14294>

2 years agod3d12: Set SSBO support caps
Jesse Natalie [Wed, 22 Dec 2021 00:25:01 +0000 (16:25 -0800)]
d3d12: Set SSBO support caps

Reviewed-by: Sil Vilerino <sivileri@microsoft.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/14294>

2 years agod3d12: Use DXIL load/store lowering pass
Jesse Natalie [Wed, 22 Dec 2021 19:54:40 +0000 (11:54 -0800)]
d3d12: Use DXIL load/store lowering pass

Reviewed-by: Sil Vilerino <sivileri@microsoft.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/14294>

2 years agod3d12: Support setting SSBOs on the context and turning them into descriptors
Jesse Natalie [Wed, 22 Dec 2021 00:24:55 +0000 (16:24 -0800)]
d3d12: Support setting SSBOs on the context and turning them into descriptors

Reviewed-by: Sil Vilerino <sivileri@microsoft.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/14294>

2 years agod3d12: Always create buffers as UAV-capable
Jesse Natalie [Wed, 22 Dec 2021 00:23:36 +0000 (16:23 -0800)]
d3d12: Always create buffers as UAV-capable

Reviewed-by: Sil Vilerino <sivileri@microsoft.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/14294>

2 years agod3d12: Support SSBOs in root signatures
Jesse Natalie [Wed, 22 Dec 2021 00:14:41 +0000 (16:14 -0800)]
d3d12: Support SSBOs in root signatures

Reviewed-by: Sil Vilerino <sivileri@microsoft.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/14294>

2 years agomicrosoft/compiler: Handle write masks in SSBO lowering pass
Jesse Natalie [Wed, 22 Dec 2021 19:51:49 +0000 (11:51 -0800)]
microsoft/compiler: Handle write masks in SSBO lowering pass

Previously, the lowering was for 8/16/64-bit values, or 8/16-component
vectors. Now, it also handles write masks on 32-bit 1/2/3/4-component
vectors.

DXIL looks like it supports putting an interesting write mask in the
buffer store intrinsic, but DXC never generates stores with write
masks, and multiple drivers completely ignore the write mask.

Also, set the write mask properly on the output intrinsic.

Reviewed-by: Sil Vilerino <sivileri@microsoft.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/14294>

2 years agomicrosoft/compiler: Hook up uavs-at-every-stage flag
Jesse Natalie [Wed, 22 Dec 2021 02:15:29 +0000 (18:15 -0800)]
microsoft/compiler: Hook up uavs-at-every-stage flag

Reviewed-by: Sil Vilerino <sivileri@microsoft.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/14294>

2 years agomicrosoft/compiler: Emit SSBOs from 0 -> count for GL (non-kernel, non-Vulkan) shaders
Jesse Natalie [Wed, 22 Dec 2021 00:13:45 +0000 (16:13 -0800)]
microsoft/compiler: Emit SSBOs from 0 -> count for GL (non-kernel, non-Vulkan) shaders

Reviewed-by: Sil Vilerino <sivileri@microsoft.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/14294>