Commit Graph

168559 Commits

Author SHA1 Message Date
Jesse Natalie
37c0e8beda compiler/clc: Don't fail to parse SPIR-V if there's no kernels
It's valid to have library SPIR-V being parsed that has no entrypoints.
We still want to get spec constant info for them.

Reviewed-by: Karol Herbst <kherbst@redhat.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26582>
2023-12-11 16:28:28 +00:00
Faith Ekstrand
3955e596df nak: Implement fmulz and ffmaz
Closes: https://gitlab.freedesktop.org/mesa/mesa/-/issues/10261
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26569>
2023-12-11 15:29:17 +00:00
Faith Ekstrand
ce8d966085 nak: Set .ftz on f32 ops by default
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26569>
2023-12-11 15:29:17 +00:00
Faith Ekstrand
aac1e3f595 nir: Add a new has_fmulz_no_denorms flag
Reviewed-by: Alyssa Rosenzweig <alyssa@rosenzweig.io>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26569>
2023-12-11 15:29:17 +00:00
Erik Faye-Lund
a8b68badd5 mesa/st: use _mesa_is_zero_size_texture-helper
No need to repeat the logic.

Reviewed-by: Marek Olšák <marek.olsak@amd.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26418>
2023-12-11 12:23:19 +00:00
Erik Faye-Lund
3123e4ffeb mesa/main: remove unused function
Let's just remove it.

Reviewed-by: Marek Olšák <marek.olsak@amd.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26418>
2023-12-11 12:23:19 +00:00
Erik Faye-Lund
b84117b272 mesa/main: use _mesa_is_zero_size_texture-helper
No need to repeat this logic.

Reviewed-by: Marek Olšák <marek.olsak@amd.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26418>
2023-12-11 12:23:19 +00:00
Erik Faye-Lund
9e69dfbfed mesa/main: remove unused ClassID
This was probably useful in the past when we had DRI drivers, but it's
only ever written now. Let's get rid of it.

Reviewed-by: Marek Olšák <marek.olsak@amd.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26418>
2023-12-11 12:23:19 +00:00
Erik Faye-Lund
c67e6ea4c1 mesa/main: remove unused Log2 variants of width/height/depth
These are unused, and the comments about the relationships between it an
the other variants seems to be seriously outdated. Let's get rid of it.

Reviewed-by: Marek Olšák <marek.olsak@amd.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26418>
2023-12-11 12:23:19 +00:00
Daniel Schürmann
dd7b6898e6 radv: fix number of physical SGPRs on GFX10+
This change has no effect.

Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26521>
2023-12-11 10:39:51 +00:00
Daniel Schürmann
5ebba87772 aco: rename max_wave64_per_simd -> max_waves_per_simd
and update usage. Changes are because the scheduler targets
a different number of waves.

Totals from 195 (0.25% of 79330) affected shaders: (GFX11)

MaxWaves: 3120 -> 3108 (-0.38%)
Instrs: 71202 -> 71070 (-0.19%); split: -0.27%, +0.09%
CodeSize: 383272 -> 382828 (-0.12%); split: -0.21%, +0.10%
VGPRs: 7392 -> 7752 (+4.87%)
Latency: 2280141 -> 2262487 (-0.77%); split: -0.79%, +0.02%
InvThroughput: 4759022 -> 5725442 (+20.31%); split: -0.01%, +20.32%
VClause: 1737 -> 1741 (+0.23%); split: -3.11%, +3.34%
SClause: 2385 -> 2376 (-0.38%); split: -0.80%, +0.42%
Copies: 5257 -> 5274 (+0.32%); split: -0.25%, +0.57%
Branches: 1213 -> 1212 (-0.08%)
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26521>
2023-12-11 10:39:50 +00:00
Daniel Schürmann
f5bdc46a57 amd: rename max_wave64_per_simd -> max_waves_per_simd
These are hard limits and don't depend on wave size.
Accordingly, also update the usage in order to avoid
reporting unreasonable occupancy.

Totals from 192 (0.24% of 79330) affected shaders:

MaxWaves: 5814 -> 3072 (-47.16%)
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26521>
2023-12-11 10:39:50 +00:00
Samuel Pitoiset
ac20c70e9d radv: promote EXT_calibrated_timestamps to KHR
All functionality are similar.

Signed-off-by: Samuel Pitoiset <samuel.pitoiset@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26596>
2023-12-11 08:26:20 +01:00
Samuel Pitoiset
c9e1758462 vulkan: bump headers/registry to 1.3.273
Signed-off-by: Samuel Pitoiset <samuel.pitoiset@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26596>
2023-12-11 08:26:02 +01:00
M Henning
9d162de9a0 nak: Enable loop unrolling.
This brings The Talos Principle from 9 to 18 fps on my machine.

Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26626>
2023-12-11 01:40:55 +00:00
M Henning
e87cca7717 nak: Clamp negative texture array indices to zero
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26626>
2023-12-11 01:40:55 +00:00
Faith Ekstrand
888f09eca8 nvk: Rework the way we set up memory heaps/types
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26627>
2023-12-10 18:31:31 -06:00
Faith Ekstrand
18ae2d1878 nvk: Throw Tegra behind NVK_I_WANT_A_BROKEN_VULKAN_DRIVER
It's recieved very little testing and what testing it has recieved
indicates that synchronization is pretty badly broken.  Let's turn it
off for users by default right now.

Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26627>
2023-12-10 18:27:43 -06:00
Echo J
9ca9b67446 nvk: Set HOST_CACHED_BIT for the GTT type
vkd3d-proton requires this memory bit in various cases (adding
it to the GTT memory type significantly reduces failures in the
vkd3d-proton test suite) 🐸

I'm not sure if Tegra supports this bit though so I'm not adding it
to the VRAM-less path (hopefully someone can provide an actual answer)

The next step would be adding HOST_VISIBLE bit to the VRAM type (this
will likely require more work and maybe even some KMD changes) which
would make gamescope work (Faith said that DXVK benefits from it too)

Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26621>
2023-12-10 17:57:38 +02:00
Marek Olšák
9ab59574ef gallium: add typedef pipe_draw_func matching the draw_vbo signature and use it
We've copied the signature too many times already. This will also be used
more.

It intentionally deviates from the name by not including the "_vbo" part.

Reviewed-by: Pierre-Eric Pelloux-Prayer <pierre-eric.pelloux-prayer@amd.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26619>
2023-12-10 06:20:14 +00:00
Marek Olšák
7f11272d29 mesa: execute an error path sooner in _mesa_validated_drawrangeelements
Also don't print the warning in release builds.

Reviewed-by: Pierre-Eric Pelloux-Prayer <pierre-eric.pelloux-prayer@amd.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26619>
2023-12-10 06:20:13 +00:00
Marek Olšák
4f766426b2 cso: inline cso_get_pipe_context
Reviewed-by: Pierre-Eric Pelloux-Prayer <pierre-eric.pelloux-prayer@amd.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26619>
2023-12-10 06:20:13 +00:00
Marek Olšák
7da5b8dac0 cso: do cso_context inheritance how we do it elsewhere
Currently, we have:
- cso_context_base is the base class, but cso_context is passed to functions
- cso_context is the derived class

Change:
- cso_context to become the base class, and is passed to functions
- cso_context_priv to become the derived class.

mesa/main will need to access the base class directly.

Acked-by: Pierre-Eric Pelloux-Prayer <pierre-eric.pelloux-prayer@amd.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26619>
2023-12-10 06:20:13 +00:00
Marek Olšák
3b16541a8f mesa: move index bounds code (st_prepare_indexed_draw) into draw.c
there is no other user

Reviewed-by: Pierre-Eric Pelloux-Prayer <pierre-eric.pelloux-prayer@amd.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26619>
2023-12-10 06:20:13 +00:00
Marek Olšák
c6281a6f26 st/mesa: no need to check index_size in st_prepare_indexed_draw anymore
Reviewed-by: Pierre-Eric Pelloux-Prayer <pierre-eric.pelloux-prayer@amd.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26619>
2023-12-10 06:20:13 +00:00
Marek Olšák
4cd585ab50 mesa: call st_prepare_(indexed_)draw before Driver.DrawGallium(MultiMode)
This is refactoring for future work. Also, it unifies the st_draw_feedback
path with the normal path and the "indexed" version doesn't have to be called
in many places.

Reviewed-by: Pierre-Eric Pelloux-Prayer <pierre-eric.pelloux-prayer@amd.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26619>
2023-12-10 06:20:13 +00:00
Marek Olšák
8cbab48403 mesa: inline st_draw_transform_feedback
Reviewed-by: Pierre-Eric Pelloux-Prayer <pierre-eric.pelloux-prayer@amd.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26619>
2023-12-10 06:20:13 +00:00
Marek Olšák
b14e26b198 st/mesa: make prepare_(indexed_)draw non-static
for later use

Reviewed-by: Pierre-Eric Pelloux-Prayer <pierre-eric.pelloux-prayer@amd.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26619>
2023-12-10 06:20:13 +00:00
Marek Olšák
cf951bace2 mesa: remove non-relevant 16-year-old comment
The comment has nothing to do with the code around it and all uploads
are handled by u_vbuf today.

Reviewed-by: Pierre-Eric Pelloux-Prayer <pierre-eric.pelloux-prayer@amd.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26619>
2023-12-10 06:20:13 +00:00
Marek Olšák
360166c6f4 mesa: remove more DrawArrays/Elements duplication
Reviewed-by: Pierre-Eric Pelloux-Prayer <pierre-eric.pelloux-prayer@amd.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26619>
2023-12-10 06:20:13 +00:00
Marek Olšák
2b8d764a76 mesa: remove some DrawElementsInstanced duplication
Reviewed-by: Pierre-Eric Pelloux-Prayer <pierre-eric.pelloux-prayer@amd.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26619>
2023-12-10 06:20:13 +00:00
Marek Olšák
23227954bc mesa: remove some DrawTransformFeedback duplication
Reviewed-by: Pierre-Eric Pelloux-Prayer <pierre-eric.pelloux-prayer@amd.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26619>
2023-12-10 06:20:13 +00:00
Faith Ekstrand
df62471fef nvk: CBuf alignment reduces to 64B on Turing
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26617>
2023-12-10 03:06:01 +00:00
Faith Ekstrand
289149ebcb nvk: Simplify alignment limit plumbing
We dont't need this whole function just for advertising alignment
requirements.  We now have enough #defines and helpers that they map
pretty cleanly to those.

Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26617>
2023-12-10 03:06:01 +00:00
Faith Ekstrand
08222146ac nak: Reduce minStorageBufferAlignment
The only real requirement here is that we can load an entire vec4 at a
time without getting a misaligned address.

Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26617>
2023-12-10 03:06:01 +00:00
Faith Ekstrand
35a40b4c6a nvk: Add an NVK_MIN_TEXEL_BUFFER_ALIGNMENT #define
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26617>
2023-12-10 03:06:01 +00:00
Faith Ekstrand
b7f8a9e648 nvk: Add a nvk_min_cbuf_alignment() helper and use it
We want to be able to use cbufs for UBOs and descriptor buffers going
forward.  This also cleans up alignments all over the code-base where
just kinda did whatever seemed like a good idea at the time.  The result
is a lot more flexible and accurate.

Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26617>
2023-12-10 03:06:01 +00:00
Faith Ekstrand
bc236acff5 nvk: Plumb a physical device into descriptor_stride_align_for_type
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26617>
2023-12-10 03:06:01 +00:00
Faith Ekstrand
c7de8afbe0 nvk: s/device/dev in nvk_descriptor_set_layout.c
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26617>
2023-12-10 03:06:01 +00:00
Faith Ekstrand
700d5c56d1 nvk: Make NVK_DEBUG=push an alias for push_dump
This has been bothering me for a while.  I can never remember whether
it's push_dump or dump_push.  Let's just get rid of the confusion.

Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26617>
2023-12-10 03:06:01 +00:00
Alyssa Rosenzweig
d11c9f9836 asahi: clamp draw count for mdi
spec req. KHR-GL43.indirect_parameters_tests.MultiDrawArraysIndirectCount

Signed-off-by: Alyssa Rosenzweig <alyssa@rosenzweig.io>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26614>
2023-12-09 12:08:39 -04:00
Alyssa Rosenzweig
fdec9dcf05 asahi: wire up hardware gl_PrimitiveID
when FS reads but no GS in the pipeline, the hw supplies for us. fixes

KHR-GL43.shader_image_size.basic-*-fs-*

Signed-off-by: Alyssa Rosenzweig <alyssa@rosenzweig.io>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26614>
2023-12-09 12:08:39 -04:00
Alyssa Rosenzweig
1e2de134ad asahi: respect render condition for compute
KHR-GL43.compute_shader.conditional-dispatching

Signed-off-by: Alyssa Rosenzweig <alyssa@rosenzweig.io>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26614>
2023-12-09 12:08:39 -04:00
Alyssa Rosenzweig
1a39d1c73a asahi: allow more format reinterpretation
This seems to be the hw rule... would like to confirm with perf counters
though...

Signed-off-by: Alyssa Rosenzweig <alyssa@rosenzweig.io>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26614>
2023-12-09 12:08:39 -04:00
Alyssa Rosenzweig
e69a0f830e asahi: fix size calculation for 2d msaa arrays
otherwise the hw can overprefetch. fixes KHR-GL42.shader_image_load_store.basic-allTargets-load-ms

Signed-off-by: Alyssa Rosenzweig <alyssa@rosenzweig.io>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26614>
2023-12-09 12:08:39 -04:00
Alyssa Rosenzweig
982e644d18 agx: don't produce split of immediate
can't be consumed, affects KHR-GL42.shader_image_load_store.basic-allTargets-load-ms

Signed-off-by: Alyssa Rosenzweig <alyssa@rosenzweig.io>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26614>
2023-12-09 12:08:39 -04:00
Alyssa Rosenzweig
6e2c71dc3b agx: Lower 64-bit I/O to 32-bit
Fixes KHR-GL42.vertex_attrib_64bit.*

Signed-off-by: Alyssa Rosenzweig <alyssa@rosenzweig.io>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26614>
2023-12-09 12:08:39 -04:00
Alyssa Rosenzweig
d6474be46b agx: fix fp64 lowering options
we have no fp64 whatsoever.

Signed-off-by: Alyssa Rosenzweig <alyssa@rosenzweig.io>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26614>
2023-12-09 12:08:39 -04:00
Alyssa Rosenzweig
8d451fe9f2 asahi: fix integer RT clamping
fixes the rest of KHR-GL33.packed_pixels.*

Signed-off-by: Alyssa Rosenzweig <alyssa@rosenzweig.io>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26614>
2023-12-09 12:08:39 -04:00
Alyssa Rosenzweig
01d0fb1cde asahi: fix pbe swizzling
fixes cases in KHR-GL33.packed_pixels.rectangle.*. matches what the powervr
driver does.

Signed-off-by: Alyssa Rosenzweig <alyssa@rosenzweig.io>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26614>
2023-12-09 12:08:39 -04:00