Alyssa Rosenzweig
cd2aa776cf
panfrost: Implement tiled 3D resource access
...
We need to access each layer separately. This is a simple generalization of the
existing tiled 2D resource access code.
Signed-off-by: Alyssa Rosenzweig <alyssa@collabora.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/15803 >
2022-04-16 13:43:05 +00:00
Alyssa Rosenzweig
594653173b
panfrost: Only handle 2D in should_linear_convert
...
The tiled->linear conversion mechanism is meant for 2D and doesn't handle tiled
+ 3D. This use case is not expected application behaviour, it's not worth the
complexity to try to handle.
Signed-off-by: Alyssa Rosenzweig <alyssa@collabora.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/15803 >
2022-04-16 13:43:05 +00:00
Alyssa Rosenzweig
3ee08270f3
panfrost: Remove bpp check for tiling
...
All pixel formats are now tileable.
Signed-off-by: Alyssa Rosenzweig <alyssa@collabora.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/15803 >
2022-04-16 13:43:05 +00:00
Alyssa Rosenzweig
4c31795f7a
panfrost: Add 48-bit and 96-bit tiling routines
...
Thanks to our macros and some type trickery, our generic tiling routines are
type-generic. So we just need to add 48-bit and 96-bit texel types to tile. Note
we only support power-of-two bit sizes in the specialized tile routines for the
sake of replacing a multiplication with a shift.
With this change, all pixel formats supported in Panfrost are tileable.
Signed-off-by: Alyssa Rosenzweig <alyssa@collabora.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/15803 >
2022-04-16 13:43:05 +00:00
Rhys Perry
75e68f44af
radv: always use nir_lower_io_lower_64bit_to_32
...
Our I/O lowering doesn't handle 64-bit TCS stores and TES loads which use
several slots. Because of the large stride between slots, we have to split
the load so that there's a single load_buffer_amd/store_buffer_amd
intrinsic for each slot.
Our I/O lowering also sometimes creates nir_op_pack_64_2x32 after
nir_lower_alu_to_scalar.
Fixes KHR-GL45.gpu_shader_fp64.fp64.varyings with Zink
(https://gitlab.freedesktop.org/mesa/mesa/-/issues/6276 )
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/15863 >
2022-04-16 11:19:11 +00:00
Rhys Perry
ab1409010a
ac/nir: fix 64-bit NGG GS output stores
...
I don't know why this was here. The DIV_ROUND_UP ensures that it's always
at least 1 and the MIN2 ensures that it's never greater than 1.
Fixes some KHR-Single-GL46.enhanced_layouts.varying_* tests with zink:
https://gitlab.freedesktop.org/mesa/mesa/-/issues/6301
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/15863 >
2022-04-16 11:19:11 +00:00
Michel Zou
4c1cb62999
gallium: fix unused symbols warnings
...
fixes: d760a915
Reviewed-by: Adam Jackson <ajax@redhat.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/15840 >
2022-04-16 03:29:33 +00:00
Jason Ekstrand
5c9e4d400a
nir/opcodes: fisfinite32 should return bool32
...
Otherwise constant-folding will fold it to 0/1 instead of 0/~0.
Fixes: 330e28155f ("nir: add 32-bit bool of fisfinite")
Reviewed-by: Alyssa Rosenzweig <alyssa@collabora.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/15984 >
2022-04-16 02:46:12 +00:00
Jason Ekstrand
319d87846c
nir,microsoft: Move scale_fdiv into a common NIR pass
...
While we're at it, convert to nir_shader_instructions_pass() to get rid
of some boilerplate and get metadata correct.
Reviewed-by: Jesse Natalie <jenatali@microsoft.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/15983 >
2022-04-16 02:10:25 +00:00
Jason Ekstrand
ad0dc8e4ab
intel/compiler: Set lower_fisnormal
...
Reviewed-by: Ian Romanick <ian.d.romanick@intel.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/15985 >
2022-04-16 00:26:43 +00:00
Rhys Perry
ce6867e672
radv: use inot(a) instead of ine(a, true)/ieq(a, false)
...
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/15854 >
2022-04-15 23:56:11 +00:00
Rhys Perry
b62e90ad43
radv: use nir_op_imm helpers
...
Signed-off-by: Rhys Perry <pendingchaos02@gmail.com >
Acked-by: Samuel Pitoiset <samuel.pitoiset@gmail.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/15854 >
2022-04-15 23:56:11 +00:00
Rhys Perry
df994ecc8f
radv: use radv_meta_build_nir_vs_generate_vertices() more
...
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/15854 >
2022-04-15 23:56:11 +00:00
Rhys Perry
8e0e98a9af
radv: initialize meta shader options earlier
...
We might need this for NIR builders.
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/15854 >
2022-04-15 23:56:11 +00:00
Rhys Perry
53e8d6618f
radv: remove unnecessary align_mul/offset initialization
...
Since af51efe195 , these builders fill these in with scalar alignment if
not provided.
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/15854 >
2022-04-15 23:56:11 +00:00
Rhys Perry
46d14abeae
nir/builder: add nir_{ine,ibfe,ubfe}_imm() helper
...
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/15854 >
2022-04-15 23:56:11 +00:00
Rhys Perry
9baa45c189
nir/gather_info: fix system_value_read for rt/mesh system values
...
Signed-off-by: Rhys Perry <pendingchaos02@gmail.com >
Reviewed-by: Samuel Pitoiset <samuel.pitoiset@gmail.com >
Fixes: c7eaf03068 ("radv: use shader_info::system_values_read")
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/15952 >
2022-04-15 11:10:22 +00:00
Rhys Perry
8fe8c5dfd0
ac/nir: properly handle large global access constant offsets
...
Signed-off-by: Rhys Perry <pendingchaos02@gmail.com >
Reviewed-by: Timur Kristóf <timur.kristof@gmail.com >
Fixes: 61ac5acca3 ("radv,ac/nir: lower global access to _amd global access intrinsics")
Closes: https://gitlab.freedesktop.org/mesa/mesa/-/issues/6321
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/15951 >
2022-04-15 10:39:40 +00:00
Lionel Landwerlin
7be6632f7d
anv: use shadow surface for stencil input attachment on gfx7
...
This fixes a number of tests like :
dEQP-VK.renderpass*.suballocation.multisample.s8_uint.*
dEQP-VK.renderpass*.suballocation.multisample.separate_stencil_usage.d24_unorm_s8_uint.*.test_stencil
dEQP-VK.renderpass*.suballocation.multisample.d24_unorm_s8_uint.*
dEQP-VK.renderpass*.suballocation.multisample.d32_sfloat_s8_uint.*
Because the driver asserts when generating RENDER_SURFACE_STATE with a
8 Valign value for stencil buffer (only 2 & 4 are supported).
Signed-off-by: Lionel Landwerlin <lionel.g.landwerlin@intel.com >
Reviewed-by: Nanley Chery <nanley.g.chery@intel.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/12670 >
2022-04-15 09:46:40 +03:00
Samuel Pitoiset
f049b1c085
radv: add support for VkShaderModuleCreateInfo as pNext
...
With VK_EXT_graphics_pipeline_library, modules can be passed via the
pNext of VkpipelineShaderStageCreateInfo.
Signed-off-by: Samuel Pitoiset <samuel.pitoiset@gmail.com >
Reviewed-by: Mike Blumenkrantz <michael.blumenkrantz@gmail.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/15926 >
2022-04-15 06:08:34 +00:00
Samuel Pitoiset
c43573ba93
radv: add support for independent descriptor set layouts
...
With VK_EXT_graphics_pipeline_library, pipeline layouts created with
VK_PIPELINE_LAYOUT_CREATE_INDEPENDENT_SETS_BIT_EXT might contain NULL
descriptor sets.
Signed-off-by: Samuel Pitoiset <samuel.pitoiset@gmail.com >
Reviewed-by: Mike Blumenkrantz <michael.blumenkrantz@gmail.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/15926 >
2022-04-15 06:08:34 +00:00
Samuel Pitoiset
2591a52560
radv: fix enabling adjust_frag_coord_z and apply per-pipeline
...
Fossilize always enables all supported extensions, that means that
adjust_frag_coord_z would always be enabled on RDNA2, even if the
application doesn't enable it. The pipeline key would then be different
and precompilation wouldn't work. Move this per-pipeline since we can
know if VRS will be 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/15444 >
2022-04-15 05:49:54 +00:00
M Henning
9da14a2119
nouveau/nir: Allow up to 6 nested joins
...
This matches what the tgsi path does and doesn't regress any tests. (For
comparison, unlimited join nesting does regress tests in deqp and piglit)
Fixes graphical artifacts from stack overflows in
https://www.shadertoy.com/view/Xds3zN
with nir on kepler
Reviewed-by: Emma Anholt <emma@anholt.net >
Acked-by: Karol Herbst <kherbst@redhat.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/15597 >
2022-04-15 01:22:03 +00:00
Enrico Galli
0c4d1762de
microsoft/compiler: Fix when using a shadow sampler more than once
...
Reusing the shadow sampler's variable causes problems when the sampler
is used more than once. The remaining `deref_var`s will be using the
wrong type.
Reviewed-by: Boris Brezillon <boris.brezillon@collabora.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/14988 >
2022-04-15 00:19:55 +00:00
Enrico Galli
0e91dd2f3e
microsoft/compiler: Add support for unnamed ubos
...
Reviewed-by: Jesse Natalie <jenatali@microsoft.com >
Reviewed-by: Boris Brezillon <boris.brezillon@collabora.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/14988 >
2022-04-15 00:19:55 +00:00
Enrico Galli
6073c74bfd
microsoft/compiler: Fix for arrays of 1 element
...
The DXIL validator doesn't like dynamic indexing into resources if the
resource was not declared as an array type. This commit makes it so that
we always generate array resource types if the original type was
declared as an array instead, not just when the number of elements is
greater than 1.
Reviewed-by: Boris Brezillon <boris.brezillon@collabora.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/14988 >
2022-04-15 00:19:55 +00:00
Enrico Galli
0badd0547d
microsoft/spirv_to_dxil: Add pass to lower dynamic accesses on ubo[1]
...
Reviewed-by: Boris Brezillon <boris.brezillon@collabora.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/14988 >
2022-04-15 00:19:55 +00:00
Mike Blumenkrantz
2f21463b7d
zink: nv ci update
...
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/15957 >
2022-04-15 00:09:31 +00:00
Mike Blumenkrantz
dbbd686a5d
zink: radv baseline fix
...
typo
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/15957 >
2022-04-15 00:09:31 +00:00
Emma Anholt
4baf5aacb7
ci/virgl: Add piglit and GL4.3 testing to the virpipe path.
...
This will be helpful in regression-testing the nir-to-tgsi transition, and
with the big runners at google we have plenty of capacity to do it.
I dropped the GL3.0-3.2 caselists because GL4.3 should be a superset of
them.
Acked-by: Alyssa Rosenzweig <alyssa.rosenzweig@collabora.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/15158 >
2022-04-14 23:58:05 +00:00
Mike Blumenkrantz
22dd082989
zink: unset PIPE_CAP_TEXRECT
...
this isn't supported by vulkan, and though it can be implicitly converted
to 2d in the driver, this still leaves validation spam
Reviewed-by: Dave Airlie <airlied@redhat.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/15895 >
2022-04-14 22:57:23 +00:00
Mike Blumenkrantz
2058ae7b43
mesa/st: set normalized coords for RECT samplers if rects are unsupported
...
the shaders will never see these, so set the expected value for 2D
cc: mesa-stable
Reviewed-by: Dave Airlie <airlied@redhat.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/15895 >
2022-04-14 22:57:23 +00:00
Mike Blumenkrantz
5b0634d735
nir/lower_tex: fix rect queries with lower_rect set
...
queries still need the sampler_dim changed
Fixes: 682e14d3ea ("nir: lower_tex: Don't normalize coordinates for TXF with RECT")
Reviewed-by: Dave Airlie <airlied@redhat.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/15895 >
2022-04-14 22:57:23 +00:00
Emma Anholt
eb78378345
Revert "ci: Disable Google's lab"
...
This reverts commit 8506c2b7ee . Network
admins say the fixed things, and we see the runners phoning home again.
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/15936 >
2022-04-14 22:01:27 +00:00
Jason Ekstrand
46d9b0e431
clc: Declare LLVMContexts on the stack
...
This prevents more use-after-free errors. Passing them around using
std::unique_ptr ensures that the LLVMContext gets destroyed but doesn't
ensure destruction order. Declaring it on the stack ensures that the
context doesn't get destroyed until right before the the function
returns which is after any other LLVM stuff is destroyed.
Reviewed-by: Jesse Natalie <jenatali@microsoft.com >
Reviewed-by: Icecream95 <ixn@disroot.org >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/15937 >
2022-04-14 21:19:56 +00:00
Jason Ekstrand
6099e6ce9a
clc: Rework logging a bit
...
First, separate out the LLVM context logging to make it take a
clc_logger instead of passing in a string stream. Currently, the LLVM
context may outlive the string stream which we assign which may lead to
use-after-free errors. Second, use a separate string stream for clang
diagnosticl logging which we intentionally declare before the compiler
so the compiler can't outlive it.
Reviewed-by: Jesse Natalie <jenatali@microsoft.com >
Reviewed-by: Icecream95 <ixn@disroot.org >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/15937 >
2022-04-14 21:19:56 +00:00
Jason Ekstrand
6e3b9b1b1d
clc: Only initialize LLVM once
...
Reviewed-by: Jesse Natalie <jenatali@microsoft.com >
Reviewed-by: Icecream95 <ixn@disroot.org >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/15937 >
2022-04-14 21:19:56 +00:00
Dave Airlie
fdab872224
clc: initialise one more llvm stage
...
Reviewed-by: Jason Ekstrand <jason.ekstrand@collabora.com >
Reviewed-by: Jesse Natalie <jenatali@microsoft.com >
Reviewed-by: Icecream95 <ixn@disroot.org >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/15937 >
2022-04-14 21:19:56 +00:00
Dave Airlie
b518020f64
clc: add simple llvm initialise API
...
This just calls some of the LLVM init functions in a common place
Reviewed-by: Jason Ekstrand <jason.ekstrand@collabora.com >
Reviewed-by: Jesse Natalie <jenatali@microsoft.com >
Reviewed-by: Icecream95 <ixn@disroot.org >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/15937 >
2022-04-14 21:19:56 +00:00
Rhys Perry
63e40adf8c
aco: fix disassembly of SMEM with both SGPR and constant offset
...
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/15890 >
2022-04-14 20:58:36 +00:00
Samuel Pitoiset
c7eaf03068
radv: use shader_info::system_values_read
...
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/15343 >
2022-04-14 14:13:07 +00:00
Samuel Pitoiset
3cc21a42fe
radv: use shader_info::outputs_written/per_primitive_outputs for VS outputs
...
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/15343 >
2022-04-14 14:13:07 +00:00
Samuel Pitoiset
feaaf4ac7a
radv: use shader_info::inputs_read/outputs_written for FS IO
...
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/15343 >
2022-04-14 14:13:07 +00:00
Samuel Pitoiset
05d57159cf
radv: use shader_info::gs::active_stream_mask
...
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/15343 >
2022-04-14 14:13:07 +00:00
Samuel Pitoiset
9ca44062cd
radv: use shader_info::writes_memory
...
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/15343 >
2022-04-14 14:13:07 +00:00
Boris Brezillon
31ea1fcd14
dzn: Make sure sampler heaps don't contain more than 2048 samplers
...
The spec says "The maximum number of samplers in a shader visible
descriptor heap is 2048.". Let's make sure we follow this rule
in dozen.
Acked-by: Erik Faye-Lund <erik.faye-lund@collabora.com >
Reviewed-by: Jesse Natalie <jenatali@microsoft.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/15884 >
2022-04-14 13:14:57 +00:00
Boris Brezillon
3becb2729a
dzn: Skip binding entries with zero descriptors
...
D3D12 doesn't like empty descriptor ranges, so let's skip those
at set layout creation time.
Acked-by: Erik Faye-Lund <erik.faye-lund@collabora.com >
Reviewed-by: Jesse Natalie <jenatali@microsoft.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/15884 >
2022-04-14 13:14:57 +00:00
Emma Anholt
b62087e069
nouveau/nir: Don't try to emit OP_FMA pre-nvc0.
...
The TGSI backend avoids TGSI_OPCODE_FMA (and thus OP_FMA) pre-nvc0,
replacing it with TGSI_OPCODE_MAD in that case.
Noticed when looking at native-NIR stats and finding that load
optimization wasn't taking place on the unsupported opcode.
Reviewed-by: Karol Herbst <kherbst@redhat.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/15543 >
2022-04-14 12:39:48 +00:00
Gert Wollny
36f12c85c8
virgl: Extend integer write out output fix to all non-move integers ops
...
The host virglrenderer can only handle moves to integer outputs, all
ALU opt that create integer outputs are created with extra code to convert
to float for the temporaries, and this breaks the output write
handling.
Fixes:
spec@arb_sample_shading@builtin-gl-sample-mask *
spec@arb_sample_shading@builtin-gl-sample-mask-simple *
Signed-off-by: Gert Wollny <gert.wollny@collabora.com >
Reviewed-by: Emma Anholt <emma@anholt.net >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/15921 >
2022-04-14 11:53:25 +00:00
Samuel Pitoiset
4d23967e8c
radv: exclude PRIMITIVE_{COUNT,INDICES} from the per-vertex output mask
...
They should be excluded for the primitive and vertex output masks.
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/15918 >
2022-04-14 09:01:35 +00:00