Marek Olšák [Sat, 14 Nov 2020 05:59:56 +0000 (00:59 -0500)]
radeonsi: always return void from si_build_wrapper_function
It's the end of the shader, there are no return values.
Acked-by: Pierre-Eric Pelloux-Prayer <pierre-eric.pelloux-prayer@amd.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/7623>
Marek Olšák [Sat, 14 Nov 2020 05:36:51 +0000 (00:36 -0500)]
radeonsi: merge TCS and TCS epilog conditional blocks
Instead of:
if (TCS) {
TCS;
}
if (TCS && epilog) {
epilog;
}
Do:
if (TCS) {
TCS;
if (epilog) {
epilog;
}
Only monolithic shaders can do it.
Acked-by: Pierre-Eric Pelloux-Prayer <pierre-eric.pelloux-prayer@amd.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/7623>
Marek Olšák [Sat, 14 Nov 2020 05:05:00 +0000 (00:05 -0500)]
radeonsi: don't generate a dead conditional in si_write_tess_factors on gfx9+
Acked-by: Pierre-Eric Pelloux-Prayer <pierre-eric.pelloux-prayer@amd.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/7623>
Marek Olšák [Fri, 13 Nov 2020 05:38:06 +0000 (00:38 -0500)]
radeonsi: limit HS LDS usage per workgroup to 16K to allow at least 2 WGs/CU
This increases occupancy when the LDS size is e.g. 20K for 3 waves.
If we limit the size to 16K, we can fit 2 workgroups with 2 waves each,
so 4 waves in total.
Acked-by: Pierre-Eric Pelloux-Prayer <pierre-eric.pelloux-prayer@amd.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/7623>
Marek Olšák [Fri, 13 Nov 2020 04:24:04 +0000 (23:24 -0500)]
radeonsi: don't allocate LDS for TCS outputs if they are not read
This reduces LDS usage by 50% in Unigine Heaven.
Acked-by: Pierre-Eric Pelloux-Prayer <pierre-eric.pelloux-prayer@amd.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/7623>
Marek Olšák [Fri, 13 Nov 2020 03:25:52 +0000 (22:25 -0500)]
radeonsi: don't leave more than 8 unoccupied lanes in HS
Previously it was 16 and bigger patches would always trim the patch count
needlessly.
There are 2 variables to consider:
- lane occupancy
- LDS usage (limiting wave occupancy)
If LDS size is 32 KB (max limit per CU) for 3 waves and we can't maximize
occupancy, it's better to leave some lanes unoccupied because using 2
waves would decrease the LDS size to 21 KB, which is not enough to fit
another workgroup on the CU.
Acked-by: Pierre-Eric Pelloux-Prayer <pierre-eric.pelloux-prayer@amd.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/7623>
Marek Olšák [Fri, 13 Nov 2020 03:07:56 +0000 (22:07 -0500)]
radeonsi: adjust tess SGPRs to allow fully occupied 3 HS waves of triangles
With triangles and 3 HS waves, 3 lanes were unoccupied. Adjust the SGPR
encoding to allow 1 more triangle to fit there.
Some of the fields are not large enough, but they weren't large enough
before either.
Acked-by: Pierre-Eric Pelloux-Prayer <pierre-eric.pelloux-prayer@amd.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/7623>
Marek Olšák [Sat, 14 Nov 2020 04:13:45 +0000 (23:13 -0500)]
ac/nir: fix a typo in ac_are_tessfactors_def_in_all_invocs
I think it only made the pass return false if there was a barrier
Fixes:
2832bc972bf - ac/nir_to_llvm: add ac_are_tessfactors_def_in_all_invocs()
Reviewed-by: Timothy Arceri <tarceri@itsqueeze.com>
Acked-by: Pierre-Eric Pelloux-Prayer <pierre-eric.pelloux-prayer@amd.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/7623>
Gert Wollny [Fri, 16 Oct 2020 15:29:09 +0000 (17:29 +0200)]
r600/sfn: Correctly lower all int64
Signed-off-by: Gert Wollny <gert.wollny@collabora.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/7724>
Vinson Lee [Fri, 20 Nov 2020 01:23:08 +0000 (17:23 -0800)]
nv50/ir: Initialize Program members in constructor.
Fix defects reported by Coverity Scan.
uninit_member: Non-static class member tlsSize is not initialized in this constructor nor in any functions that it calls.
uninit_member: Non-static class member driver is not initialized in this constructor nor in any functions that it calls.
uninit_member: Non-static class member driver_out is not initialized in this constructor nor in any functions that it calls.
Signed-off-by: Vinson Lee <vlee@freedesktop.org>
Reviewed-by: Karol Herbst <kherbst@redhat.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/7703>
Gert Wollny [Mon, 19 Oct 2020 12:23:01 +0000 (14:23 +0200)]
r600/sfn: use a per stream index register in GS
Signed-off-by: Gert Wollny <gert.wollny@collabora.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/7714>
Gert Wollny [Sat, 21 Nov 2020 14:59:33 +0000 (15:59 +0100)]
r600/sfn: lower bool to int32 only after common optimizations
Fixes:
f79b7fcf7c7f5db626efdb63f27e8bc64d0aed77
r600/sfn: use 32 bit bools
Signed-off-by: Gert Wollny <gert.wollny@collabora.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/7714>
Timur Kristóf [Sat, 21 Nov 2020 15:05:22 +0000 (16:05 +0100)]
nir: Use src_is_invocation_id in get_deref_info.
Signed-off-by: Timur Kristof <timur.kristof@gmail.com>
Reviewed-by: Marek Olšák <marek.olsak@amd.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/7622>
Marek Olšák [Sun, 15 Nov 2020 01:06:55 +0000 (20:06 -0500)]
nir: fix gathering patch IO usage with lowered IO
Fixes:
17af07024df - nir: gather all IO info from IO intrinsics
Acked-by: Pierre-Eric Pelloux-Prayer <pierre-eric.pelloux-prayer@amd.com>
Reviewed-by: Timur Kristóf <timur.kristof@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/7622>
Marek Olšák [Fri, 13 Nov 2020 05:09:06 +0000 (00:09 -0500)]
nir: fix gathering TCS cross invocation access with lowered IO
Fixes:
abe9588ff04 - nir: gather tess.tcs_cross_invocation info from lowered IO intrinsics
Acked-by: Pierre-Eric Pelloux-Prayer <pierre-eric.pelloux-prayer@amd.com>
Reviewed-by: Timur Kristóf <timur.kristof@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/7622>
Marek Olšák [Sat, 3 Oct 2020 20:52:25 +0000 (16:52 -0400)]
mesa: lock Shared->TexMutex only once for a glthread batch
This removes a lot of locking from the driver thread.
Acked-by: Pierre-Eric Pelloux-Prayer <pierre-eric.pelloux-prayer@amd.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/7053>
Marek Olšák [Sat, 3 Oct 2020 20:52:25 +0000 (16:52 -0400)]
mesa: lock Shared->BufferObjects only once for a glthread batch
This removes a lot of locking from the driver thread.
If multiple contexts sharing buffers submit GL calls from multiple threads,
they will be serialized by this mutex. I can add a driconf option to turn
off this optimization if needed, but I currently don't anticipate to see
GL apps that use multiple shared contexts in different threads
simultaneously.
Acked-by: Pierre-Eric Pelloux-Prayer <pierre-eric.pelloux-prayer@amd.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/7053>
Marek Olšák [Sat, 3 Oct 2020 20:11:07 +0000 (16:11 -0400)]
glthread: make glGetActiveUniform return without syncing
We just need to track glLinkProgram and glDeleteProgram.
Acked-by: Pierre-Eric Pelloux-Prayer <pierre-eric.pelloux-prayer@amd.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/7053>
Marek Olšák [Sat, 3 Oct 2020 20:03:07 +0000 (16:03 -0400)]
mesa: make error handling for glGetActiveUniform glthread-safe
glGetActiveUniform will be called from the app thread directly.
This is safe if a few conditions are met.
Acked-by: Pierre-Eric Pelloux-Prayer <pierre-eric.pelloux-prayer@amd.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/7053>
Marek Olšák [Sat, 3 Oct 2020 19:19:19 +0000 (15:19 -0400)]
mesa: add glInternalSetError for glthread
glthread wants to set GL errors, but has to do it by adding the SetError
call into the queue for it to be thread-safe.
Acked-by: Pierre-Eric Pelloux-Prayer <pierre-eric.pelloux-prayer@amd.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/7053>
Bas Nieuwenhuizen [Sun, 18 Oct 2020 00:31:38 +0000 (02:31 +0200)]
radv: Dump BO VA ranges on hang.
To make it easier to figure out if a given VA is valid or not.
Gitlab: https://gitlab.freedesktop.org/mesa/mesa/-/issues/3620
Reviewed-by: Samuel Pitoiset <samuel.pitoiset@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/7205>
Vinson Lee [Fri, 20 Nov 2020 01:03:18 +0000 (17:03 -0800)]
clover: Initialize command_queue member _props.
Fix defect reported by Coverity Scan.
Uninitialized scalar variable (UNINIT)
uninit_use: Using uninitialized value this->_props.
_props |= properties[i + 1];
Fixes:
e42a7fa0378 ("clover: add support command queue properties")
Signed-off-by: Vinson Lee <vlee@freedesktop.org>
Reviewed-by: Dave Airlie <airlied@redhat.com>
Reviewed-by: Karol Herbst <kherbst@redhat.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/7701>
Eric Engestrom [Fri, 10 Jul 2020 14:11:46 +0000 (16:11 +0200)]
meson: drop deprecated EGL platform build options
These two options were deprecated and announced to be removed in 20.3,
so let's drop them now.
Signed-off-by: Eric Engestrom <eric@engestrom.ch>
Acked-by: Emil Velikov <emil.velikov@collabora.com>
Acked-by: Matt Turner <mattst88@gmail.com>
Reviewed-by: Adam Jackson <ajax@redhat.com>
Cc: 20.3 <mesa-stable>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/5844>
Eric Engestrom [Fri, 20 Nov 2020 12:08:09 +0000 (13:08 +0100)]
gitlab-ci: drop deprecated platforms that snuck in when nobody was watching
... even though I did review that commit. My bad :]
Fixes:
c56f09124b195c5cbaab ("gitlab-ci: Move classic driver testing to a new meson-classic job")
Signed-off-by: Eric Engestrom <eric@engestrom.ch>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/5844>
Rhys Perry [Fri, 30 Oct 2020 14:08:17 +0000 (14:08 +0000)]
aco/tests: add Builder::v_mul_imm() tests
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/5390>
Rhys Perry [Fri, 5 Jun 2020 16:54:43 +0000 (17:54 +0100)]
aco: use v_mul_imm() for some nir_op_imul
Some of the optimizations v_mul_imm() does are complex and very
target-specific and not suitable to do in ACO's optimizer.
fossil-db (Vega):
Totals from 49135 (35.76% of 137413) affected shaders:
SGPRs: 2698547 -> 2696103 (-0.09%); split: -0.16%, +0.07%
VGPRs: 2301412 -> 2301600 (+0.01%); split: -0.01%, +0.02%
SpillSGPRs: 51520 -> 51519 (-0.00%)
CodeSize:
168798572 ->
169164012 (+0.22%); split: -0.00%, +0.22%
MaxWaves: 306553 -> 306539 (-0.00%); split: +0.00%, -0.01%
Instrs:
33423982 ->
33506598 (+0.25%); split: -0.00%, +0.25%
Cycles:
1807800632 ->
1804101376 (-0.20%); split: -0.20%, +0.00%
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/5390>
Rhys Perry [Fri, 5 Jun 2020 16:52:24 +0000 (17:52 +0100)]
aco: try harder to not create v_mul_lo_u32
fossil-db (Vega):
Totals from 4 (0.00% of 137413) affected shaders:
CodeSize: 13708 -> 13716 (+0.06%)
Instrs: 2742 -> 2744 (+0.07%)
Cycles: 24348 -> 24236 (-0.46%)
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/5390>
Rhys Perry [Fri, 30 Oct 2020 16:47:13 +0000 (16:47 +0000)]
aco: copy constant to sgpr in Builder::v_mul_imm()
No fossil-db changes.
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/5390>
Rhys Perry [Fri, 5 Jun 2020 18:18:32 +0000 (19:18 +0100)]
aco: create vgpr constant copies using v_bfrev_b32
Looks like this worked once but broke at some point.
fossil-db (Vega):
Totals from 577 (0.42% of 137413) affected shaders:
CodeSize: 3822052 -> 3818720 (-0.09%)
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/5390>
Rhys Perry [Fri, 5 Jun 2020 18:19:58 +0000 (19:19 +0100)]
aco: count v_mul_lo_u32 as 16 cycles
There are more, but this is a common one.
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/5390>
Rhys Perry [Fri, 30 Oct 2020 14:08:55 +0000 (14:08 +0000)]
aco: don't create v_mov_b32 in v_mul_imm()
We switched to p_parallelcopy for everything else.
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/5390>
Krunal Patel [Thu, 19 Nov 2020 19:35:46 +0000 (01:05 +0530)]
radeon/vce: Bitrate not updated when changing framerate
Issue: Encoding parameters not updated after changing FrameRate
Root Cause:
In rvce_begin_frame, need_rate_control was enabled if the target_bitrate,
quant_i_frames, quant_p_frames, quant_b_frames or rate_ctrl_method
changes. Due to this the rate_control() was not updating the encoder
parameters with new framerate, peak_bits_per_picture_integer and
avg_target_bits_per_picture
Fix:
Added the condition where we will check if there is a change in
other parameters and enable need_rate_control. Eventually updating the
encoder parameters with new framerate and bitrate.
Signed-off-by: Krunal Patel <krunalkumarmukeshkumar.patel@amd.corp-partner.google.com>
Reviewed-by: Leo Liu <leo.liu@amd.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/7696>
Adam Jackson [Thu, 19 Nov 2020 14:54:18 +0000 (09:54 -0500)]
glx, egl: Add LIBGL_DRI2_DISABLE environment variable
For orthogonality with LIBGL_DRI3_DISABLE.
Reviewed-by: Erik Faye-Lund <erik.faye-lund@collabora.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/7688>
Bas Nieuwenhuizen [Fri, 20 Nov 2020 00:22:33 +0000 (01:22 +0100)]
gallium/vl: Set modifier field for winsys handle.
Fixes:
c786150d ("radeonsi: Add modifier support")
Closes: https://gitlab.freedesktop.org/mesa/mesa/-/issues/3821
Reviewed-by: Pierre-Eric Pelloux-Prayer <pierre-eric.pelloux-prayer@amd.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/7700>
Rhys Perry [Tue, 10 Nov 2020 10:26:14 +0000 (10:26 +0000)]
nir/copy_prop_vars: avoid a duplicate lookup if src == vec_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/7511>
Rhys Perry [Tue, 10 Nov 2020 10:14:26 +0000 (10:14 +0000)]
nir/copy_prop_vars: use nir_deref_and_path
Instead of recreating paths, create them once when needed using
nir_deref_and_path.
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/7511>
Rhys Perry [Tue, 10 Nov 2020 10:13:04 +0000 (10:13 +0000)]
nir/deref: add helpers to lazily create paths
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/7511>
Rhys Perry [Wed, 4 Nov 2020 13:12:47 +0000 (13:12 +0000)]
nir/search: check for changes before adding uses to worklist
So it doesn't uselessly add instructions to the worklist.
Signed-off-by: Rhys Perry <pendingchaos02@gmail.com>
Reviewed-by: Alyssa Rosenzweig <alyssa.rosenzweig@collabora.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/7511>
Rhys Perry [Wed, 4 Nov 2020 13:10:25 +0000 (13:10 +0000)]
nir/search: check instr type before adding to worklist
nir_algebraic_instr() ignores non-ALU instructions, so there's no point.
Signed-off-by: Rhys Perry <pendingchaos02@gmail.com>
Reviewed-by: Alyssa Rosenzweig <alyssa.rosenzweig@collabora.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/7511>
Rhys Perry [Thu, 5 Nov 2020 15:03:15 +0000 (15:03 +0000)]
nir/loop_analyze: initialize loop variables on demand
Zero'ing the allocation and calling initialize_ssa_def() for every
ssa def can be expensive. Since we only use a subset of the allocated
variables, initialize it only when needed.
Signed-off-by: Rhys Perry <pendingchaos02@gmail.com>
Reviewed-by: Alyssa Rosenzweig <alyssa.rosenzweig@collabora.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/7511>
Rhys Perry [Thu, 5 Nov 2020 17:00:56 +0000 (17:00 +0000)]
nir/copy_prop_vars,nir/dead_write_vars: ignore read-only loads
Signed-off-by: Rhys Perry <pendingchaos02@gmail.com>
Reviewed-by: Alyssa Rosenzweig <alyssa.rosenzweig@collabora.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/7511>
Rhys Perry [Mon, 9 Nov 2020 14:41:38 +0000 (14:41 +0000)]
nir: add nir_var_vec_indexable_modes
Signed-off-by: Rhys Perry <pendingchaos02@gmail.com>
Reviewed-by: Alyssa Rosenzweig <alyssa.rosenzweig@collabora.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/7511>
Daniel Schürmann [Wed, 11 Nov 2020 15:34:06 +0000 (16:34 +0100)]
nir: add nir_phi_get_src_from_block() helper
Returns the phi_src corresponding to a given nir_block.
Reviewed-by: Rhys Perry <pendingchaos02@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/2804>
Daniel Schürmann [Tue, 19 Nov 2019 16:24:34 +0000 (17:24 +0100)]
nir: allow for cheap intrinsics in nir_opt_peephole_select()
Also added nir_instr_type_ssa_undef for convenience.
Out of the added intrinsics, it seems that only load_helper_invocation
has an effect on tested games.
Totals from 446 (0.32% of 138013) affected shaders (RAVEN):
SGPRs: 17600 -> 17688 (+0.50%); split: -0.09%, +0.59%
VGPRs: 14140 -> 14312 (+1.22%); split: -0.03%, +1.24%
CodeSize: 1157696 -> 1131208 (-2.29%)
MaxWaves: 3430 -> 3427 (-0.09%)
Instrs: 220402 -> 214200 (-2.81%)
Cycles: 900776 -> 875752 (-2.78%)
VMEM: 160894 -> 180439 (+12.15%); split: +12.19%, -0.04%
SMEM: 19854 -> 20169 (+1.59%); split: +1.74%, -0.16%
VClause: 3597 -> 3604 (+0.19%)
SClause: 7258 -> 7248 (-0.14%); split: -0.15%, +0.01%
Copies: 17060 -> 16336 (-4.24%); split: -4.44%, +0.20%
Branches: 3995 -> 2518 (-36.97%)
PreSGPRs: 11972 -> 12148 (+1.47%); split: -0.13%, +1.60%
Reviewed-by: Rhys Perry <pendingchaos02@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/2804>
Tony Wasserka [Tue, 3 Nov 2020 16:22:25 +0000 (17:22 +0100)]
radv/winsys: Fix use of nonexisting struct type in sizeof
Since only the pointer size is queried here, this is functionally
equivalent.
Reviewed-by: Samuel Pitoiset <samuel.pitoiset@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/7430>
Tony Wasserka [Tue, 3 Nov 2020 16:22:06 +0000 (17:22 +0100)]
radv/query: Avoid hardcoding array size constants
Reviewed-by: Samuel Pitoiset <samuel.pitoiset@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/7430>
Tony Wasserka [Tue, 3 Nov 2020 16:35:15 +0000 (17:35 +0100)]
radv,aco: Compile with -Wshadow when available
Reviewed-by: Samuel Pitoiset <samuel.pitoiset@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/7430>
Tony Wasserka [Tue, 3 Nov 2020 16:20:36 +0000 (17:20 +0100)]
radv: Fix -Wshadow warnings
Reviewed-by: Samuel Pitoiset <samuel.pitoiset@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/7430>
Tony Wasserka [Mon, 16 Nov 2020 10:08:50 +0000 (11:08 +0100)]
aco/tests: Fix -Wunused warnings in release mode
Reviewed-by: Samuel Pitoiset <samuel.pitoiset@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/7430>
Tony Wasserka [Fri, 6 Nov 2020 11:41:35 +0000 (12:41 +0100)]
aco/tests: Fix -Wshadow warnings
Reviewed-by: Rhys Perry <pendingchaos02@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/7430>
Tony Wasserka [Tue, 3 Nov 2020 13:40:05 +0000 (14:40 +0100)]
aco: Fix -Wshadow warnings
Reviewed-by: Rhys Perry <pendingchaos02@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/7430>
Samuel Pitoiset [Thu, 19 Nov 2020 11:00:23 +0000 (12:00 +0100)]
radv: ignore other blend targets if dual-source blending is enabled
Using more blend targets than specified by maxFragmentDualSrcAttachments
is invalid per the Vulkan spec.
I'm usually not a fan to workaround game bugs inside the driver but
it's really easy for us to ignore MRT1+ in the driver and that
prevents wrong behaviour.
Cc: 20.2, 20.3
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/7684>
Erik Faye-Lund [Thu, 19 Nov 2020 11:54:19 +0000 (12:54 +0100)]
docs: add basic docs for d3d12 driver
Reviewed-by: Jesse Natalie <jenatali@microsoft.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/7687>
Samuel Pitoiset [Thu, 19 Nov 2020 11:23:31 +0000 (12:23 +0100)]
ci: add list of expected failures for Sienna Cichlid
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/7686>
Iago Toral Quiroga [Thu, 19 Nov 2020 08:45:16 +0000 (09:45 +0100)]
v3dv: only write new uniforms when needed
Writing uniform streams is performance sensitive so we should try our
best to avoid writing new uniforms if they have not changed. Particularly,
if only the vertex buffers have changed, we should not write new uniforms.
This improves performance in vkQuake2 by about 11.15%.
Reviewed-by: Alejandro Piñeiro <apinheiro@igalia.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/7683>
Iago Toral Quiroga [Thu, 19 Nov 2020 09:45:49 +0000 (10:45 +0100)]
v3dv: remove redundant free of default pipeline attributes BO
Reviewed-by: Alejandro Piñeiro <apinheiro@igalia.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/7683>
Vinson Lee [Tue, 3 Nov 2020 01:59:46 +0000 (17:59 -0800)]
r600/sb: Initialize sb_context members in constructor.
Fix defects reported by Coverity Scan.
Uninitialized scalar field (UNINIT_CTOR)
uninit_member: Non-static class member alu_temp_gprs is not initialized in this constructor nor in any functions that it calls.
uninit_member: Non-static class member max_fetch is not initialized in this constructor nor in any functions that it calls.
uninit_member: Non-static class member has_trans is not initialized in this constructor nor in any functions that it calls.
uninit_member: Non-static class member vtx_src_num is not initialized in this constructor nor in any functions that it calls.
uninit_member: Non-static class member num_slots is not initialized in this constructor nor in any functions that it calls.
uninit_member: Non-static class member uses_mova_gpr is not initialized in this constructor nor in any functions that it calls.
uninit_member: Non-static class member r6xx_gpr_index_workaround is not initialized in this constructor nor in any functions that it calls.
uninit_member: Non-static class member stack_workaround_8xx is not initialized in this constructor nor in any functions that it calls.
uninit_member: Non-static class member stack_workaround_9xx is not initialized in this constructor nor in any functions that it calls.
uninit_member: Non-static class member wavefront_size is not initialized in this constructor nor in any functions that it calls.
uninit_member: Non-static class member stack_entry_size is not initialized in this constructor nor in any functions that it calls.
Signed-off-by: Vinson Lee <vlee@freedesktop.org>
Reviewed-by: Gert Wollny <gert.wollny@collabora.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/7413>
Vinson Lee [Tue, 17 Nov 2020 00:55:56 +0000 (16:55 -0800)]
r600/sfn: Initialize ShaderFromNir members in constructor.
Fix defect reported by Coverity Scan.
Uninitialized scalar field (UNINIT_CTOR)
uninit_member: Non-static class member chip_class is not initialized in
this constructor nor in any functions that it calls.
uninit_member: Non-static class member scratch_size is not initialized
in this constructor nor in any functions that it calls.
Signed-off-by: Vinson Lee <vlee@freedesktop.org>
Reviewed-by: Gert Wollny <gert.wollny@collabora.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/7648>
Vinson Lee [Tue, 17 Nov 2020 01:06:43 +0000 (17:06 -0800)]
r600/sfn: Fix typos.
Signed-off-by: Vinson Lee <vlee@freedesktop.org>
Reviewed-by: Gert Wollny <gert.wollny@collabora.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/7649>
Ian Romanick [Wed, 29 Jul 2020 23:38:40 +0000 (16:38 -0700)]
intel/fs: Add support for printing half-float immediate values
v2: Remove offensive, extraneous 0 in hex constant.
Reviewed-by: Caio Marcelo de Oliveira Filho <caio.oliveira@intel.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/7650>
Ian Romanick [Thu, 30 Jul 2020 00:50:03 +0000 (17:50 -0700)]
intel/fs: Silence unused parameter warning in filter_simd
src/intel/compiler/brw_fs.cpp: In function ‘bool filter_simd(const nir_instr*, const void*)’:
src/intel/compiler/brw_fs.cpp:8870:50: warning: unused parameter ‘_options’ [-Wunused-parameter]
8870 | filter_simd(const nir_instr *instr, const void * _options)
| ~~~~~~~~~~~~~^~~~~~~~
Reviewed-by: Caio Marcelo de Oliveira Filho <caio.oliveira@intel.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/7650>
Ian Romanick [Wed, 29 Jul 2020 18:29:56 +0000 (11:29 -0700)]
intel/compiler: Delete redundant MAC declaration
It already appears about 20 lines earlier near MACH.
Trivial.
Reviewed-by: Caio Marcelo de Oliveira Filho <caio.oliveira@intel.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/7650>
Ian Romanick [Thu, 30 Jul 2020 18:33:03 +0000 (11:33 -0700)]
intel/compiler: Rotate instructions ROR and ROL cannot have source modifiers
I checked the Bspec for both Gen11 and Gen12, and it appears that rotate
instructions cannot have source modifiers or saturate modifer. Saturate
was already handled.
Fixes:
1e92e83856b ("intel/compiler: Emit ROR and ROL instruction")
Reviewed-by: Caio Marcelo de Oliveira Filho <caio.oliveira@intel.com>
Reviewed-by: Sagar Ghuge <sagar.ghuge@intel.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/7650>
Adam Jackson [Thu, 19 Nov 2020 17:52:55 +0000 (12:52 -0500)]
docs: Update Mesa GL enum allocations for EGL_MESA_platform_xcb
Reviewed-by: Eric Anholt <eric@anholt.net>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/7693>
Samuel Pitoiset [Thu, 19 Nov 2020 11:18:36 +0000 (12:18 +0100)]
radv/winsys: add missing Van Gogh and Dimgrey Cavefish in the null winsys
Signed-off-by: Samuel Pitoiset <samuel.pitoiset@gmail.com>
Acked-by: Bas Nieuwenhuizen <bas@basnieuwenhuizen.nl>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/7685>
Samuel Pitoiset [Thu, 19 Nov 2020 11:16:54 +0000 (12:16 +0100)]
radv/winsys: fill real PCIID for Sienna Cichlid and Navy Flounder
Signed-off-by: Samuel Pitoiset <samuel.pitoiset@gmail.com>
Acked-by: Bas Nieuwenhuizen <bas@basnieuwenhuizen.nl>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/7685>
Connor Abbott [Fri, 30 Oct 2020 15:38:40 +0000 (16:38 +0100)]
ir3: Enable nir_lower_vars_to_scratch on a6xx
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/7386>
Connor Abbott [Fri, 30 Oct 2020 15:31:05 +0000 (16:31 +0100)]
freedreno/a6xx: Implement private memory
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/7386>
Connor Abbott [Thu, 29 Oct 2020 14:13:00 +0000 (15:13 +0100)]
tu: Support private memory
Allocate enough space and then program the registers correctly. We
currently allocate scratch memory as part of the pipeline, because the
alternative of trying to share it across pipelines is a bit trickier due
to the need for the configs to exactly match whenever we reuse the same
buffer for different shaders.
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/7386>
Connor Abbott [Thu, 29 Oct 2020 14:08:36 +0000 (15:08 +0100)]
freedreno: Add per-device parameters for private memory
We have to allocate backing storage big enough to hold all the private
memory for all threads that can possibly be in flight, which means that
we have to start filling in some more model-specific information as the
sizes will be different for models with different core counts/ALU
counts.
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/7386>
Connor Abbott [Fri, 30 Oct 2020 16:58:09 +0000 (17:58 +0100)]
ir3: Properly validate cat6 half-ness
Apparently this is all that's required to get loads & stores to work
with half registers.
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/7386>
Connor Abbott [Thu, 29 Oct 2020 14:05:24 +0000 (15:05 +0100)]
ir3: Initial support for private memory
Add information that the driver will need to setup registers, and
implement support for load_scratch/store_scratch using private memory.
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/7386>
Connor Abbott [Tue, 27 Oct 2020 12:44:41 +0000 (13:44 +0100)]
ir3/parser: Fix st{l,lw,g,p} and ld{l,lw,g,p} assembly
It seems the src_offset and dst_offset are unused for these, and the
offset is expected to be an immediate register. Also we forgot to add a
dummy dst for the store instructions.
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/7386>
Connor Abbott [Tue, 27 Oct 2020 12:43:56 +0000 (13:43 +0100)]
ir3: Fix STP/LDP assembly
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/7386>
Connor Abbott [Fri, 23 Oct 2020 12:07:04 +0000 (14:07 +0200)]
ir3: Support assembling & disassembling getspid/getwid
These aren't useful yet in the driver, but were useful for
reverse-engineering how private memory works.
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/7386>
Connor Abbott [Fri, 23 Oct 2020 11:51:47 +0000 (13:51 +0200)]
ir3: Add more a6xx-specific cat6 opcodes
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/7386>
Connor Abbott [Fri, 23 Oct 2020 11:46:47 +0000 (13:46 +0200)]
ir3: Expand cat6 a6xx opcode field
Turns out the low bit of pad3 is actually the high bit of the opcode.
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/7386>
Connor Abbott [Tue, 27 Oct 2020 15:12:27 +0000 (16:12 +0100)]
freedreno/a6xx: Document private memory registers
They seem to be broadly similar to the a3xx ones, albeit with some
things shuffled around and with different units, and the extra layout
mode bits.
We also document the FIRST_EXEC_OFFSET registers, so that we can start
properly setting them all to 0 in freedreno and turnip in later commits.
I discovered the compute one when playing with function support in the
blob CL driver, and added the other registers via analogy (the blob
Vulkan driver sets FIRST_EXEC_OFFSET and the shader VA together in one
packet for all stages, so it seems to really be in the same place for
all stages).
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/7386>
Connor Abbott [Tue, 27 Oct 2020 15:58:29 +0000 (16:58 +0100)]
freedreno/ci: Strip location from asserts
Let's not force everyone touching ir3.h to make random changes to the
reference output.
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/7386>
Matt Turner [Tue, 17 Nov 2020 19:58:24 +0000 (14:58 -0500)]
glcpp: Handle bison-3.6 error message changes
In bison's commit
72c9fa4510eb (skeletons: use "end of file" instead of
"$end") in bison-3.6, '$end' was changed to 'end of file' in error
messages. Since our glcpp test cases contain the expected output text,
they rely on the particular messages printed by bison. The test case
084-unbalanced-parentheses fails when Mesa is built with bison-3.6 due
to this change.
To allow the test to pass on all supported versions of bison, we:
1. Change '$end' -> 'end of file' in the .expected file, and
2. Normalize the error generated by the test case with the same
replacement
Cc: mesa-stable
Closes: https://gitlab.freedesktop.org/mesa/mesa/-/issues/3181
Reviewed-by: Pierre-Eric Pelloux-Prayer <pierre-eric.pelloux-prayer@amd.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/7659>
Pierre-Eric Pelloux-Prayer [Tue, 10 Nov 2020 12:47:35 +0000 (13:47 +0100)]
amdgpu_bo: make cache_entry a extensible array
Improves performance in SPECviewperf13 snx.
e.g.: test10 fps evolution: 270 -> 280.
"pahole radeonsi_dri.so -C amdgpu_winsys_bo" after:
struct amdgpu_winsys_bo {
struct pb_buffer base; /* 0 32 */
union {
struct {
amdgpu_va_handle va_handle; /* 32 8 */
uint32_t kms_handle; /* 40 4 */
int map_count; /* 44 4 */
} real; /* 32 16 */
[...]
} u; /* 32 40 */
/* --- cacheline 1 boundary (64 bytes) was 8 bytes ago --- */
[...]
struct pb_cache_entry cache_entry[]; /* 144 0 */
/* size: 144, cachelines: 3, members: 17 */
};
Reviewed-by: Marek Olšák <marek.olsak@amd.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/7532>
Pierre-Eric Pelloux-Prayer [Fri, 13 Nov 2020 11:19:14 +0000 (12:19 +0100)]
winsys/amdgpu: make RADEON_ALL_BOS a debug only feature
Improves performance in SPECviewperf13 snx.
e.g.: test10 fps evolution: 235 -> 270.
Extract from "pahole radeonsi_dri.so -C amdgpu_winsys_bo", before:
struct amdgpu_winsys_bo {
struct pb_buffer base; /* 0 32 */
union {
struct {
struct pb_cache_entry cache_entry; /* 32 56 */
/* XXX last struct has 4 bytes of padding */
/* --- cacheline 1 boundary (64 bytes) was 24 bytes ago --- */
amdgpu_va_handle va_handle; /* 88 8 */
int map_count; /* 96 4 */
_Bool use_reusable_pool; /* 100 1 */
/* XXX 3 bytes hole, try to pack */
struct list_head global_list_item; /* 104 16 */
uint32_t kms_handle; /* 120 4 */
} real;
[...]
} u; /* 32 96 */
[...]
/* size: 200, cachelines: 4, members: 15 */
};
After:
struct amdgpu_winsys_bo {
struct pb_buffer base; /* 0 32 */
union {
struct {
struct pb_cache_entry cache_entry; /* 32 56 */
/* XXX last struct has 4 bytes of padding */
/* --- cacheline 1 boundary (64 bytes) was 24 bytes ago --- */
amdgpu_va_handle va_handle; /* 88 8 */
int map_count; /* 96 4 */
_Bool use_reusable_pool; /* 100 1 */
/* XXX 3 bytes hole, try to pack */
uint32_t kms_handle; /* 104 4 */
} real; /* 32 80 */
} u; /* 32 80 */
/* --- cacheline 1 boundary (64 bytes) was 48 bytes ago --- */
[...]
/* size: 184, cachelines: 3, members: 15 */
};
Reviewed-by: Marek Olšák <marek.olsak@amd.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/7532>
Rhys Perry [Fri, 5 Jun 2020 16:36:29 +0000 (17:36 +0100)]
aco: create v_mad_u32_u24
fossil-db (Navi):
Totals from 849 (0.61% of 138791) affected shaders:
SGPRs: 38528 -> 38544 (+0.04%)
VGPRs: 39860 -> 39856 (-0.01%)
CodeSize: 2701880 -> 2702016 (+0.01%)
MaxWaves: 9148 -> 9150 (+0.02%)
Instrs: 509864 -> 509821 (-0.01%); split: -0.01%, +0.00%
Cycles: 3400124 -> 3399628 (-0.01%); split: -0.02%, +0.00%
VMEM: 262757 -> 262672 (-0.03%)
SMEM: 59710 -> 59704 (-0.01%)
Copies: 44461 -> 44466 (+0.01%)
fossil-db (Polaris):
Totals from 1487 (1.06% of 140385) affected shaders:
SGPRs: 54688 -> 55840 (+2.11%)
CodeSize: 2725608 -> 2725720 (+0.00%); split: -0.01%, +0.01%
Instrs: 521394 -> 517710 (-0.71%)
Cycles:
18474108 ->
18410964 (-0.34%)
VMEM: 436992 -> 431028 (-1.36%); split: +0.06%, -1.43%
SMEM: 124503 -> 122564 (-1.56%); split: +0.45%, -2.00%
VClause: 21972 -> 22015 (+0.20%); split: -0.12%, +0.31%
SClause: 14274 -> 14287 (+0.09%)
Copies: 44407 -> 44411 (+0.01%); split: -0.02%, +0.03%
PreSGPRs: 34318 -> 34321 (+0.01%); split: -0.00%, +0.01%
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/7639>
Samuel Iglesias Gonsálvez [Wed, 23 Sep 2020 10:09:25 +0000 (12:09 +0200)]
turnip: implement VK_KHR_depth_stencil_resolve support
Signed-off-by: Samuel Iglesias Gonsálvez <siglesias@igalia.com>
Reviewed-by: Jonathan Marek <jonathan@marek.ca>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/6884>
Michel Dänzer [Wed, 18 Nov 2020 16:54:19 +0000 (17:54 +0100)]
ac: Don't negate strstr return values in ac_query_gpu_info
strstr returns a pointer to the needle sub-string within the haystack
string if the latter contains the former, or NULL otherwise. So this
essentially always set info->is_pro_graphics = true, since probably no
marketing name ever contains all of these sub-strings.
Fixes:
b635dff25620 "ac: fix detection of Pro graphics"
Reviewed-by: Pierre-Eric Pelloux-Prayer <pierre-eric.pelloux-prayer@amd.com>
Reviewed-by: Marek Olšák <marek.olsak@amd.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/7675>
Iago Toral Quiroga [Wed, 18 Nov 2020 09:59:02 +0000 (10:59 +0100)]
v3dv: remove box check from texel buffer copy fragment shader
We are already ensuring that we only copy the appropriate pixel
rect via the scissor and viewport state, so there is no need to
do this check in the shader.
Using a stress test with 100 buffer to image copies of a single
layered image with 10 miplevels recorded into a command buffer and
measuring the time it gets to execute the command buffer we get
these results:
| Execution Time |
----------|----------------|
master | 0.142s |
----------|----------------|
patch | 0.071s |
Reviewed-by: Alejandro Piñeiro <apinheiro@igalia.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/7671>
Marek Olšák [Thu, 12 Nov 2020 19:34:24 +0000 (14:34 -0500)]
winsys/amdgpu: move amdgpu_winsys_bo::lock for better packing
Reviewed-by: Pierre-Eric Pelloux-Prayer <pierre-eric.pelloux-prayer@amd.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/7585>
Marek Olšák [Thu, 12 Nov 2020 19:29:44 +0000 (14:29 -0500)]
winsys/amdgpu: replace amdgpu_winsys_bo::initial_domain with pb_buffer::placement
Reviewed-by: Pierre-Eric Pelloux-Prayer <pierre-eric.pelloux-prayer@amd.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/7585>
Marek Olšák [Thu, 12 Nov 2020 19:25:43 +0000 (14:25 -0500)]
winsys/amdgpu: replace amdgpu_winsys_bo::flags with pb_buffer::usage
Let's use the field so as not to waste memory.
Reviewed-by: Pierre-Eric Pelloux-Prayer <pierre-eric.pelloux-prayer@amd.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/7585>
Marek Olšák [Thu, 12 Nov 2020 19:09:35 +0000 (14:09 -0500)]
winsys/amdgpu: remove amdgpu_winsys_bo::sparse
Reviewed-by: Pierre-Eric Pelloux-Prayer <pierre-eric.pelloux-prayer@amd.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/7585>
Marek Olšák [Thu, 12 Nov 2020 19:09:35 +0000 (14:09 -0500)]
winsys/amdgpu: remove amdgpu_winsys_bo::u::sparse::flags
Reviewed-by: Pierre-Eric Pelloux-Prayer <pierre-eric.pelloux-prayer@amd.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/7585>
Kenneth Graunke [Tue, 15 Sep 2020 17:54:05 +0000 (10:54 -0700)]
intel/fs: Fix sampler message headers on Gen11+ when using scratch
Icelake's sampler message header introduces a field in m0.3 bit 0
which controls whether the sampler state pointer should be relative
to bindless sampler state base address or dynamic state base address.
g0.3 bit 0 is part of the per-thread scratch space field. On older
hardware, we were able to copy that along because the sampler ignored
bits 4:0. Now, however, we need to mask them out.
Fixes various textureGatherOffsets piglit tests when forcing the FS
to run with 2048 bytes of per-thread scratch space (which is a
per-thread scratch space encoding of 1, meaning bit 0 will be set).
Cc: mesa-stable
Reviewed-by: Jason Ekstrand <jason@jlekstrand.net>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/6735>
Kenneth Graunke [Wed, 5 Aug 2020 02:01:13 +0000 (19:01 -0700)]
intel/compiler: Do interpolateAtOffset coordinate scaling in NIR
In our source languages, interpolateAtOffset() takes a floating point
offset in the range [-0.5, +0.5]. However, the hardware takes integer
valued offsets in the range [-8, 7], in units of 1/16th of a pixel.
So, we need to multiply and clamp the coordinates. We were doing this
in the FS backend, but with the advent of IBC, I'd like to avoid doing
it twice. This patch instead moves the lowering to NIR so we can reuse
it across both backends.
v2: Use nir_shader_instructions_pass (suggested by Eric Anholt).
Reviewed-by: Caio Marcelo de Oliveira Filho <caio.oliveira@intel.com>
Reviewed-by: Matt Turner <mattst88@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/6193>
Nanley Chery [Tue, 17 Nov 2020 00:33:39 +0000 (16:33 -0800)]
iris: Stop quantizing the depth clear value
This function has a number of problems:
1. It performs 24-bit quantization on a format which shouldn't be
quantized at all (PIPE_FORMAT_Z32_FLOAT_S8X24_UINT).
2. The algorithm seems to create a different pixel than HW would in the
absence of this SW conversion. This can cause issues with depth
testing.
Instead of adding more code to deal with these issues, delete the
quantization code.
This code originated from i965
(
0ae9ce0f29ea1973b850a4e6c6cae8606973036e) and helped to avoid a
regression in Lightsmark 2008. This change continues to avoid that
regression because any new clear value is now casted from double to
float before checking if the resource's clear value has changed.
Closes: https://gitlab.freedesktop.org/mesa/mesa/-/issues/3783
Reviewed-by: Tapani Pälli <tapani.palli@intel.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/7665>
Eric Anholt [Tue, 17 Nov 2020 21:08:40 +0000 (13:08 -0800)]
ci: Bring freedreno into the "warnings clean release build" fold.
There are just a couple warnings left for turnip that point to real error
handling we should be adding.
Acked-by: Rob Clark <robdclark@chromium.org>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/7664>
Eric Anholt [Tue, 17 Nov 2020 21:43:28 +0000 (13:43 -0800)]
freedreno: Suppress uninit var warnings from shader stage switch.
It seems we have enough branches that the compiler gets confused now, and
I can also suppress the warning by replacing "unreachable()" with
"return". Unreachable is good for debugging, so just 0-init the values.
Reviewed-by: Rob Clark <robdclark@chromium.org>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/7664>
Eric Anholt [Tue, 17 Nov 2020 21:07:39 +0000 (13:07 -0800)]
freedreno: Fix uninitialized var warning in afuc using unreachable().
Reviewed-by: Rob Clark <robdclark@chromium.org>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/7664>
Eric Anholt [Tue, 17 Nov 2020 20:40:26 +0000 (12:40 -0800)]
freedreno: Fix warning about uninit size for the size==0 special case.
The size==0 query case would have just used uninitialized stack data for
sizing its BOs.
Fixes:
536ec9d7f5ab ("freedreno: Refactor fd_resource_create_with_modifiers() into a helper")
Reviewed-by: Rob Clark <robdclark@chromium.org>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/7664>
Eric Anholt [Tue, 17 Nov 2020 20:24:01 +0000 (12:24 -0800)]
freedreno/a6xx: Fix use of uninitialized img->level in the SSBO/image path.
I think enough things lined up that the uninitialized level in the buffer
paths would end effectively not being used (no ubwc, not tiling anyway),
but let's just zero-init it to be sure and quiet the compiler.
Reviewed-by: Rob Clark <robdclark@chromium.org>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/7664>
Eric Anholt [Tue, 17 Nov 2020 20:13:54 +0000 (12:13 -0800)]
freedreno: Fix release build warnings for asserted temp vars.
Reviewed-by: Rob Clark <robdclark@chromium.org>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/7664>