Marek Olšák
cf2f3c2753
ac: reassociate FP expressions for inexact instructions for radeonsi
...
Totals:
SGPRS: 2591784 -> 2590696 (-0.04 %)
VGPRS: 1666888 -> 1666736 (-0.01 %)
Spilled SGPRs: 4131 -> 4107 (-0.58 %)
Spilled VGPRs: 38 -> 38 (0.00 %)
Private memory VGPRs: 2176 -> 2176 (0.00 %)
Scratch size: 2228 -> 2228 (0.00 %) dwords per thread
Code Size: 52715468 -> 52693584 (-0.04 %) bytes
LDS: 92 -> 92 (0.00 %) blocks
Max Waves: 479897 -> 479892 (-0.00 %)
Wait states: 0 -> 0 (0.00 %)
Reviewed-by: Pierre-Eric Pelloux-Prayer <pierre-eric.pelloux-prayer@amd.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/4696 >
2020-04-27 11:20:16 +00:00
Marek Olšák
4b9370cb0f
ac: generate FMA for inexact instructions for radeonsi
...
NIR mostly does this already.
Totals:
SGPRS: 2588520 -> 2591784 (0.13 %)
VGPRS: 1666984 -> 1666888 (-0.01 %)
Spilled SGPRs: 4074 -> 4131 (1.40 %)
Spilled VGPRs: 38 -> 38 (0.00 %)
Private memory VGPRs: 2176 -> 2176 (0.00 %)
Scratch size: 2228 -> 2228 (0.00 %) dwords per thread
Code Size: 52726872 -> 52715468 (-0.02 %) bytes
LDS: 92 -> 92 (0.00 %) blocks
Max Waves: 479872 -> 479897 (0.01 %)
Wait states: 0 -> 0 (0.00 %)
Reviewed-by: Pierre-Eric Pelloux-Prayer <pierre-eric.pelloux-prayer@amd.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/4696 >
2020-04-27 11:20:16 +00:00
Marek Olšák
f2c2a28073
ac: update and document fast math flags used by radeonsi
...
This should have no effect, because we never use FP division, but
it's safer for the future.
Reviewed-by: Pierre-Eric Pelloux-Prayer <pierre-eric.pelloux-prayer@amd.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/4696 >
2020-04-27 11:20:16 +00:00
Marek Olšák
3bb65c0670
ac: force enable -structurizecfg-skip-uniform-regions for LLVM 11
...
Reviewed-by: Pierre-Eric Pelloux-Prayer <pierre-eric.pelloux-prayer@amd.com >
Reviewed-by: Samuel Pitoiset <samuel.pitoiset@gmail.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/4696 >
2020-04-27 11:20:16 +00:00
Danylo Piliaiev
eeab9c93db
st/mesa: Treat vertex inputs absent in inputMapping as zero in mesa_to_tgsi
...
After updating vertex inputs being read based on optimized NIR, they may go out
of sync with inputs in mesa IR. Which is translated to TGSI and used together
with NIR if draw doesn't have llvm.
It's much easier to treat such inputs as zero because there is no pass to
entirely get rid of them and they don't contribute to shader's output.
Fixes: d684fb37bf
Closes: https://gitlab.freedesktop.org/mesa/mesa/-/issues/2815
Signed-off-by: Danylo Piliaiev <danylo.piliaiev@globallogic.com >
Reviewed-by: Jose Maria Casanova Crespo <jmcasanova@igalia.com >
Reviewed-by: Marek Olšák <marek.olsak@amd.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/4705 >
2020-04-27 09:30:06 +00:00
Samuel Pitoiset
b785ad5853
gitlab-ci: add lists of expected failures for RADV CI
...
Currently only supports PITCAIRN, POLARIS10, VEGA10 and NAVI10
with ACO only, but it's a start.
Unfortunately, we have to duplicate and we will have to try to
keep these lists up-to-date, but it's better than nothing.
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/4689 >
2020-04-27 07:59:27 +00:00
Samuel Pitoiset
574196d5f6
radv: fix robust_buffer_access if enabled via VkPhysicalDeviceFeatures2
...
It can be enabled via pEnabledFeatures or via vkPhysicalDeviceFeatures2.
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/4706 >
2020-04-27 09:33:44 +02:00
Dave Airlie
8faa0e2c1b
gallivm: fix stencil border
...
Fixes:
dEQP-GLES31.functional.texture.border_clamp.unused_channels.depth32f_stencil8_sample_stencil
dEQP-GLES31.functional.texture.border_clamp.sampler.uint_stencil
Reviewed-by: Roland Scheidegger <sroland@vmware.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/4574 >
2020-04-27 12:35:24 +10:00
Dave Airlie
565df65651
llvmpipe: clamp color storage for integer types.
...
If storing to an integer for lower bit size (i.e. 16-bit uint to
10-bit uint), we need to clamp to the maximum value not truncate.
Fixes:
dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16_uint.a2b10g10r10_uint_pack32.optimal_optimal_nearest
Reviewed-by: Roland Scheidegger <sroland@vmware.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/4574 >
2020-04-27 12:35:24 +10:00
Dave Airlie
024b5dfc1c
llvmpipe: enable stencil only formats. (v2)
...
This fixes two bugs, one in clearing and one in sign extensions
for S8 only types, and enables it for use.
These are useful for vulkan support later.
v2: move casting to same place as Z casting.
Reviewed-by: Roland Scheidegger <sroland@vmware.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/4574 >
2020-04-27 12:35:24 +10:00
Dave Airlie
65906d1331
llvmpipe/setup: add point size clamping
...
Fixes
dEQP-GLES2.functional.rasterization.limits.points
dEQP-VK.rasterization.primitive_size.points.point_size*
Reviewed-by: Roland Scheidegger <sroland@vmware.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/4574 >
2020-04-27 12:35:24 +10:00
Dave Airlie
1f071db43a
llvmpipe: fix d32 unorm depth conversions.
...
When the depth value was 1.0 and was being converted to Z32_UNORM
the conversion would scale it up to INT32_MAX + 1 which would
cause FPToSI to give incorrect results, changing it to use
FPToUI for the unsigned 32-bit case only fixes it.
Fixes:
GTF-GL45.gtf30.GL3Tests.depth_texture.depth_texture_fbo_clear
Reviewed-by: Roland Scheidegger <sroland@vmware.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/4574 >
2020-04-27 12:35:24 +10:00
Dave Airlie
fe5a8e1ace
draw/tess: fix TES patch vertices in.
...
Fixes CTS KHR-GL45.tessellation_shader.single.max_patch_vertices
Reviewed-by: Roland Scheidegger <sroland@vmware.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/4574 >
2020-04-27 12:35:24 +10:00
Dave Airlie
7b4a7a1117
llvmpipe: fix ssbo alignment
...
KHR-GL45.geometry_shader.api.max_shader_storage_blocks
Reviewed-by: Roland Scheidegger <sroland@vmware.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/4574 >
2020-04-27 12:35:24 +10:00
Dave Airlie
93b8d89275
llvmpipe: bump max images to 16
...
This is needed to make some tests run, and helps for vulkan later.
Reviewed-by: Roland Scheidegger <sroland@vmware.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/4574 >
2020-04-27 12:35:24 +10:00
Dave Airlie
e1c006204f
util/indirect: handle stride less than number of parameters.
...
It's legal to have a stride less than the num of parameters,
in this case no need to try and over map the buffer which asserts
Fixes:
GTF-GL45.gtf43.GL3Tests.multi_draw_indirect.multi_draw_indirect_stride
Reviewed-by: Roland Scheidegger <sroland@vmware.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/4574 >
2020-04-27 12:35:24 +10:00
Dave Airlie
23efd323aa
gallivm/nir: add helper invocation support
...
Reviewed-by: Roland Scheidegger <sroland@vmware.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/4574 >
2020-04-27 12:35:21 +10:00
Dave Airlie
13e5f331db
gallivm/nir: fix image store conversions
...
This fixes a few of the image store paths, to do the
correct clamping of unsigned/signed values
Fixes: KHR-GLES31.core.layout_binding.block_layout_binding_block_ComputeShader
KHR-GL45.shader_image_load_store.basic-allFormats-store
KHR-GL46.shader_image_load_store.multiple-uniforms
Reviewed-by: Roland Scheidegger <sroland@vmware.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/4574 >
2020-04-27 10:06:00 +10:00
Connor Abbott
bf3c9d2770
tu: Don't invert point coords
...
We shouldn't need to invert them, and the Vulkan blob doesn't either.
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/4733 >
2020-04-25 16:15:48 +00:00
Connor Abbott
180f98678f
ir3: Remove VARYING_SLOT_PNTC remapping hack
...
The st now does this for us.
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/4732 >
2020-04-25 15:52:05 +00:00
Connor Abbott
662e9c1801
st/nir: Fix assigning PointCoord location with !PIPE_CAP_TEXCOORD
...
This was trying to emulate the effect of mapping GL -> TGSI -> NIR,
but failed to handle VARYING_SLOT_PNTC which led to a kludgy workaround
in freedreno.
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/4732 >
2020-04-25 15:52:05 +00:00
Connor Abbott
a64d266134
freedreno/a6xx: Implement PrimID passthrough
...
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/4704 >
2020-04-25 01:06:21 +00:00
Connor Abbott
a661d18a39
tu: Implement PrimID passthrough
...
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/4704 >
2020-04-25 01:06:21 +00:00
Connor Abbott
1f9839907a
ir3: Skip missing VS outputs in VS out map when linking
...
The hardware is capable of automatically filling in certain values in
the VPC without writing them from the last geometry stage, like
gl_PointCoord or gl_PrimitiveID when there is no GS. However, we *do*
have to enable these outputs (i.e. set the VPC_VAR_DISABLE bit to 0) as
VPC_VAR_DISABLE is really about FS inputs rather than VS outputs. To do
this, we move the computation of the enable bits to ir3_link_add(),
which is also a nice refactor anyway. In addition we detect the PrimID
case specifically so that the driver can program the location.
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/4704 >
2020-04-25 01:06:21 +00:00
Connor Abbott
cc530858c1
freedreno/a6xx: Document PrimID passthrough registers
...
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/4704 >
2020-04-25 01:06:21 +00:00
Joshua Ashton
0b44582394
radv: Pass logical device to si_emit_graphics
...
We'll need this in order to retrieve the va of a bo for a future ext.
Reviewed-by: Samuel Pitoiset <samuel.pitoiset@gmail.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/4728 >
2020-04-25 00:32:20 +00:00
Kristian H. Kristensen
bf542484ea
freedreno/ir3: Print @tex write mask using 0x%x
...
That way we can parse it again with the assembler.
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/4741 >
2020-04-25 00:03:43 +00:00
Kristian H. Kristensen
c801228f0d
freedreno/ir3: Reset lex line number when we start parsing
...
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/4741 >
2020-04-25 00:03:43 +00:00
Kristian H. Kristensen
34e7179dfa
freedreno/ir3: Parse, but ignore @in, @out and @tex headers
...
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/4741 >
2020-04-25 00:03:43 +00:00
Kristian H. Kristensen
da467817e3
freedreno/ir3: Move ir3 assembler to backend compiler
...
For easier reuse.
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/4741 >
2020-04-25 00:03:43 +00:00
Kristian H. Kristensen
869d86e664
freedreno/computerator: Decouple ir3 assembler
...
Specifically, don't include ir3_asm.h in the parser as that's
computerator specific.
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/4741 >
2020-04-25 00:03:43 +00:00
Andres Gomez
375c7a3863
Revert "meson,ci: Disable sparse_array tests on windows"
...
The Wine version in the build image has been upgraded.
This reverts commit 6be65b0777
.
Reviewed-by: Michel Dänzer <mdaenzer@redhat.com >
Acked-by: Jason Ekstrand <jason@jlekstrand.net >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/4678 >
2020-04-24 20:01:31 +00:00
Andres Gomez
cb055c6ca4
gitlab-ci: install winehq-stable to get 5.0 instead of 4.0
...
Additionally, purge the winehq-stable package and its dependencies to
avoid crashing when building for s390x.
v2:
- Remove winehq-stable and dependencies for s390x.
Closes: https://gitlab.freedesktop.org/mesa/mesa/issues/2657
Signed-off-by: Andres Gomez <agomez@igalia.com >
Reviewed-by: Daniel Stone <daniels@collabora.com > [v1]
Reviewed-by: Michel Dänzer <mdaenzer@redhat.com >
Acked-by: Jason Ekstrand <jason@jlekstrand.net >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/4678 >
2020-04-24 20:01:31 +00:00
Marek Vasut
c8ccd63911
etnaviv: Fix depth stencil ops on GC880/GC2000
...
This patch fixes depth stencil ops on MX6S GC880 and MX6Q GC2000.
The following dEQPs now pass:
dEQP-GLES2.functional.fragment_ops.depth_stencil.stencil_depth_funcs.*
dEQP-GLES2.functional.fragment_ops.depth_stencil.stencil_ops.*
which is roughly 600 fixed dEQP tests.
The problem is that if the front-facing stencil has a value mask 0x00 and
the back-facing stencil has some non-zero value mask, then the stencil part
of the depth stencil buffer is written with 0x00 unconditionally. The blob
replicates the value mask of the back-facing stencil to the value mask of
the front-facing stencil to achieve correct rendering, replicate the same
behavior here.
Signed-off-by: Marek Vasut <marex@denx.de >
Reviewed-by: Christian Gmeiner <christian.gmeiner@gmail.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/4275 >
2020-04-24 21:22:55 +02:00
Rhys Perry
5c5c2dd48f
radv/aco: enable 8/16-bit storage and int8/int16 on GFX8+
...
With this, Doom Eternal should now run with ACO on GFX8+.
The generated 8/16-bit storage code is okay but the generated int8/int16
code is currently pretty bad but it works and apparently Doom Eternal
doesn't actually use it (even though it requires it).
Signed-off-by: Rhys Perry <pendingchaos02@gmail.com >
Reviewed-by: Samuel Pitoiset <samuel.pitoiset@gmail.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/4707 >
2020-04-24 20:04:39 +01:00
Rhys Perry
eeccb1a941
aco: lower 8/16-bit integer arithmetic
...
dEQP-VK.spirv_assembly.type.* passes with the features and extensions
enabled.
Signed-off-by: Rhys Perry <pendingchaos02@gmail.com >
Reviewed-by: Daniel Schürmann <daniel@schuermann.dev >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/4707 >
2020-04-24 20:03:59 +01:00
Rhys Perry
bcd9467d5c
aco: improve sub-dword emit_split_vector() with sgprs
...
Signed-off-by: Rhys Perry <pendingchaos02@gmail.com >
Reviewed-by: Daniel Schürmann <daniel@schuermann.dev >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/4639 >
2020-04-24 18:52:54 +00:00
Rhys Perry
a3dc1441f0
aco: clobber scc in s_bfe_u32 in get_alu_src()
...
Signed-off-by: Rhys Perry <pendingchaos02@gmail.com >
Reviewed-by: Daniel Schürmann <daniel@schuermann.dev >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/4639 >
2020-04-24 18:52:54 +00:00
Rhys Perry
78389f4cbc
aco: handle undef p_create_vector operands in the optimizer
...
Signed-off-by: Rhys Perry <pendingchaos02@gmail.com >
Reviewed-by: Daniel Schürmann <daniel@schuermann.dev >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/4639 >
2020-04-24 18:52:54 +00:00
Rhys Perry
deea4b7c5a
aco: vectorize global loads/stores
...
Signed-off-by: Rhys Perry <pendingchaos02@gmail.com >
Reviewed-by: Daniel Schürmann <daniel@schuermann.dev >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/4639 >
2020-04-24 18:52:54 +00:00
Rhys Perry
7db7206631
aco: allow 8/16-bit shared loads
...
These should work now
Signed-off-by: Rhys Perry <pendingchaos02@gmail.com >
Reviewed-by: Daniel Schürmann <daniel@schuermann.dev >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/4639 >
2020-04-24 18:52:54 +00:00
Rhys Perry
48b7beb7b0
aco: add and use get_buffer_store_op() helper
...
Signed-off-by: Rhys Perry <pendingchaos02@gmail.com >
Reviewed-by: Daniel Schürmann <daniel@schuermann.dev >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/4639 >
2020-04-24 18:52:54 +00:00
Rhys Perry
936b70c8cf
aco: refactor visit_store_scratch() to use new helpers
...
Should support 8/16-bit stores now
Signed-off-by: Rhys Perry <pendingchaos02@gmail.com >
Reviewed-by: Daniel Schürmann <daniel@schuermann.dev >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/4639 >
2020-04-24 18:52:54 +00:00
Rhys Perry
18817041f7
aco: refactor visit_store_global() to use new helpers
...
Should support 8/16-bit stores now
Signed-off-by: Rhys Perry <pendingchaos02@gmail.com >
Reviewed-by: Daniel Schürmann <daniel@schuermann.dev >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/4639 >
2020-04-24 18:52:54 +00:00
Rhys Perry
c7bd69b3ae
aco: refactor visit_store_ssbo() to use new helpers
...
Signed-off-by: Rhys Perry <pendingchaos02@gmail.com >
Reviewed-by: Daniel Schürmann <daniel@schuermann.dev >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/4639 >
2020-04-24 18:52:54 +00:00
Rhys Perry
f75c830433
aco: refactor store_vmem_mubuf() to use new helpers
...
Signed-off-by: Rhys Perry <pendingchaos02@gmail.com >
Reviewed-by: Daniel Schürmann <daniel@schuermann.dev >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/4639 >
2020-04-24 18:52:54 +00:00
Rhys Perry
98b4cc7110
aco: refactor store_lds() to use new helpers
...
It should also work correctly for 8/16-bit stores
Signed-off-by: Rhys Perry <pendingchaos02@gmail.com >
Reviewed-by: Daniel Schürmann <daniel@schuermann.dev >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/4639 >
2020-04-24 18:52:54 +00:00
Rhys Perry
562353e1f1
aco: add helpers for splitting stores
...
split_store_data() splits a vector and p_as_uniforms it if needed.
scan_write_mask()/advance_write_mask() are similar to
u_bit_scan_consecutive_range(), but makes it easier to only clear part of
the range and will also give ranges for zero'd bits.
split_buffer_store() is a helper for splitting VMEM/SMEM stores.
Signed-off-by: Rhys Perry <pendingchaos02@gmail.com >
Reviewed-by: Daniel Schürmann <daniel@schuermann.dev >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/4639 >
2020-04-24 18:52:54 +00:00
Rhys Perry
211a9f2057
aco: use emit_load helper for VMEM/SMEM loads
...
Also implements 8/16-bit loads for scratch/global.
Signed-off-by: Rhys Perry <pendingchaos02@gmail.com >
Reviewed-by: Daniel Schürmann <daniel@schuermann.dev >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/4639 >
2020-04-24 18:52:54 +00:00
Rhys Perry
57e6886f98
aco: refactor load_lds to use new helpers
...
Signed-off-by: Rhys Perry <pendingchaos02@gmail.com >
Reviewed-by: Daniel Schürmann <daniel@schuermann.dev >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/4639 >
2020-04-24 18:52:54 +00:00