Ian Romanick
3cb203303c
intel/compiler: Update block IPs once in opt_cmod_propagation
...
No difference proven at 95.0% confidence (n=10) in
dEQP-VK.ssbo.phys.layout.random.16bit.scalar.13.
v2: Only update each block's IP data once instead of once per block.
Suggested by Emma.
Reviewed-by: Emma Anholt <emma@anholt.net >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11632 >
2021-07-14 09:57:06 -07:00
Ian Romanick
8f1052938d
intel/compiler: Update block IPs once in register_coalesce
...
Performance improvement in
dEQP-VK.ssbo.phys.layout.random.16bit.scalar.13 for n=30:
release build (w/Fedora build flags): -0.82% ± 0.23%
Meson -Dbuildtype=debugoptimized: -0.74% ± 0.27%
The difference in the debugoptimized build is the calls to
inst_is_in_block(block, this) still exist on each call to remove().
v2: Only update each block's IP data once instead of once per block.
Suggested by Emma.
Reviewed-by: Emma Anholt <emma@anholt.net >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11632 >
2021-07-14 09:57:04 -07:00
Ian Romanick
f3f3817307
intel/compiler: Update block IPs once in dead_code_eliminate
...
Performance improvement in
dEQP-VK.ssbo.phys.layout.random.16bit.scalar.13 for n=30:
release build (w/Fedora build flags): -7.79% ± 0.25%
Meson -Dbuildtype=debugoptimized: -5.10% ± 0.40%
The difference in the debugoptimized build is the calls to
inst_is_in_block(block, this) still exist on each call to remove().
v2: Only update each block's IP data once instead of once per block.
Suggested by Emma.
Reviewed-by: Emma Anholt <emma@anholt.net >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11632 >
2021-07-14 09:57:01 -07:00
Ian Romanick
8ca1bc5f94
intel/compiler: Add cfg_t::adjust_block_ips() method
...
Reviewed-by: Emma Anholt <emma@anholt.net >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11632 >
2021-07-14 09:56:59 -07:00
Ian Romanick
8206b04d43
intel/compiler: Add the ability to defer IP updates in backend_instruction::remove
...
Reviewed-by: Emma Anholt <emma@anholt.net >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11632 >
2021-07-14 09:56:46 -07:00
Daniel Schürmann
71aab9607d
aco/live_var_analysis: change worklist to a single integer
...
Reduces overall compile times by ~0.45%.
Reviewed-by: Rhys Perry <pendingchaos02@gmail.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11879 >
2021-07-14 18:10:56 +02:00
Daniel Schürmann
20eaa074ec
aco/insert_waitcnt: Remove many unnecessary wait_imm.combine()
...
Reduces overall compile times by ~0.2%.
Reviewed-by: Rhys Perry <pendingchaos02@gmail.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11879 >
2021-07-14 18:10:50 +02:00
Daniel Schürmann
114d38e57d
aco/isel: avoid unnecessary calls to nir_unsigned_upper_bound()
...
These were responsible for ~20% of the time
spent in instruction selection.
Reduces overall compile times by ~0.5%.
Reviewed-by: Rhys Perry <pendingchaos02@gmail.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11879 >
2021-07-14 18:10:40 +02:00
Iago Toral Quiroga
940725a7d9
broadcom/compiler: implement gl_PrimitiveID in FS without a GS
...
OpenGL ES 3.1 specifies that a geometry shader can write to gl_PrimitiveID,
which can then be read by a fragment shader.
OpenGL ES 3.2 additionally adds the capacity for the fragment shader
to read gl_PrimitiveID even if there is no geometry shader. This
commit adds support for this feature, which is also implicitly
expected by the geometry shader feature in Vulkan 1.0.
Fixes:
dEQP-VK.pipeline.framebuffer_attachment.no_attachments
dEQP-VK.pipeline.framebuffer_attachment.no_attachments_ms
Reviewed-by: Alejandro Piñeiro <apinheiro@igalia.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11874 >
2021-07-14 12:05:56 +00:00
Iago Toral Quiroga
82fadbd3ab
v3d: better scissor tracking
...
If all drawing is scissored but we have multiple discontinuous
scissor rects, we end up flushing all the tiles in the rect that
covers all scissor rects, which can be a waste, particularly for
large render targets. The obvious case for this are updates to a
mega texture or atlas for example.
This change checks if all rendering happenings against scissor
rects, in which case it keeps track of the rects and uses this to
discard tiles that are not included in any of them.
This optimization needs to be disabled if we have any
non-scissored rendering, including non-scissored clears.
Reviewed-by: Alejandro Piñeiro <apinheiro@igalia.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11875 >
2021-07-14 13:46:53 +02:00
Erik Faye-Lund
c7fefc0f2f
zink: respect line_rectangular state
...
This is mostly a theoretical fix for the Nine frontent, which doesn't
want rectangular lines even when multisampling.
Reviewed-By: Mike Blumenkrantz <michael.blumenkrantz@gmail.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11841 >
2021-07-14 07:28:39 +00:00
Erik Faye-Lund
a4cb07dcd5
zink: check for right feature
...
I accidentally repeated the rectangular lines test instead of checking
for smooth lines. Whoopsie!
Fixes: c3b0f439a7 ("zink: fill in the right line-mode based on state")
Reviewed-By: Mike Blumenkrantz <michael.blumenkrantz@gmail.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11841 >
2021-07-14 07:28:39 +00:00
Erik Faye-Lund
e3542b35a8
vulkan: allocate host-visible memory for swapchain images
...
The Vulkan 1.2 specification, section 11.2.12 ("Host Access to Device
Memory Objects") say the following:
> memory must have been created with a memory type that reports
> VK_MEMORY_PROPERTY_HOST_VISIBLE_BIT
Since there's no guarantee that there's any memory that is *both*
device-local *and* host-visible, let's just use the latter requirement.
Fixes: 8af568e4ae ("vulkan: implement wsi_win32 backend")
Reviewed-by: Jason Ekstrand <jason@jlekstrand.net >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11848 >
2021-07-14 07:09:38 +00:00
Erik Faye-Lund
d0c7a2106b
vulkan: do not map zero-sized region of memory
...
The Vulkan 1.2 specification, section 11.2.12 ("Host Access to Device
Memory Objects") say the following:
> If size is not equal to VK_WHOLE_SIZE, size must be greater than 0
So, mapping a zero-sized range is illegal. Let's instead map the
reported size of the image, which we already know.
Fixes: 8af568e4ae ("vulkan: implement wsi_win32 backend")
Reviewed-by: Jason Ekstrand <jason@jlekstrand.net >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11848 >
2021-07-14 07:09:38 +00:00
Jason Ekstrand
2fd989a298
anv/allocator: Use list->u64 in free_list_push
...
Since we always modify this structure with atomics on the u64, it seems
better to use the u64 here too. I have no idea if this fixes a bug.
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11857 >
2021-07-14 05:50:46 +00:00
Joshua Ashton
f5946354d3
llvmpipe: Handle NULL views in llvmpipe_cleanup_stage_sampling
...
This is the only barrier to lavapipe fully working in RenderDoc.
Fixes: 21864bdaae ("llvmpipe: unmap display target of shader image/sampler")
Signed-off-by: Joshua Ashton <joshua@froggi.es >
Reviewed-by: Dave Airlie <airlied@redhat.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11856 >
2021-07-14 02:50:30 +00:00
Rob Clark
86f09b14df
freedreno+turnip: Add a6xx gen4 support
...
This adds support for a660 and a635.
Signed-off-by: Rob Clark <robdclark@chromium.org >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11790 >
2021-07-14 01:58:00 +00:00
Rob Clark
7c7722304b
freedreno+turnip: Get device name from device-info table
...
Signed-off-by: Rob Clark <robdclark@chromium.org >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11790 >
2021-07-14 01:58:00 +00:00
Rob Clark
a4559c9550
freedreno+turnip: Add has_8bpp_ubwc
...
Newer a6xx devices seem to drop 8b/pixel UBWC support.
The turnip part was adapted from Jonathans patch on !10892
Signed-off-by: Rob Clark <robdclark@chromium.org >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11790 >
2021-07-14 01:58:00 +00:00
Rob Clark
e552784e68
freedreno+turnip: Add has_cp_reg_write
...
Newer a6xx devices drop this packet from the sqe firmware, and use
direct (pkt4) register writes instead for the few cases that previously
used CP_REG_WRITE.
The turnip part was adapted from Jonathans patch on !10892
Signed-off-by: Rob Clark <robdclark@chromium.org >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11790 >
2021-07-14 01:58:00 +00:00
Rob Clark
f74d0bf05e
turnip: Get has_sample_locations from fd_dev_info
...
Signed-off-by: Rob Clark <robdclark@chromium.org >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11790 >
2021-07-14 01:58:00 +00:00
Rob Clark
3f1c4a86bb
turnip: Get has_tex_filter_cubic from fd_dev_info
...
Signed-off-by: Rob Clark <robdclark@chromium.org >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11790 >
2021-07-14 01:58:00 +00:00
Rob Clark
64af60cfb3
turnip: Get indirect_draw_wfm_quirk from fd_dev_info
...
At some point we might want to change this to minimum fw version, but
for now it can be a bool.
Signed-off-by: Rob Clark <robdclark@chromium.org >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11790 >
2021-07-14 01:58:00 +00:00
Rob Clark
06000f42ed
turnip: Get storage_16bit from fd_dev_info
...
Removing more gpu_id checks that will become bogus as we add more a6xx.
Signed-off-by: Rob Clark <robdclark@chromium.org >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11790 >
2021-07-14 01:58:00 +00:00
Rob Clark
948d87dab8
turnip: Drop unused vshs_workgroup param
...
Unused since d968995c67 , and this gets rid
of one more gpu_id check.
Signed-off-by: Rob Clark <robdclark@chromium.org >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11790 >
2021-07-14 01:58:00 +00:00
Rob Clark
f4cfb5a61e
freedreno/ir3: Get reg_size_vec4 from fd_dev_info
...
Signed-off-by: Rob Clark <robdclark@chromium.org >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11790 >
2021-07-14 01:58:00 +00:00
Rob Clark
4335f47f41
freedreno/ir3: Get tess_use_shared from fd_dev_info
...
A step towards getting rid of checks for gpu_id sprinkled around.
Checking major generation is ok, but checking for == or >= a specific
gpu_id is going to start getting messy as we add more a6xx.
Signed-off-by: Rob Clark <robdclark@chromium.org >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11790 >
2021-07-14 01:58:00 +00:00
Rob Clark
c9bcd835fa
turnip: Convert fd_dev_info to const pointer
...
Split out from earlier patch to reduce churn.
Signed-off-by: Rob Clark <robdclark@chromium.org >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11790 >
2021-07-14 01:58:00 +00:00
Rob Clark
8f6715862f
freedreno: Convert fd_dev_info to const pointer
...
Split out from previous patch to reduce churn.
Signed-off-by: Rob Clark <robdclark@chromium.org >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11790 >
2021-07-14 01:58:00 +00:00
Rob Clark
78c8a8af80
freedreno: Generate device-info tables at build time
...
This way we can make the tables const. At the same time, for a6xx, this
introduces a "sub-generation template" to reduce the copy/paste for
parameters which are keyed to the sub-generation. It also explicitly
lists every supported GPU, to get rid of duplicate lists of supported
gpus between the device-info and drivers.
Signed-off-by: Rob Clark <robdclark@chromium.org >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11790 >
2021-07-14 01:58:00 +00:00
Rob Clark
0eda0188aa
freedreno: Rename *_dev_info
...
Everywhere else symbols/types/etc are shortend to "fd_*", so lets do the
same here for consistency.
Signed-off-by: Rob Clark <robdclark@chromium.org >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11790 >
2021-07-14 01:58:00 +00:00
Jonathan Marek
1a6dd7f9b1
freedreno/common: unhardcode CCU color cache offset
...
Replace it with a calculation which works for all current GPUs.
Duplicated the calculation in both drivers because freedreno_dev_info isn't
meant for derived parameters (and drivers might want to just calculate on
the fly instead).
Signed-off-by: Jonathan Marek <jonathan@marek.ca >
Signed-off-by: Rob Clark <robdclark@chromium.org >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11790 >
2021-07-14 01:58:00 +00:00
Jonathan Marek
a37460e7ec
freedreno/a6xx: larger gmem_page_align from tile align instead of gpu id
...
The larger page alignment is directly related to the 96 tile alignment,
so check for that instead of a specific gpu id.
Signed-off-by: Jonathan Marek <jonathan@marek.ca >
Signed-off-by: Rob Clark <robdclark@chromium.org >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11790 >
2021-07-14 01:58:00 +00:00
Jonathan Marek
d34b18a6ce
tu: remove workaround for conditional rendering + hw binning
...
- It hurts users with newer firmware who don't need the workaround
- Kernel now rejects older firmware due to security issues, so this will
prevent users from using older firmware anyway.
- Only whitelisting 650 enables the workaround by default for any new GPUs
Signed-off-by: Jonathan Marek <jonathan@marek.ca >
Signed-off-by: Rob Clark <robdclark@chromium.org >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11790 >
2021-07-14 01:58:00 +00:00
Kenneth Graunke
2f299a8a3b
iris: Use simple_mtx in the bufmgr.
...
This avoids having to call out through the PLT just to lock/unlock.
Reviewed-by: Dave Airlie <airlied@redhat.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11858 >
2021-07-14 01:46:20 +00:00
Icecream95
4636f9e11a
panfrost: Initialise the blend equation in create_blend_state
...
Valgrind still complains about uninitialised values, but tests don't
flake anymore.
Fixes flakes in dEQP-GLES3.functional.fragment_out.*
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11862 >
2021-07-14 01:28:35 +00:00
Dave Airlie
67f9cde84d
crocus: use simple_mtx in the bufmgr
...
anything you can do I can do better^W^Wadapt for crocus
Reviewed-by: Emma Anholt <emma@anholt.net >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11859 >
2021-07-14 00:46:12 +00:00
Timur Kristóf
8341af5109
radv, aco, ac/nir: Tweak position export scheduling for NGG culling.
...
The result is about +5-ish fps in Doom Eternal.
It turns out that the location of position exports matters more
than we thought, and it's actually better to keep them at the bottom
for culling shaders rather than schedule it up to the top.
Signed-off-by: Timur Kristóf <timur.kristof@gmail.com >
Reviewed-by: Daniel Schürmann <daniel@schuermann.dev >
Reviewed-by: Samuel Pitoiset <samuel.pitoiset@gmail.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10525 >
2021-07-13 23:56:33 +00:00
Timur Kristóf
0bb543bb60
ac/nir: Reuse uniforms from top part of culling shaders.
...
Uniforms have the same value in all invocations, therefore they
can safely be reused by invocations even after repacking.
This saves several instructions from culling shaders, mainly
UBO loads and such.
We exclude uniform floats, because those would harm the VGPR
usage of the shaders too much.
Fossil DB results on Sienna Cichlid (with NGG culling on):
Totals from 55379 (43.05% of 128647) affected shaders:
VGPRs: 1926472 -> 1925360 (-0.06%); split: -0.07%, +0.01%
SpillSGPRs: 139 -> 330 (+137.41%)
CodeSize: 159472988 -> 157462856 (-1.26%); split: -1.27%, +0.00%
MaxWaves: 1571492 -> 1571412 (-0.01%)
Instrs: 30665685 -> 30302076 (-1.19%); split: -1.21%, +0.02%
Latency: 127385148 -> 126723891 (-0.52%); split: -0.55%, +0.03%
InvThroughput: 21096298 -> 20773069 (-1.53%); split: -1.53%, +0.00%
VClause: 514792 -> 511231 (-0.69%); split: -0.83%, +0.13%
SClause: 713959 -> 679556 (-4.82%); split: -4.84%, +0.02%
Copies: 2975106 -> 2828185 (-4.94%); split: -5.39%, +0.45%
Branches: 1201921 -> 1152766 (-4.09%)
PreSGPRs: 1753786 -> 1892848 (+7.93%); split: -0.00%, +7.93%
PreVGPRs: 1590522 -> 1583574 (-0.44%); split: -0.44%, +0.00%
Signed-off-by: Timur Kristóf <timur.kristof@gmail.com >
Reviewed-by: Daniel Schürmann <daniel@schuermann.dev >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10525 >
2021-07-13 23:56:33 +00:00
Timur Kristóf
fc1fabbabf
ac/nir: Analyze culling shaders to remember which inputs are used when.
...
These will be useful for some optimizations.
Signed-off-by: Timur Kristóf <timur.kristof@gmail.com >
Reviewed-by: Daniel Schürmann <daniel@schuermann.dev >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10525 >
2021-07-13 23:56:33 +00:00
Timur Kristóf
faf766b864
ac/nir: Reuse the repacked output positions of culling shaders.
...
The position outputs are stored into LDS and reloaded after
repacking, therefore the repacked position values can be
reused in the bottom part of the shader.
Fossil DB results on Sienna Cichlid (with NGG culling on):
Totals from 9016 (7.01% of 128647) affected shaders:
VGPRs: 372472 -> 347560 (-6.69%); split: -6.82%, +0.13%
SpillSGPRs: 437 -> 87 (-80.09%)
CodeSize: 32359340 -> 30441692 (-5.93%); split: -5.93%, +0.00%
MaxWaves: 222030 -> 238970 (+7.63%); split: +7.83%, -0.20%
Instrs: 6207833 -> 5834149 (-6.02%); split: -6.02%, +0.00%
Latency: 27626263 -> 27890632 (+0.96%); split: -5.34%, +6.29%
InvThroughput: 4792958 -> 4361336 (-9.01%); split: -9.01%, +0.00%
VClause: 144385 -> 139586 (-3.32%); split: -9.29%, +5.97%
SClause: 141350 -> 129875 (-8.12%); split: -8.57%, +0.45%
Copies: 580017 -> 568916 (-1.91%); split: -3.60%, +1.68%
Branches: 209067 -> 209154 (+0.04%); split: -0.24%, +0.28%
PreSGPRs: 281320 -> 277814 (-1.25%)
PreVGPRs: 290040 -> 273861 (-5.58%)
Signed-off-by: Timur Kristóf <timur.kristof@gmail.com >
Reviewed-by: Daniel Schürmann <daniel@schuermann.dev >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10525 >
2021-07-13 23:56:33 +00:00
Timur Kristóf
d18920e03a
radv: Run algebraic optimizations before NGG lowering.
...
This makes culling shaders more efficient because they split the
shader in two parts. It is better to optimize before this split
happens.
Signed-off-by: Timur Kristóf <timur.kristof@gmail.com >
Reviewed-by: Samuel Pitoiset <samuel.pitoiset@gmail.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10525 >
2021-07-13 23:56:33 +00:00
Timur Kristóf
f30e4351de
radv: Support NGG culling with new perftest environment variable.
...
Currently we don't enable it on any chip by default, but
we plan to enable it soon on GFX10.3 when we are comfortable
with its performance.
RADV_PERFTEST=nggc environment variable enables it on GFX10+ GPUs.
Signed-off-by: Timur Kristóf <timur.kristof@gmail.com >
Reviewed-by: Samuel Pitoiset <samuel.pitoiset@gmail.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10525 >
2021-07-13 23:56:33 +00:00
Timur Kristóf
182d9b1e60
aco: Implement NGG culling related intrinsics.
...
These are very straightforward as they just copy data from
the newly added shader arguments.
Signed-off-by: Timur Kristóf <timur.kristof@gmail.com >
Reviewed-by: Daniel Schürmann <daniel@schuermann.dev >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10525 >
2021-07-13 23:56:33 +00:00
Timur Kristóf
9a95f5487f
radv: New shader args for NGG culling settings and viewport.
...
Add new shader arguments in RADV for:
- NGG culling settings
- Viewport transform
These will be used by NGG culling shaders.
Additionally, some tweaks are made to some config registers
in order to make culling shaders more efficient.
Signed-off-by: Timur Kristóf <timur.kristof@gmail.com >
Reviewed-by: Samuel Pitoiset <samuel.pitoiset@gmail.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10525 >
2021-07-13 23:56:33 +00:00
Timur Kristóf
ed163a44b6
radv: Expose radv_get_viewport_xform in radv_private.h
...
We need to emit viewport transform information for culling shaders.
This is used for small primitive culling.
Signed-off-by: Timur Kristóf <timur.kristof@gmail.com >
Reviewed-by: Samuel Pitoiset <samuel.pitoiset@gmail.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10525 >
2021-07-13 23:56:33 +00:00
Timur Kristóf
e97f0463a8
ac/nir: Implement NGG deferred attribute culling in NIR.
...
Culling is traditionally done by the rasterizer, but that
can be a bottleneck when an app creates a large number
of primitives. Eg. a lot of tiny triangles reduce the
rasterziation efficiency.
NGG makes it possible for the shader to check primitives
and delete those that it can prove are not needed.
After this is done, we have to repack the surviving invocations
so they remain compact. This also saves bandwidth, because
some memory loads are only executed by those vertices that
survived the culling.
Signed-off-by: Timur Kristóf <timur.kristof@gmail.com >
Reviewed-by: Daniel Schürmann <daniel@schuermann.dev >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10525 >
2021-07-13 23:56:33 +00:00
Timur Kristóf
556a690bac
ac/nir: Use a ballot that matches the wave size during NGG lowering.
...
This generates slightly more efficient code in Wave32 mode.
Signed-off-by: Timur Kristóf <timur.kristof@gmail.com >
Reviewed-by: Daniel Schürmann <daniel@schuermann.dev >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10525 >
2021-07-13 23:56:33 +00:00
Timur Kristóf
651a3da1b5
ac/nir: Add a NIR port of ac_llvm_cull.
...
The algorithms were originally implemented by Marek Olšák,
hence the copyright to AMD.
This commit just ports the LLVM based implementation to NIR,
using the new intrinsics added earlier.
Signed-off-by: Timur Kristóf <timur.kristof@gmail.com >
Reviewed-by: Daniel Schürmann <daniel@schuermann.dev >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10525 >
2021-07-13 23:56:33 +00:00
Timur Kristóf
48e638ab29
nir: Add AMD specific intrinsics for NGG shader based culling.
...
The new intrinsics fall into the following categories:
1. New viewport intrinsics:
For missing components that we need.
RADV will emit new SGPR arguments which will contain the
viewport information for culling shaders. These are used to
compute the screen space coordinates for small primitive culling.
2. load_cull_xxx:
Load the culling settings in runtime.
These will be a new SGPR argument in RADV.
3. overwrite_xxx:
These are needed because system values such as vertex and
instance ID are not writeable, but we need to change them
after repacking shader invocations of VS and TES.
Signed-off-by: Timur Kristóf <timur.kristof@gmail.com >
Reviewed-by: Daniel Schürmann <daniel@schuermann.dev >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10525 >
2021-07-13 23:56:33 +00:00
Emma Anholt
c071187dbb
ci: Enable testing of i915g in the the debian -Werror release build.
...
Acked-by: Daniel Stone <daniels@collabora.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11852 >
2021-07-13 22:30:45 +00:00
Emma Anholt
3504bccb7c
i915g: Fix release build compiler warnings.
...
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11852 >
2021-07-13 22:30:45 +00:00
Emma Anholt
10d8e123c5
freedreno: Optimize duplicate obj-obj ring relocs.
...
No need to include the same BO multiple times in the long-lived ringbuffer
object's list of relocs to be added to the submit.
Improves non-TC drawoverhead -test 9 (8 tex updates) throughput by 1.4901%
+/- 0.8705% (n=20)
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11697 >
2021-07-13 22:12:56 +00:00
Emma Anholt
5c3ca9cb81
freedreno/a6xx: Allocate just enough memory for SO state, only if we do SO.
...
Continuing to improve our suballocation packing.
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11697 >
2021-07-13 22:12:56 +00:00
Emma Anholt
599443febc
freedrneo/a6xx: Reduce the size of the long-lived texture stateobj.
...
It's just a few commands to upload the sampler/texconst data. Improves
the efficiency of suballocation.
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11697 >
2021-07-13 22:12:56 +00:00
Emma Anholt
b53e8831bb
freedreno/a6xx: Reduce the size of the config stateobj allocation.
...
Improves the efficiency of suballocation.
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11697 >
2021-07-13 22:12:56 +00:00
Emma Anholt
737d4caa83
freedreno: Suballocate our long-lived ring objects.
...
On drawoverhead -test 9 (8 texture changes), this saves us 172kb of
memory. That's only ~1% of the GEM memory while the test is running, but
more importantly it saves us 29% of the gem BO allocations.
non-TC drawoverhead -test 9 (8 texture change) throughput 0.449019% +/-
0.336296% (n=100), but this gets better as we get better suballocation
density.
Note that this means that all fd_ringbuffer_new_object calls can now
return data aligned to 64 bytes, instead of 4k. We may find that we need
to increase it if some of our objects (tex consts, sampler consts, etc.)
require more alignment than that. But, this may help non-drawoverhead
perf if any of our RB objects have a cache in front of them (indirect
consts?) and we don't have most of our data in the same cache set any
more.
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11697 >
2021-07-13 22:12:56 +00:00
Paul Kocialkowski
eefd93c176
lima: Take offset in account when checking BO size
...
BO resources imported from a handle may have an offset provided, which
reduces the available size within the BO. Take this in account when
checking that the size is sufficient in lima.
Reviewed-by: Vasily Khoruzhick <anarsoul@gmail.com >
Reviewed-by: Erico Nunes <nunes.erico@gmail.com >
Reviewed-by: Andreas Baierl <ichgeh@imkreisrum.de >
Signed-off-by: Paul Kocialkowski <paul.kocialkowski@bootlin.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11076 >
2021-07-13 21:26:21 +00:00
Joshua Ashton
c880bdeb40
driconf: Add more workarounds for Teardown
...
Enable radeonsi_no_infinite_interp for Teardown to fix hangs.
Based on comments from #3714 .
Tested-by: Joshua Ashton <joshua@froggi.es >
Signed-off-by: Joshua Ashton <joshua@froggi.es >
Acked-by: Martin Peres <martin.peres@mupuf.org >
Reviewed-by: Pierre-Eric Pelloux-Prayer <pierre-eric.pelloux-prayer@amd.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11814 >
2021-07-13 21:02:06 +00:00
Simon Zeni
c8ed5ac206
anv: Implement VK_EXT_acquire_drm_display
...
Signed-off-by: Simon Zeni <simon@bl4ckb0ne.ca >
Reviewed-by: Simon Ser <contact@emersion.fr >
Tested-by: Simon Ser <contact@emersion.fr >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11735 >
2021-07-13 20:50:32 +00:00
Tony Wasserka
f438cbc23e
aco: Remove deprecated Operand constructors
...
Reviewed-by: Timur Kristóf <timur.kristof@gmail.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11653 >
2021-07-13 17:43:26 +00:00
Tony Wasserka
cfd866ed42
aco: Clean up unneeded literal casts
...
These were only needed to select the appropriate Operand constructor before.
Reviewed-by: Timur Kristóf <timur.kristof@gmail.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11653 >
2021-07-13 17:43:26 +00:00
Tony Wasserka
66e51dc474
aco: Remove use of deprecated Operand constructors
...
This migration was done with libclang-based automatic tooling, which
performed these replacements:
* Operand(uint8_t) -> Operand::c8
* Operand(uint16_t) -> Operand::c16
* Operand(uint32_t, false) -> Operand::c32
* Operand(uint32_t, bool) -> Operand::c32_or_c64
* Operand(uint64_t) -> Operand::c64
* Operand(0) -> Operand::zero(num_bytes)
Casts that were previously used for constructor selection have automatically
been removed (e.g. Operand((uint16_t)1) -> Operand::c16(1)).
Reviewed-by: Timur Kristóf <timur.kristof@gmail.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11653 >
2021-07-13 17:43:26 +00:00
Tony Wasserka
76554419b3
aco: Remove use of deprecated Operand constructors in aco_builder.h
...
Reviewed-by: Timur Kristóf <timur.kristof@gmail.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11653 >
2021-07-13 17:43:26 +00:00
Tony Wasserka
4e33688f23
aco: Remove use of deprecated Operand constructors in test_to_hw_instr.cpp
...
Reviewed-by: Timur Kristóf <timur.kristof@gmail.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11653 >
2021-07-13 17:43:26 +00:00
Tony Wasserka
db436a843c
aco: Replace Operand literal constructors with factory member functions
...
Reviewed-by: Timur Kristóf <timur.kristof@gmail.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11653 >
2021-07-13 17:43:26 +00:00
Emma Anholt
446bf13e48
ci: Make sure that we build the piglit dmabuf tests.
...
Force the option rather than relying on autodetection -- ARM runners were
apparently finding the necessary deps, but the x86 rootfs (radeonsi, iris)
and x86_test-gl container (i915g) were not.
Reviewed-by: Tomeu Vizoso <tomeu.vizoso@collabora.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11834 >
2021-07-13 16:31:06 +00:00
Mike Blumenkrantz
d29c086fb9
zink: simplify modifier ifdefs
...
these are the only two defines referenced, so they can be defined to 0
for platforms that don't support modifiers in order to remove a ton of
ifdefs and make the code more readable
Reviewed-by: Erik Faye-Lund <erik.faye-lund@collabora.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11847 >
2021-07-13 14:59:18 +00:00
Rob Clark
7f5a01a47d
freedreno/ir3: Add float immed "FLUT" support
...
We can encode a limited set of float immeds into cat2 instructions,
using hw's float lookup table (FLUT) feature.
Closes: https://gitlab.freedesktop.org/mesa/mesa/-/issues/36
Signed-off-by: Rob Clark <robdclark@chromium.org >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/8705 >
2021-07-13 14:40:30 +00:00
Rob Clark
4b2afd11cc
freedreno/computerator: Add script to probe FLUT values
...
Signed-off-by: Rob Clark <robdclark@chromium.org >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/8705 >
2021-07-13 14:40:30 +00:00
Rob Clark
4e802538e7
turnip: Split tu6_emit_xs()
...
Emit all the state layout config (such as push-const CONSTLEN) first,
before emitting anything that depends on that state. This fixes an
issue that was showing up when FLUT is enabled in ir3 (which results
in higher probability of not having any immediats lowered to push-
consts).
Signed-off-by: Rob Clark <robdclark@chromium.org >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/8705 >
2021-07-13 14:40:30 +00:00
Rob Clark
71003e3c84
turnip: avoid some UB
...
Reduce a bit of extra noise that makes diffing cmdstream traces more
annoying.
Signed-off-by: Rob Clark <robdclark@chromium.org >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/8705 >
2021-07-13 14:40:30 +00:00
Jason Ekstrand
3d934ee03f
glsl: Delete lower_texture_projection
...
This is only used by i965 and we've been getting it through
nir_lower_tex since forever. Get rid of the GLSL IR pass.
Reviewed-by: Timothy Arceri <tarceri@itsqueeze.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11827 >
2021-07-13 14:06:33 +00:00
Mike Blumenkrantz
2de1849a8c
ci: only trigger gallium_core_file_list jobs from dri and glx frontend changes
...
these are the only frontends which may be used by gallium drivers in ci,
so stop triggering all driver jobs when other frontends are changed since
those changes can never affect ci
<MrCooper> Not that simple unfortunately. E.g. the llvmpipe-piglit-cl job hits
src/gallium/frontends/clover & possibly src/gallium/targets/opencl,
many jobs hit src/gallium/{frontends,targets}/dri and probably
src/gallium/targets/pipe-loader, lavapipe jobs hit src/gallium/{frontends,targets}/lavapipe.
Reviewed-by: Michel Dänzer <mdaenzer@redhat.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11832 >
2021-07-13 13:36:15 +00:00
Mike Blumenkrantz
0b9a2abd49
ci: add vulkan files to lavapipe rules
...
Acked-by: Daniel Stone <daniels@collabora.com >
Reviewed-by: Emma Anholt <emma@anholt.net >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11833 >
2021-07-13 13:08:19 +00:00
Icecream95
4531de487e
pan/bi: Create a nop clause when the shader starts with ATEST
...
Otherwise there would be no clause with the dependencies needed for
ATEST set, so the GPU would get stuck.
Not needed on v7, as there shader_wait_dependency in the RSD will wait
for the dependencies before the shader starts.
Explicitly create a NOP instruction, as it is assumed that clauses
have a non-zero count of instructions in various places.
Fixes GPU timeouts in many applications, such as SuperTuxKart and
GZDoom.
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11842 >
2021-07-13 12:32:47 +00:00
Icecream95
c689a1dcb3
panfrost: Fix full_threads calculation on v6
...
Fixes: 8ba2f9f698 ("panfrost: Create a blitter library to replace the existing preload helpers")
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11842 >
2021-07-13 12:32:47 +00:00
Heinrich Fink
bff3ac0b26
gbm/dri: Fix leaking bo memory on failure path
...
In gbm_dri_bo_create, when modifiers are requested but not supported, do
not return NULL immediately, but first go to cleanup section to free
already allocated buffer object.
Fixes: cb9ae4273d ("dri: add loader_dri_create_image helper")
Signed-off-by: Heinrich Fink <hfink@snap.com >
Reviewed-by: Daniel Stone <daniels@collabora.com >
Reviewed-by: Simon Ser <contact@emersion.fr >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11844 >
2021-07-13 11:15:44 +00:00
Antonio Caggiano
7eb7ed8cde
pps: Panfrost documentation
...
Add documentation for the Panfrost Perfetto datasource.
Signed-off-by: Antonio Caggiano <antonio.caggiano@collabora.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10215 >
2021-07-13 11:03:55 +00:00
Antonio Caggiano
513d1baaea
pps: Panfrost pps driver
...
Add the Panfrost pps driver.
v2: Human readable names for counter blocks and use `unreachable`.
v3: Use libpanfrost_perf to collect counter values.
Signed-off-by: Antonio Caggiano <antonio.caggiano@collabora.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10215 >
2021-07-13 11:03:55 +00:00
Pierre-Eric Pelloux-Prayer
bcf8c7910d
mesa: clear shader_info::is_lowered in prog_to_nir
...
This needs to be resetted each time prog_to_nir is called because it
turns st_nir_assign_vs_in_locations into a no-op when set.
Fixes: 81d106d6ec ("radeonsi: lower IO intrinsics - complete rewrite of input/output scanning")
Closes: https://gitlab.freedesktop.org/mesa/mesa/-/issues/5001
Reviewed-by: Isaac Bosompem <mrisaacb@google.com >
Reviewed-by: Marek Olšák <marek.olsak@amd.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11636 >
2021-07-13 10:42:47 +00:00
Iago Toral Quiroga
bf89b2f041
v3dv: use defines for push constant offsets used by texel buffer copy shaders
...
Reviewed-by: Alejandro Piñeiro <apinheiro@igalia.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11843 >
2021-07-13 10:20:39 +00:00
Iago Toral Quiroga
a89cd7f9bb
v3dv: allow batching texel buffer copies for 3D images
...
For these we only need to check that the depth extent we are
copying is the same across regions in the batch, since we use
that to specify the number of layers in the framebuffer used
for the copy.
Reviewed-by: Alejandro Piñeiro <apinheiro@igalia.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11843 >
2021-07-13 10:20:39 +00:00
Iago Toral Quiroga
738e7106dd
v3dv: implement layered texel buffer copies using a geometry shader
...
Instead of specifying a separate framebuffer per layer which is expected
to be much slower.
Reviewed-by: Alejandro Piñeiro <apinheiro@igalia.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11843 >
2021-07-13 10:20:39 +00:00
Iago Toral Quiroga
8c16b48009
v3dv: fix push constant range for texel buffer copy pipelines
...
As per get_texel_buffer_copy_fs(), we load 24 bytes of data.
Reviewed-by: Alejandro Piñeiro <apinheiro@igalia.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11843 >
2021-07-13 10:20:39 +00:00
Erik Faye-Lund
4efbeafa44
zink: remove duplicate format-mapping on little-endian
...
Doing *both* of thse ends up rewriting the previous mapping. Since this
doesn't seem to have lead to issues, it seems like the new mapping works
just as well.
Fixes: a22a1c0324 ("zink: Fix VK_FORMAT_A8B8G8R8_SRGB_PACK32 mapping on big-endian")
Reviewed-by: Adam Jackson <ajax@redhat.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11417 >
2021-07-13 08:11:33 +00:00
James Jones
b2252de03e
loader: Handle failure to load DRI driver library
...
I factored out the chunk of loader code that dlopen()s
libraries from the rest of the DRI driver loader function
in this commit:
commit bc343154f8
Author: James Jones <jajones@nvidia.com >
Date: Thu Apr 22 23:17:08 2021 -0700
loader: Factor out driver library loading code
However, I failed to adjust the DRI loader function that
now uses the new helper function to handle the case where
the requested DRI library is not found.
This change restores the prior behavior, and also ensures
loader_open_driver() consistently returns NULL in the
out_driver_handle parameter on failure.
Fixes: bc343154f8 ("loader: Factor out driver library loading code")
Signed-off-by: James Jones <jajones@nvidia.com >
Reviewed-by: Adam Jackson <ajax@redhat.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11807 >
2021-07-13 07:36:17 +00:00
Daniel Schürmann
b97cd93b35
aco: fix extract_vector optimization
...
If the allocated_vec map contains a different RegType
for the elements, ensure that the size matches exactly.
Otherwise, it could happen that extracting a dword
element matched with a subdword element.
No fossil-db changes.
Reviewed-by: Rhys Perry <pendingchaos02@gmail.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11823 >
2021-07-13 09:14:43 +02:00
Daniel Schürmann
98136bda05
aco: fix self-intersecting register swaps
...
Splitting self-intersecting register swaps into
3 sections was unnecessary and only worked because
the middle section was always empty for full dword
swaps.
No fossil-db changes.
Reviewed-by: Rhys Perry <pendingchaos02@gmail.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11823 >
2021-07-13 09:14:43 +02:00
Dave Airlie
9d225c43cb
lavapipe: add the separate depth/stencil layout enable.
...
This was missing.
Fixes: ac07ad8414 ("lavapipe: implement KHR_separate_depth_stencil_layouts")
Reviewed-By: Mike Blumenkrantz <michael.blumenkrantz@gmail.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11840 >
2021-07-13 02:15:20 +00:00
Alyssa Rosenzweig
38ffedc106
panfrost: Fix format swizzles on G72
...
Careless typo. Cleaner fix suggested by Icecream95.
Reported-by: macc24
Tested-by: macc24
Fixes: 531d80de7c ("panfrost: Specialize blendable_formats for v6")
Signed-off-by: Alyssa Rosenzweig <alyssa@collabora.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11837 >
2021-07-13 00:44:47 +00:00
Mike Blumenkrantz
8361eeba48
relnotes: add some missing zink/lavapipe updates
...
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11838 >
2021-07-12 20:38:17 -04:00
Mike Blumenkrantz
9231fc6928
features: mark off line rasterization for lavapipe
...
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11838 >
2021-07-12 20:34:46 -04:00
Mike Blumenkrantz
b88055f379
zink: add a pipe_screen::resource_create_with_modifiers hook
...
Acked-by: Dave Airlie <airlied@redhat.com >
Reviewed-by: Emil Velikov <emil.l.velikov@gmail.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10782 >
2021-07-13 00:21:52 +00:00
Mike Blumenkrantz
452ffddbff
zink: add fallback for linear modifier use
...
Acked-by: Dave Airlie <airlied@redhat.com >
Reviewed-by: Emil Velikov <emil.l.velikov@gmail.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10782 >
2021-07-13 00:21:52 +00:00
Mike Blumenkrantz
02593a05e2
zink: don't pass modifier count to first image create
...
Acked-by: Dave Airlie <airlied@redhat.com >
Reviewed-by: Emil Velikov <emil.l.velikov@gmail.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10782 >
2021-07-13 00:21:52 +00:00
Mike Blumenkrantz
943ab741e2
zink: explicitly disallow using the modifier image create for non-linear images
...
the first call is just for the base image, the second call is the one that needs
modifiers
Acked-by: Dave Airlie <airlied@redhat.com >
Reviewed-by: Emil Velikov <emil.l.velikov@gmail.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10782 >
2021-07-13 00:21:52 +00:00
Mike Blumenkrantz
b6990f7359
zink: use VkImageDrmFormatModifierListCreateInfoEXT for creating from modifier array
...
Acked-by: Dave Airlie <airlied@redhat.com >
Reviewed-by: Emil Velikov <emil.l.velikov@gmail.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10782 >
2021-07-13 00:21:52 +00:00
Mike Blumenkrantz
9b40fc4892
zink: add a pipe_screen::resource_get_param hook
...
this is used for querying image properties
Acked-by: Dave Airlie <airlied@redhat.com >
Reviewed-by: Emil Velikov <emil.l.velikov@gmail.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10782 >
2021-07-13 00:21:52 +00:00
Mike Blumenkrantz
6e927d1152
zink: store modifier aspect to resource
...
Acked-by: Dave Airlie <airlied@redhat.com >
Reviewed-by: Emil Velikov <emil.l.velikov@gmail.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10782 >
2021-07-13 00:21:52 +00:00
Mike Blumenkrantz
f1f13a110a
zink: start storing modifiers to the base resource struct
...
need these for rebinds
Acked-by: Dave Airlie <airlied@redhat.com >
Reviewed-by: Emil Velikov <emil.l.velikov@gmail.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10782 >
2021-07-13 00:21:51 +00:00
Mike Blumenkrantz
696542bd3b
zink: populate modifier props onto screen object during init
...
Acked-by: Dave Airlie <airlied@redhat.com >
Reviewed-by: Emil Velikov <emil.l.velikov@gmail.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10782 >
2021-07-13 00:21:51 +00:00
Erik Faye-Lund
8eb91e372b
zink: implement support for non-planar DRM modifiers
...
Planar DRM modifiers are a bit more tricky, so let's kick that ball down
the road. For now, this should help a bit.
Acked-by: Dave Airlie <airlied@redhat.com >
Reviewed-by: Emil Velikov <emil.l.velikov@gmail.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10782 >
2021-07-13 00:21:51 +00:00
Jason Ekstrand
24d2459b02
mailmap: Add two more lines for Alyssa Rosenzweig
...
Reviewed-by: Alyssa Rosenzweig <alyssa.rosenzweig@collabora.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11788 >
2021-07-12 23:45:34 +00:00
Jason Ekstrand
2111551485
Convert a few files to UTF-8
...
Reviewed-by: Alyssa Rosenzweig <alyssa.rosenzweig@collabora.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11788 >
2021-07-12 23:45:34 +00:00
Jason Ekstrand
dbc5db11e5
mailmap: Update for Emma's new e-mail address
...
Reviewed-by: Alyssa Rosenzweig <alyssa.rosenzweig@collabora.com >
Acked-by: Emma Anholt <emma@anholt.net >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11788 >
2021-07-12 23:45:34 +00:00
Alyssa Rosenzweig
ab2cd532ba
pan/bi: Add a bundling heuristic
...
Pick instructions locally that are likely to minimize nop's globally.
Note the obvious greedy solution is ineffective. Instead the principle
is to choose instructions which will increase _future_ scheduler
freedom, on the assumption that means fewer nop's overall will be
needed.
There is no concern about register pressure and little concern about
message timing, since this is post-RA and message ordering was fixed.
total tuples in shared programs: 125304 -> 123770 (-1.22%)
tuples in affected programs: 88301 -> 86767 (-1.74%)
helped: 548
HURT: 198
helped stats (abs) min: 1.0 max: 31.0 x̄: 3.43 x̃: 2
helped stats (rel) min: 0.33% max: 16.67% x̄: 3.09% x̃: 2.44%
HURT stats (abs) min: 1.0 max: 12.0 x̄: 1.73 x̃: 1
HURT stats (rel) min: 0.27% max: 11.11% x̄: 2.82% x̃: 2.35%
95% mean confidence interval for tuples value: -2.39 -1.72
95% mean confidence interval for tuples %-change: -1.77% -1.27%
Tuples are helped.
total clauses in shared programs: 26059 -> 25655 (-1.55%)
clauses in affected programs: 10821 -> 10417 (-3.73%)
helped: 311
HURT: 42
helped stats (abs) min: 1.0 max: 6.0 x̄: 1.44 x̃: 1
helped stats (rel) min: 0.48% max: 16.00% x̄: 5.26% x̃: 5.00%
HURT stats (abs) min: 1.0 max: 2.0 x̄: 1.05 x̃: 1
HURT stats (rel) min: 2.13% max: 33.33% x̄: 7.49% x̃: 6.25%
95% mean confidence interval for clauses value: -1.26 -1.02
95% mean confidence interval for clauses %-change: -4.28% -3.21%
Clauses are helped.
total cycles in shared programs: 12154.79 -> 12114.83 (-0.33%)
cycles in affected programs: 1907.63 -> 1867.67 (-2.09%)
helped: 227
HURT: 99
helped stats (abs) min: 0.041665999999999315 max: 1.2083360000000027 x̄: 0.22 x̃: 0
helped stats (rel) min: 0.36% max: 20.00% x̄: 4.14% x̃: 3.85%
HURT stats (abs) min: 0.041665999999999315 max: 0.5 x̄: 0.09 x̃: 0
HURT stats (rel) min: 0.28% max: 9.09% x̄: 2.75% x̃: 2.63%
95% mean confidence interval for cycles value: -0.15 -0.09
95% mean confidence interval for cycles %-change: -2.51% -1.59%
Cycles are helped.
total arith in shared programs: 4658.13 -> 4603.42 (-1.17%)
arith in affected programs: 3449.83 -> 3395.12 (-1.59%)
helped: 509
HURT: 249
helped stats (abs) min: 0.041665999999999315 max: 1.2083360000000027 x̄: 0.14 x̃: 0
helped stats (rel) min: 0.36% max: 20.00% x̄: 3.56% x̃: 2.63%
HURT stats (abs) min: 0.041665999999999315 max: 0.5 x̄: 0.07 x̃: 0
HURT stats (rel) min: 0.28% max: 25.00% x̄: 3.32% x̃: 2.27%
95% mean confidence interval for arith value: -0.09 -0.06
95% mean confidence interval for arith %-change: -1.64% -0.97%
Arith are helped.
total quadwords in shared programs: 111394 -> 110114 (-1.15%)
quadwords in affected programs: 78074 -> 76794 (-1.64%)
helped: 503
HURT: 204
helped stats (abs) min: 1.0 max: 43.0 x̄: 3.33 x̃: 2
helped stats (rel) min: 0.41% max: 13.79% x̄: 3.02% x̃: 2.44%
HURT stats (abs) min: 1.0 max: 26.0 x̄: 1.94 x̃: 1
HURT stats (rel) min: 0.48% max: 7.55% x̄: 2.44% x̃: 2.22%
95% mean confidence interval for quadwords value: -2.16 -1.46
95% mean confidence interval for quadwords %-change: -1.67% -1.21%
Quadwords are helped.
Signed-off-by: Alyssa Rosenzweig <alyssa.rosenzweig@collabora.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10961 >
2021-07-12 23:29:12 +00:00
Alyssa Rosenzweig
5996622050
pan/bi: Calculate dependency graph when bundling
...
Code is ported from Midgard, modified to be scalar, post-RA, and to put
the arrays on the worklist instead of the instruction to save memory.
This enables out-of-order scheduling.
total tuples in shared programs: 128691 -> 125304 (-2.63%)
tuples in affected programs: 114091 -> 110704 (-2.97%)
helped: 844
HURT: 377
helped stats (abs) min: 1.0 max: 150.0 x̄: 4.88 x̃: 3
helped stats (rel) min: 0.30% max: 26.42% x̄: 5.56% x̃: 4.35%
HURT stats (abs) min: 1.0 max: 8.0 x̄: 1.94 x̃: 1
HURT stats (rel) min: 0.20% max: 33.33% x̄: 6.84% x̃: 3.23%
95% mean confidence interval for tuples value: -3.16 -2.38
95% mean confidence interval for tuples %-change: -2.19% -1.27%
Tuples are helped.
total clauses in shared programs: 27579 -> 26059 (-5.51%)
clauses in affected programs: 20606 -> 19086 (-7.38%)
helped: 941
HURT: 39
helped stats (abs) min: 1.0 max: 21.0 x̄: 1.66 x̃: 1
helped stats (rel) min: 0.69% max: 44.44% x̄: 10.48% x̃: 9.09%
HURT stats (abs) min: 1.0 max: 2.0 x̄: 1.15 x̃: 1
HURT stats (rel) min: 1.89% max: 10.00% x̄: 4.73% x̃: 4.55%
95% mean confidence interval for clauses value: -1.63 -1.47
95% mean confidence interval for clauses %-change: -10.27% -9.48%
Clauses are helped.
total cycles in shared programs: 12262.54 -> 12154.79 (-0.88%)
cycles in affected programs: 2210.54 -> 2102.79 (-4.87%)
helped: 374
HURT: 56
helped stats (abs) min: 0.041665999999999315 max: 6.25 x̄: 0.30 x̃: 0
helped stats (rel) min: 0.42% max: 26.00% x̄: 6.90% x̃: 7.14%
HURT stats (abs) min: 0.041665999999999315 max: 0.5833319999999986 x̄: 0.11 x̃: 0
HURT stats (rel) min: 0.16% max: 100.00% x̄: 55.17% x̃: 50.00%
95% mean confidence interval for cycles value: -0.29 -0.21
95% mean confidence interval for cycles %-change: -1.37% 3.73%
Inconclusive result (%-change mean confidence interval includes 0).
total arith in shared programs: 4852.29 -> 4658.13 (-4.00%)
arith in affected programs: 4525.17 -> 4331 (-4.29%)
helped: 1112
HURT: 166
helped stats (abs) min: 0.041665999999999315 max: 6.25 x̄: 0.19 x̃: 0
helped stats (rel) min: 0.42% max: 33.33% x̄: 6.59% x̃: 5.36%
HURT stats (abs) min: 0.041665999999999315 max: 0.5833319999999986 x̄: 0.07 x̃: 0
HURT stats (rel) min: 0.16% max: 100.00% x̄: 25.05% x̃: 2.40%
95% mean confidence interval for arith value: -0.17 -0.14
95% mean confidence interval for arith %-change: -3.44% -1.51%
Arith are helped.
total quadwords in shared programs: 117141 -> 111394 (-4.91%)
quadwords in affected programs: 104390 -> 98643 (-5.51%)
helped: 1245
HURT: 76
helped stats (abs) min: 1.0 max: 69.0 x̄: 4.74 x̃: 4
helped stats (rel) min: 0.28% max: 35.00% x̄: 7.88% x̃: 6.45%
HURT stats (abs) min: 1.0 max: 8.0 x̄: 2.01 x̃: 1
HURT stats (rel) min: 0.20% max: 10.00% x̄: 3.52% x̃: 4.25%
95% mean confidence interval for quadwords value: -4.61 -4.09
95% mean confidence interval for quadwords %-change: -7.56% -6.88%
Quadwords are helped.
Signed-off-by: Alyssa Rosenzweig <alyssa.rosenzweig@collabora.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10961 >
2021-07-12 23:29:12 +00:00
Alyssa Rosenzweig
e46ec44a51
pan/bi: Handle 4-src instructions in scheduler
...
Spill to a move. This allows us to emit SHADDX and general CSEL.
Signed-off-by: Alyssa Rosenzweig <alyssa@collabora.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10961 >
2021-07-12 23:29:12 +00:00
Alyssa Rosenzweig
20e11cbb23
pan/bi: Add bi_before_tuple convenience method
...
For constructing instructions during scheduling.
Signed-off-by: Alyssa Rosenzweig <alyssa@collabora.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10961 >
2021-07-12 23:29:12 +00:00
Alyssa Rosenzweig
c53f377785
pan/bi: Handle multiple destinations in scheduler
...
Needed for correct handling of pseudo ops like SHADDX and CUBEFACE
Signed-off-by: Alyssa Rosenzweig <alyssa@collabora.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10961 >
2021-07-12 23:29:12 +00:00
Alyssa Rosenzweig
6bf8e960fa
pan/bi: Do helper termination analysis on clauses
...
Unlike the dependency analysis for the skip bits which is a function of
the data flow graph, the thread termination analysis is dependent on the
actual sequence of instructions. As such, it must be done after
scheduling to be correct in the presence of out-of-order scheduling.
Furthermore it's specified in terms of clauses, not instructions.
Reflecting this in our code gets a nice simplification. As a side effect
this puts extra td flags on subsequent clauses, which matches the DDK's
behaviour. (Maybe td is just a hint?)
Signed-off-by: Alyssa Rosenzweig <alyssa@collabora.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10961 >
2021-07-12 23:29:12 +00:00
Alyssa Rosenzweig
0515c6a3fb
pan/bi: Update ins->link after scheduling
...
Otherwise foreach_instr and friends will be subtly wrong. None of our
current passes rely on this but it's a footgun.
Signed-off-by: Alyssa Rosenzweig <alyssa@collabora.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10961 >
2021-07-12 23:29:12 +00:00
Alyssa Rosenzweig
522020e6ea
pan/bi: Make bi_foreach_instr_in_tuple safer
...
Signed-off-by: Alyssa Rosenzweig <alyssa@collabora.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10961 >
2021-07-12 23:29:12 +00:00
Alyssa Rosenzweig
3e9411a75d
pan/bi: Refuse to CSE non-SSA sources
...
They might have changed in between.
Signed-off-by: Alyssa Rosenzweig <alyssa@collabora.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10961 >
2021-07-12 23:29:12 +00:00
Alyssa Rosenzweig
57da082a20
panfrost: Only access blitter from per-gen
...
Now the blitter may be compiled per-gen legally.
Signed-off-by: Alyssa Rosenzweig <alyssa@collabora.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11785 >
2021-07-12 23:12:29 +00:00
Alyssa Rosenzweig
88dc4db6be
panfrost: Init/destroy blitter from per-gen file
...
Signed-off-by: Alyssa Rosenzweig <alyssa@collabora.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11785 >
2021-07-12 23:12:29 +00:00
Alyssa Rosenzweig
345778fa6f
panfrost: Remove pan_blitter integration
...
This was useful when panvk was being bootstrapped, allowing the blitter
to be tested against a known-working driver. With panvk in-tree, I don't
see a compelling reason to keep pan_blitter support wired in but
off-by-default. Keeping it will complicate the GenXML change we're about
to make.
Signed-off-by: Alyssa Rosenzweig <alyssa@collabora.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11785 >
2021-07-12 23:12:29 +00:00
Alyssa Rosenzweig
eddb81c326
panfrost: Avoid GenXML enum dependences
...
Signed-off-by: Alyssa Rosenzweig <alyssa@collabora.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11785 >
2021-07-12 23:12:29 +00:00
Alyssa Rosenzweig
7308536f41
panfrost: Remove reference to mali_blend_equation_packed
...
Genxml dependent.
Signed-off-by: Alyssa Rosenzweig <alyssa@collabora.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11785 >
2021-07-12 23:12:29 +00:00
Alyssa Rosenzweig
d0b036ff71
panfrost: Use generic delete for ZSA
...
Signed-off-by: Alyssa Rosenzweig <alyssa@collabora.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11785 >
2021-07-12 23:12:29 +00:00
Alyssa Rosenzweig
8db1c0e509
panfrost: Pin an architecture for blending
...
Need to pick something but it's all the same, even on Valhall.
Signed-off-by: Alyssa Rosenzweig <alyssa@collabora.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11785 >
2021-07-12 23:12:29 +00:00
Alyssa Rosenzweig
86c0073206
panfrost: Give WLS Instances a default
...
Signed-off-by: Alyssa Rosenzweig <alyssa@collabora.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11785 >
2021-07-12 23:12:29 +00:00
Alyssa Rosenzweig
c3592498bb
panfrost: Use smaller sizes in blend table
...
Saves a few kb.
Signed-off-by: Alyssa Rosenzweig <alyssa@collabora.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11785 >
2021-07-12 23:12:29 +00:00
Alyssa Rosenzweig
d8eef119fd
panfrost: Specialize blendable_formats for v6
...
Let's bake the swizzle in.
Signed-off-by: Alyssa Rosenzweig <alyssa@collabora.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11785 >
2021-07-12 23:12:29 +00:00
Alyssa Rosenzweig
262d96d3df
panfrost: Compile format table multiple times
...
This allows us to unify the midgard and bifrost tables and just #ifdef
the differences. It will soon also allow us to fix a bunch of enums and
specialize blendable formats.
Signed-off-by: Alyssa Rosenzweig <alyssa@collabora.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11785 >
2021-07-12 23:12:29 +00:00
Alyssa Rosenzweig
e11d0d25c6
panfrost: Add GenXML macros
...
From intel.
Signed-off-by: Alyssa Rosenzweig <alyssa@collabora.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11785 >
2021-07-12 23:12:29 +00:00
Alyssa Rosenzweig
214d56644f
panfrost: Remove panfrost_bifrost_swizzle
...
Deprecated and now unused.
Signed-off-by: Alyssa Rosenzweig <alyssa@collabora.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11785 >
2021-07-12 23:12:29 +00:00
Alyssa Rosenzweig
a23603c89d
panvk: Don't use panfrost_bifrost_swizzle
...
It's not needed. This produces chooses slightly different formats on v7
but no functional change.
Signed-off-by: Alyssa Rosenzweig <alyssa@collabora.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11785 >
2021-07-12 23:12:29 +00:00
Alyssa Rosenzweig
92d2723672
panfrost: Move arch-independent pan_format code
...
Now pan_format.c is just tables.
Signed-off-by: Alyssa Rosenzweig <alyssa@collabora.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11785 >
2021-07-12 23:12:29 +00:00
Alyssa Rosenzweig
fc49ff9a8c
panfrost: Inline panfrost_get_z_internal_format
...
Trivial, get it out of the way so pan_format can focus on the tables.
Signed-off-by: Alyssa Rosenzweig <alyssa@collabora.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11785 >
2021-07-12 23:12:29 +00:00
Alyssa Rosenzweig
616d7d0905
panfrost: Assert that injected jobs are for blits
...
Remove a level of indentation.
Signed-off-by: Alyssa Rosenzweig <alyssa@collabora.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11785 >
2021-07-12 23:12:29 +00:00
Alyssa Rosenzweig
583d8aaea7
panfrost: Inline away pan_invocation.c
...
Signed-off-by: Alyssa Rosenzweig <alyssa@collabora.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11785 >
2021-07-12 23:12:29 +00:00
Alyssa Rosenzweig
581bbe1c0e
panfrost: Express pack_work_groups more concisely
...
Signed-off-by: Alyssa Rosenzweig <alyssa@collabora.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11785 >
2021-07-12 23:12:29 +00:00
Alyssa Rosenzweig
5bff4992c1
panfrost: Inline away pan_pool.c
...
Just noise now that it's been abstracted for panvk.
Signed-off-by: Alyssa Rosenzweig <alyssa@collabora.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11785 >
2021-07-12 23:12:29 +00:00
Alyssa Rosenzweig
7494bb0c86
panfrost: Move panfrost_vertex/instance_id to per-gen
...
Now the rest of pan_attributes.c is GenXML-independent.
Signed-off-by: Alyssa Rosenzweig <alyssa@collabora.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11785 >
2021-07-12 23:12:29 +00:00
Alyssa Rosenzweig
840ebf0b93
panfrost: Inline flip_compare_func into pan_encoder.h
...
This will become the home for little GenXML-aware helpers, suitable to
be #include'd from pan_cmdstream.c (or panvk equivalent).
Signed-off-by: Alyssa Rosenzweig <alyssa@collabora.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11785 >
2021-07-12 23:12:29 +00:00
Erik Faye-Lund
1ac29863a9
lavapipe: expose strict-lines feature
...
The strictLines-feature requires lines to be rasterized as rectangles
by default instead of using the parallelograms you get from extending
bresenham lines along their minor axis.
Now that we can specify the line mode fully we can actually express
this, so let's do so.
Reviewed-by: Dave Airlie <airlied@redhat.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11782 >
2021-07-12 22:05:10 +00:00
Erik Faye-Lund
29ceb80834
lavapipe: re-expose line-rasterization extension
...
While we're at it, let's also enable rectangular line support, now that
we can properly control it.
Reviewed-by: Dave Airlie <airlied@redhat.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11782 >
2021-07-12 22:05:10 +00:00
Erik Faye-Lund
fda906566b
llvmpipe: respect rectangular_lines
...
With the new rectangular_lines state, we can now support rasterizing
wide lines correctly according to the vulkan spec, where this can be
specified independently of the rest of the state.
Because rectangular lines are orthogonal to multi-sampling, we now need
to also adjust with the pixel-offset in the rectangle code-path as well.
Reviewed-by: Dave Airlie <airlied@redhat.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11782 >
2021-07-12 22:05:10 +00:00
Erik Faye-Lund
7221f2d682
draw: respect line_rectangular state
...
Now that we have a separate flag to signal rectangular lines, let's use
that instead of the smooth-flag.
This should have the benefit of also drawing rectangular lines when
multisampling stippled, non-smooth lines. But it seems there were no
test for that, so no results to update.
Reviewed-by: Dave Airlie <airlied@redhat.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11782 >
2021-07-12 22:05:10 +00:00
Erik Faye-Lund
1c2690ec20
gallium: explicitly specify line rasterization mode
...
Currently, drivers infer the line rasterization mode from the
multisampling and line_smooth rasterization state. This is always
correct for OpenGL, but is subtly incorrect for DirectX 9, 10 and
Vulkan (when VK_EXT_line_rasterization is supported).
So let's allow front-ends to choose freely between rectangle and
paralellogram rendering.
The reason why there's no added cap for this, is that the implicit
selection that drivers currently do will work just as well (or more
correclty, just as subtly wrong) as before. And there's nothing
reasonable the front-ends can do to get the correct behavior, so
there's really no fall-back code to write either.
Reviewed-by: Dave Airlie <airlied@redhat.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11782 >
2021-07-12 22:05:10 +00:00
Erik Faye-Lund
e0472217b0
lavapipe: fix disable_multisample condition
...
There's two of the line-modes that warrants disabling multisampling,
and that's bresenham and smooth lines.
The reason we need this for the smooth lines case, is that multisampling
overrides the smooth-flag.
Fixes: 9fbf6b2abf ("lavapipe: implement VK_EXT_line_rasterization")
Reviewed-by: Dave Airlie <airlied@redhat.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11782 >
2021-07-12 22:05:10 +00:00
Erik Faye-Lund
e555e2b001
lavapipe: do not disable multisampling for smooth lines
...
Smooth lines are also rasterized with rectangles instead of using
bresenham-style lines, so let's make sure we exclude those as well
from this test.
Fixes: 9fbf6b2abf ("lavapipe: implement VK_EXT_line_rasterization")
Reviewed-by: Dave Airlie <airlied@redhat.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11782 >
2021-07-12 22:05:10 +00:00
Daniel Schürmann
7a31567db3
aco/meson: remove inc_gallium from include_directories
...
Reviewed-by: Rhys Perry <pendingchaos02@gmail.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11258 >
2021-07-12 21:27:31 +00:00
Daniel Schürmann
1e2639026f
aco: Format.
...
Manually adjusted some comments for more intuitive line breaks.
Reviewed-by: Tony Wasserka <tony.wasserka@gmx.de >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11258 >
2021-07-12 21:27:31 +00:00
Daniel Schürmann
97ec360dc4
aco: add .clang-format file
...
Based on src/amd/.clang-format with following changes:
Language: Cpp
Standard: c++14
PointerAlignment: Left
IndentAccessModifiers: False
SpaceBeforeCtorInitializerColon: True
AllowShortCaseLabelsOnASingleLine: True
AllowShortFunctionsOnASingleLine: InlineOnly
AllowShortBlocksOnASingleLine: Empty
AllowShortLambdasOnASingleLine: All
BraceWrapping:
SplitEmptyFunction: false
SplitEmptyRecord: false
BeforeLambdaBody: true
IncludeBlocks: Regroup (with specified IncludeCategories)
Reviewed-by: Tony Wasserka <tony.wasserka@gmx.de >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11258 >
2021-07-12 21:27:31 +00:00
Mike Blumenkrantz
023a961274
zink: ci updates
...
this one no longer flakes
Reviewed-by: Dave Airlie <airlied@redhat.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11829 >
2021-07-12 21:16:04 +00:00
Mike Blumenkrantz
3b55c21c70
zink: zero out sampler/image descriptor surface info for null descriptor updates
...
this is the surface struct used by the caching manager to generate a ref update template,
which means it must be kept in sync with the current state of descriptors
when the struct is zeroed, it implies that no refs need to be taken for the cached set
Reviewed-by: Dave Airlie <airlied@redhat.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11829 >
2021-07-12 21:16:04 +00:00
Connor Abbott
baf3cc3f6f
ir3/print: Manual formatting fixups
...
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11801 >
2021-07-12 20:57:21 +00:00
Connor Abbott
177138d8cb
ir3: Reformat source with clang-format
...
Generated using:
cd src/freedreno/ir3 && clang-format -i {**,.}/*.c {**,.}/*.h -style=file
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11801 >
2021-07-12 20:57:21 +00:00
Connor Abbott
082871bb35
freedreno: Add some options to .clang-format
...
In preparation for reformatting ir3.
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11801 >
2021-07-12 20:57:21 +00:00
Connor Abbott
2e76f7b60c
ir3: Manually reformat some places
...
clang-format does a bad job with a few tables and macros, and there were
some places it was doing wonky things because comments were longer than
80 characters and it tries to fix that without reformatting the comment
itself. Add magic comments to tell it to turn itself off and retab those
places manually (well, with a regex!).
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11801 >
2021-07-12 20:57:21 +00:00
Connor Abbott
f69a99081b
ir3: Update .editorconfig and .dir-locals.el
...
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11801 >
2021-07-12 20:57:21 +00:00
Connor Abbott
0f28e1aad3
ir3/lower_parallelcopy: Don't manually set wrmask
...
It's automatically set. This avoids some weird line wrapping with
clang-format.
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11801 >
2021-07-12 20:57:21 +00:00
Connor Abbott
1514744a16
ir3: Add ir3_collect() for fixed-size collects
...
This avoids having the specify the size, and fixes weird formatting with
clang-format.
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11801 >
2021-07-12 20:57:21 +00:00
Connor Abbott
49a39fbf0c
ir3: Add missing include to ir3_parser.y
...
This prevents build errors in the generated ir3_parser.h when
clang-format reshuffles the header includes.
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11801 >
2021-07-12 20:57:21 +00:00
Dave Airlie
6b36f35734
vulkan/wsi/wl: add wl_shm support for lavapipe.
...
This adds swrast support for rendering from lavapipe.
Reviewed-by: Daniel Stone <daniels@collabora.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11819 >
2021-07-12 20:27:48 +00:00
Daniel Stone
5e3f969959
Revert "ci/panfrost: Temporarily disable sun50i/RK3288"
...
Back by popular demand etc
This reverts commit 9868b15164 .
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11828 >
2021-07-12 20:11:18 +00:00
Michael Walle
c704bb630d
kmsro: Add mali-dp
...
The NXP LS1028A SoC includes a mali-dp display controller and a vivante
GPU. This allows using the Etnaviv driver on this SoC.
Signed-off-by: Michael Walle <michael@walle.cc >
Reviewed-by: Christian Gmeiner <christian.gmeiner@gmail.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11419 >
2021-07-12 19:51:19 +00:00
Vinson Lee
a8628fb32e
st/xa: Mark default xa_get_pipe_format case unreachable.
...
Fix defect reported by Coverity Scan.
Uninitialized scalar variable (UNINIT)
uninit_use: Using uninitialized value fdesc. Field fdesc.format is uninitialized.
Fixes: 9f2f5b3d7f ("st/xa: Initial import of the xa state-tracker and the xa-vmwgfx target.")
Suggested-by: Adam Jackson <ajax@redhat.com >
Signed-off-by: Vinson Lee <vlee@freedesktop.org >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/9035 >
2021-07-12 18:53:39 +00:00
Daniel Schürmann
6d9ca1d4e4
util/meson: include inc_gallium
...
There are several dependencies on headers from
/gallium/include/pipe/
which currently mean that dependencies on util
must include gallium to compile.
Reviewed-by: Emma Anholt <emma@anholt.net >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11811 >
2021-07-12 18:27:57 +00:00
Emma Anholt
54210c685f
i915g: Fix backface stencil when front_ccw is set.
...
If we're doing separate front/back stencil ops, then in the absence of a
hardware bit for setting front_ccw (which you can already see from how we
manage cull face) we need to flip front/back stencil register settings.
Closes : #4974 , #4975
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11706 >
2021-07-12 18:12:05 +00:00
Emma Anholt
ba11a30bf7
i915g: Fix dumping of 3DSTATE_BACKFACE_STENCIL_OPS.
...
Its length was overly long and it meant we skipped the name of
3DSTATE_BACKFACE_STENCIL_MASKS.
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11706 >
2021-07-12 18:12:05 +00:00
Samuel Pitoiset
ee79b87c62
radv: lower primitive shading rate in NIR
...
This allows more potential compiler optimizations if the value is a
constant or from a scalar load.
Signed-off-by: Samuel Pitoiset <samuel.pitoiset@gmail.com >
Reviewed-by: Rhys Perry <pendingchaos02@gmail.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11579 >
2021-07-12 17:54:07 +00:00
Emma Anholt
a7e753cb96
turnip: Fix allocation size for vkCmdUpdateBuffer.
...
tu_cs_alloc() takes a size in dwords, not bytes.
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11743 >
2021-07-12 17:15:56 +00:00
Erik Faye-Lund
3720447204
lavapipe: expose more storage-image features
...
I believe these Gallium caps imply these Vulkan features. If they don't,
then we got things wrong on the Zink side as well ;)
While we're at it, query shaderStorageImageWriteWithoutFormat based on
the PIPE_SHADER_CAP_MAX_SHADER_IMAGES cap. This matches what the gallium
OpenGL frontend does.
This brings Zink on Lavapipe up to OpenGL 4.5.
For some reason, a bunch of PBO tests starts failing on CI for Zink, but
that doesn't seem like a Lavapipe problem...
Reviewed-by: Dave Airlie <airlied@redhat.com >
Reviewed-By: Mike Blumenkrantz <michael.blumenkrantz@gmail.com >
Reviewed-by: Roland Scheidegger <sroland@vmware.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10467 >
2021-07-12 16:15:06 +00:00
Erik Faye-Lund
2e29857bb6
llvmpipe: only report supported shader-image formats
...
LLVMpipe has a rather limited implementation of shader-images, so let's
limit what we report to the formats required by the spec, as all of
those seems to work fine.
Reviewed-By: Mike Blumenkrantz <michael.blumenkrantz@gmail.com >
Reviewed-by: Roland Scheidegger <sroland@vmware.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10467 >
2021-07-12 16:15:06 +00:00
Erik Faye-Lund
dc9343b42d
lavapipe: query formats for shader-image support
...
Assuming all formats are supported here isn't a good plan; we
don't actually support all formats.
Reviewed-By: Mike Blumenkrantz <michael.blumenkrantz@gmail.com >
Reviewed-by: Roland Scheidegger <sroland@vmware.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10467 >
2021-07-12 16:15:06 +00:00
Erik Faye-Lund
3baeb1c4d1
llvmpipe: reject unsupported shader-image formats
...
Reviewed-By: Mike Blumenkrantz <michael.blumenkrantz@gmail.com >
Reviewed-by: Roland Scheidegger <sroland@vmware.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10467 >
2021-07-12 16:15:06 +00:00
Daniel Stone
9c8c0c2bb3
ci/panfrost: Temporarily disable sun50i/RK3288
...
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11825 >
2021-07-12 16:07:23 +01:00
Jason Ekstrand
81670a47f0
docs: Add docs for running a local Mesa build
...
I'm tired of explaining this to people. Let's put it in the actual
project docs.
Reviewed-by: Chia-I Wu <olvaffe@gmail.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11809 >
2021-07-12 14:40:50 +00:00
Marcin Ślusarz
f3742b9c13
intel/compiler: document register types
...
Signed-off-by: Marcin Ślusarz <marcin.slusarz@intel.com >
Reviewed-by: Jason Ekstrand <jason@jlekstrand.net >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11677 >
2021-07-12 13:27:41 +00:00
Daniel Schürmann
9de4fe95e2
aco: remove (wrong) GCC array-bounds warning
...
Reviewed-by: Tony Wasserka <tony.wasserka@gmx.de >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11271 >
2021-07-12 12:09:31 +00:00
Daniel Schürmann
036be42d6f
aco: refactor SDWA opcode validation
...
Reviewed-by: Tony Wasserka <tony.wasserka@gmx.de >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11271 >
2021-07-12 12:09:31 +00:00
Daniel Schürmann
5e3297a97d
aco/meson: remove unnecessary dependencies
...
Also moves idep_vulkan_util_headers to /tests/meson.build
Reviewed-by: Tony Wasserka <tony.wasserka@gmx.de >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11271 >
2021-07-12 12:09:31 +00:00
Daniel Schürmann
0eea0e55ad
aco: add 'common/' and 'llvm/' prefix to #includes
...
Reviewed-by: Tony Wasserka <tony.wasserka@gmx.de >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11271 >
2021-07-12 12:09:31 +00:00
Daniel Schürmann
3f9e986d33
aco: add missing Licenses and remove Authors from files
...
Reviewed-by: Tony Wasserka <tony.wasserka@gmx.de >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11271 >
2021-07-12 12:09:31 +00:00
Daniel Schürmann
59fdaa1985
aco: reorder and cleanup #includes
...
Reviewed-by: Tony Wasserka <tony.wasserka@gmx.de >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11271 >
2021-07-12 12:09:31 +00:00
Daniel Schürmann
452c4c8ba1
aco/util: replace DIV_ROUND_UP(n+1,m) by n/m+1
...
Reviewed-by: Tony Wasserka <tony.wasserka@gmx.de >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11271 >
2021-07-12 12:09:31 +00:00
Thomas H.P. Andersen
cf05a7e66f
broadcom/compiler: fix add vs. mul
...
Spotted by a compile warning
Fixes: 7f61ff7b4d ("broadcom/compiler: Merge instructions more efficiently")
Reviewed-by: Iago Torral Quiroga <itoral@igalia.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11764 >
2021-07-12 11:54:03 +00:00
Thomas H.P. Andersen
458801e2c3
broadcom/compiler: use correct flag enum
...
They have the same value, so no functional change
Reviewed-by: Iago Torral Quiroga <itoral@igalia.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11764 >
2021-07-12 11:54:03 +00:00
Lionel Landwerlin
91dcbf1f56
intel/compiler: Track latency/perf of LSC fences
...
Signed-off-by: Lionel Landwerlin <lionel.g.landwerlin@intel.com >
Reviewed-by: Sagar Ghuge <sagar.ghuge@intel.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11759 >
2021-07-12 11:39:03 +00:00
Icecream95
48af341b36
panfrost: Fix GPU ID for t76x in get_perf_config
...
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11824 >
2021-07-12 09:07:48 +00:00
Iago Toral Quiroga
642812239e
v3dv: expose geometry shaders
...
A run of dEQP-VK.*geom* has 6328 test passes and 16 failures. 14 of
these failures are related to a CTS bug affecting atomic operations
for which I submitted a CL to Khronos. Another fail looks like it might
be a case of the error threshold in CTS being slightly low. There is
only one test fail in that list that looks like it might be an actual
driver bug, but it is a variable pointers test, so it might be unrelated
to geometry shaders in the end.
Reviewed-by: Alejandro Piñeiro <apinheiro@igalia.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11783 >
2021-07-12 09:25:28 +02:00
Iago Toral Quiroga
126eb5c8b9
broadcom/ci: update expected fails for v3dv after enabling geometry shaders
...
Reviewed-by: Alejandro Piñeiro <apinheiro@igalia.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11783 >
2021-07-12 09:25:28 +02:00
Iago Toral Quiroga
c188d06326
v3dv: remove deferred vkCmdClearAtachments path
...
This was required to handle the case of secondary command buffers that
did not have framebuffer information available from the primary, since
we used to have an implementation that required this information to
be available for the fallback path of vkCmdClearAttachments. Now that
we can handle our our attachment clears in the current subpass by
emitting draw calls, we no longer need the framebuffer information to
be available and we can remove this.
Reviewed-by: Alejandro Piñeiro <apinheiro@igalia.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11783 >
2021-07-12 09:25:28 +02:00
Iago Toral Quiroga
5ba7f64b45
v3dv: remove fallback path for vkCmdClearAttachments
...
Now that we support layered clears this code is dead.
Reviewed-by: Alejandro Piñeiro <apinheiro@igalia.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11783 >
2021-07-12 09:25:28 +02:00
Iago Toral Quiroga
26d1c6893a
v3dv: implement layered attachment clears
...
Now that we have geometry shaders, we can leverage this to implement
clears of layered framebuffers by adding a geometry shader in our
clear pipelines that redirects the clear rect to the appropriate
layer in the framebuffer, instead of falling back to emitting separate
clear jobs for each layer, which is a lot slower.
Reviewed-by: Alejandro Piñeiro <apinheiro@igalia.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11783 >
2021-07-12 09:25:28 +02:00
Iago Toral Quiroga
ee11e9183d
broadcom/compiler: don't ignore constant offset on per-vertex input loads
...
Fixes:
dEQP-VK.clipping.user_defined.clip_distance.vert_geom.{5,6,7,8}
Reviewed-by: Alejandro Piñeiro <apinheiro@igalia.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11783 >
2021-07-12 08:35:56 +02:00
Iago Toral Quiroga
e1a24a0047
broadcom/compiler: handle compact input arrays for geometry shaders
...
Clip distance arrays will come as compact array variables, so we need
to handle them as such, like we did for vertex inputs.
Fixes:
dEQP-VK.clipping.user_defined.clip_distance.vert_geom.{1,2,3,4}
Reviewed-by: Alejandro Piñeiro <apinheiro@igalia.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11783 >
2021-07-12 08:35:56 +02:00
Iago Toral Quiroga
df1d08533c
v3dv: fix copy buffer to image TFU path for 3D images
...
This bug was exposed by the following CTS tests (requires
geometry shaders):
dEQP-VK.geometry.layered.3d.*.readback
Reviewed-by: Alejandro Piñeiro <apinheiro@igalia.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11783 >
2021-07-12 08:35:56 +02:00
Iago Toral Quiroga
31a786c80a
v3dv: handle QUNIFORM_FB_LAYERS
...
There is a bit of a corner case here for secondary buffers that
don't inherit framebuffer information, since those won't have
access to the number of layers in the framebuffer by the time
we get here. Since we only emit this to sanitize the value of
gl_Layer produced from geometry shaders, I think it is probably
fine to lie about it and just use the maximum number of layers
we support. The only issue with that is that broken shaders that
emit out of bounds layer indices (which the spect states may lead
to unfined shading results) may cause undefined results.
In the future we could do better and patch the uniform streams
later when the secondary is executed inside a primary, since we
will have the required framebuffer information at that point,
but for now this seems like a reasonable compromise.
Reviewed-by: Alejandro Piñeiro <apinheiro@igalia.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11783 >
2021-07-12 08:35:55 +02:00
Iago Toral Quiroga
991cca2e77
v3dv: emit state packets for geometry shaders
...
Reviewed-by: Alejandro Piñeiro <apinheiro@igalia.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11783 >
2021-07-12 08:35:55 +02:00
Iago Toral Quiroga
353f0a180f
broadcom/compiler: create a helper for computing VPM config
...
This code is the same across drivers.
Reviewed-by: Alejandro Piñeiro <apinheiro@igalia.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11783 >
2021-07-12 08:35:55 +02:00
Iago Toral Quiroga
9e7d9a6efb
v3dv: add support for geometry shaders to pipelines
...
This gets our graphics pipelines (and pipeline cache) to accept
and compile geometry shader modules.
Reviewed-by: Alejandro Piñeiro <apinheiro@igalia.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11783 >
2021-07-12 08:35:55 +02:00
Iago Toral Quiroga
2733a17b14
broadcom/compiler: track if geometry shaders write gl_PointSize
...
Reviewed-by: Alejandro Piñeiro <apinheiro@igalia.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11783 >
2021-07-12 08:35:55 +02:00
Iago Toral Quiroga
4c94f93413
v3dv: add a few more broadcom shader stage helpers
...
Reviewed-by: Alejandro Piñeiro <apinheiro@igalia.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11783 >
2021-07-12 08:35:55 +02:00
Iago Toral Quiroga
9803336016
v3dv: define a generic helper to create binning pipeline stages
...
Reviewed-by: Alejandro Piñeiro <apinheiro@igalia.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11783 >
2021-07-12 08:35:55 +02:00
Iago Toral Quiroga
81b22d5aba
v3dv: extend broadcom stages to include geometry
...
Reviewed-by: Alejandro Piñeiro <apinheiro@igalia.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11783 >
2021-07-12 08:35:55 +02:00
Iago Toral Quiroga
d448dafcd4
v3dv: always free pipeline stages after compiling
...
We were not freeing this when the pipeline was loaded from the cache.
Reviewed-by: Alejandro Piñeiro <apinheiro@igalia.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11783 >
2021-07-12 08:35:55 +02:00
Dave Airlie
8dcd4e4849
crocus: add GL_CLAMP emulation in driver again.
...
I removed this because I thought the state tracker could handle it,
and it really should handle it, but it has some minecraft side effects
I'm unsure about. This fixes the problem for now, we can revisit it later.
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11822 >
2021-07-12 15:18:13 +10:00
Dave Airlie
ead3340262
crocus/gen8: fix wrap mode needs border color.
...
missing piece here.
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11821 >
2021-07-12 14:24:35 +10:00
Alyssa Rosenzweig
dd98918a5a
agx: Flip point coordinates because OpenGL
...
Fixes dEQP-GLES2.functional.shaders.builtin_variable.pointcoord
Signed-off-by: Alyssa Rosenzweig <alyssa@rosenzweig.io >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11818 >
2021-07-11 22:32:41 +00:00
Alyssa Rosenzweig
3291779c21
asahi: Handle point coordinates
...
Signed-off-by: Alyssa Rosenzweig <alyssa@rosenzweig.io >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11818 >
2021-07-11 22:32:41 +00:00
Alyssa Rosenzweig
3d75cff7d7
asahi: Identify triangle/lines vs point varyings
...
Seems to allow skipping over point coords?
Signed-off-by: Alyssa Rosenzweig <alyssa@rosenzweig.io >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11818 >
2021-07-11 22:32:41 +00:00
Alyssa Rosenzweig
e2176490d6
asahi: Unpack varying descriptors (1x)
...
Signed-off-by: Alyssa Rosenzweig <alyssa@rosenzweig.io >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11818 >
2021-07-11 22:32:41 +00:00
Alyssa Rosenzweig
d37bb48211
asahi: Lower PIPE_CAPF_MAX_POINT_WIDTH to hw limit
...
Signed-off-by: Alyssa Rosenzweig <alyssa@rosenzweig.io >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11818 >
2021-07-11 22:32:41 +00:00
Alyssa Rosenzweig
2468b123bb
asahi: Set bit for psiz
...
Signed-off-by: Alyssa Rosenzweig <alyssa@rosenzweig.io >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11818 >
2021-07-11 22:32:41 +00:00
Alyssa Rosenzweig
88a8d7f76f
asahi: Set point magic bit in rasterizer
...
Signed-off-by: Alyssa Rosenzweig <alyssa@rosenzweig.io >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11818 >
2021-07-11 22:32:41 +00:00
Alyssa Rosenzweig
af2a4bc163
asahi: Set bits in UNK11 needed for points
...
Signed-off-by: Alyssa Rosenzweig <alyssa@rosenzweig.io >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11818 >
2021-07-11 22:32:41 +00:00
Mike Blumenkrantz
73f6bff07f
zink: fix mem info query to be more permissive
...
airlied was right, this was way too conservative
Fixes: ff4ba3d4a7 ("zink: support PIPE_CAP_QUERY_MEMORY_INFO")
Reviewed-by: Dave Airlie <airlied@redhat.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11803 >
2021-07-11 20:18:16 +00:00
Alyssa Rosenzweig
05dc72f863
asahi/decode: Print some IOGPU stuff
...
Signed-off-by: Alyssa Rosenzweig <alyssa@rosenzweig.io >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11815 >
2021-07-11 14:49:00 -04:00
Alyssa Rosenzweig
da85e84206
asahi/decode: Print clear/store pipelines
...
Signed-off-by: Alyssa Rosenzweig <alyssa@rosenzweig.io >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11815 >
2021-07-11 14:48:59 -04:00
Alyssa Rosenzweig
15206428b9
asahi: Garbage collect senseless cmdbuf struct
...
Signed-off-by: Alyssa Rosenzweig <alyssa@rosenzweig.io >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11815 >
2021-07-11 14:48:59 -04:00
Alyssa Rosenzweig
bd9317dbe7
asahi: Consolidate some magic numbers
...
This is a bunch of software data structures concatenated, not a true command
buffer like previously thought.
Signed-off-by: Alyssa Rosenzweig <alyssa@rosenzweig.io >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11815 >
2021-07-11 14:48:59 -04:00
Alyssa Rosenzweig
2f032283f8
asahi: Allocate global IDs
...
Use the same UABI as Metal. One less hack, trying to rule out possible
differences to Metal...
Signed-off-by: Alyssa Rosenzweig <alyssa@rosenzweig.io >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11815 >
2021-07-11 14:48:59 -04:00
Alyssa Rosenzweig
87c4a1855c
asahi: Allow specifying an encoder ID
...
Signed-off-by: Alyssa Rosenzweig <alyssa@rosenzweig.io >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11815 >
2021-07-11 14:48:59 -04:00
Alyssa Rosenzweig
314324f320
asahi/decode: Fix decoding of draw calls
...
Signed-off-by: Alyssa Rosenzweig <alyssa@rosenzweig.io >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11815 >
2021-07-11 14:48:42 -04:00
Alyssa Rosenzweig
ed4b3a5d17
asahi/decode: Handle CULL packets
...
Signed-off-by: Alyssa Rosenzweig <alyssa@rosenzweig.io >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11815 >
2021-07-10 12:34:40 -04:00
Alyssa Rosenzweig
9854079d59
asahi/decode: Fix up high word
...
Not sure what's happening here, there's some magic for sure.
Signed-off-by: Alyssa Rosenzweig <alyssa@rosenzweig.io >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11815 >
2021-07-10 12:34:40 -04:00
Alyssa Rosenzweig
d5580ee805
asahi: Identify more unknown fields in the memmap
...
From validating the memory map of a Metal sample and seeing what goes wrong.
Signed-off-by: Alyssa Rosenzweig <alyssa@rosenzweig.io >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11815 >
2021-07-10 12:05:34 -04:00
Alyssa Rosenzweig
0eb4a4dd79
asahi: Reserve more space to stop a command buffer
...
Let's be safer.
Signed-off-by: Alyssa Rosenzweig <alyssa@rosenzweig.io >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11815 >
2021-07-10 11:24:49 -04:00
Alyssa Rosenzweig
a9b8731fa1
asahi/decode: Check fewer zeroes after a command buffer
...
Signed-off-by: Alyssa Rosenzweig <alyssa@rosenzweig.io >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11815 >
2021-07-10 11:23:50 -04:00
Alyssa Rosenzweig
0b35a8f81a
asahi: Make track_free safer
...
Ensure that we don't free the same BO multiple times, which can lead to later
segfaults in decode.
Signed-off-by: Alyssa Rosenzweig <alyssa@rosenzweig.io >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11815 >
2021-07-10 11:16:56 -04:00
Alyssa Rosenzweig
9b6ca87672
asahi/decode: Only dump mapped allocations
...
This matches the hardware's view of memory and helps catch spurious reads. (One
symptom of messing this up -- besides broken rendering -- is a kernel warning
about a "bogus texture handle 0".)
Signed-off-by: Alyssa Rosenzweig <alyssa@rosenzweig.io >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11815 >
2021-07-10 11:04:45 -04:00
Alyssa Rosenzweig
ea7892a74c
asahi: Remove unused bo_access property
...
Signed-off-by: Alyssa Rosenzweig <alyssa@rosenzweig.io >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11815 >
2021-07-10 11:01:25 -04:00
Alyssa Rosenzweig
aa36b4b202
asahi: Add missing copyright/guards for magic.c/h
...
Signed-off-by: Alyssa Rosenzweig <alyssa@rosenzweig.io >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11815 >
2021-07-10 10:51:06 -04:00
Alyssa Rosenzweig
0a7e22a968
asahi: Move fixed internal shaders to agx_blit.c
...
A more natural place to put them, as the clear/store shaders use a similar
mechanism as the reload shaders. Now magic.c is exclusively kernel side piping.
Signed-off-by: Alyssa Rosenzweig <alyssa@rosenzweig.io >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11815 >
2021-07-10 10:49:58 -04:00
Alyssa Rosenzweig
c70f45c759
panfrost: Set register allocation in the v7 RSD
...
Required to hit full occupancy. Now that this information is piped
through the compiler, we can do this correctly.
Signed-off-by: Alyssa Rosenzweig <alyssa@collabora.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11733 >
2021-07-09 23:15:28 +00:00
Alyssa Rosenzweig
4a79bbdb38
panfrost: Generalize pan_blitter's reg count assert
...
Needed to avoid crashing on Bifrost/Valhall.
Signed-off-by: Alyssa Rosenzweig <alyssa@collabora.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11733 >
2021-07-09 23:15:28 +00:00
Alyssa Rosenzweig
8ac4156d19
panfrost: Enable more tiler levels if we can
...
Boosts glmark2 scores on Mali G52.
Signed-off-by: Alyssa Rosenzweig <alyssa@collabora.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11733 >
2021-07-09 23:15:28 +00:00
Alyssa Rosenzweig
fc69635516
panfrost: Query tiler features
...
We need the maximum levels to configure the hierarchy mask correctly. We
should also respect the bin size...
Signed-off-by: Alyssa Rosenzweig <alyssa@collabora.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11733 >
2021-07-09 23:15:28 +00:00
Alyssa Rosenzweig
329cb28d65
panfrost: Zero depth_source in vertex shaders
...
Spurious assignment.
Signed-off-by: Alyssa Rosenzweig <alyssa@collabora.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11733 >
2021-07-09 23:15:28 +00:00
Alyssa Rosenzweig
eb39b44a2e
panfrost: Don't set zs_update_operation in vertex shaders
...
Spurious assignment.
Signed-off-by: Alyssa Rosenzweig <alyssa@collabora.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11733 >
2021-07-09 23:15:28 +00:00
Alyssa Rosenzweig
c20dde5179
panfrost: Add a performance counter dump utility
...
This uses Antonio's src/panfrost/perf for all the heavylifting, just
like the Perfetto producer. Unlike the Perfetto producer, it has no
dependencies and is a lot less useful. But it's a good smoke test.
Signed-off-by: Alyssa Rosenzweig <alyssa@collabora.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11733 >
2021-07-09 23:15:28 +00:00
Alyssa Rosenzweig
7748ab117f
panfrost: Fix FPK enable condition
...
Signed-off-by: Alyssa Rosenzweig <alyssa@collabora.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11733 >
2021-07-09 23:15:28 +00:00
Alyssa Rosenzweig
499397700c
pan/bi: Don't lower fpow
...
We can fuse the intermediate multiply with the FMA_RSCALE in the
exponent code and save an instruction. Whether this is better than
adding a NIR op remains to be seen.
total instructions in shared programs: 146614 -> 146190 (-0.29%)
instructions in affected programs: 40724 -> 40300 (-1.04%)
helped: 157
HURT: 0
helped stats (abs) min: 1.0 max: 9.0 x̄: 2.70 x̃: 2
helped stats (rel) min: 0.22% max: 10.34% x̄: 1.37% x̃: 1.20%
95% mean confidence interval for instructions value: -3.00 -2.40
95% mean confidence interval for instructions %-change: -1.58% -1.15%
Instructions are helped.
total tuples in shared programs: 128116 -> 127696 (-0.33%)
tuples in affected programs: 33421 -> 33001 (-1.26%)
helped: 150
HURT: 0
helped stats (abs) min: 1.0 max: 16.0 x̄: 2.80 x̃: 2
helped stats (rel) min: 0.28% max: 4.37% x̄: 1.36% x̃: 1.07%
95% mean confidence interval for tuples value: -3.24 -2.36
95% mean confidence interval for tuples %-change: -1.50% -1.21%
Tuples are helped.
total clauses in shared programs: 27531 -> 27483 (-0.17%)
clauses in affected programs: 719 -> 671 (-6.68%)
helped: 20
HURT: 0
helped stats (abs) min: 1.0 max: 8.0 x̄: 2.40 x̃: 1
helped stats (rel) min: 1.61% max: 12.90% x̄: 6.96% x̃: 5.33%
95% mean confidence interval for clauses value: -3.48 -1.32
95% mean confidence interval for clauses %-change: -9.10% -4.82%
Clauses are helped.
total cycles in shared programs: 12250.81 -> 12233.69 (-0.14%)
cycles in affected programs: 1251.50 -> 1234.38 (-1.37%)
helped: 141
HURT: 0
helped stats (abs) min: 0.041665999999999315 max: 0.6666670000000003 x̄: 0.12 x̃: 0
helped stats (rel) min: 0.29% max: 5.00% x̄: 1.48% x̃: 1.20%
95% mean confidence interval for cycles value: -0.14 -0.10
95% mean confidence interval for cycles %-change: -1.63% -1.32%
Cycles are helped.
total arith in shared programs: 4840.25 -> 4822.71 (-0.36%)
arith in affected programs: 1324.08 -> 1306.54 (-1.32%)
helped: 151
HURT: 0
helped stats (abs) min: 0.041665999999999315 max: 0.6666670000000003 x̄: 0.12 x̃: 0
helped stats (rel) min: 0.29% max: 5.00% x̄: 1.43% x̃: 1.13%
95% mean confidence interval for arith value: -0.13 -0.10
95% mean confidence interval for arith %-change: -1.59% -1.28%
Arith are helped.
total texture in shared programs: 1666.50 -> 1666.50 (0.00%)
texture in affected programs: 0 -> 0
helped: 0
HURT: 0
total vary in shared programs: 639.06 -> 639.06 (0.00%)
vary in affected programs: 0 -> 0
helped: 0
HURT: 0
total ldst in shared programs: 9682 -> 9682 (0.00%)
ldst in affected programs: 0 -> 0
helped: 0
HURT: 0
total quadwords in shared programs: 116758 -> 116378 (-0.33%)
quadwords in affected programs: 28054 -> 27674 (-1.35%)
helped: 148
HURT: 2
helped stats (abs) min: 1.0 max: 16.0 x̄: 2.58 x̃: 2
helped stats (rel) min: 0.29% max: 5.13% x̄: 1.54% x̃: 1.23%
HURT stats (abs) min: 1.0 max: 1.0 x̄: 1.00 x̃: 1
HURT stats (rel) min: 0.67% max: 0.85% x̄: 0.76% x̃: 0.76%
95% mean confidence interval for quadwords value: -2.94 -2.12
95% mean confidence interval for quadwords %-change: -1.69% -1.33%
Quadwords are helped.
Signed-off-by: Alyssa Rosenzweig <alyssa@collabora.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11733 >
2021-07-09 23:15:28 +00:00
Alyssa Rosenzweig
91f130fa1e
pan/bi: Factor out exp2/log2 code
...
Will be reused for fpow.
Signed-off-by: Alyssa Rosenzweig <alyssa@collabora.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11733 >
2021-07-09 23:15:28 +00:00
Alyssa Rosenzweig
0991e9592d
pan/bi: Comment the fexp2 implementation
...
Signed-off-by: Alyssa Rosenzweig <alyssa@collabora.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11733 >
2021-07-09 23:15:28 +00:00
Alyssa Rosenzweig
297ac6e453
pan/bi: Simplify cube map descriptor generation
...
We don't need to do the bitwise manipulation ourselves, we can just use
a bitwise MUX instead.
total instructions in shared programs: 146840 -> 146614 (-0.15%)
instructions in affected programs: 15037 -> 14811 (-1.50%)
helped: 109
HURT: 0
helped stats (abs) min: 2.0 max: 4.0 x̄: 2.07 x̃: 2
helped stats (rel) min: 0.86% max: 4.00% x̄: 1.70% x̃: 1.77%
95% mean confidence interval for instructions value: -2.15 -2.00
95% mean confidence interval for instructions %-change: -1.81% -1.59%
Instructions are helped.
total tuples in shared programs: 128149 -> 128116 (-0.03%)
tuples in affected programs: 2896 -> 2863 (-1.14%)
helped: 16
HURT: 0
helped stats (abs) min: 1.0 max: 5.0 x̄: 2.06 x̃: 1
helped stats (rel) min: 0.65% max: 2.33% x̄: 1.16% x̃: 0.70%
95% mean confidence interval for tuples value: -3.01 -1.12
95% mean confidence interval for tuples %-change: -1.50% -0.83%
Tuples are helped.
total cycles in shared programs: 12257.10 -> 12250.81 (-0.05%)
cycles in affected programs: 449.87 -> 443.58 (-1.40%)
helped: 92
HURT: 0
helped stats (abs) min: 0.0416660000000002 max: 0.20833400000000069 x̄: 0.07 x̃: 0
helped stats (rel) min: 0.93% max: 2.53% x̄: 1.40% x̃: 1.26%
95% mean confidence interval for cycles value: -0.08 -0.06
95% mean confidence interval for cycles %-change: -1.48% -1.32%
Cycles are helped.
total arith in shared programs: 4847.33 -> 4840.25 (-0.15%)
arith in affected programs: 490.37 -> 483.29 (-1.44%)
helped: 109
HURT: 0
helped stats (abs) min: 0.0416660000000002 max: 0.20833400000000069 x̄: 0.06 x̃: 0
helped stats (rel) min: 0.93% max: 5.56% x̄: 1.51% x̃: 1.26%
95% mean confidence interval for arith value: -0.07 -0.06
95% mean confidence interval for arith %-change: -1.64% -1.39%
Arith are helped.
total quadwords in shared programs: 116775 -> 116758 (-0.01%)
quadwords in affected programs: 1331 -> 1314 (-1.28%)
helped: 7
HURT: 0
helped stats (abs) min: 1.0 max: 4.0 x̄: 2.43 x̃: 3
helped stats (rel) min: 0.91% max: 2.38% x̄: 1.65% x̃: 1.39%
95% mean confidence interval for quadwords value: -3.48 -1.38
95% mean confidence interval for quadwords %-change: -2.27% -1.04%
Quadwords are helped.
Signed-off-by: Alyssa Rosenzweig <alyssa@collabora.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11733 >
2021-07-09 23:15:28 +00:00
Alyssa Rosenzweig
94b9bce464
pan/bi: Workaround widen restrictions on +FADD.f32
...
We can use *FADD.f32 for these cases.
Signed-off-by: Alyssa Rosenzweig <alyssa@collabora.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11733 >
2021-07-09 23:15:28 +00:00
Alyssa Rosenzweig
99b2dddebf
pan/bi: Add a constant subexpression elimination pass
...
ALU only. Intended to clean up the lowerings used with complex
texturings. Ex: if a shader reads two cube maps at the same coordinates,
this deduplicates the cube map transformation.
This needs to happen in the backend since we do the cube map
transformation with the backend builder, rather than special NIR ops.
This is a tradeoff.
Pass based on ir3's, which in turn is inspired by NIR's.
total instructions in shared programs: 148799 -> 147348 (-0.98%)
instructions in affected programs: 20509 -> 19058 (-7.07%)
helped: 145
HURT: 0
helped stats (abs) min: 4.0 max: 30.0 x̄: 10.01 x̃: 8
helped stats (rel) min: 1.92% max: 54.55% x̄: 10.87% x̃: 7.41%
95% mean confidence interval for instructions value: -10.73 -9.28
95% mean confidence interval for instructions %-change: -12.81% -8.94%
Instructions are helped.
total tuples in shared programs: 129992 -> 128908 (-0.83%)
tuples in affected programs: 17624 -> 16540 (-6.15%)
helped: 145
HURT: 0
helped stats (abs) min: 2.0 max: 25.0 x̄: 7.48 x̃: 7
helped stats (rel) min: 0.74% max: 42.86% x̄: 9.16% x̃: 7.22%
95% mean confidence interval for tuples value: -7.96 -6.99
95% mean confidence interval for tuples %-change: -10.52% -7.79%
Tuples are helped.
total clauses in shared programs: 27632 -> 27582 (-0.18%)
clauses in affected programs: 1077 -> 1027 (-4.64%)
helped: 44
HURT: 0
helped stats (abs) min: 1.0 max: 3.0 x̄: 1.14 x̃: 1
helped stats (rel) min: 2.50% max: 16.67% x̄: 4.99% x̃: 4.45%
95% mean confidence interval for clauses value: -1.26 -1.01
95% mean confidence interval for clauses %-change: -5.70% -4.27%
Clauses are helped.
total cycles in shared programs: 12323 -> 12285.63 (-0.30%)
cycles in affected programs: 618.25 -> 580.88 (-6.05%)
helped: 120
HURT: 0
helped stats (abs) min: 0.08333299999999966 max: 0.5416680000000014 x̄: 0.31 x̃: 0
helped stats (rel) min: 0.77% max: 66.67% x̄: 7.60% x̃: 7.37%
95% mean confidence interval for cycles value: -0.33 -0.29
95% mean confidence interval for cycles %-change: -8.73% -6.47%
Cycles are helped.
total arith in shared programs: 4916.75 -> 4866.88 (-1.01%)
arith in affected programs: 677.79 -> 627.92 (-7.36%)
helped: 145
HURT: 0
helped stats (abs) min: 0.08333299999999966 max: 1.0833329999999997 x̄: 0.34 x̃: 0
helped stats (rel) min: 0.77% max: 66.67% x̄: 12.81% x̃: 7.87%
95% mean confidence interval for arith value: -0.37 -0.32
95% mean confidence interval for arith %-change: -15.33% -10.29%
Arith are helped.
total quadwords in shared programs: 118117 -> 117262 (-0.72%)
quadwords in affected programs: 15283 -> 14428 (-5.59%)
helped: 143
HURT: 0
helped stats (abs) min: 1.0 max: 23.0 x̄: 5.98 x̃: 5
helped stats (rel) min: 0.44% max: 25.71% x̄: 7.56% x̃: 5.56%
95% mean confidence interval for quadwords value: -6.46 -5.50
95% mean confidence interval for quadwords %-change: -8.59% -6.53%
Quadwords are helped.
Signed-off-by: Alyssa Rosenzweig <alyssa@collabora.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11733 >
2021-07-09 23:15:28 +00:00
Alyssa Rosenzweig
f35d0fb028
pan/bi: Fuse LD_VAR+TEXS_2D -> VAR_TEX
...
When the LD_VAR is only used once as an input to a texture instruction,
this is an improvement. We handle this case as a backwards pass.
Signed-off-by: Alyssa Rosenzweig <alyssa@collabora.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11733 >
2021-07-09 23:15:28 +00:00
Alyssa Rosenzweig
3fef3b6afc
pan/bi: Analyze helper invocations
...
Set the .skip bit on texture instructions and the terminate discarded
threads bit on the clause header based on data flow analysis of helper
invocations. This code is adapted from Midgard, which requires the same
analysis with a few details changed.
Signed-off-by: Alyssa Rosenzweig <alyssa@collabora.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11733 >
2021-07-09 23:15:28 +00:00
Alyssa Rosenzweig
134c74e301
pan/bi: Track LOD mode even for TEXC
...
Redundant with the texture operation descriptor, but we don't want to
parse that in the rest of the compiler. Handling it as a pseudo-modifier
lets us share a code path with TEXS.
Signed-off-by: Alyssa Rosenzweig <alyssa@collabora.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11733 >
2021-07-09 23:15:28 +00:00
Alyssa Rosenzweig
b7ca125278
pan/bi: Report cycle counts
...
Based on analysis of results from the Mali Offline Compiler. I am
uncertain how well these translate to real life, and they are
normalized counts only...
Signed-off-by: Alyssa Rosenzweig <alyssa@collabora.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11733 >
2021-07-09 23:15:28 +00:00
Alyssa Rosenzweig
a38ad8ec65
pan/bi: Only spill nodes that could progress in RA
...
This reduces number of spills and hence compile-time by avoiding
pointless decisions. In a terrain shader forced to use full threads:
Before: 39:168 spills:fills
After: 23:127 spills:fills
Signed-off-by: Alyssa Rosenzweig <alyssa@collabora.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11733 >
2021-07-09 23:15:28 +00:00
Alyssa Rosenzweig
113157dafe
pan/bi: Try to hit full occupancy on v7
...
Bifrost v7 trades off register pressure and occupancy. If we restrict to
[R0, R15] U [R48, R63], we get full occupancy, but if we use the full
register file, we only get half occupancy. Try to allocate just 32
registers, and only use the full 64 registers if that would spill.
Clever heuristics could make this both more effective (live range
splitting, shuffling, spilling if deemed acceptable) and cheaper at
compile-time (tracking maximum liveness to determine if it's possible to
hit at all). For now, this should suffice.
Signed-off-by: Alyssa Rosenzweig <alyssa@collabora.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11733 >
2021-07-09 23:15:28 +00:00
Alyssa Rosenzweig
98126128b1
pan/bi: Pack staging_barrier for the -next- clause
...
Match the semantic in the compiler header.
Signed-off-by: Alyssa Rosenzweig <alyssa@collabora.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11733 >
2021-07-09 23:15:28 +00:00
Alyssa Rosenzweig
d9e63586ac
pan/bi: Add bi_foreach_instr_global_rev_safe helper
...
Signed-off-by: Alyssa Rosenzweig <alyssa@collabora.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11733 >
2021-07-09 23:15:28 +00:00
Alyssa Rosenzweig
e4a849519a
pan/bi: Fix skip/lod_mode aliasing with VAR_TEX
...
Signed-off-by: Alyssa Rosenzweig <alyssa@collabora.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11733 >
2021-07-09 23:15:28 +00:00
Alyssa Rosenzweig
a5093f5810
pan/bi: Improve clause printing
...
Signed-off-by: Alyssa Rosenzweig <alyssa@collabora.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11733 >
2021-07-09 23:15:28 +00:00
Icecream95
efb0dd6de2
panfrost: Always use a fragment shader when alpha test is enabled
...
Fixes incorrect rendering with OpenSCAD.
Fixes: 275277a2b4 ("panfrost: Implement alpha testing natively")
Reported-by: Urja Rannikko <urjaman@gmail.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11812 >
2021-07-09 22:58:40 +00:00
Samuel Pitoiset
ecdb433254
radv: fix applying radv_disable_dcc for DOOM 2016 again
...
application_name_match is a regex... and DCC was also disabled for
DOOM Eternal (because DOOMEternal matches DOOM). Fun.
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/11805 >
2021-07-09 16:59:13 +00:00
Yiwei Zhang
6590767abc
egl/android: restore image creation fallback path used by virgl
...
For virgl backend used in ARCVM, cros buffer info query brings back
real modifier info for the host image, which cannot be resolved by the
gallium virgl backend. Thus the fallback path is used here.
This patch fixes a behavior change introduced by a prior commit.
Fixes: 5d3e64f1 ("egl: android: prepare code for adding more buffer_info getters")
Signed-off-by: Yiwei Zhang <zzyiwei@chromium.org >
Reviewed-by: Rob Clark <robdclark@chromium.org >
Reviewed-by: Roman Stratiienko <r.stratiienko@gmail.com >
Acked-by: Chia-I Wu <olvaffe@gmail.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11771 >
2021-07-09 16:18:23 +00:00
Heinrich Fink
9d070de5a5
llvmpipe: do not leak display target mapped ptr in cs setup
...
For compute shader textures that are backed by a display target, do not
leak the mapped pointer and unmap when access to the mapped resource is
not needed anymore.
Also use llvmpipe_resource_[un]map instead of calling winsys map
functions directly.
v2:
- use llvmpipe_resource_[un]map directly instead of winsys DT map
func and unneeded helper function for unmapping.
v3 (Emil Velikov):
- add comment in lp_csctx_set_sampler_views to explain
unmapping current texture early in the loop.
Signed-off-by: Heinrich Fink <hfink@snap.com >
Reviewed-by: Emil Velikov <emil.velikov@collabora.com >
Reviewed-by: Roland Scheidegger <sroland@vmware.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11741 >
2021-07-09 15:58:53 +00:00
Heinrich Fink
3e8c6b7ae2
llvmpipe: do not leak map of display target in fs setup
...
For fragment shader textures that are backed by a display target, do not
leak the mapped pointer, but unmap before unref'ing its associated
pipe_resource instances.
Also, make sure that the pointer that's mapped into a jit texture stays
valid while rasterization works on a jit context copy by mapping the
display target again during scene setup, and unmapping when finalizing
rasterization.
v2 (Daniel Stone):
- remove redundant helper function for [un]mapping DT, use
llvmpipe_resource_[un]map right away
v3 (Emil Velikov):
- add comment in lp_setup_set_fragment_sampler_views to explain
unmapping current texture early in the loop
Signed-off-by: Heinrich Fink <hfink@snap.com >
Reviewed-by: Emil Velikov <emil.velikov@collabora.com >
Reviewed-by: Roland Scheidegger <sroland@vmware.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11741 >
2021-07-09 15:58:53 +00:00
Heinrich Fink
8192ffe3be
softpipe: unmap display target of shader sampler
...
Unmap display target in cleanup routine for sampler views that are using
textures backed by a display target.
v2:
- remove obsolete comment
Signed-off-by: Heinrich Fink <hfink@snap.com >
Reviewed-by: Emil Velikov <emil.velikov@collabora.com >
Reviewed-by: Roland Scheidegger <sroland@vmware.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11741 >
2021-07-09 15:58:53 +00:00
Heinrich Fink
21864bdaae
llvmpipe: unmap display target of shader image/sampler
...
Revive hooks for cleaning up shader sampler and image data and when
finalizing llvmpipe_draw_vbo. In cleanup routines, for any sampler or
image that was set up with displaytarget_map, call displaytarget_unmap.
This fixes leaks of mmap calls of the underlying displaytarget
resources.
v2 (Daniel Stone):
- Use a single cleanup function for sampler/image to simplify patchset
v3 (Emil Velikov):
- use llvmpipe_resource_[un]map instead of open-coding through
winsys
v4:
- check tex/image for NULL before calling into
llvmpipe_resource_unmap (fixes dEQP crash of llvmpipe runner)
Signed-off-by: Heinrich Fink <hfink@snap.com >
Reviewed-by: Emil Velikov <emil.velikov@collabora.com >
Reviewed-by: Roland Scheidegger <sroland@vmware.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11741 >
2021-07-09 15:58:53 +00:00
Jason Ekstrand
a195ef123e
nir/lower_subgroups: Pad ballot values before bitcasting
...
Otherwise, if we cast from a uint32_t to a uint64_t, the bitcast will
fail before we pad. This happens on Intel.
Fixes: e4e79de2a4 "nir/subgroups: Support > 1 ballot components"
Closes: https://gitlab.freedesktop.org/mesa/mesa/-/issues/5045
Reviewed-by: Connor Abbott <cwabbott0@gmail.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11786 >
2021-07-09 14:21:26 +00:00
Jason Ekstrand
439322ad4c
android: Restore android/Android.mk
...
It was accidentally dropped as part of d4b482d378 but it's the one
Android makefile we want to keep.
Fixes: d4b482d378 "android: Drop the Android.mk build system"
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11798 >
2021-07-09 13:54:45 +00:00
Samuel Pitoiset
29f264f258
ac,radv: implement the cs_regalloc_hang HW bug workaround
...
Might fix spurious failures on GFX6 and some GFX7 chips.
Signed-off-by: Samuel Pitoiset <samuel.pitoiset@gmail.com >
Reviewed-by: Marek Olšák <marek.olsak@amd.com >
Reviewed-by: Bas Nieuwenhuizen <bas@basnieuwenhuizen.nl >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11675 >
2021-07-09 13:37:37 +00:00
Erik Faye-Lund
c905e74842
docs: update zink requirements
...
We currently require VK_EXT_line_rasterization with *all* optional
features to render all kinds of lines required. Because some (if not
all) of these can be emulated, let's make the list explicit, so it's
easy to remove items as we implement emulation.
Reviewed-By: Mike Blumenkrantz <michael.blumenkrantz@gmail.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11795 >
2021-07-09 13:18:47 +00:00
Erik Faye-Lund
c3b0f439a7
zink: fill in the right line-mode based on state
...
We need to fill in the right line-mode here based on the state to get
the correct rasterization; bresenham isn't always the right one.
Reviewed-By: Mike Blumenkrantz <michael.blumenkrantz@gmail.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11795 >
2021-07-09 13:18:47 +00:00
Erik Faye-Lund
f589159db9
zink: support line stippling
...
VK_EXT_line_rasterization allows us to specify a line-stilling pattern.
So let's do that.
While we're at it, use more bit-allocation here.
Reviewed-By: Mike Blumenkrantz <michael.blumenkrantz@gmail.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11795 >
2021-07-09 13:18:47 +00:00
Erik Faye-Lund
1fc9e94d12
zink: use bit-allocation for boolean rasterizer-state
...
This reduces the size of the struct a bit, and we're about to add some
more bit-allocated stuff in the next commit.
Reviewed-By: Mike Blumenkrantz <michael.blumenkrantz@gmail.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11795 >
2021-07-09 13:18:47 +00:00
Erik Faye-Lund
9e7e54b473
zink: hook up line-rasterization ext
...
The VK_EXT_line_rasterization extension allows to specify the
correct line-rasterization rules, which is needed for correct OpenGL
rendering.
So, let's prepare for filling this one out. Right now, it does a whole
lot of nothing, but that's about to change.
Reviewed-By: Mike Blumenkrantz <michael.blumenkrantz@gmail.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11795 >
2021-07-09 13:18:47 +00:00
Danylo Piliaiev
1c6c200c0d
ir3: add newly found shlg.b16 instruction
...
Example of blob's output:
(nop3) shlg.b16 hr8.x, (r)8, (r)hr8.x, 12
It does: (src2 << src1) | src2
src1 and src2 could be GPRs, relative GPRs, relative consts,
or immidiates. However, they could not be plain const registers.
Blob does use it in conjuncture with "samgq" instruction.
Signed-off-by: Danylo Piliaiev <dpiliaiev@igalia.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11760 >
2021-07-09 13:00:29 +00:00
Samuel Pitoiset
543eb42c35
aco: use nir_ssa_def_is_unused() to determine if atomic dest is used
...
Instead of duplicating this chunk everywhere.
Signed-off-by: Samuel Pitoiset <samuel.pitoiset@gmail.com >
Reviewed-by: Rhys Perry <pendingchaos02@gmail.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11793 >
2021-07-09 12:12:57 +00:00
Georg Lehmann
d8c1bf4a7d
vulkan/wsi/wayland: Add support for more SRGB formats.
...
This is required by the Vulkan specification:
If pSurfaceFormats includes an entry whose value for colorSpace is
VK_COLOR_SPACE_SRGB_NONLINEAR_KHR and whose value for format is a UNORM
(or SRGB) format and the corresponding SRGB (or UNORM) format is a color
renderable format for VK_IMAGE_TILING_OPTIMAL, then pSurfaceFormats must also
contain an entry with the same value for colorSpace and format equal to the
corresponding SRGB (or UNORM) format.
Signed-off-by: Georg Lehmann <dadschoorse@gmail.com >
Reviewed-by: Adam Jackson <ajax@redhat.com >
Reviewed-by: Simon Ser <contact@emersion.fr >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11778 >
2021-07-09 11:54:43 +00:00
Alejandro Piñeiro
a38abf28c4
v3dv/format: expose properly that some formats are not filterable
...
Specifically A8B8G8R8_UINT_PACK32, A8B8G8R8_SINT_PACK32, and
A2B10G10R10_UINT_PACK32. They are based on the internal types RGBA8UI,
RGBA8I, and RGB10_A2UI, that are not filterable.
That gets several failing CTS like this:
dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.3d.a8b8g8r8_uint_pack32.a8b8g8r8_uint_pack32.optimal_optimal_linear_stripes_x
To properly skip instead of fail. So we also update the ci
expectation.
Reviewed-by: Iago Toral Quiroga <itoral@igalia.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11794 >
2021-07-09 11:37:01 +00:00
Michel Dänzer
f2691a0f83
ci: Add Fedora release build job
...
The intention is for this to more or less match the Fedora package
build. The main benefit right now is GCC 11 build test coverage.
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11412 >
2021-07-09 10:24:41 +00:00
Michel Dänzer
5d8d2bf2d8
ci: Add Fedora 34 based x86 build docker image
...
v2:
* Do not install weak dependencies in Fedora docker image.
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11412 >
2021-07-09 10:24:41 +00:00
Michel Dänzer
f5e6674f98
ci: Rename Debian based build jobs from meson-* to debian-*
...
meson has been the only build system in tree for some time, so the
meson- prefix was a bit meaningless.
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11412 >
2021-07-09 10:24:41 +00:00
Michel Dänzer
df185ae030
ci: Add debian/ prefix to job names for Debian based docker images
...
And move the image build scripts to a subdirectory correspondingly.
Preparation for adding images based on other OSs.
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11412 >
2021-07-09 10:24:41 +00:00
Michel Dänzer
55caa3abb1
turnip: Mark local variable ASSERTED
...
It's only used in assert. Avoids compiler warning/error with assertions disabled:
../src/freedreno/vulkan/tu_cs.h: In function 'tu_cs_reserve':
../src/freedreno/vulkan/tu_cs.h:208:13: error: unused variable 'result' [-Werror=unused-variable]
208 | VkResult result = tu_cs_reserve_space(cs, reserved_size);
| ^~~~~~
Reviewed-by: Samuel Iglesias Gonsálvez <siglesias@igalia.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11412 >
2021-07-09 10:24:41 +00:00
Pierre-Eric Pelloux-Prayer
7532a28c4e
dlist: skip NOP command at the head of a list
...
If we build a dlist starting with a NOP (for alignment purpose),
we don't have to execute the NOP.
Instead shift the start value by one.
Reviewed-by: Marek Olšák <marek.olsak@amd.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11493 >
2021-07-09 10:05:46 +00:00
Pierre-Eric Pelloux-Prayer
482db91c45
dlist: remove unused _mesa_dlist_alloc
...
Reviewed-by: Marek Olšák <marek.olsak@amd.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11493 >
2021-07-09 10:05:46 +00:00
Pierre-Eric Pelloux-Prayer
4f78b2f805
dlist: remove _mesa_dlist_alloc_aligned
...
It was only used in _mesa_dlist_alloc_vertex_list, so inline it there
instead.
Reviewed-by: Marek Olšák <marek.olsak@amd.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11493 >
2021-07-09 10:05:46 +00:00
Pierre-Eric Pelloux-Prayer
b703d7c15f
dlist: store all dlist in a continuous memory block
...
This reduces cache-misses in execute_list for apps using lots of small
dlist, like viewperf.
This is only done for small dlist (fitting in one block) because doing
this for larger ones wouldn't bring any benefit.
For instance, in vp13/snx test 10: the % of cache-misses events in
_mesa_glthread_execute_list/execute_list goes down from 17%/10% to 4%/3%.
If "struct gl_display_list" were stored in an array this would also
remove source of cache-misses since currently they're malloc-ed
individually.
Reviewed-by: Marek Olšák <marek.olsak@amd.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11493 >
2021-07-09 10:05:46 +00:00
Pierre-Eric Pelloux-Prayer
2f506e8153
dlist: increment/check list nesting when handling OPCODE_CALL_LIST(S)
...
Reviewed-by: Marek Olšák <marek.olsak@amd.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11493 >
2021-07-09 10:05:46 +00:00
Pierre-Eric Pelloux-Prayer
764e28d238
dlist: use a new OPCODE to avoid loading cold data
...
Also add a 'bool copy_to_current' param to vbo_save_playback_vertex_list:
this way we can decide if we need to call playback_copy_to_current without
loading any cold data.
Reviewed-by: Marek Olšák <marek.olsak@amd.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11493 >
2021-07-09 10:05:46 +00:00
Pierre-Eric Pelloux-Prayer
722e39c008
dlist: use a separate opcode for vbo replay using loopback
...
Remember is the current list needs to fallback to loopback,
and patch the list in glEndList.
Reviewed-by: Marek Olšák <marek.olsak@amd.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11493 >
2021-07-09 10:05:46 +00:00
Pierre-Eric Pelloux-Prayer
cc57d097bf
dlist: split hot/cold data from vertex_list
...
Store data not used in the hot-path (= vbo_save_playback_vertex_list) in a
pointer, to reduce the size of vbo_save_vertex_list.
Reviewed-by: Marek Olšák <marek.olsak@amd.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11493 >
2021-07-09 10:05:46 +00:00
Marek Olšák
b48998926c
util/idalloc: add util_idalloc_alloc_range
...
v2: fixed infinite loop (Pierre-Eric)
Reviewed-by: Pierre-Eric Pelloux-Prayer <pierre-eric.pelloux-prayer@amd.com > (v1)
Reviewed-by: Marek Olšák <marek.olsak@amd.com > (v2)
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11493 >
2021-07-09 10:05:46 +00:00
Marek Olšák
f29823df66
util/idalloc: add exists and foreach helpers
...
Reviewed-by: Pierre-Eric Pelloux-Prayer <pierre-eric.pelloux-prayer@amd.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11493 >
2021-07-09 10:05:46 +00:00
Marek Olšák
730014bd81
util/idalloc: hide or remove unused public functions
...
Reviewed-by: Pierre-Eric Pelloux-Prayer <pierre-eric.pelloux-prayer@amd.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11493 >
2021-07-09 10:05:46 +00:00
Marek Olšák
02f37cb9da
util/idalloc: reserving an ID that already exists should be no-op
...
Reviewed-by: Pierre-Eric Pelloux-Prayer <pierre-eric.pelloux-prayer@amd.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11493 >
2021-07-09 10:05:46 +00:00
Marek Olšák
6ede24cf31
util/idalloc: fold the size call into init
...
It's required, otherwise idalloc would fail.
v2: renamed util_idalloc_(mt_)init param initial_num_ids (Pierre-Eric)
Reviewed-by: Pierre-Eric Pelloux-Prayer <pierre-eric.pelloux-prayer@amd.com > (v1)
Reviewed-by: Marek Olšák <marek.olsak@amd.com > (v2)
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11493 >
2021-07-09 10:05:46 +00:00
Marek Olšák
995f6cbd74
util/idalloc: change num_elements to units of elements instead of bits
...
and use memset in resize().
Reviewed-by: Pierre-Eric Pelloux-Prayer <pierre-eric.pelloux-prayer@amd.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11493 >
2021-07-09 10:05:46 +00:00
Pierre-Eric Pelloux-Prayer
a266d570de
dlist: always use merged primitive for drawing
...
OpenGL 4.6 compatibility profile spec, Appendix B:
21. For any GL and framebuffer state, and for any group of GL commands and
arguments, the resulting GL and framebuffer state is identical whether the
GL commands and arguments are executed normally or from a display list.
The only exception to this corollary is for built-in shader variables
gl_VertexID and gl_PrimitiveID, which are not defined when drawing
geometry within a display list.
(thanks Ian Romanick for pointing this out in piglit !419 MR)
Remove the code introduced in ebb228bec5 to determine if merged draws can be used.
Reviewed-by: Marek Olšák <marek.olsak@amd.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11493 >
2021-07-09 10:05:46 +00:00
Pierre-Eric Pelloux-Prayer
b328d8e9bc
dlist: use an union instead of allocating a 1-sized array
...
Reviewed-by: Marek Olšák <marek.olsak@amd.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11493 >
2021-07-09 10:05:46 +00:00
Pierre-Eric Pelloux-Prayer
33fe403ccd
dlist: unindent code
...
Use a goto instead of wrapping the main part of the function
in a if() {}
Reviewed-by: Marek Olšák <marek.olsak@amd.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11493 >
2021-07-09 10:05:46 +00:00
Pierre-Eric Pelloux-Prayer
0843a7ebab
dlist: remove InstSize
...
Instead store the instruction size alongside the opcode.
Reviewed-by: Marek Olšák <marek.olsak@amd.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11493 >
2021-07-09 10:05:46 +00:00
Pierre-Eric Pelloux-Prayer
c731928cf4
dlist: remove OPCODE_EXT_0
...
This should have been removed in bb108bdec7 ("dlist: remove ListExt feature")
Reviewed-by: Marek Olšák <marek.olsak@amd.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11493 >
2021-07-09 10:05:46 +00:00
Pierre-Eric Pelloux-Prayer
2e9c8d9dc3
dlist: prelock ctx->Shared->DisplayList before execute_list
...
Together with the glCallList change this transforms this sequence:
lock - execute - unlock - lock - execute - unlock - ...
In this sequence :
lock - execute - execute - execute - ... - unlock
Reviewed-by: Marek Olšák <marek.olsak@amd.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11493 >
2021-07-09 10:05:46 +00:00
Pierre-Eric Pelloux-Prayer
61a1b5463f
dlist: add locked param to _mesa_lookup_list
...
This allows to take the lock once and reduce the cpu-overhead of
locking/unlocking multiple times when executing multiple lists.
Reviewed-by: Marek Olšák <marek.olsak@amd.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11493 >
2021-07-09 10:05:46 +00:00
Pierre-Eric Pelloux-Prayer
8b71fcf795
glthread: merge sucessive glCallList
...
Then unmarshalling a glCallList cmd if the next command(s) are also
glCallList, they are batched in a single glCallLists.
Reviewed-by: Marek Olšák <marek.olsak@amd.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11493 >
2021-07-09 10:05:46 +00:00
Pierre-Eric Pelloux-Prayer
b0536119f2
glthread: use custom marshal/unmarshal for CallList
...
Will be used in the next commit.
Reviewed-by: Marek Olšák <marek.olsak@amd.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11493 >
2021-07-09 10:05:46 +00:00
Pierre-Eric Pelloux-Prayer
7e2d4f505d
glthread: return consumed bytes
...
Reviewed-by: Marek Olšák <marek.olsak@amd.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11493 >
2021-07-09 10:05:46 +00:00
Pierre-Eric Pelloux-Prayer
9a9860bd11
glthread: add a last parameter to unmarshal functions
...
Reviewed-by: Marek Olšák <marek.olsak@amd.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11493 >
2021-07-09 10:05:46 +00:00
Connor Abbott
d53984ce97
ir3/nir: Lower indirect references of compact variables
...
Fixes Sascha Willems "tessellation" demo on Turnip (it contains
indirect dereference of tessellation levels).
Fixes: 643f2cb ("ir3, tu: Cleanup indirect i/o lowering")
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11781 >
2021-07-09 09:48:21 +00:00
Andrii Simiklit
57f54bb9cc
Remove redundant assignment
...
Closes: https://gitlab.freedesktop.org/mesa/mesa/-/issues/4957
Reviewed-by: Marcin Ślusarz <marcin.slusarz@intel.com >
Signed-off-by: Andrii Simiklit <andrii.simiklit@globallogic.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11780 >
2021-07-09 09:34:27 +00:00
Samuel Pitoiset
265b25d2c0
radv: fix applying radv_disable_dcc for DOOM and Wolfenstein II
...
Mismatch between executable and application names.
Fixes: 28e1b02a6f ("radv: disable DCC for DOOM 2016 and Wolfenstein II")
Closes: https://gitlab.freedesktop.org/mesa/mesa/-/issues/5024
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/11708 >
2021-07-09 09:59:44 +02:00
Yiwei Zhang
d677120cae
egl/android: only apply front rendering usage in shared buffer mode
...
When EGL_KHR_mutable_render_buffer extension is enabled, advertised
configs unconditionally include EGL_MUTABLE_RENDER_BUFFER_BIT_KHR bit.
However, f61337b5 starts requesting front rendering usage bit when
EGL_MUTABLE_RENDER_BUFFER_BIT_KHR is seen on the SurfaceType, which
essentially forces linear usage on all winsys BOs for gallium dri and
i965 drivers on Android when cros gralloc is in use.
This patch dynamically appends or strips the front rendering usage bit
depends on whether EGL_RENDER_BUFFER is EGL_SINGLE_BUFFER or
EGL_BACK_BUFFER. The next dequeuBuffer call will switch the buffer
sharing mode while re-allocating winsys BOs given the updated gralloc
usage bits if necessary.
v2: handle ANativeWindow_setUsage on error
Fixes: f61337b5 ("egl/android: check front rendering support for cros gralloc")
Signed-off-by: Yiwei Zhang <zzyiwei@chromium.org >
Reviewed-by: Rob Clark <robdclark@chromium.org > (v1)
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11787 >
2021-07-08 22:05:38 +00:00
Chia-I Wu
d0fa4933b7
venus: fix empty submits with BOs
...
Empty submits with BOs (!batch_count && bo_count) were incorrectly
skipped.
Signed-off-by: Chia-I Wu <olvaffe@gmail.com >
Reviewed-by: Yiwei Zhang <zzyiwei@chromium.org >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11791 >
2021-07-08 21:51:23 +00:00
Alyssa Rosenzweig
80c45928b4
docs: Update relnotes for panfrost/asahi
...
Big changes of the branch point.
Signed-off-by: Alyssa Rosenzweig <alyssa@collabora.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11773 >
2021-07-08 20:29:18 +00:00
Jason Ekstrand
d4b482d378
android: Drop the Android.mk build system
...
Android.mk files haven't really been supported by Mesa devs for a long
time. Most of us have been willing to update Makefile.sources if we
remember and sometimes we try to blind code some Android.mk for a new
generator. However, the reality is that it breaks regularly and ends up
being maintained by the Android community. To address this problem
another approach was implemented in !10183 utilizing the maintained
meson build system. The old Android.mk files are no longer required.
This commit was created with the following commands:
git rm **/Android.mk
git rm **/Android.*.mk
git rm **/Makefile.sources
git rm CleanSpec.mk
Closes: https://gitlab.freedesktop.org/mesa/mesa/-/issues/4487
Acked-by: Roman Stratiienko <r.stratiienko@gmail.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/9728 >
2021-07-08 14:44:02 -05:00
Marek Olšák
c5478f9067
radeonsi: enable uniform inlining by default
...
I think there is no reason to keep this disabled because it improves
viewperf and it might improve other things.
Reviewed-by: Pierre-Eric Pelloux-Prayer <pierre-eric.pelloux-prayer@amd.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11754 >
2021-07-08 18:37:41 +00:00
Marek Olšák
b2397c394d
ac,radeonsi: move late alloc computation into common code and shader states
...
This also fixes a rare deadlock when a scratch buffer is used.
Reviewed-by: Pierre-Eric Pelloux-Prayer <pierre-eric.pelloux-prayer@amd.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11754 >
2021-07-08 18:37:41 +00:00
Marek Olšák
30604e65cb
radeonsi: move an incorrectly placed comment about late alloc
...
Reviewed-by: Pierre-Eric Pelloux-Prayer <pierre-eric.pelloux-prayer@amd.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11754 >
2021-07-08 18:37:41 +00:00
Marek Olšák
66f254b4e6
radeonsi,radv: fix a late alloc deadlock with <= 6 CUs per SA
...
We should always prevent 1 CU from executing VS and GS waves
to prevent a deadlock.
Fixes: c377f45c18 "radeonsi/gfx10: rewrite late alloc computation"
Reviewed-by: Pierre-Eric Pelloux-Prayer <pierre-eric.pelloux-prayer@amd.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11754 >
2021-07-08 18:37:41 +00:00
Marek Olšák
c4644bf3e6
ac/surface/tests: fix the ARM build
...
Fixes: 8771d45a "ac/surface/tests: fix a random segfault in the modifier test"
Closes: https://gitlab.freedesktop.org/mesa/mesa/-/issues/4655
Reviewed-by: Pierre-Eric Pelloux-Prayer <pierre-eric.pelloux-prayer@amd.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11754 >
2021-07-08 18:37:41 +00:00
Marek Olšák
9aa53d7ac4
radeonsi: rewrite a confusing comment in si_upload_and_prefetch_VB_descriptors
...
Reviewed-by: Pierre-Eric Pelloux-Prayer <pierre-eric.pelloux-prayer@amd.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11754 >
2021-07-08 18:37:41 +00:00
Marek Olšák
d9173b3b46
ac/llvm: rework how negative W affects culling to not call accept_func twice
...
Always execute the bbox code regardless of negative W, and then simply
use || to discard the result if any W is negative. This is expected to be
rare. (it only happens when a primitive intersects the near plane)
This allows us to eliminate the else statement, which is no longer
executed for accepted primitives with negative W, which are the only
primitives that needed the else branch.
Reviewed-by: Pierre-Eric Pelloux-Prayer <pierre-eric.pelloux-prayer@amd.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11754 >
2021-07-08 18:37:41 +00:00
Marek Olšák
74b33a8c37
ac/llvm: don't return a status from ac_cull_triangle because it's unused
...
Reviewed-by: Pierre-Eric Pelloux-Prayer <pierre-eric.pelloux-prayer@amd.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11754 >
2021-07-08 18:37:41 +00:00
Marek Olšák
6546f28cc8
radeonsi: drop smoothing quality to 4xAA for better performance
...
Reviewed-by: Pierre-Eric Pelloux-Prayer <pierre-eric.pelloux-prayer@amd.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11754 >
2021-07-08 18:37:41 +00:00
Jason Ekstrand
624e799cc3
nir: Drop nir_ssa_def::name and nir_register::name
...
We say that they're for debug only but we don't really have a good
policy around when to set them and when not to. In particular,
nir_lower_system_values and nir_lower_vars_to_ssa which are the chief
producers of SSA values which might reasonably have a name do not bother
to set one. We have some names set from things like BLORP and RADV's
meta shaders but AFAICT, they're setting a name more because it's there
than because they actually care.
Also, most things other than nir_clone and nir_serialize don't bother to
try and preserve them. You can see in the diffstat of this commit
exactly what passes attempt to preserve names. Notably missing from the
list is opt_algebraic which is the single largest source of SSA def
churn and it happily throws names away.
These observations lead me to question whether or not names are actually
useful at all or if they're just taking up space (8B per instruction)
and wasting CPU cycles (to ralloc_strdup on the off chance we do have
one). I don't think I can think of a single time in recent history
where I've been debugging a shader issue and a SSA value name has been
there and been useful. If anything, the few times they are there, they
just throw me off because they mess up the indentation in nir_print.
iris shader-db on my system gets runtime -2.07734% +/- 1.26933% (n=5)
Reviewed-by: Emma Anholt <emma@anholt.net >
Reviewed-by: Alyssa Rosenzweig <alyssa.rosenzweig@collabora.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/5439 >
2021-07-08 17:34:41 +00:00
Chia-I Wu
a8173a78a3
vulkan/wsi: fix select_memory_type when all MTs are local
...
The intention is to pick the system memory for the prime blit dst, but
that is not possible when all memory types are advertised to be local.
This fixes venus over vtest (i.e., unix socket) because the driver
provides no PCI bus info and wsi_device_matches_drm_fd returns false. A
driver might also use can_present_on_device to force prime blit.
Fixes: 469875596a ("vulkan/wsi: Fix prime blits to use system memory for the destination")
Signed-off-by: Chia-I Wu <olvaffe@gmail.com >
Reviewed-by: Jason Ekstrand <jason@jlekstrand.net >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11774 >
2021-07-08 17:08:46 +00:00
Connor Abbott
266d3d5814
tu: Update subgroup properties
...
Everything should be in place for this to actually work. Support a size
of 128, unlike the blob. I've also plumbed through ballot support, so
enable that.
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/6752 >
2021-07-08 16:02:41 +00:00
Connor Abbott
75516e0595
ir3/legalize: Fix loop convergence behavior
...
This prevents the previous commit from being undone by the jump
optimizations in legalize, and fixes another potential case where
instead of a continue we have an if/else at the end of a loop.
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/6752 >
2021-07-08 16:02:41 +00:00
Connor Abbott
0fa93fb662
ir3: Fix convergence behavior for loops with continues
...
When loops have continue statements, it's expected that when we execute
a divergent continue (i.e. a continue where not all of the threads
active at the start take it) we keep going with the rest of the loop
body and then reconverge at the start of the next iteration. However the
Adreno ISA seems to always take a branch that jumps backwards, assuming
it's the bottom of a loop, so we get a different, undesired convergence
behavior. There's no way I know of to control this behavior in the
instruction set, so we have to instead insert a "continue block" at the
end of the loop where continue statements reconverge which then jumps
back to the top of the loop. Since this doesn't correspond 1:1 with any
NIR block we have to make control flow handling in NIR->ir3 a bit more
complicated, unfortunately.
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/6752 >
2021-07-08 16:02:41 +00:00
Connor Abbott
b1b80c06a7
ir3: Implement nir subgroup intrinsics
...
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/6752 >
2021-07-08 16:02:41 +00:00
Connor Abbott
5d5d752319
ir3: Handle shared registers in lower_parallelcopy
...
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/6752 >
2021-07-08 16:02:41 +00:00
Connor Abbott
17f7453d45
ir3: Add subgroup pseudoinstructions
...
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/6752 >
2021-07-08 16:02:41 +00:00
Connor Abbott
232ec710fd
ir3: Support any/all/getone branches
...
This plumbs through the support in the IR.
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/6752 >
2021-07-08 16:02:41 +00:00
Connor Abbott
7a8e0b15e2
ir3: Cleanup ir3_legalize jump optimization
...
Do the optimization parts in their own loop, and be more robust when
detecting the useless jumps.
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/6752 >
2021-07-08 16:02:41 +00:00
Connor Abbott
43e926a3af
ir3/sched: Handle branch condition in split_pred()
...
Before this, if there was a block with multiple things writing p0.x,
it was a tossup whether the right one would be used as the branch
condition. Found by inspection.
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/6752 >
2021-07-08 16:02:41 +00:00
Connor Abbott
bb3212dd4d
ir3: Fix infinite loop in scheduler when splitting
...
When we go to split e.g. a p0.x producer, the only other instructions
ready to schedule are often only p0.x producers. It could happen that
they all have a lower priority than the split instruction. Then we would
immediately schedule the split instruction again, then again try to
schedule one of the other producers, be blocked, and split it, around
and around again, leading to an infinite loop. The following commit
triggered this with
dEQP-GLES3.functional.shaders.discard.dynamic_loop_always on a3xx.
Fixes: d2f4d33 ("freedreno/ir3: new pre-RA scheduler")
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/6752 >
2021-07-08 16:02:41 +00:00
Connor Abbott
2ff3ab0aed
ir3: Make MOVMSK use repeat
...
MOVMSK is a bit of a special case, because it takes multiple cycles (and
therefore reduces the nops needed if it's between some other assigner
and consumer) however weird things happen if you try to start reading
the first component while it isn't finished yet. On balance making it
use repeat seems to result in a fewer special cases.
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/6752 >
2021-07-08 16:02:41 +00:00
Connor Abbott
66a275d50f
ir3: Fix shared reg delay
...
Based on computerator experiments, this is actually 6, including for
movmsk.
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/6752 >
2021-07-08 16:02:41 +00:00
Connor Abbott
b1b4ce7be2
ir3: Actually allow shared reg moves to be folded
...
I realized that shared registers were never actually getting folded,
even after adding them to valid_flags, because the move wasn't even
being considered.
I looked at the other uses of is_same_type_mov(), and they should be ok
with this.
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/6752 >
2021-07-08 16:02:41 +00:00
Connor Abbott
b32188cdba
ir3: Better valid flags for shared regs
...
Shared registers seem to use the same port as consts, so the same
restrictions for cat2/cat3 apply to them.
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/6752 >
2021-07-08 16:02:41 +00:00
Connor Abbott
590efd180b
ir3: Prevent propagating shared regs out of loops
...
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/6752 >
2021-07-08 16:02:41 +00:00
Connor Abbott
394c597b1b
ir3: Handle unreachable blocks
...
This fixes a pre-existing bug in ir3, but it showed up even more due to
other changes in this series and it interacts with the logical/physical
CFG split. When both sides of an if end with a jump, a block may become
unreachable via the logical CFG, which can cause problems because it has
no predecessors to figure out the location of live-in non-shared
values. In this case we assume that nir_opt_if has removed any code in
these blocks and just skip processing live-ins for these blocks,
pretending that they aren't live.
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/6752 >
2021-07-08 16:02:41 +00:00
Connor Abbott
22ae91b284
ir3: Handle shared register liveness correctly
...
As explained in the comments added, we need to add extra edges to the
CFG which are ignored except for shared registers. This plumbs through
support for this.
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/6752 >
2021-07-08 16:02:41 +00:00
Connor Abbott
8176657ead
ir3/nir: Call nir_lower_subgroups
...
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/6752 >
2021-07-08 16:02:41 +00:00
Connor Abbott
68b8b9e9e1
tu, ir3: Plumb through support for CS subgroup size/id
...
The way that the blob obtains the subgroup id on compute shaders is by
just and'ing gl_LocalInvocationIndex with 63, since it advertizes a
subgroupSize of 64. In order to support VK_EXT_subgroup_size_control and
expose a subgroupSize of 128, we'll have to do something a little more
flexible. Sometimes we have to fall back to a subgroup size of 64 due to
various constraints, and in that case we have to fake a subgroup size of
128 while actually using 64 under the hood, by just pretending that the
upper 64 invocations are all disabled. However when computing the
subgroup id we need to use the "real" subgroup size. For this purpose we
plumb through a driver param which exposes the real subgroup size. If
the user forces a particular subgroup size then we lower
load_subgroup_size in nir_lower_subgroups, otherwise we let it through,
and we assume when translating to ir3 that load_subgroup_size means
"give me the *actual* subgroup size that you decided in RA" and give you
the driver param.
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/6752 >
2021-07-08 16:02:41 +00:00
Connor Abbott
cc514bfa0e
nir: Add read_invocation_cond_ir3 intrinsic
...
On qualcomm, we have shared registers similar to SGPR's on AMD. However,
there is no readlane or readfirstlane primitive. shared registers can
only be written to when just one lane is active. This means that we have
to lower readInvocation(val, id) to something like:
if (gl_SubgroupInvocation == id) {
scalar_reg = val;
}
return scalar_reg;
However it's a bit difficult to actually get the value of
gl_SubgroupInvocation in the backend, because for compute it requires
some calculations and we don't have any CSE support in the backend. This
intrinsic lets us turn it into
"readInvocationCond(val, id == gl_SubgroupInvocation)" in NIR at which
point the backend code generation is a lot easier.
Reviewed-by: Jason Ekstrand <jason@jlekstrand.net >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/6752 >
2021-07-08 16:02:41 +00:00
Connor Abbott
e4e79de2a4
nir/subgroups: Support > 1 ballot components
...
Qualcomm has a mode with a subgroup size of 128, so just emitting larger
integer operations and then lowering them later isn't an option. This
makes the pass able to handle the lowering itself, so that we don't have
to go down to 64-thread wavefronts when ballots are used.
(The GLSL and legacy SPIR-V extensions only support a maximum of 64
threads, but I guess we'll cross that bridge when we come to it...)
Reviewed-by: Jason Ekstrand <jason@jlekstrand.net >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/6752 >
2021-07-08 16:02:41 +00:00
Connor Abbott
90819b9b0e
nir/subgroups: Replace lower_vote_eq_to_ballot with lower_vote_eq
...
Lower it to a vote instead of a ballot. This was only used for AMD, and
in that case they're pretty much the same. However Qualcomm has a vote
builtin, which we want to use instead of ballots.
Reviewed-by: Jason Ekstrand <jason@jlekstrand.net >
Acked-by: Rhys Perry <pendingchaos02@gmail.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/6752 >
2021-07-08 16:02:41 +00:00
Timur Kristóf
4fcb7e96b8
radv: Set parameter cache oversubscription according to the PC lines.
...
This matches how RadeonSI also sets this register.
Signed-off-by: Timur Kristóf <timur.kristof@gmail.com >
Reviewed-by: Samuel Pitoiset <samuel.pitoiset@gmail.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11711 >
2021-07-08 16:54:29 +02:00
Timur Kristóf
32fafa43ae
radv: Allow enabling vertex grouping, fix NGG info with it disabled.
...
Signed-off-by: Timur Kristóf <timur.kristof@gmail.com >
Reviewed-by: Samuel Pitoiset <samuel.pitoiset@gmail.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11711 >
2021-07-08 16:54:29 +02:00
Timur Kristóf
fd64c18214
radv: Move radv_optimize_nir_algebraic to a separate function.
...
Signed-off-by: Timur Kristóf <timur.kristof@gmail.com >
Reviewed-by: Samuel Pitoiset <samuel.pitoiset@gmail.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11711 >
2021-07-08 16:54:29 +02:00
Timur Kristóf
00d11c2065
radv: Add last_vgt_api_stage and use it to simplify some code.
...
Signed-off-by: Timur Kristóf <timur.kristof@gmail.com >
Reviewed-by: Samuel Pitoiset <samuel.pitoiset@gmail.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11711 >
2021-07-08 16:54:26 +02:00
Mike Blumenkrantz
c6d677ce3d
zink: ensure sparse allocations aren't marked host-visible
...
Fixes: 5fee58bf59 ("zink: collapse host_visible and non-coherent alignment alloc cases")
Reviewed-by: Dave Airlie <airlied@redhat.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11768 >
2021-07-08 13:26:41 +00:00
Samuel Pitoiset
74a221bcfd
aco: fix shared_atomic_comp_swap if the second source isn't a VGPR
...
Only VGPRs are valid with DS instructions.
Cc: 21.1 mesa-stable
Signed-off-by: Samuel Pitoiset <samuel.pitoiset@gmail.com >
Reviewed-by: Rhys Perry <pendingchaos02@gmail.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11777 >
2021-07-08 10:41:14 +00:00
Simon Ser
3ee30d98ff
vulkan/wsi/wayland: handle dmabuf params allocation failure
...
Return VK_ERROR_OUT_OF_HOST_MEMORY if
zwp_linux_dmabuf_v1_create_params fails.
Signed-off-by: Simon Ser <contact@emersion.fr >
Acked-by: Lionel Landwerlin <lionel.g.landwerlin@intel.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11589 >
2021-07-08 12:05:28 +02:00
Simon Ser
7d711a10aa
vulkan/wsi/wayland: fix wsi_wl_image_init error code
...
If image->buffer cannot be allocated, the value returned by
wsi_create_native_image is returned. However, if we got that far,
that value is VK_SUCCESS.
Fix it and return VK_ERROR_OUT_OF_HOST_MEMORY.
Signed-off-by: Simon Ser <contact@emersion.fr >
Acked-by: Lionel Landwerlin <lionel.g.landwerlin@intel.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11589 >
2021-07-08 12:05:25 +02:00
Simon Ser
c45a1de5c6
vulkan/wsi/wayland: remove unnecessary wl_proxy_set_queue call
...
A wl_proxy inherits its queue from its parent.
display->dmabuf.wl_dmabuf already has its queue correctly set up,
so it's unnecessary to set it again on the child
zwp_linux_buffer_params_v1 proxy.
Signed-off-by: Simon Ser <contact@emersion.fr >
Acked-by: Lionel Landwerlin <lionel.g.landwerlin@intel.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11589 >
2021-07-08 12:05:20 +02:00
Simon Ser
589ea55732
vulkan/wsi/wayland: remove swapchain wl_drm wrapper
...
The sole purpose of this wl_proxy is to set the queue to
chain->display->queue. However, wl_proxy inherit their queue from
their parent, so the original wl_drm proxy already has its queue
set up properly (inherited from wl_registry).
Signed-off-by: Simon Ser <contact@emersion.fr >
Acked-by: Lionel Landwerlin <lionel.g.landwerlin@intel.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11589 >
2021-07-08 12:05:09 +02:00
Qiang Yu
cf66ccf3f0
st/mesa: fix size miss match for some check
...
While we shrink some variable from "GLuint" to "ubyte",
need to update the check from "x != ~0U" to "x != 0xff" too.
This fixes the crash for SPECviewperf 13 benchmark medical
case.
Fixes: d947e3e2c8 "st/mesa: decrease the size of st_vertex_program"
Reviewed-by: Marek Olšák <marek.olsak@amd.com >
Signed-off-by: Qiang Yu <yuq825@gmail.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11757 >
2021-07-08 01:21:51 +00:00
Emma Anholt
f2ae76e1a6
nir_to_tgsi: Declare immediates as float on non-native-ints hardware.
...
Makes the values more legible on i915g, and may keep us from tripping
asserts on nouveau's non-native-integer HW.
Reviewed-by: Ilia Mirkin <imirkin@alum.mit.edu >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11744 >
2021-07-07 23:39:33 +00:00
Emma Anholt
b4ad947135
nir_to_tgsi: Run copy prop (and thus dce) after lower_bool_to_float.
...
Fixes some i915g instruction count failures by eliminating some MOVs from
translating b2f32s.
Reviewed-by: Ilia Mirkin <imirkin@alum.mit.edu >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11744 >
2021-07-07 23:39:33 +00:00
Emma Anholt
2008ec8a43
i915g: Fix writemasking of SEQ/SNE/SSG.
...
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11744 >
2021-07-07 23:39:33 +00:00
Heinrich Fink
a2c92da9a1
softpipe: add missing sentinel to debug option array
...
Add DEBUG_NAMED_VALUE_END to finalize debug option array (see
lp_screen.c). Otherwise debug_get_flags_option might attempt to read
debug_named_value::name at an offset and SIGSEGV.
Signed-off-by: Heinrich Fink <hfink@snap.com >
Fixes: 991def0edc ("softpipe: Convert to comma-separated SOFTPIPE_DEBUG for debug options.")
Reviewed-by: Marcin Ślusarz <marcin.slusarz@intel.com >
Reviewed-by: Emil Velikov <emil.velikov@collabora.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11742 >
2021-07-07 23:27:34 +00:00
Erik Faye-Lund
b138d2f8a3
ci: fix source-deps for radv on windows
...
If we're giong to build RADV on Windows, we need to make sure we trigger
the build on all RADV-changes.
Fixes: d18563ea58 ("ci: Update Windows image to build RADV")
Reviewed-by: Bas Nieuwenhuizen <bas@basnieuwenhuizen.nl >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11731 >
2021-07-07 21:04:23 +00:00
Kenneth Graunke
aefba29cd3
iris: Force device local memory for u_upload_mgr buffers
...
We try to place persistent/coherent buffers from the application in
system memory, because they want the CPU-GPU coherency.
However, our internal u_upload_mgr buffers are also flagged persistent +
coherent, but we absolutely want most of them in device local memory.
Mark had done this correctly in an earlier patch series, but I made a
mistake when refactoring things during upstreaming, and accidentally
put these in SMEM again. This fixes that mistake.
Tested-by: Luis Felipe Strano Moraes <luis.strano@intel.com >
Reviewed-by: Jordan Justen <jordan.l.justen@intel.com >
Reviewed-by: Jason Ekstrand <jason@jlekstrand.net >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11681 >
2021-07-07 13:04:11 -07:00
Dylan Baker
4ef2594056
docs: Add calendar entries for 21.2 release candidates.
...
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11767 >
2021-07-07 12:23:11 -07:00
Roman Stratiienko
80f42e1d15
AOSP: Do not add '-Wl,--gc-sections' to the linker arguments
...
With '-Wl,--gc-sections' meson.build cc.has_function() will never fail,
providing wrong input to the build system.
Fixes: 8621bd8d5e ("android: Add scripts to build using meson")
Signed-off-by: Roman Stratiienko <r.stratiienko@gmail.com >
Tested-by: Mauro Rossi <issor.oruam@gmail.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11637 >
2021-07-07 18:32:28 +00:00
Mike Blumenkrantz
97c19ac358
lavapipe: disable line rasterization ext
...
need to add some gallium hooks for line drawing mode before this can
be reliably supported
Reviewed-by: Erik Faye-Lund <erik.faye-lund@collabora.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11762 >
2021-07-07 14:32:16 +00:00
Mike Blumenkrantz
b67a4ba4ad
nir/format_convert: add ssa version of uint packing
...
Reviewed-by: Jason Ekstrand <jason@jlekstrand.net >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10619 >
2021-07-07 13:41:37 +00:00
Mike Blumenkrantz
c948251d2b
nir/format_convert: nir_shift -> nir_shift_imm
...
Reviewed-by: Jason Ekstrand <jason@jlekstrand.net >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10619 >
2021-07-07 13:41:37 +00:00
Alyssa Rosenzweig
d09948e006
panfrost: Remove unused midgard-pack.h includes
...
Now only included from the per-gen file.
Signed-off-by: Alyssa Rosenzweig <alyssa@collabora.com >
Acked-by: Boris Brezillon <boris.brezillon@collabora.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11745 >
2021-07-07 13:19:35 +00:00
Alyssa Rosenzweig
6b2fc9f718
panfrost: Remove pan_cmdstream.h
...
Now empty.
Signed-off-by: Alyssa Rosenzweig <alyssa@collabora.com >
Acked-by: Boris Brezillon <boris.brezillon@collabora.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11745 >
2021-07-07 13:19:35 +00:00
Alyssa Rosenzweig
b7975c3e90
panfrost: Move sample accessor to pan_cmdstream
...
Not really arch-dependent but technically uses GenXML. This is pretty
trivial anyway.
Signed-off-by: Alyssa Rosenzweig <alyssa@collabora.com >
Acked-by: Boris Brezillon <boris.brezillon@collabora.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11745 >
2021-07-07 13:19:35 +00:00
Alyssa Rosenzweig
ed56d8f7b7
panfrost: Clean up pan_cmdstream.h
...
We don't want other files accessing these functions except through the
vtables, since they will soon be architecture dependent.
Signed-off-by: Alyssa Rosenzweig <alyssa@collabora.com >
Acked-by: Boris Brezillon <boris.brezillon@collabora.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11745 >
2021-07-07 13:19:35 +00:00
Alyssa Rosenzweig
035434658e
panfrost: Use vtable for fragment descriptor functions
...
Arch dependent and not directly from Gallium.
Signed-off-by: Alyssa Rosenzweig <alyssa@collabora.com >
Acked-by: Boris Brezillon <boris.brezillon@collabora.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11745 >
2021-07-07 13:19:35 +00:00
Alyssa Rosenzweig
d4e3f4858c
panfrost: Move panfrost_emit_tile_map to pan_job
...
...where it's actually called. Saves us from using the vtable since this
isn't version-dependent.
Signed-off-by: Alyssa Rosenzweig <alyssa@collabora.com >
Acked-by: Boris Brezillon <boris.brezillon@collabora.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11745 >
2021-07-07 13:19:35 +00:00
Alyssa Rosenzweig
fa2d70aad8
panfrost: Move launch_grid to pan_cmdstream
...
Same issues apply as for draw_vbo.
Signed-off-by: Alyssa Rosenzweig <alyssa@collabora.com >
Acked-by: Boris Brezillon <boris.brezillon@collabora.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11745 >
2021-07-07 13:19:35 +00:00
Alyssa Rosenzweig
c08dd038dc
panfrost: Don't ralloc panfrost_blend_state
...
Pointless divergence from other CSO creates.
Signed-off-by: Alyssa Rosenzweig <alyssa@collabora.com >
Acked-by: Boris Brezillon <boris.brezillon@collabora.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11745 >
2021-07-07 13:19:35 +00:00
Alyssa Rosenzweig
25a879e5f9
panfrost: Move blend CSO to cmdstream/context
...
Create is hardware specifc, bind/delete/set_colour is not.
Signed-off-by: Alyssa Rosenzweig <alyssa@collabora.com >
Acked-by: Boris Brezillon <boris.brezillon@collabora.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11745 >
2021-07-07 13:19:35 +00:00
Alyssa Rosenzweig
5e992e17de
panfrost: Split out prepare_rsd into a vtbl
...
This needs to be per-gen, but the rest of the caller does not, so let's
split this out. iris makes extensive use of this vtbl pattern for cold
paths like this one.
Signed-off-by: Alyssa Rosenzweig <alyssa@collabora.com >
Acked-by: Boris Brezillon <boris.brezillon@collabora.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11745 >
2021-07-07 13:19:35 +00:00
Alyssa Rosenzweig
cf557909eb
panfrost: Move most CSO creates to pan_cmdstream.c
...
These need to be conditionally compiled per-generation.
Signed-off-by: Alyssa Rosenzweig <alyssa@collabora.com >
Acked-by: Boris Brezillon <boris.brezillon@collabora.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11745 >
2021-07-07 13:19:35 +00:00
Alyssa Rosenzweig
a13eb5fcc5
panfrost: Move draw_vbo to pan_cmdstream.c
...
This needs to be conditionally compiled per-generation.
Signed-off-by: Alyssa Rosenzweig <alyssa@collabora.com >
Acked-by: Boris Brezillon <boris.brezillon@collabora.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11745 >
2021-07-07 13:19:35 +00:00
Samuel Pitoiset
265a900229
aco: fix emitting a16 for MIMG instructions on GFX10+
...
Signed-off-by: Samuel Pitoiset <samuel.pitoiset@gmail.com >
Reviewed-by: Rhys Perry <pendingchaos02@gmail.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11734 >
2021-07-07 14:44:13 +02:00
Samuel Pitoiset
ffdb980a12
aco: fix emitting d16 for MIMG instructions on GFX9+
...
Signed-off-by: Samuel Pitoiset <samuel.pitoiset@gmail.com >
Reviewed-by: Rhys Perry <pendingchaos02@gmail.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11734 >
2021-07-07 14:44:11 +02:00
Iago Toral Quiroga
b103855abc
v3dv: account for dst offset of copy query results operations
...
This fixes several CTS tests with this pattern:
dEQP-VK.query_pool.occlusion_query.copy_results*dstoffset
Reviewed-by: Alejandro Piñeiro <apinheiro@igalia.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11758 >
2021-07-07 10:41:06 +00:00
Corentin Noël
d080262524
ci: Bump virglrenderer
...
Use the latest commit from master branch
Signed-off-by: Corentin Noël <corentin.noel@collabora.com >
Reviewed-by: Gert Wollny <gert.wollny@collabora.com >
Reviewed-by: Rohan Garg <rohan.garg@collabora.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11572 >
2021-07-07 10:04:10 +00:00
Corentin Noël
441b480a5f
ci: Re-enable virgl tesselation shader
...
Partially undoes c8c7450fc7 ("llvmpipe: move coroutines out of noopt case")
as the required features are now implemented in llvmpipe.
Signed-off-by: Corentin Noël <corentin.noel@collabora.com >
Reviewed-by: Gert Wollny <gert.wollny@collabora.com >
Reviewed-by: Rohan Garg <rohan.garg@collabora.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11572 >
2021-07-07 10:04:10 +00:00
Alyssa Rosenzweig
1d0008734c
agx: Ensure we don't overallocate registers
...
Signed-off-by: Alyssa Rosenzweig <alyssa@rosenzweig.io >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11751 >
2021-07-07 03:31:43 +00:00
Alyssa Rosenzweig
7e65e47d19
agx: Pipe in nir_register
...
This is kind of lazy...
Signed-off-by: Alyssa Rosenzweig <alyssa@rosenzweig.io >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11751 >
2021-07-07 03:31:43 +00:00
Alyssa Rosenzweig
85e18deb18
agx: Assign registers locally
...
Signed-off-by: Alyssa Rosenzweig <alyssa@rosenzweig.io >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11751 >
2021-07-07 03:31:43 +00:00
Alyssa Rosenzweig
15b49a6795
agx: Count read registers as well
...
Signed-off-by: Alyssa Rosenzweig <alyssa@rosenzweig.io >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11751 >
2021-07-07 03:31:43 +00:00
Alyssa Rosenzweig
f03cecf05f
agx: Don't choke on registers in the optimizer
...
Just skip over them.
Signed-off-by: Alyssa Rosenzweig <alyssa@rosenzweig.io >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11751 >
2021-07-07 03:31:43 +00:00
Mike Blumenkrantz
997e5cf440
zink: store the default variant hash for a program
...
the first created pipeline with a program is the default variants, and
this is likely to be the most common, so we can store the hash to avoid
needing to recalc it later
Reviewed-by: Dave Airlie <airlied@redhat.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11740 >
2021-07-07 03:21:42 +00:00
Mike Blumenkrantz
02287fe42d
zink: flag shader modules as default
...
Reviewed-by: Dave Airlie <airlied@redhat.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11740 >
2021-07-07 03:21:42 +00:00
Mike Blumenkrantz
e551f2c557
zink: keep a mask of stages present in a gfx program
...
Reviewed-by: Dave Airlie <airlied@redhat.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11740 >
2021-07-07 03:21:42 +00:00
Mike Blumenkrantz
66fc13d3d5
zink: flag all shaders for create during gfx program init
...
now we can avoid needing extra conditionals in the update hotpath
Reviewed-by: Dave Airlie <airlied@redhat.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11740 >
2021-07-07 03:21:41 +00:00
Mike Blumenkrantz
876ead6dad
zink: remove zink_shader_module refcounting
...
this is no longer necessary
Reviewed-by: Dave Airlie <airlied@redhat.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11740 >
2021-07-07 03:21:41 +00:00
Mike Blumenkrantz
69e07603a6
features: mark off VK_EXT_multi_draw for radv
...
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11750 >
2021-07-07 03:17:05 +00:00
Mike Blumenkrantz
a793067387
zink: consolidate and optimize index buffer handling during draw
...
this can be reorganized to have more readable handling
Reviewed-by: Dave Airlie <airlied@redhat.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11746 >
2021-07-07 03:06:00 +00:00
Mike Blumenkrantz
47ba3b799f
zink: move descriptor update closer to start of draw
...
this can trigger flushes, so ensure that it doesn't break the cmdbuf
Reviewed-by: Dave Airlie <airlied@redhat.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11746 >
2021-07-07 03:06:00 +00:00
Mike Blumenkrantz
6f4dc4b6b8
zink: update streamout buffer strides inline
...
loops--
Reviewed-by: Dave Airlie <airlied@redhat.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11746 >
2021-07-07 03:06:00 +00:00
Mike Blumenkrantz
129b26909d
zink: use last_vertex_stage pointer to optimize streamout emission during draw
...
Reviewed-by: Dave Airlie <airlied@redhat.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11746 >
2021-07-07 03:06:00 +00:00
Mike Blumenkrantz
cc438ba58a
zink: store the last vertex stage to the context during bind
...
make this more readily accessible
Reviewed-by: Dave Airlie <airlied@redhat.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11746 >
2021-07-07 03:06:00 +00:00
Timothy Arceri
80a377ad81
util/radeonsi: add radeonsi workaround for Nuclear Throne
...
Without radeonsi_sync_compile the game crashes at startup. The
game engine uses a custom global new operator which doesn't
play well with multithreading.
Fixes: f1cc13727c ("radeonsi: enable workarounds for YoYo engine based games")
Closes: https://gitlab.freedesktop.org/mesa/mesa/-/issues/5023
Reviewed-by: Marek Olšák <marek.olsak@amd.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11701 >
2021-07-07 02:45:23 +00:00
Mike Blumenkrantz
50d6c58abb
relnotes: EXT_extended_dynamic_state2 for lavapipe
...
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11736 >
2021-07-07 02:13:20 +00:00
Mike Blumenkrantz
a25e5c6f42
features: EXT_extended_dynamic_state2 for lavapipe
...
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11736 >
2021-07-07 02:13:20 +00:00
Mike Blumenkrantz
6741e4be31
lavapipe: implement EXT_extended_dynamic_state2
...
Reviewed-by: Dave Airlie <airlied@redhat.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11736 >
2021-07-07 02:13:20 +00:00
Mike Blumenkrantz
e0fbaac242
lavapipe: only apply pipeline state for depth bias if it's enabled
...
Reviewed-by: Dave Airlie <airlied@redhat.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11736 >
2021-07-07 02:13:20 +00:00
Mike Blumenkrantz
c4c279bd7a
zink: remove unnecessary stall during device-local map case
...
this stalls after the copy already, no need to also stall before it
Reviewed-by: Dave Airlie <airlied@redhat.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11749 >
2021-07-07 01:55:45 +00:00
Mike Blumenkrantz
6fbcf335c2
zink: redo streamout and texture components of memory_barrier hook
...
this is more consolidated (and legal)
Reviewed-by: Dave Airlie <airlied@redhat.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11748 >
2021-07-07 01:43:49 +00:00
Mike Blumenkrantz
59cc9c8df1
zink: optimize buffer rebinds
...
this leverages all the slot masks to more optimally run through all
the rebinds, also enabling some code consolidation
Reviewed-by: Dave Airlie <airlied@redhat.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11747 >
2021-07-06 20:41:03 -04:00
Mike Blumenkrantz
f6e058ea4a
zink: remove barriers from buffer rebinds
...
these aren't needed anymore
Reviewed-by: Dave Airlie <airlied@redhat.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11747 >
2021-07-06 20:40:36 -04:00
Mike Blumenkrantz
9603f3bd01
zink: make image_bind_count work for buffers
...
Reviewed-by: Dave Airlie <airlied@redhat.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11747 >
2021-07-06 20:40:32 -04:00
Mike Blumenkrantz
de903ae0c7
zink: make samplerview bind mask apply to buffer resources too
...
Reviewed-by: Dave Airlie <airlied@redhat.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11747 >
2021-07-06 20:39:38 -04:00
Mike Blumenkrantz
d48367fbad
zink: add a per-stage bind mask for ssbos
...
Reviewed-by: Dave Airlie <airlied@redhat.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11747 >
2021-07-06 20:39:33 -04:00
Mike Blumenkrantz
4a194b7bbf
zink: add a per-stage mask for ubo binds
...
optimizing buffer replacement was never so difficult
Reviewed-by: Dave Airlie <airlied@redhat.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11747 >
2021-07-06 20:39:30 -04:00
Mike Blumenkrantz
496b794b10
zink: remove some descriptor_refs_dirty checks from resource binding
...
these no longer provide any optimization
Reviewed-by: Dave Airlie <airlied@redhat.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11692 >
2021-07-07 00:22:10 +00:00
Mike Blumenkrantz
2f46f0328f
zink: remove fb surface resource refs
...
Reviewed-by: Dave Airlie <airlied@redhat.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11692 >
2021-07-07 00:22:10 +00:00
Mike Blumenkrantz
e03d15141b
zink: remove fb surface refs
...
Reviewed-by: Dave Airlie <airlied@redhat.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11692 >
2021-07-07 00:22:10 +00:00
Mike Blumenkrantz
1771ba8f96
zink: remove samplerview refs
...
Reviewed-by: Dave Airlie <airlied@redhat.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11692 >
2021-07-07 00:22:10 +00:00
Mike Blumenkrantz
8fa3f3e6a8
zink: remove imageview refs from shader images
...
Reviewed-by: Dave Airlie <airlied@redhat.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11692 >
2021-07-07 00:22:10 +00:00
Mike Blumenkrantz
7dfb9486dc
zink: set new batch usage during surface rebinds
...
Reviewed-by: Dave Airlie <airlied@redhat.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11692 >
2021-07-07 00:22:10 +00:00
Mike Blumenkrantz
447ba04d87
zink: add surface ref during rebind if unflushed usage
...
Reviewed-by: Dave Airlie <airlied@redhat.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11692 >
2021-07-07 00:22:10 +00:00
Mike Blumenkrantz
59b142ae03
zink: remove refs from desc ref updating
...
Reviewed-by: Dave Airlie <airlied@redhat.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11692 >
2021-07-07 00:22:10 +00:00
Mike Blumenkrantz
b036215594
zink: remove resource refs from samplerviews
...
Reviewed-by: Dave Airlie <airlied@redhat.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11692 >
2021-07-07 00:22:10 +00:00
Mike Blumenkrantz
b8311567ed
zink: remove refs from shader images
...
Reviewed-by: Dave Airlie <airlied@redhat.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11692 >
2021-07-07 00:22:10 +00:00
Mike Blumenkrantz
f0be412c8a
zink: remove refs from shader buffers
...
Reviewed-by: Dave Airlie <airlied@redhat.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11692 >
2021-07-07 00:22:09 +00:00
Mike Blumenkrantz
a52e2048f7
zink: remove refs from ubos
...
Reviewed-by: Dave Airlie <airlied@redhat.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11692 >
2021-07-07 00:22:09 +00:00
Mike Blumenkrantz
03c3630cc1
zink: remove refs from vertex buffers
...
Reviewed-by: Dave Airlie <airlied@redhat.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11692 >
2021-07-07 00:22:09 +00:00
Mike Blumenkrantz
4846fb149a
zink: remove refs from buffer rebinds
...
Reviewed-by: Dave Airlie <airlied@redhat.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11692 >
2021-07-07 00:22:09 +00:00
Mike Blumenkrantz
b9ada09ca3
zink: move resource object ref to batch in init_storage_object
...
Reviewed-by: Dave Airlie <airlied@redhat.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11692 >
2021-07-07 00:22:09 +00:00
Mike Blumenkrantz
08b3847215
zink: move resource object ref to batch in invalidate hook
...
Reviewed-by: Dave Airlie <airlied@redhat.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11692 >
2021-07-07 00:22:09 +00:00
Mike Blumenkrantz
db32c3aff3
zink: add util function for transferring resource refs to batch
...
there's no point in doing unref->ref if it's known that this will happen
Reviewed-by: Dave Airlie <airlied@redhat.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11692 >
2021-07-07 00:22:09 +00:00
Mike Blumenkrantz
bd4120a67f
relnotes: more lavapipe features
...
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11738 >
2021-07-06 17:09:31 -04:00
Mike Blumenkrantz
542fbd0acb
features: more lavapipe extensions
...
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11738 >
2021-07-06 17:09:31 -04:00
Mike Blumenkrantz
ac07ad8414
lavapipe: implement KHR_separate_depth_stencil_layouts
...
this is a conformant implementation
Reviewed-by: Dave Airlie <airlied@redhat.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11738 >
2021-07-06 17:09:31 -04:00
Mike Blumenkrantz
9bbe80accd
lavapipe: implement EXT_separate_stencil_usage
...
this is a conformant implementation
Reviewed-by: Dave Airlie <airlied@redhat.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11738 >
2021-07-06 17:09:31 -04:00
Alyssa Rosenzweig
7040051589
pan/decode: Handle IDVS jobs on Bifrost
...
Signed-off-by: Alyssa Rosenzweig <alyssa@collabora.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11413 >
2021-07-06 15:50:28 -04:00
Alyssa Rosenzweig
73e80994d5
panfrost: Add secondary shader XML fields
...
Signed-off-by: Alyssa Rosenzweig <alyssa@collabora.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11413 >
2021-07-06 15:50:28 -04:00
Daniel Stone
f505d6f5de
panfrost/genxml: Decode Bifrost index-driven vertex jobs
...
Bifrost has a new type of job called 'index-driven vertex', which takes
in two shaders. The primary shader, called for all values, performs
position shading to a cacheline-aligned attribute buffer. The secondary
shader, called for values still live after culling, performs varying
shading.
It is the responsiblilty of the implementation to ensure that vertices
from different instances do not share a cacheline.
Signed-off-by: Daniel Stone <daniels@collabora.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11413 >
2021-07-06 15:50:28 -04:00
Jason Ekstrand
60568d5dce
iris: Use isl_surf_get_uncompressed_surf
...
Reviewed-by: Kenneth Graunke <kenneth@whitecape.org >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11647 >
2021-07-06 19:29:42 +00:00
Jason Ekstrand
98faa09bb5
iris: Don't leak the surface if uncompressed re-interp fails
...
Fixes: a032a9665f "iris: Enable PIPE_CAP_SURFACE_REINTERPRET_BLOCKS"
Reviewed-by: Kenneth Graunke <kenneth@whitecape.org >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11647 >
2021-07-06 19:29:42 +00:00
Jason Ekstrand
9946120d2b
intel/isl: Add more cases to isl_surf_get_uncompressed_surf
...
We can actually create array surfaces instead of requiring single-slice
in a few cases. This does require us to be very careful about our
checks, though.
Reviewed-by: Kenneth Graunke <kenneth@whitecape.org >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11647 >
2021-07-06 19:29:42 +00:00
Jason Ekstrand
2001a26309
intel/blorp: Use isl_surf_get_uncompressed_surf
...
Reviewed-by: Topi Pohjolainen <topi.pohjolainen@intel.com >
Reviewed-by: Kenneth Graunke <kenneth@whitecape.org >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11647 >
2021-07-06 19:29:42 +00:00
Jason Ekstrand
20f075c270
intel/blorp: Adjust the compressed copy rectangle before convert_to_single_slice
...
It doesn't matter for the actual copy rectangle and this makes the
asserts a bit nicer as we don't need to bother with the intratile
offsets because there aren't any yet.
Reviewed-by: Topi Pohjolainen <topi.pohjolainen@intel.com >
Reviewed-by: Kenneth Graunke <kenneth@whitecape.org >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11647 >
2021-07-06 19:29:42 +00:00
Jason Ekstrand
8f281be0ba
intel/isl: Pull the uncompressed surface view code from anv
...
This adds a helper isl_surf_get_uncompressed_surf for creating a surface
which provides an uncompressed view into a compressed surface. The code
is basically a direct port of the uncompressed surface code from the
Vulkan driver which, in turn, was a port from BLORP.
Reviewed-by: Topi Pohjolainen <topi.pohjolainen@intel.com >
Reviewed-by: Kenneth Graunke <kenneth@whitecape.org >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11647 >
2021-07-06 19:29:42 +00:00
Kenneth Graunke
4bf764d53d
crocus: Reduce SSBO alignment requirements from 64B to 4B.
...
Mirroring a change in iris; see the previous commit for rationale.
One difference is that crocus does sometimes use CPU maps on Atoms
for *reads*...but writes don't go through CPU caches. Should be OK.
Reviewed-by: Jason Ekstrand <jason@jlekstrand.net >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11727 >
2021-07-06 19:11:24 +00:00
Kenneth Graunke
96d8e48ed5
iris: Reduce SSBO alignment requirements from 64B to 4B
...
Back when SSBOs were first enabled in i965, we tried to work around
issues where the CPU and GPU were incoherently writing to the same
cacheline by forcing an alignment such that different sections of
data would fall in different cachelines. This seems wrong.
On integrated GPUs with LLC, CPU and GPU writes should be coherent.
On integrated GPUs without LLC, we either enable snooping (so they
are again coherent), or we use WC maps (so the CPU cache isn't used).
Discrete GPUs always use WC maps (so the CPU cache isn't used).
This should work. In other words, I think the increased alignment
was just working around coherency problems on atoms that have been
fixed in the intervening 6 year time period.
Untyped surface messages require 4B alignment.
Closes: https://gitlab.freedesktop.org/mesa/mesa/-/issues/5016
Reviewed-by: Jason Ekstrand <jason@jlekstrand.net >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11727 >
2021-07-06 19:11:24 +00:00
Alyssa Rosenzweig
12c057315b
panfrost: Eliminate redundant flushes with AFBC
...
We have all the information we need easily available.
Signed-off-by: Alyssa Rosenzweig <alyssa@collabora.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11077 >
2021-07-06 18:50:38 +00:00
Alyssa Rosenzweig
5100c42cbb
panfrost: Split "flush writer" from "flush accessing"
...
Since writers are counted in the accessor set, the old implementation
had a redundant flush in the "flush accessing" case. To fix, split the
two modes into separate functions, removing the redundancy and offering
a much more ergonomic API.
Signed-off-by: Alyssa Rosenzweig <alyssa@collabora.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11077 >
2021-07-06 18:50:38 +00:00
Boris Brezillon
cecb889481
panfrost: Do tracking of resources, not BOs
...
Squashed together with commits from Boris's original dependency tracking
cleanup series.
Signed-off-by: Boris Brezillon <boris.brezillon@collabora.com >
Signed-off-by: Alyssa Rosenzweig <alyssa@rosenzweig.io >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11077 >
2021-07-06 18:50:38 +00:00
Alyssa Rosenzweig
9769696659
panfrost: Wrap occlusion query in pipe_resource
...
For proper tracking.
Signed-off-by: Alyssa Rosenzweig <alyssa@rosenzweig.io >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11077 >
2021-07-06 18:50:38 +00:00
Alyssa Rosenzweig
bef1074700
panfrost: Express dependencies as resources, not BOs
...
This is a more ergnomic API, and will allow further optimizations.
Signed-off-by: Alyssa Rosenzweig <alyssa@rosenzweig.io >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11077 >
2021-07-06 18:50:38 +00:00
Boris Brezillon
f56adf135a
panfrost: Replace the batch->bos hashmap by a sparse array
...
Signed-off-by: Boris Brezillon <boris.brezillon@collabora.com >
Reviewed-by: Alyssa Rosenzweig <alyssa@collabora.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11077 >
2021-07-06 18:50:38 +00:00
Emma Anholt
4118264643
nir: Free the instructions in a DCE instr removal.
...
No significant change in shader-db time (n=11), but should be a little win
for memory usage by the compiler.
Reviewed-by: Ian Romanick <ian.d.romanick@intel.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11628 >
2021-07-06 11:24:48 -07:00
Emma Anholt
5618445d45
nir: Use remove_and_dce for nir_shader_lower_instructions().
...
Reduces the work that other shader passes have to do to look at dead code,
and possibly extra rounds around the optimization loop if dce wasn't the
last pass in it.
shader-db runtime -1.12919% +/- 0.264337% (n=49) on SKL.
Reviewed-by: Ian Romanick <ian.d.romanick@intel.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11628 >
2021-07-06 11:24:45 -07:00
Emma Anholt
5251548572
nir: Add a nir_instr_remove that recursively removes dead code.
...
Reviewed-by: Ian Romanick <ian.d.romanick@intel.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11628 >
2021-07-06 11:24:43 -07:00
Emma Anholt
d8d7d475aa
anv: Fix unused var warning on release builds from an assertion.
...
Reviewed-by: Ian Romanick <ian.d.romanick@intel.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11628 >
2021-07-06 11:24:37 -07:00
Mike Blumenkrantz
fd2d463a98
zinK: tweak shader module update -> pipeline combined_dirty conditional
...
make this more explicit
Reviewed-by: Dave Airlie <airlied@redhat.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11691 >
2021-07-06 18:05:15 +00:00
Mike Blumenkrantz
0cf643db5d
zink: remove shader_id
...
now that shaders are per-program, shader_id is no longer useful
Reviewed-by: Dave Airlie <airlied@redhat.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11691 >
2021-07-06 18:05:15 +00:00
Mike Blumenkrantz
61f2667cf5
zink: remove gfx program slot mapping
...
if shaders aren't being shared between programs, they can instead directly
assign io between the shader stages such that only the producer and consumer
pair need to have their slots match up
this requires that each gfx program struct stores base nir for a given shader
in order to avoid breaking io for other programs which reuse shader states
Reviewed-by: Dave Airlie <airlied@redhat.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11691 >
2021-07-06 18:05:15 +00:00
Mike Blumenkrantz
a8448a91e6
zink: set gfx program shaders and generate internal tcs during program creation
...
the base shader states will never change for a program, and tcs will never
change its io, so there's no point in having this in the shader update hotpath
Reviewed-by: Dave Airlie <airlied@redhat.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11691 >
2021-07-06 18:05:15 +00:00
Mike Blumenkrantz
a92442225c
zink: split up shader cache per-stage
...
this reduces overhead from lookups by ensuring that the number of entries
in a given table are minimized
Reviewed-by: Dave Airlie <airlied@redhat.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11691 >
2021-07-06 18:05:15 +00:00
Mike Blumenkrantz
49caf1a094
zink: make shader cache local to a single program
...
sharing caches makes things complicated and doesn't yield much benefit
Reviewed-by: Dave Airlie <airlied@redhat.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11691 >
2021-07-06 18:05:15 +00:00
James Jones
21ce1ca846
gbm: Load backend based on DRM device driver name
...
After attempting to use the GBM backend specified by the user
via an environment variable, if any, but before falling back
to the built-in GBM backends, attempt to dlopen
libg<DRM driver name>_gbm.so in the GBM backend library search
path (Defaults to "$libdir/gbm") and initialize a device using
it. This enables automatic backend discovery for devices that
do not provide a DRI driver.
Signed-off-by: James Jones <jajones@nvidia.com >
Reviewed-by: Michel Dänzer <mdaenzer@redhat.com >
Reviewed-by: Emil Velikov <emil.l.velikov@gmail.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/9902 >
2021-07-06 16:58:00 +00:00
James Jones
68902822d6
gbm: Support dynamically loading named backends
...
If the user specifies a backend name explicitly
via an environment variable and it is not in the
list of built-in backends, attempt to load it at
runtime.
runtime-loaded backends get a new gbm_backend_desc
struct instance for each device using them (A
small increase in memory usage to eliminate the
need for the locking and bookkeeping sharing them
would require), so these structures need to be
freed when destroying devices using runtime-loaded
backends.
Signed-off-by: James Jones <jajones@nvidia.com >
Reviewed-by: Emil Velikov <emil.l.velikov@gmail.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/9902 >
2021-07-06 16:57:59 +00:00
James Jones
8c935464ad
gbm: Put common device creation in a helper function
...
Subsequent changes will use this same logic to
instantiate devices with the correct version and
set up their backend reference.
Signed-off-by: James Jones <jajones@nvidia.com >
Reviewed-by: Michel Dänzer <mdaenzer@redhat.com >
Reviewed-by: Emil Velikov <emil.l.velikov@gmail.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/9902 >
2021-07-06 16:57:59 +00:00
James Jones
6d0c935846
gbm: Rename the DRI backend from gbm_dri.so to dri
...
A subsequent change will allow loading backends
from DSOs specified by the GBM_BACKEND environment
variable. The exact DSO name and path are derived
by the common loader code and will be of the form:
<gbm_backend_path>/<GBM_BACKEND>_gbm.so
E.g., a user would set the environment variable to
"external" to load "external_gbm.so". Users will
also still be able to explicitly request any
builtin backends by name as well, so this change
helps keep the environment variable syntax
consistent between internal and external backends.
Signed-off-by: James Jones <jajones@nvidia.com >
Reviewed-by: Michel Dänzer <mdaenzer@redhat.com >
Reviewed-by: Emil Velikov <emil.l.velikov@gmail.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/9902 >
2021-07-06 16:57:59 +00:00
James Jones
7f615c66fb
meson: Add a GBM backends search path build option
...
This is the list of locations where GBM will look
for alternate backend implementations based on the
DRM driver name. It defaults to $libdir/gbm.
On Android, this path is currently hard-coded to
/vendor/lib[64]/gbm.
Signed-off-by: James Jones <jajones@nvidia.com >
Reviewed-by: Emil Velikov <emil.l.velikov@gmail.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/9902 >
2021-07-06 16:57:59 +00:00
James Jones
bc343154f8
loader: Factor out driver library loading code
...
Separate the path-building and dlopen() portion of
loader_open_driver() from the DRI extension
loading logic. The former will be shared by the
GBM backend loading logic in a subsequent change.
Signed-off-by: James Jones <jajones@nvidia.com >
Reviewed-by: Michel Dänzer <mdaenzer@redhat.com >
Reviewed-by: Emil Velikov <emil.l.velikov@gmail.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/9902 >
2021-07-06 16:57:59 +00:00
James Jones
49e56c3c0d
gbm: Rename backend description list to builtin_backends
...
This just makes it clearer the array isn't a global
list of all backends in use.
Signed-off-by: James Jones <jajones@nvidia.com >
Reviewed-by: Michel Dänzer <mdaenzer@redhat.com >
Reviewed-by: Emil Velikov <emil.l.velikov@gmail.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/9902 >
2021-07-06 16:57:59 +00:00
James Jones
09bafb1f89
gbm: Add backend ABI-check test
...
This is based on the wayland EGL library ABI test
framework. The helper macros were copied from
there and expanded to support more than one
struct/type, and to additionally check member
type compatibility by default.
Signed-off-by: James Jones <jajones@nvidia.com >
Reviewed-by: Emil Velikov <emil.l.velikov@gmail.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/9902 >
2021-07-06 16:57:59 +00:00
James Jones
5baa36f423
gbm: Version the GBM backend interface
...
Define a version number for the interface GBM uses
to offload work to its backends/drivers. Store the
version in the backend interface structs provided
to the loader by backends, as well as in the core
interface struct provided to backends by the GBM
loader code to backends.
The backend can create structures of any version
it supports, which can be greater or less than the
interface version specified by GBM in the core
interface structure. Hence, GBM will need to take
care to check the backend version before accessing
any members added to structs defined in
gbm_backend_abi.h after this change.
Similarly, the backend may need to check the
interface version supported by the GBM library
before passing back data in any structure members
that require the GBM library to interact with
them for correct operation. For example, if for
some reason a structure defined in
gbm_backend_abi.h gained a field which was a
pointer to memory allocated by the backend and
freed by GBM, the backend should avoid allocating
this memory if the GBM library did not specify an
interface version new enough to indicate that it
was aware of the new structure member.
Signed-off-by: James Jones <jajones@nvidia.com >
Reviewed-by: Michel Dänzer <mdaenzer@redhat.com >
Reviewed-by: Emil Velikov <emil.l.velikov@gmail.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/9902 >
2021-07-06 16:57:59 +00:00
James Jones
496ea1715e
gbm: Move majority of gbmint.h to gbm_backend_abi.h
...
The content of gbm_backend_abi.h are nearly an
identical copy of the old gbmint.h. Only minimal
modifications have been made to ease history
tracking. Subsequent changes will further
formalize the ABI structures in gbm_backend_abi.h
Signed-off-by: James Jones <jajones@nvidia.com >
Reviewed-by: Michel Dänzer <mdaenzer@redhat.com >
Reviewed-by: Emil Velikov <emil.l.velikov@gmail.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/9902 >
2021-07-06 16:57:59 +00:00
James Jones
f98bcd2f5b
gbm: Add gbm_core struct to export code to backends
...
The GBM core/loader code defines one helper
function used by both itself and the built-in DRI
backend. Presumably, external backend authors
would want to use such functions as well, so
package them into a single struct that will be
passed explicitly to externally loaded backends in
subsequent changes.
Another option considered was to simply export
the gbm_format_canonicalize() function directly,
optionally renaming it to better indicate it is
intended only for "internal" use first. However,
even with a rename, this would expose it to
potential use by applications as well, which is
not ideal, as it is not intended to be part of
the application-facing GBM ABI.
Signed-off-by: James Jones <jajones@nvidia.com >
Reviewed-by: Michel Dänzer <mdaenzer@redhat.com >
Reviewed-by: Emil Velikov <emil.l.velikov@gmail.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/9902 >
2021-07-06 16:57:59 +00:00
James Jones
45bd17610c
gbm: Give gbm_device a reference to its backend
...
This will be used for looking up the backend
again at destruction time to perform any backend-
agnostic cleanup. To facilitate that, also
dispatch device destruction to the backend manager
code.
Signed-off-by: James Jones <jajones@nvidia.com >
Reviewed-by: Michel Dänzer <mdaenzer@redhat.com >
Reviewed-by: Emil Velikov <emil.l.velikov@gmail.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/9902 >
2021-07-06 16:57:59 +00:00
James Jones
ceb6c44fe4
gbm: Give getenv backend override its own function
...
Signed-off-by: James Jones <jajones@nvidia.com >
Reviewed-by: Michel Dänzer <mdaenzer@redhat.com >
Reviewed-by: Emil Velikov <emil.l.velikov@gmail.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/9902 >
2021-07-06 16:57:59 +00:00
James Jones
af1f517ab9
gbm: Consolidate env var and default backend loops
...
Signed-off-by: James Jones <jajones@nvidia.com >
Reviewed-by: Michel Dänzer <mdaenzer@redhat.com >
Reviewed-by: Emil Velikov <emil.l.velikov@gmail.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/9902 >
2021-07-06 16:57:59 +00:00
James Jones
00b2a45edf
gbm: Create device directly in find_backend
...
Signed-off-by: James Jones <jajones@nvidia.com >
Reviewed-by: Michel Dänzer <mdaenzer@redhat.com >
Reviewed-by: Emil Velikov <emil.l.velikov@gmail.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/9902 >
2021-07-06 16:57:59 +00:00
James Jones
b45cc75406
gbm: Inline load_backend function content
...
It was a functional no-op with the currently
available backends (Only DRI), and its implied
intended functionality is implemented elsewhere
in subsequent patches.
Signed-off-by: James Jones <jajones@nvidia.com >
Reviewed-by: Michel Dänzer <mdaenzer@redhat.com >
Reviewed-by: Emil Velikov <emil.l.velikov@gmail.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/9902 >
2021-07-06 16:57:59 +00:00
James Jones
c5e849bddf
gbm: Remove stat and refcount fields from gbm_device
...
These were unused.
Signed-off-by: James Jones <jajones@nvidia.com >
Reviewed-by: Michel Dänzer <mdaenzer@redhat.com >
Reviewed-by: Emil Velikov <emil.l.velikov@gmail.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/9902 >
2021-07-06 16:57:59 +00:00
Mike Blumenkrantz
4077768f29
util/vbuf: check 3-component 16bit int formats for translation
...
some drivers don't support these
Reviewed-by: Marek Olšák <marek.olsak@amd.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11716 >
2021-07-06 16:39:43 +00:00
Mike Blumenkrantz
95777ab419
lavapipe: handle null vertex buffers more gracefully
...
this should propagate down to be handled correctly in llvmpipe
Reviewed-by: Dave Airlie <airlied@redhat.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11723 >
2021-07-06 16:10:10 +00:00
luc
937e813d23
panfrost: Only clear existing color buffers
...
in case that only one cbuf allocated but all clear bits set,
the driver will crash due to null pointer dereference.
Signed-off-by: luc <onion0709@gmail.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11515 >
2021-07-06 15:19:44 +00:00
Icecream95
0b2c79092c
Revert "panfrost: Fix crc_valid condition"
...
This "fix" is no longer needed now we write CRC data correctly for
partial writes.
This reverts commit a78487f795 .
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11446 >
2021-07-06 15:05:56 +00:00
Icecream95
8bc4ebb0f9
panfrost: Set bound dimensions to framebuffer size
...
Otherwise CRC calculation will miss the pixels outside the extent
bounds but still in a tile that is rendered.
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11446 >
2021-07-06 15:05:56 +00:00
Dave Airlie
e5d158881b
ac: fix win32 build
...
Fixes: e2e9dd44f4 ("ac/surface: Handle non-retiled displayable DCC correctly for modifiers.")
Acked-by: Mike Blumenkrantz <michael.blumenkrantz@gmail.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11725 >
2021-07-06 14:49:24 +00:00
Alyssa Rosenzweig
01174fcec8
asahi: Use XML for interpolation packet
...
Signed-off-by: Alyssa Rosenzweig <alyssa@rosenzweig.io >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11730 >
2021-07-06 13:44:50 +00:00
Alyssa Rosenzweig
5f6013e008
asahi: Enable primitive restart
...
Passes dEQP-GLES3.functional.primitive_restart.* except for a flake.
Signed-off-by: Alyssa Rosenzweig <alyssa@rosenzweig.io >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11730 >
2021-07-06 13:44:50 +00:00
Alyssa Rosenzweig
3f685e9c96
asahi: Set data_valid for the depth buffer
...
Signed-off-by: Alyssa Rosenzweig <alyssa@rosenzweig.io >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11730 >
2021-07-06 13:44:50 +00:00
Alyssa Rosenzweig
4c99510d3b
asahi: Identify attachment length field
...
Signed-off-by: Alyssa Rosenzweig <alyssa@rosenzweig.io >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11730 >
2021-07-06 13:44:50 +00:00
Alyssa Rosenzweig
b8bc5ed297
asahi: Use GenXML for main bind fragment
...
Signed-off-by: Alyssa Rosenzweig <alyssa@rosenzweig.io >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11730 >
2021-07-06 13:44:50 +00:00
Alyssa Rosenzweig
19bb9d278f
asahi: Extend IOGPU header to contain encoder
...
Let's squash together all the resulting zeroes. Trying to discern some structure out of this.
Signed-off-by: Alyssa Rosenzweig <alyssa@rosenzweig.io >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11730 >
2021-07-06 13:44:50 +00:00
Alyssa Rosenzweig
c1d8ed1bc2
asahi: Move IOGPU header to XML
...
Signed-off-by: Alyssa Rosenzweig <alyssa@rosenzweig.io >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11730 >
2021-07-06 13:44:50 +00:00
Alyssa Rosenzweig
0b9e8181da
asahi: Identify "command buffer" size field in map
...
Signed-off-by: Alyssa Rosenzweig <alyssa@rosenzweig.io >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11730 >
2021-07-06 13:44:50 +00:00
Alyssa Rosenzweig
7905207313
asahi: Parametrize software "command buffer" size
...
Will vary depending on # of attachments.
Signed-off-by: Alyssa Rosenzweig <alyssa@rosenzweig.io >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11730 >
2021-07-06 13:44:50 +00:00
Alyssa Rosenzweig
99c52d98bd
asahi: Sync attachment magic with asahi demo
...
Signed-off-by: Alyssa Rosenzweig <alyssa@rosenzweig.io >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11730 >
2021-07-06 13:44:50 +00:00
Alyssa Rosenzweig
8e3f81ccc4
asahi: Add XML for the attachment structure
...
We need a lot more control over these magic structures to get Z/S attachments working correctly. This is an early start.
Signed-off-by: Alyssa Rosenzweig <alyssa@rosenzweig.io >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11730 >
2021-07-06 13:44:50 +00:00
Alyssa Rosenzweig
8d79fdea81
asahi: Skip over holes in the vbufs
...
Fixes dEQP-GLES2.functional.vertex_arrays.multiple_attributes.stride.3_float2_17_float2_17_float2_0
Signed-off-by: Alyssa Rosenzweig <alyssa@rosenzweig.io >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11730 >
2021-07-06 13:44:50 +00:00
Alyssa Rosenzweig
4c7a07e3b6
asahi: Comment on an embedded data structure
...
This file makes me sad :'(
Signed-off-by: Alyssa Rosenzweig <alyssa@rosenzweig.io >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11730 >
2021-07-06 13:44:50 +00:00
Alyssa Rosenzweig
668405de26
asahi: Flush for accesses to Z/S buffer
...
Signed-off-by: Alyssa Rosenzweig <alyssa@rosenzweig.io >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11730 >
2021-07-06 13:44:50 +00:00
Alyssa Rosenzweig
18a34dc47e
asahi: Implement the stencil test
...
Signed-off-by: Alyssa Rosenzweig <alyssa@rosenzweig.io >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11730 >
2021-07-06 13:44:50 +00:00
Alyssa Rosenzweig
dc968a9bec
asahi: Prepack rasterizer faces
...
A bit more efficient and will allow easy implementation of the stencil test.
Signed-off-by: Alyssa Rosenzweig <alyssa@rosenzweig.io >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11730 >
2021-07-06 13:44:50 +00:00
Alyssa Rosenzweig
0266cf86e9
asahi: Fix meson dependency on packing in compiler
...
Closes : #5030
Signed-off-by: Alyssa Rosenzweig <alyssa@rosenzweig.io >
Fixes: 6a657b17b9 ("agx: Remap fragment shader varyings explicitly")
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11730 >
2021-07-06 13:44:50 +00:00
Mike Blumenkrantz
a4713ddb56
radv: implement VK_EXT_multi_draw
...
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11532 >
2021-07-06 13:16:56 +00:00
Mike Blumenkrantz
ba30adce07
radv: add a gfx10 bug workaround for NOT_EOP
...
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11532 >
2021-07-06 13:16:56 +00:00
Mike Blumenkrantz
d9132fcb50
radv: split indexed draw cases based on whether drawid is used
...
fewer conditionals in the draw loop = less overhead
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11532 >
2021-07-06 13:16:56 +00:00
Mike Blumenkrantz
5aaf45f5e1
radv: determine if hardware can emit NOT_EOP before emitting
...
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11532 >
2021-07-06 13:16:56 +00:00
Mike Blumenkrantz
d28329ed02
radv: emit drawid for multidraws
...
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11532 >
2021-07-06 13:16:56 +00:00
Mike Blumenkrantz
00206b1664
radv: emit NOT_EOP for multi indexed draws
...
this is never emitted currently because drawCount is always 1
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11532 >
2021-07-06 13:16:56 +00:00
Mike Blumenkrantz
72e75092a9
radv: use multidraw iteration for direct draws
...
there's still no arrays of draw info being passed, but this takes care of
all the work for it
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11532 >
2021-07-06 13:16:56 +00:00
Rhys Perry
307a4bf4ab
radv: use null vertex descriptor if num_records=0
...
Signed-off-by: Rhys Perry <pendingchaos02@gmail.com >
Reviewed-by: Bas Nieuwenhuizen <bas@basnieuwenhuizen.nl >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11642 >
2021-07-06 13:00:35 +00:00
Rhys Perry
a2ac660eb7
radv: adjust num_records when offset>stride
...
If an attribute's offset is larger than the stride, the compiler will
increase the vertex index and use offset%stride instead as the offset.
Signed-off-by: Rhys Perry <pendingchaos02@gmail.com >
Reviewed-by: Bas Nieuwenhuizen <bas@basnieuwenhuizen.nl >
Closes: https://gitlab.freedesktop.org/mesa/mesa/-/issues/5007
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11642 >
2021-07-06 13:00:35 +00:00
Rhys Perry
e4fbb200fc
radv: don't ever convert num_records to bytes if it's zero
...
If num_records==0, this conversion doesn't work. We should just keep it at
zero.
Signed-off-by: Rhys Perry <pendingchaos02@gmail.com >
Reviewed-by: Bas Nieuwenhuizen <bas@basnieuwenhuizen.nl >
Gitlab: https://gitlab.freedesktop.org/mesa/mesa/-/issues/5007
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11642 >
2021-07-06 13:00:35 +00:00
Dave Airlie
b7302ecf11
crocus: enable threaded context support
...
Reviewed-by: Zoltán Böszörményi <zboszor@pr.hu >
Tested-by: Matti Hämäläinen <ccr@tnsp.org >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11710 >
2021-07-06 13:56:48 +10:00
Dave Airlie
86368a5fa2
crocus: add unsync transfer pool
...
Reviewed-by: Zoltán Böszörményi <zboszor@pr.hu >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11710 >
2021-07-06 13:56:48 +10:00
Dave Airlie
902eaa9382
crocus/tc: init/deinit threaded resource
...
Reviewed-by: Zoltán Böszörményi <zboszor@pr.hu >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11710 >
2021-07-06 13:56:48 +10:00
Dave Airlie
a9df8f7b64
crocus: use threaded context base classes
...
should be a pretty non-functional change
Reviewed-by: Zoltán Böszörményi <zboszor@pr.hu >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11710 >
2021-07-06 13:56:48 +10:00
Dave Airlie
db6042ea14
crocus: support rebinding streamout target buffers
...
Reviewed-by: Zoltán Böszörményi <zboszor@pr.hu >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11710 >
2021-07-06 13:56:44 +10:00
Bas Nieuwenhuizen
e2e9dd44f4
ac/surface: Handle non-retiled displayable DCC correctly for modifiers.
...
There is some hardware with num_render_backends == 1, but the number
of render backends in GB_ADDR_CFG > 1. Turns out this can be turned
off by making them rb unaligned which is valid with only 1 render
backend.
Fixes: 0833dd7d12 ("amd/common: Add support for modifiers.")
Reviewed-by: Marek Olšák <marek.olsak@amd.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10575 >
2021-07-05 22:34:13 +00:00
Mike Blumenkrantz
bb14ef81d5
features: mark off EXT_vertex_input_dynamic_state for lavapipe
...
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11724 >
2021-07-05 18:25:33 -04:00
Mike Blumenkrantz
44ca948789
features: add VK_EXT_multi_draw
...
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11722 >
2021-07-05 21:56:34 +00:00
Mike Blumenkrantz
2e8dd4b4a5
features: fix ARB_shader_group_vote -> GL_ARB_shader_group_vote
...
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11721 >
2021-07-05 21:52:12 +00:00
Mike Blumenkrantz
2cd2eabaae
features: mark off some zink features
...
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11720 >
2021-07-05 21:47:36 +00:00
Mike Blumenkrantz
95e567f253
features: mark off line rasterization for lavapipe
...
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11719 >
2021-07-05 17:29:04 -04:00
Mike Blumenkrantz
5685c99afb
relnotes: add some line feature updates for lavapipe
...
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11715 >
2021-07-05 21:20:26 +00:00
Alyssa Rosenzweig
18995f13cb
asahi: Handle nonzero first_level
...
Signed-off-by: Alyssa Rosenzweig <alyssa@rosenzweig.io >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11718 >
2021-07-05 20:56:04 +00:00
Alyssa Rosenzweig
2923aa6fe1
asahi: Wire in u_blitter
...
Fixes dEQP-GLES3.functional.fbo.color.repeated_clear.blit.tex2d.rgba8
Signed-off-by: Alyssa Rosenzweig <alyssa@rosenzweig.io >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11718 >
2021-07-05 20:56:04 +00:00
Alyssa Rosenzweig
dcd2d8ca50
asahi: Track more Gallium state
...
Needed to feed u_blitter.
Signed-off-by: Alyssa Rosenzweig <alyssa@rosenzweig.io >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11718 >
2021-07-05 20:56:04 +00:00
Alyssa Rosenzweig
7a95b1f0fc
asahi: Set vertex texture/sampler counts
...
Fixes
dEQP-GLES2.functional.shaders.texture_functions.vertex.texture2d
Signed-off-by: Alyssa Rosenzweig <alyssa@rosenzweig.io >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11718 >
2021-07-05 20:56:04 +00:00
Alyssa Rosenzweig
bee077f5e2
asahi: Identify vertex texture/sampler counts
...
Signed-off-by: Alyssa Rosenzweig <alyssa@rosenzweig.io >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11718 >
2021-07-05 20:56:04 +00:00
Alyssa Rosenzweig
30b6011cf7
asahi: Identify texture/sampler count fields
...
Signed-off-by: Alyssa Rosenzweig <alyssa@rosenzweig.io >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11718 >
2021-07-05 20:56:04 +00:00
Alyssa Rosenzweig
d45257b2be
asahi: Fail on LOD clamps/bias
...
Signed-off-by: Alyssa Rosenzweig <alyssa@rosenzweig.io >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11718 >
2021-07-05 20:56:04 +00:00
Alyssa Rosenzweig
50f012542f
agx: Handle txl
...
Signed-off-by: Alyssa Rosenzweig <alyssa@rosenzweig.io >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11718 >
2021-07-05 20:56:04 +00:00
Alyssa Rosenzweig
8361e24604
agx: Legalize LOD sources to be 16-bit only
...
I'm not convinced this is /right/ but it's a step.
Signed-off-by: Alyssa Rosenzweig <alyssa@rosenzweig.io >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11718 >
2021-07-05 20:56:04 +00:00
Alyssa Rosenzweig
4891e51bf3
agx: Fix lod_mode shift
...
Was zero before so didn't notice the bug.
Fixes: 9f55538834 ("agx: Pack texture ops")
Signed-off-by: Alyssa Rosenzweig <alyssa@rosenzweig.io >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11718 >
2021-07-05 20:56:04 +00:00
Alyssa Rosenzweig
edd30fa1bd
agx: Pack LOD descriptors
...
Signed-off-by: Alyssa Rosenzweig <alyssa@rosenzweig.io >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11718 >
2021-07-05 20:56:04 +00:00
Alyssa Rosenzweig
e847bffbcc
agx: Fix LOD_MIN enum
...
Fixes: 2470a080d2 ("agx: Stub NIR backend compiler")
Signed-off-by: Alyssa Rosenzweig <alyssa@rosenzweig.io >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11718 >
2021-07-05 20:56:04 +00:00
Alyssa Rosenzweig
c99dfe6a0c
agx: Fix 32-bit bitwise shifts
...
Fixes dEQP-GLES2.functional.shaders.functions.qualifiers.const_int_fragment
Fixes: e50bae00f4 ("agx: Add 32-bit bitwise shifts")
Signed-off-by: Alyssa Rosenzweig <alyssa@rosenzweig.io >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11718 >
2021-07-05 20:56:04 +00:00
Alyssa Rosenzweig
8ea262f508
asahi: Add ASAHI_MESA_DEBUG=no16 option
...
A lot of dEQP failures go away with 32-bit forced...
Signed-off-by: Alyssa Rosenzweig <alyssa@rosenzweig.io >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11718 >
2021-07-05 20:56:04 +00:00
Alyssa Rosenzweig
5228be45b6
asahi: Generalize varying linking
...
Handles matrices now. Fixes
dEQP-GLES2.functional.shaders.matrix.add.dynamic_mediump_mat4_float_fragment
Signed-off-by: Alyssa Rosenzweig <alyssa@rosenzweig.io >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11718 >
2021-07-05 20:56:04 +00:00
Alyssa Rosenzweig
2e2270ff14
asahi: Remove spurious varying assignment
...
Signed-off-by: Alyssa Rosenzweig <alyssa@rosenzweig.io >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11718 >
2021-07-05 20:56:04 +00:00
Alyssa Rosenzweig
c946dcf25d
asahi: Remove spurious assignment
...
Doesn't seem necessary.
Signed-off-by: Alyssa Rosenzweig <alyssa@rosenzweig.io >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11718 >
2021-07-05 20:56:04 +00:00
Alyssa Rosenzweig
5049907ae1
asahi: Implement colour buffer reloads
...
Gets glmark2 -bdesktop working.
Signed-off-by: Alyssa Rosenzweig <alyssa@rosenzweig.io >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11718 >
2021-07-05 20:56:04 +00:00
Alyssa Rosenzweig
b59dcf67b6
asahi: Set fragment key for non-U8NORM render targets
...
Signed-off-by: Alyssa Rosenzweig <alyssa@rosenzweig.io >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11718 >
2021-07-05 20:56:04 +00:00
Alyssa Rosenzweig
0e0448d8df
asahi: Add internal (renderable) formats to the table
...
Signed-off-by: Alyssa Rosenzweig <alyssa@rosenzweig.io >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11718 >
2021-07-05 20:56:04 +00:00
Alyssa Rosenzweig
78610de496
asahi: Save zsbuf ptr
...
Signed-off-by: Alyssa Rosenzweig <alyssa@rosenzweig.io >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11718 >
2021-07-05 20:56:04 +00:00
Alyssa Rosenzweig
426d55ffad
asahi: Add zsbuf to batch
...
Signed-off-by: Alyssa Rosenzweig <alyssa@rosenzweig.io >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11718 >
2021-07-05 20:56:04 +00:00
Alyssa Rosenzweig
2ad59fc9ec
asahi: Handle Z16_UNORM textures
...
Signed-off-by: Alyssa Rosenzweig <alyssa@rosenzweig.io >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11718 >
2021-07-05 20:56:04 +00:00
Alyssa Rosenzweig
503742aa32
asahi: Always flush when setting framebuffer state
...
We don't have batch tracking yet.
Signed-off-by: Alyssa Rosenzweig <alyssa@rosenzweig.io >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11718 >
2021-07-05 20:56:04 +00:00
Alyssa Rosenzweig
8c94742935
asahi: Guard for overflow when packing
...
I'm not convinced this is right.
Signed-off-by: Alyssa Rosenzweig <alyssa@rosenzweig.io >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11718 >
2021-07-05 20:56:04 +00:00
Alyssa Rosenzweig
41d05ea49e
asahi: Fix random *2
...
Accidentally committed at some point.
Signed-off-by: Alyssa Rosenzweig <alyssa@rosenzweig.io >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11718 >
2021-07-05 20:56:04 +00:00
Alyssa Rosenzweig
b9789ae45a
asahi: Wire in tgsi_to_nir
...
Gets GALLIUM_HUD working.
Signed-off-by: Alyssa Rosenzweig <alyssa@rosenzweig.io >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11718 >
2021-07-05 20:56:04 +00:00
Alyssa Rosenzweig
a1f732e67b
agx: Track logical control flow graph
...
Logic lifted from the Bifrost compiler, which was a copypaste of the Midgard
compiler, which was based on a faulty understanding of the v3d compiler,
which...
Signed-off-by: Alyssa Rosenzweig <alyssa@rosenzweig.io >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11718 >
2021-07-05 20:56:04 +00:00
Alyssa Rosenzweig
a207c77314
agx: Lift agx_block_add_successor from Panfrost
...
Signed-off-by: Alyssa Rosenzweig <alyssa@collabora.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11718 >
2021-07-05 20:56:04 +00:00
Alyssa Rosenzweig
2e1ba82060
agx: Count write registers, not components
...
Signed-off-by: Alyssa Rosenzweig <alyssa@rosenzweig.io >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11718 >
2021-07-05 20:56:04 +00:00
Alyssa Rosenzweig
0ef93554e1
agx: Mark sources that kill
...
Trivially computed during liveness analysis (already a byproduct!) and required
for efficient register allocation.
Signed-off-by: Alyssa Rosenzweig <alyssa@rosenzweig.io >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11718 >
2021-07-05 20:56:04 +00:00
Alyssa Rosenzweig
7972e74f40
agx: Add liveness analysis pass
...
Based on the Panfrost one, scalarized and with some silly things fixed.
Signed-off-by: Alyssa Rosenzweig <alyssa@rosenzweig.io >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11718 >
2021-07-05 20:56:04 +00:00
Alyssa Rosenzweig
ec40620f86
agx: Add agx_exit_block helper
...
Signed-off-by: Alyssa Rosenzweig <alyssa@rosenzweig.io >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11718 >
2021-07-05 20:56:04 +00:00
Alyssa Rosenzweig
ebd25e7ee7
agx: Pull out agx_write_components
...
Signed-off-by: Alyssa Rosenzweig <alyssa@rosenzweig.io >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11718 >
2021-07-05 20:56:04 +00:00
Alyssa Rosenzweig
f49ba0874a
asahi: Unify varying linking code with vertex shaders
...
Signed-off-by: Alyssa Rosenzweig <alyssa@rosenzweig.io >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11718 >
2021-07-05 20:56:04 +00:00
Alyssa Rosenzweig
6a657b17b9
agx: Remap fragment shader varyings explicitly
...
Needed to handle fragcoord.z correctly, for example. Step 1, at least.
Signed-off-by: Alyssa Rosenzweig <alyssa@rosenzweig.io >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11718 >
2021-07-05 20:56:04 +00:00
Alyssa Rosenzweig
32f4be5dd7
agx: Rename agx_pack to agx_pack_binary
...
Conflicts with GenXML.
Signed-off-by: Alyssa Rosenzweig <alyssa@rosenzweig.io >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11718 >
2021-07-05 20:56:04 +00:00
Alyssa Rosenzweig
bf8d1734fd
agx: Implement ld_vary_flat
...
Not clear what any of this is for but let's be nice and match the blob.
Signed-off-by: Alyssa Rosenzweig <alyssa@rosenzweig.io >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11718 >
2021-07-05 20:56:04 +00:00
Alyssa Rosenzweig
3eab648d6b
agx: Implement nir_intrinsic_load_frag_coord
...
Depends on matching ABI.
Signed-off-by: Alyssa Rosenzweig <alyssa@rosenzweig.io >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11718 >
2021-07-05 20:56:03 +00:00
Alyssa Rosenzweig
8457524238
agx: Rename remap_varyings -> remap_varyings_vs
...
Want to do the same for fragment shaders.
Signed-off-by: Alyssa Rosenzweig <alyssa@rosenzweig.io >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11718 >
2021-07-05 20:56:03 +00:00
Alyssa Rosenzweig
eabcf9f31e
asahi: Identify varying descriptor fields
...
Signed-off-by: Alyssa Rosenzweig <alyssa@rosenzweig.io >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11718 >
2021-07-05 20:56:03 +00:00
Alyssa Rosenzweig
3d3e4928b2
agx: Add ld_vary_flat opcode
...
Signed-off-by: Alyssa Rosenzweig <alyssa@rosenzweig.io >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11718 >
2021-07-05 20:56:03 +00:00
Alyssa Rosenzweig
10b8563966
agx: Update ld_vary encoding mask
...
Signed-off-by: Alyssa Rosenzweig <alyssa@rosenzweig.io >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11718 >
2021-07-05 20:56:03 +00:00
Alyssa Rosenzweig
99b67ab355
agx: Add perspective bit to ld_var
...
Signed-off-by: Alyssa Rosenzweig <alyssa@rosenzweig.io >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11718 >
2021-07-05 20:56:03 +00:00
Alyssa Rosenzweig
ef808205c6
agx: Add agx_immediate_f helper
...
Signed-off-by: Alyssa Rosenzweig <alyssa@rosenzweig.io >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11718 >
2021-07-05 20:56:03 +00:00
Alyssa Rosenzweig
be4d88a6ba
agx: Mark components as ASSERTED
...
Prevents a release build warning.
Signed-off-by: Alyssa Rosenzweig <alyssa@rosenzweig.io >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11718 >
2021-07-05 20:56:03 +00:00
Thomas H.P. Andersen
8795501cef
lavapipe: remove initialization override
...
These are duplicates from a few lines up
Reviewed-by: Dave Airlie <airlied@redhat.com >
Reviewed-by: Roland Scheidegger <sroland@vmware.com >
Reviewed-By: Mike Blumenkrantz <michael.blumenkrantz@gmail.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11703 >
2021-07-05 19:49:32 +00:00
Thomas H.P. Andersen
349f169756
zink: remove initialization override
...
These are duplicates from a few lines up
Reviewed-by: Dave Airlie <airlied@redhat.com >
Reviewed-by: Roland Scheidegger <sroland@vmware.com >
Reviewed-By: Mike Blumenkrantz <michael.blumenkrantz@gmail.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11703 >
2021-07-05 19:49:32 +00:00
Bas Nieuwenhuizen
406c87b779
radv: Support address capture and replay.
...
Reviewed-by: Samuel Pitoiset <samuel.pitoiset@gmail.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10570 >
2021-07-05 17:27:51 +00:00
Bas Nieuwenhuizen
f9cc94af7b
radv/winsys: Add support for a fixed VA address for replay.
...
Reviewed-by: Samuel Pitoiset <samuel.pitoiset@gmail.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10570 >
2021-07-05 17:27:51 +00:00
Bas Nieuwenhuizen
8025b4120f
radv/winsys: Return vulkan errors for buffer creation.
...
Reviewed-by: Samuel Pitoiset <samuel.pitoiset@gmail.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10570 >
2021-07-05 17:27:51 +00:00
Bas Nieuwenhuizen
c88d1bace3
meson: Bump libdrm for amdgpu to 2.4.107.
...
For capture/replay va stability.
Reviewed-by: Samuel Pitoiset <samuel.pitoiset@gmail.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10570 >
2021-07-05 17:27:51 +00:00
Danylo Piliaiev
c0f623e62f
glsl: Prohibit implicit conversion of mem parameter in atomicOP functions
...
Per OpenGL Shading Language, section 8.11. "Atomic Memory Functions"
first argument "mem" of all atomicOP functions is inout.
The same is true for ARB_shader_storage_buffer_object and
GL_INTEL_shader_atomic_float_minmax
For implicit conversion of inout parameters it is required for type
to support bi-directional conversion, since there is no such types
in glsl - implicit conversion is effectively prohibited.
Alternatively we could have marked atomic_var parameter of built-in
atomicOP functions as inout, however it opens another can of worms
during NIR lowerings.
Fixes: ea0a1f5beb
Closes: https://gitlab.freedesktop.org/mesa/mesa/-/issues/2837
Signed-off-by: Danylo Piliaiev <danylo.piliaiev@globallogic.com >
Reviewed-by: Timothy Arceri <tarceri@itsqueeze.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/4887 >
2021-07-05 18:29:51 +03:00
Mike Blumenkrantz
5c77f99c2e
zink: ci updates for wideline fails
...
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11041 >
2021-07-05 14:14:40 +00:00
Mike Blumenkrantz
3292a9d660
lavapipe: wideLines support
...
easy enough
Reviewed-by: Dave Airlie <airlied@redhat.com >
Reviewed-by: Roland Scheidegger <sroland@vmware.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11041 >
2021-07-05 14:14:40 +00:00
Tomeu Vizoso
1e23004600
panvk: Add vkEvents support
...
Use syncobjs to implement vkEvents (as suggested by Boris).
Signed-off-by: Tomeu Vizoso <tomeu.vizoso@collabora.com >
Reviewed-by: Boris Brezillon <boris.brezillon@collabora.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11709 >
2021-07-05 15:08:05 +02:00
Tomeu Vizoso
5defffaa4d
panfrost: Specify alignment for the Job Header descriptor
...
Signed-off-by: Tomeu Vizoso <tomeu.vizoso@collabora.com >
Reviewed-by: Boris Brezillon <boris.brezillon@collabora.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11709 >
2021-07-05 15:08:05 +02:00
Tomeu Vizoso
5997f18d8a
panvk: Make panvk_queue_transfer_sync more generic
...
Have it accept a syncobj so it can be used in a future commit.
Signed-off-by: Tomeu Vizoso <tomeu.vizoso@collabora.com >
Reviewed-by: Boris Brezillon <boris.brezillon@collabora.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11709 >
2021-07-05 15:08:05 +02:00
Tomeu Vizoso
839eeaf306
panvk: Support calls to CreateDescriptorSetLayout without bindings
...
Signed-off-by: Tomeu Vizoso <tomeu.vizoso@collabora.com >
Reviewed-by: Boris Brezillon <boris.brezillon@collabora.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11709 >
2021-07-05 15:08:05 +02:00
Rohan Garg
bff39be64d
ci: Don't artifact rendered images when job succeeds
...
Signed-off-by: Rohan Garg <rohan.garg@collabora.com >
Reviewed-by: Tomeu Vizoso <tomeu.vizoso@collabora.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11088 >
2021-07-05 11:39:08 +00:00
Samuel Pitoiset
585332caf8
ci: remove few CTS that are now skipped with RADV
...
Some expected list of failures were actually outdated.
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/11712 >
2021-07-05 12:07:45 +02:00
Samuel Pitoiset
32e4552ca5
ci: update list of expected failures against CTS 1.2.6.2 for RADV
...
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/11712 >
2021-07-05 12:07:41 +02:00
Mike Blumenkrantz
9fbf6b2abf
lavapipe: implement VK_EXT_line_rasterization
...
rectangular and strict lines aren't supported in this, and multisampling
must be disabled for correct line rasterization
Reviewed-by: Dave Airlie <airlied@redhat.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11066 >
2021-07-05 07:14:29 +00:00
Mike Blumenkrantz
73ad0bcfd8
lavapipe: store the geometry shader prim type to render state
...
Reviewed-by: Dave Airlie <airlied@redhat.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11066 >
2021-07-05 07:14:29 +00:00
Mike Blumenkrantz
fba6dafb9f
lavapipe: store whether the geometry shader outputs GL_LINES
...
Reviewed-by: Dave Airlie <airlied@redhat.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11066 >
2021-07-05 07:14:29 +00:00
Tomeu Vizoso
9a0e0af497
panvk: Add VkCommandPool support
...
Mostly just copied from turnip.
Signed-off-by: Tomeu Vizoso <tomeu.vizoso@collabora.com >
Reviewed-by: Boris Brezillon <boris.brezillon@collabora.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11695 >
2021-07-05 05:43:49 +00:00
Boris Brezillon
d629debaca
panvk: Support returning BOs allocated by panvk_pool to a 'free BO' pool
...
So all CommandBuffers in a given CommandPool can reuse BOs for their
memory pools.
Signed-off-by: Boris Brezillon <boris.brezillon@collabora.com >
Reviewed-by: Tomeu Vizoso <tomeu.vizoso@collabora.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11695 >
2021-07-05 05:43:49 +00:00
Tomeu Vizoso
d33a3fad64
panfrost: Fork pan_pool for Gallium and Vulkan
...
This commit adds the actual implementations, allowing to diverge while
still sharing code that depends on pool functionality.
Signed-off-by: Tomeu Vizoso <tomeu.vizoso@collabora.com >
Suggested-by: Boris Brezillon <boris.brezillon@collabora.com >
Reviewed-by: Boris Brezillon <boris.brezillon@collabora.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11695 >
2021-07-05 05:43:49 +00:00
Boris Brezillon
deb4074a54
panfrost: Start splitting the panfrost pool logic
...
The Gallium and Vulkan drivers will soon use different memory pool
implementation, but some pieces in libpanfrost depend on pan_pool. Let's
split the implementation so we have common bits still available while
letting the drivers implement what really matters: the allocation logic.
All the generic pieces are prefixed pan_pool, and what will become the
gallium implementation is prefixed panfrost_pool. We'll then duplicate
the panfrost_pool bits in panvk and prefix it with panvk_pool, and
implementations will start diverging from there.
Signed-off-by: Boris Brezillon <boris.brezillon@collabora.com >
Reviewed-by: Tomeu Vizoso <tomeu.vizoso@collabora.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11695 >
2021-07-05 05:43:49 +00:00
Boris Brezillon
4f0896ea4f
panvk: Use the desc alloctor when we can
...
Signed-off-by: Boris Brezillon <boris.brezillon@collabora.com >
Reviewed-by: Tomeu Vizoso <tomeu.vizoso@collabora.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11695 >
2021-07-05 05:43:49 +00:00
Boris Brezillon
d873045b07
panfrost: Allocate WRITE_VALUE jobs with panfrost_pool_alloc_desc()
...
Signed-off-by: Boris Brezillon <boris.brezillon@collabora.com >
Reviewed-by: Tomeu Vizoso <tomeu.vizoso@collabora.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11695 >
2021-07-05 05:43:49 +00:00
Boris Brezillon
55ec3596f5
panfrost: Add alignment info to write-value and cache-flush jobs
...
Signed-off-by: Boris Brezillon <boris.brezillon@collabora.com >
Reviewed-by: Tomeu Vizoso <tomeu.vizoso@collabora.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11695 >
2021-07-05 05:43:49 +00:00
Boris Brezillon
dea0c4ddd8
panfrost: Pass a memory pool to pan_blit_ctx_init()
...
Pass a memory pool to pan_blit_ctx_init() instead of creating a new pool.
Useful for Vulkan since the descriptor pool is at the command buffer
level and is thus shared by all blit batches. Doing this will save us a
BO ownership transfer.
Signed-off-by: Boris Brezillon <boris.brezillon@collabora.com >
Reviewed-by: Alyssa Rosenzweig <alyssa@collabora.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11695 >
2021-07-05 05:43:49 +00:00
Boris Brezillon
3cdbc1e8c0
panfrost: Don't add blit context BOs twice
...
The transient_bo has already been added to the BO list, no need to call
panfrost_batch_add_bo() a second time on the same BO.
Signed-off-by: Boris Brezillon <boris.brezillon@collabora.com >
Reviewed-by: Alyssa Rosenzweig <alyssa@collabora.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11695 >
2021-07-05 05:43:49 +00:00
Dave Airlie
b4d87a34c7
crocus: restrict prim_restart on index buffer check to pre-hsw
...
This code has no use on hsw or chv
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11707 >
2021-07-05 15:03:48 +10:00
Dave Airlie
6909b4a75a
crocus: reorder version checks on indirect xfb
...
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11707 >
2021-07-05 15:03:48 +10:00
Dave Airlie
063d7bfa1c
crocus: inline group_index<->bti
...
this is on a fastpath for ubo emission
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11707 >
2021-07-05 15:03:48 +10:00
Dave Airlie
be5bb3146a
crocus: optimise bo_unref path a little.
...
This just splits it into the atomic/non-atomic paths
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11707 >
2021-07-05 15:03:48 +10:00
Dave Airlie
a907e29a3e
crocus: don't update draw parameters unless needed
...
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11707 >
2021-07-05 15:03:48 +10:00
Dave Airlie
1d438c11c8
crocus: inline the d/s resource handling functions
...
These are pretty simple, so inlining is fine and helps drawoverhead
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11707 >
2021-07-05 14:47:30 +10:00
Dave Airlie
f19f3f5496
draw/tess: write correct primitive id into vertices
...
The code was using a prim assembler after the tess stage, however
tess prims aren't necessarily the output prim types, so just put
the prim ids into the vertices at tess stage, and skip prim assembly.
Reviewed-by: Roland Scheidegger <sroland@vmware.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11000 >
2021-07-05 14:07:39 +10:00
Dave Airlie
45d9e8bb99
draw: fix tessellation output vertex size calculation
...
This ensures space for the extra outputs is calculated in the
tes vertex outputs.
dEQP-VK.pipeline.misc.primitive_id_from_tess
Fixes: dacf8f5f5c ("draw: hook up final bits of tessellation")
Reviewed-by: Roland Scheidegger <sroland@vmware.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11000 >
2021-07-05 14:07:34 +10:00
Dave Airlie
0aab06e6d3
crocus: fixup index buffer dirtying.
...
This fixes a possible problem if a non-indexed draw comes in first
in a new batch, then the batch might not emit the index buffer.
I'm unsure if we see this, I just spotted it trying to fix alacritty
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11705 >
2021-07-05 12:45:13 +10:00
Dave Airlie
32b8d47306
crocus: fix crash on index buffer rebinding.
...
This was crashing in plasmashell.
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11704 >
2021-07-05 01:47:32 +00:00
Dave Airlie
d41992c241
crocus/gen5: enable support for GL_EXT_gpu_shader4
...
There has been a few requests for this and I've got patches for glamor
to use this to speed up the paths that use GLSL 1.30 now.
Reviewed-by: Adam Jackson <ajax@redhat.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11693 >
2021-07-05 06:56:18 +10:00
Dave Airlie
c71daec260
crocus: expose ARB_blend_func_extended on gen 45/50
...
In theory the docs say 965gm can support this but the original
965 can't, but we can't distinguish that yet.
Reviewed-by: Adam Jackson <ajax@redhat.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11693 >
2021-07-05 06:56:15 +10:00
Dave Airlie
64f65fe8a8
crocus: cleanup some deadcode in the gen5 blend emit
...
The rt->blend_enable is always 1 at this point, and the gen5
specific code isn't being used anymore, it just looked like it
was.
Reviewed-by: Adam Jackson <ajax@redhat.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11693 >
2021-07-05 06:56:11 +10:00
Thomas H.P. Andersen
ffea622604
nir/ifind_msb_rev: fix input check
...
ifind_msb_rev was introduced in a5747f8ab3 .
ifind_msb_rev guards against src0 being both 0 or -1 at the same time.
That is always true. This patch changes it to check for those values
individually.
Spotted from a compile warning.
Reviewed-by: Ian Romanick <ian.d.romanick@intel.com >
Fixes: a5747f8ab3 (\"nir: add opcodes for *find_msb_rev and lowering\")
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11630 >
2021-07-04 12:17:58 +00:00
Dave Airlie
4504fabed6
iris: make iris_bind_reserve_3d and Wa_1604061319 only check for dirty render bindings
...
+ 9.31% drawover:gdrv0 iris_dri.so [.] iris_binder_reserve_3d
+ 2.36% drawover:gdrv0 iris_dri.so [.] iris_binder_reserve_3d
If the app never uses compute, then the compute bindings bit will always
be dirty causing these two paths never get shortcuts.
Reviewed-by: Kenneth Graunke <kenneth@whitecape.org >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11699 >
2021-07-03 23:37:57 -07:00
Icecream95
c246af0dd8
panfrost: Only upload UBOs when needed
...
If all of the used values from a UBO are pushed, it doesn't need to be
uploaded.
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11700 >
2021-07-03 13:23:29 +00:00
Icecream95
b8a7355c03
pan/mdg: Create a mask of UBOs that need to be uploaded
...
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11700 >
2021-07-03 13:23:29 +00:00
Icecream95
aa11c0307a
pan/bi: Create a mask of UBOs that need to be uploaded
...
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11700 >
2021-07-03 13:23:29 +00:00
Icecream95
d0e90c336d
panfrost: Don't set dirty_mask for constant buffers
...
It is unused.
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11700 >
2021-07-03 13:23:29 +00:00
Zoltán Böszörményi
f94c796741
crocus: Make the driver loader use PCI IDs for crocus
...
Add PCI IDs based in pci_ids/i965_pci_ids.h and move crocus before
iris in driver_map[].
This allows Xorg to load the crocus driver since iris would claim
the devices handled by crocus (because the i915 kernel driver is
used for all Intel devices) then fail during initialization.
Signed-off-by: Zoltán Böszörményi <zboszor@gmail.com >
Reviewed-by: Dave Airlie <airlied@redhat.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11694 >
2021-07-03 06:34:33 +02:00
Zoltán Böszörményi
e309d1a3a3
crocus: Add pipe loader driver
...
Signed-off-by: Zoltán Böszörményi <zboszor@gmail.com >
Reviewed-by: Dave Airlie <airlied@redhat.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11694 >
2021-07-03 06:34:20 +02:00
Kenneth Graunke
469875596a
vulkan/wsi: Fix prime blits to use system memory for the destination
...
The intention here was to pass VK_MEMORY_PROPERTY_DEVICE_LOCAL_BIT to
select_memory_types() when requesting device local memory, or simply
pass 0 for the prime blit destination which should be in system memory.
Unfortunately, that meant we did (type.propertyFlags & 0) == 0 which
was vacuously true, causing us to not filter out device local types.
Fixes hybrid display of Vulkan apps on Intel TGL+DG1 systems.
Tested-by: Luis Felipe Strano Moraes <luis.strano@intel.com >
Reviewed-by: Jason Ekstrand <jason@jlekstrand.net >
Reviewed-by: Lionel Landwerlin <lionel.g.landwerlin@intel.com >
Reviewed-by: Dave Airlie <airlied@redhat.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11680 >
2021-07-02 23:35:57 +00:00
Emma Anholt
c656c5f055
i915g: Make sure the 1D texture Y channel is initialized.
...
Even with the wrap mode forced to REPEAT, we get undefined results in
CelShading when the Y channel is unwritten since the beginning of the
program.
I dropped the coords==0 case in the process, since that's not possible and
made the 1D case confusing.
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11457 >
2021-07-02 21:18:07 +00:00
Emma Anholt
d0ac174fda
i915g: Force 1D textures to use wrap mode for the Y coordinate.
...
There are no 1D textures in HW, so we use 2D, but at the shader level
there no Y coordinate to 1D sampling, so we need that value to be ignored.
WRAP mode can get us that.
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11457 >
2021-07-02 21:18:07 +00:00
Adam Jackson
9cc4ce16fd
meson: Make prefer-{crocus,iris} always take effect
...
As written this would require that the driver be built before we looked
at the option. This is wrong because it affects code outside of the
driver, it's in libGL's PCI ID table. This is sort of harmless for
crocus at the moment, but for iris you would need to build it in order
to remove it from the table; if you built just i965 and tried to run it
against gen9, the libGL you just built would direct the loader to the
iris driver you just didn't, and setup would fail, which is: goofy.
Reviewed-by: Zoltán Böszörményi <zboszor@gmail.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11655 >
2021-07-02 19:18:42 +00:00
Kenneth Graunke
6e55890b6c
iris: Delete unused bo->cache_coherent flag
...
This was used in the heuristics for deciding whether to CPU map,
but those have since been deleted, so this is now unused.
Reviewed-by: Lionel Landwerlin <lionel.g.landwerlin@intel.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11644 >
2021-07-02 19:06:01 +00:00
Kenneth Graunke
a313bd7845
iris: Fail BO allocation if we can't enable snooping properly.
...
If the caller has asked for a coherent BO with snooping, and the kernel
fails to set it for whatever reason, we were happily returning them a
non-coherent buffer. This isn't what they wanted and could lead to
surprising results.
Better to simply fail the allocation. Probably.
Reviewed-by: Lionel Landwerlin <lionel.g.landwerlin@intel.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11644 >
2021-07-02 19:06:01 +00:00
Kenneth Graunke
803a2a9b3d
iris: Stop calling I915_GEM_SET_CACHING on discrete GPUs
...
On integrated GPUs without LLC, we enable snooping when someone requests
coherency for a buffer. (With LLC, it's already coherent.)
For discrete GPUs...if someone requests coherency, we allocate the
buffer in SMEM and resort to WC maps rather than WB maps with CPU
caches enabled. There's no snooping to enable, and calling this ioctl
is nonsensical, and may fail.
Reviewed-by: Lionel Landwerlin <lionel.g.landwerlin@intel.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11644 >
2021-07-02 19:06:01 +00:00
Emma Anholt
5c55f59b13
i915g: whitespace fixup from the cube map fix.
...
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11668 >
2021-07-02 15:36:27 +00:00
Emma Anholt
487a493325
i915g: Add support for per-vertex point size.
...
Closes : #4973
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11668 >
2021-07-02 15:36:27 +00:00
Samuel Pitoiset
e58ab64223
radv: allow more fast clears for depth surfaces without TC-compat HTILE
...
With HTILE only, all values between 0.0 and 1.0 are fetchable.
This should allow more fast clears for depth surfaces where
TC-compat HTILE is disabled.
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/10035 >
2021-07-02 13:23:38 +02:00
Samuel Pitoiset
269795c838
radv: prevent fast clearing HTILE depth for unrestricted ranges
...
VK_EXT_depth_range_unrestricted removes the restriction that the
clear value must be between 0.0 and 1.0.
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/10035 >
2021-07-02 13:23:36 +02:00
Samuel Pitoiset
0cfeb93751
radv: add support for more HTILE clear codes
...
The HTILE clear code is now computed based on the floating point value.
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/10035 >
2021-07-02 13:23:32 +02:00
Samuel Pitoiset
764960e16d
radv: advertise VK_EXT_color_write_enable
...
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/11530 >
2021-07-02 10:02:02 +00:00
Samuel Pitoiset
9a95aba377
radv: implement VK_EXT_color_write_enable
...
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/11530 >
2021-07-02 10:02:02 +00:00
Michel Dänzer
61a2cfc302
Fix up leftover "state_trackers" references to "frontends"
...
Fixes: d6287a94b6 "gallium: rename 'state tracker' to 'frontend'"
Reviewed-by: Alyssa Rosenzweig <alyssa@collabora.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11676 >
2021-07-02 07:35:05 +00:00
Jesse Natalie
f8f2c3d835
nir_lower_readonly_images: Clear variable data when changing the type
...
For images, variable data includes the format. For samplers, variable
data is used for OpenCL inline samplers. When converting a variable
from one to the other, zero out the data so we don't accidentally
interpret a converted image as an inline sampler.
Fixes: fa677c86 ("nir_lower_readonly_images_to_tex: Support non-CL semantics")
Acked-by: Enrico Galli <enrico.galli@intel.com >
Reviewed-by: Jason Ekstrand <jason@jlekstrand.net >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11674 >
2021-07-02 04:24:22 +00:00
Mike Blumenkrantz
25ad69968b
zink: check last_finished before timeline waiting
...
Reviewed-by: Dave Airlie <airlied@redhat.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11686 >
2021-07-02 03:40:45 +00:00
Mike Blumenkrantz
fd633c2444
zink: add a screen function for waiting on a batch id
...
this is super hacky for the non-timeline case but whatever
Reviewed-by: Dave Airlie <airlied@redhat.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11686 >
2021-07-02 03:40:45 +00:00
Mike Blumenkrantz
347163aec2
zink: stop screwing up buffer offsets during for maps
...
stop using the memory bind offset
Reviewed-by: Dave Airlie <airlied@redhat.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11687 >
2021-07-02 03:29:04 +00:00
Mike Blumenkrantz
97da7f635e
zink: use 0 as the offset when mapping qbos
...
zink_resource_object::offset is the memory offset, which is unrelated to
the offset in a buffer
Reviewed-by: Dave Airlie <airlied@redhat.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11687 >
2021-07-02 03:29:04 +00:00
Mike Blumenkrantz
9be640ff21
zink: use pipe_resource::width0 for clamping ssbo sizes
...
zink_resource_object::size is the size of the memory allocation, which
is effectively unrelated
Reviewed-by: Dave Airlie <airlied@redhat.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11687 >
2021-07-02 03:29:04 +00:00
Mike Blumenkrantz
46695dd938
zink: don't add mem allocation offset when copying buf2image
...
this doesn't apply to any image/buffer operations, it's solely for memory
allocation/binding/mapping
Reviewed-by: Dave Airlie <airlied@redhat.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11687 >
2021-07-02 03:29:04 +00:00
Mike Blumenkrantz
f223ee9004
zink: only flag persistent resource maps for invalidation if they aren't coherent
...
coherent is already synchronized
Reviewed-by: Dave Airlie <airlied@redhat.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11688 >
2021-07-02 03:18:19 +00:00
Mike Blumenkrantz
b416b68ef3
zink: use vkresult helper for map return
...
consistency++
Reviewed-by: Dave Airlie <airlied@redhat.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11689 >
2021-07-02 03:10:12 +00:00
Daniel Stone
d40f8a2fcb
util/disk_cache: Don't leak when cache is empty
...
When we exit early having failed to find any candidate cache files to
evict, don't leak the list head whilst doing so.
Signed-off-by: Daniel Stone <daniels@collabora.com >
Fixes: f58e6fee74 ("util/disk_cache: delete more cache items in one go when full")
Ref: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11523 >
Reviewed-By: Mike Blumenkrantz <michael.blumenkrantz@gmail.com >
Reviewed-by: Timothy Arceri <tarceri@itsqueeze.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11682 >
2021-07-02 01:54:10 +00:00
Mike Blumenkrantz
19cf64aabd
zink: add resource refs after last descriptor unbind
...
redundant at this point; no functional changes
Reviewed-by: Dave Airlie <airlied@redhat.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11684 >
2021-07-02 01:38:04 +00:00
Mike Blumenkrantz
f8bd5911ee
zink: split samplerview/imageview usage/refcounting calls
...
Reviewed-by: Dave Airlie <airlied@redhat.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11684 >
2021-07-02 01:38:04 +00:00
Mike Blumenkrantz
6acd2e9de3
zink: split batch usage setting from refcounting
...
batch tracking has until now been the same as refcounting, but this
is inefficient and incurs additional overhead from constant atomic ops,
so make them separate
Reviewed-by: Dave Airlie <airlied@redhat.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11684 >
2021-07-02 01:38:04 +00:00
Mike Blumenkrantz
b302ab5167
zink: split out resource tracking into more incremental functions
...
Reviewed-by: Dave Airlie <airlied@redhat.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11684 >
2021-07-02 01:38:04 +00:00
Mike Blumenkrantz
72354df9c4
zink: remove stencil resource batch tracking
...
I think maybe I misunderstood how things worked, or there were issues
generally with resource lifetimes, or whatever, but this isn't needed anymore
Reviewed-by: Dave Airlie <airlied@redhat.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11684 >
2021-07-02 01:38:04 +00:00
Mike Blumenkrantz
ebbedb1c00
zink: don't add batch tracking during buffer rebinds if refs are dirty
...
this will be handled automatically
Reviewed-by: Dave Airlie <airlied@redhat.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11684 >
2021-07-02 01:38:04 +00:00
Mike Blumenkrantz
539bdcd469
zink: add more explicit casts to draw code
...
this makes c++ happy
Reviewed-by: Dave Airlie <airlied@redhat.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11685 >
2021-07-01 21:13:17 -04:00
Mike Blumenkrantz
b432bdc035
zink: add c++ header guards
...
Reviewed-by: Dave Airlie <airlied@redhat.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11685 >
2021-07-01 21:13:06 -04:00
Mike Blumenkrantz
ccf6ea3070
zink: remove unnecessary return from zink_desc_type_from_vktype()
...
this doesn't compile in c++
Reviewed-by: Dave Airlie <airlied@redhat.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11685 >
2021-07-01 21:12:19 -04:00
Mike Blumenkrantz
742805b1d7
zink: rename 'template' struct member
...
this is a c++ keyword
Reviewed-by: Dave Airlie <airlied@redhat.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11685 >
2021-07-01 21:12:15 -04:00
Mike Blumenkrantz
48adc08b2d
zink: make prim type a bitfield in pipeline info
...
match draw info here
Reviewed-by: Dave Airlie <airlied@redhat.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11685 >
2021-07-01 21:11:35 -04:00
Alyssa Rosenzweig
3da23a9c7e
nir: Fix constant folding for irhadd/urhadd
...
This should be a subtract, not an add. The comment's proof is correct,
but the (wrong) expression we actually use isn't what it's in the
comment! Correct the discrepancy.
The lowering in nir_opt_algebraic was correctly typed.
Fixes: 272e927d0e ("nir/spirv: initial handling of OpenCL.std extension opcodes")
Signed-off-by: Alyssa Rosenzweig <alyssa@collabora.com >
Reviewed-by: Jason Ekstrand <jason@jlekstrand.net >
Reviewed-by: Karol Herbst <kherbst@redhat.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11671 >
2021-07-02 00:21:22 +00:00
Mike Blumenkrantz
ce90f73eb0
zink: rework pipeline cache implementation
...
this is now a screen-based queue which can be triggered to serialize
cache updates, ensuring synchronization
the cache is on the program object, enabling incremental updates as well as
variant loading for an entire pipeline collection at once
Reviewed-by: Dave Airlie <airlied@redhat.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11595 >
2021-07-02 00:09:33 +00:00
Mike Blumenkrantz
8da06994cf
zink: merge some streamout state emission into the same draw conditional
...
Reviewed-by: Dave Airlie <airlied@redhat.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11667 >
2021-07-01 23:58:53 +00:00
Mike Blumenkrantz
f97fa6f5f5
zink: move line width and depth bias updating into conditional during draw
...
only do calculations when needed
Reviewed-by: Dave Airlie <airlied@redhat.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11667 >
2021-07-01 23:58:53 +00:00
Mike Blumenkrantz
22530ad9f1
zink: unify fb surface unbinding
...
Reviewed-by: Dave Airlie <airlied@redhat.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11666 >
2021-07-01 23:47:18 +00:00
Mike Blumenkrantz
e58eb3f269
zink: add a ref for flush resource
...
the lifetime of this needs to always be preserved
Reviewed-by: Dave Airlie <airlied@redhat.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11665 >
2021-07-01 23:04:34 +00:00
Mike Blumenkrantz
005262863f
zink: break up ctx descriptor state updating to per-type functions
...
this is a bit easier to read/manage going forward
Reviewed-by: Dave Airlie <airlied@redhat.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11664 >
2021-07-01 22:53:51 +00:00
Mike Blumenkrantz
6368f9453a
zink: unify/consolidate some barrier queuing
...
this queuing is based on bind counts, and it's all the same, so it
can mostly be combined for better reuse
Reviewed-by: Dave Airlie <airlied@redhat.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11663 >
2021-07-01 22:42:34 +00:00
Mike Blumenkrantz
2d32d123e5
zink: avoid unnecessarily rewriting gl_DrawID
...
with tc enabled, we get genuine multidraws with valid drawids, so we can
update this to reflect the new capabilities...which are the same as the old
ones except that potentially some drivers can now do direct multidraws
Reviewed-by: Dave Airlie <airlied@redhat.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11662 >
2021-07-01 22:30:55 +00:00
Jesse Natalie
02efc5a099
microsoft/compiler: Change behavior for emitting inexpressible barriers
...
If the barrier tries to apply to memory that we can't express, just
don't apply the memory portion of the barrier. Similarly, if it tries
to apply a global memory barrier at invocation level, upgrade it to
thread-group.
Reviewed-by: Enrico Galli <enrico.galli@intel.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11670 >
2021-07-01 21:05:14 +00:00
Jason Ekstrand
938ce8cdaf
docs/isl/tiling: Fix swizzle pattern for X-tiling
...
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11679 >
2021-07-01 14:07:42 -05:00
Georg Lehmann
adbd63e24d
lavapipe: Add a missing VKAPI_ATTR.
...
Signed-off-by: Georg Lehmann's avatarGeorg Lehmann <dadschoorse@gmail.com >
Reviewed-by: Mike Blumenkrantz <michael.blumenkrantz@gmail.com >
Reviewed-by: Dave Airlie <airlied@redhat.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11114 >
2021-07-01 17:09:02 +00:00
Georg Lehmann
0556173918
lavapipe: Use common default allocator.
...
Signed-off-by: Georg Lehmann <dadschoorse@gmail.com >
Reviewed-by: Dave Airlie <airlied@redhat.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11114 >
2021-07-01 17:09:02 +00:00
Luis Felipe Strano Moraes
daf3d9e1eb
overlay_layer: add missing undef
...
reviewed-by: Dylan Baker <dylan@pnwbakers.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11673 >
2021-07-01 16:42:07 +00:00
Luis Felipe Strano Moraes
7f8652d72d
meson: print information about layers being built as part of summary
...
reviewed-by: Dylan Baker <dylan@pnwbakers.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11673 >
2021-07-01 16:42:07 +00:00
Erik Faye-Lund
669b6889e4
gallium/u_threaded: do not apply start twice
...
We already apply start when setting the bits in writable_buffer, so
shifting the bits up by start just makes us apply the offset twice.
Caught by Coverity.
Fixes: 988d091720 ("gallium/u_threaded: clear valid buffer range only if it's not bound for write")
Reviewed-by: Marek Olšák <marek.olsak@amd.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11635 >
2021-07-01 11:57:49 +00:00
Samuel Pitoiset
28e1b02a6f
radv: disable DCC for DOOM 2016 and Wolfenstein II
...
Both games perform two image layout transitions with the same image
in the same pipeline barrier with UNDEFINED and this re-initializes
DCC to the uncompressed state. No ideal solution sadly. Note that
both games declare all images as CONCURRENT.
This fixes rendering issues on GFX10+ because DCC for stores is
supported and this implicitly enables DCC for concurrent.
Fixes: da166f648f ("radv: enable DCC for concurrent images on GFX10")
Closes: https://gitlab.freedesktop.org/mesa/mesa/-/issues/4927
Closes: https://gitlab.freedesktop.org/mesa/mesa/-/issues/4607
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/11656 >
2021-07-01 11:09:22 +00:00
Dave Airlie
d9c0687a54
zink: drop getenv hacking now that gallium is fixed.
...
This drops the getenv hacks which cause problems testing multithread apps
Reviewed-By: Mike Blumenkrantz <michael.blumenkrantz@gmail.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11643 >
2021-07-01 10:27:44 +00:00
Dave Airlie
75a8246563
gallium/sw: add sw_vk bit to avoid having to futz with env vars for lavapipe
...
lavapipe really only currently works with llvmpipe, and likely for the forseeable
future.
Reviewed-By: Mike Blumenkrantz <michael.blumenkrantz@gmail.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11643 >
2021-07-01 10:27:44 +00:00
Rhys Perry
ed123a03be
radv: enable VK_KHR_shader_subgroup_uniform_control_flow
...
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/11626 >
2021-07-01 10:01:52 +00:00
Rhys Perry
a9c4a31d8d
aco: handle NIR loops without breaks
...
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/11626 >
2021-07-01 10:01:52 +00:00
Juan A. Suarez Romero
fd5c787958
ci: update VK-GL-CTS to 1.2.6.2
...
v1:
- Fix typos (Emma)
- Remove needless sort (Adam)
Reviewed-by: Emma Anholt <emma@anholt.net >
Signed-off-by: Juan A. Suarez Romero <jasuarez@igalia.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11654 >
2021-07-01 08:12:31 +00:00
Daniel Stone
0c09498fe9
Revert "CI: Disable LAVA devices for maintenance"
...
This actually came back a few hours ago.
This reverts commit b07dc014c4 .
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11669 >
2021-07-01 06:59:07 +00:00
Hyunjun Ko
9507705693
turnip/kgsl: new flag TU_USE_KGSL
...
There are some cases using kgsl backend on linux that is still not usual
setup though, we need to consider too.
Regarding the timeline semaphore feature, we could implement it for
the kgsl backend in the future, and probalby it should be using the
existing code in tu_drm.
See #4738 , #4907
Signed-off-by: Hyunjun Ko <zzoon@igalia.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11488 >
2021-07-01 04:22:55 +00:00
Yiwei Zhang
73c71a37f4
venus: fix AHB VkBuffer memory requirement
...
Layering AHB on top of dma_buf_fd requires venus to combine the memory
type bits internally for VkBuffer.
Signed-off-by: Yiwei Zhang <zzyiwei@chromium.org >
Reviewed-by: Chia-I Wu <olvaffe@gmail.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11661 >
2021-07-01 03:42:24 +00:00
Yiwei Zhang
4f2b98dc40
venus: handle ahb backed VkBuffer creation properly
...
Venus needs to override the external handle type from AHB to dma buf.
Signed-off-by: Yiwei Zhang <zzyiwei@chromium.org >
Reviewed-by: Chia-I Wu <olvaffe@gmail.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11661 >
2021-07-01 03:42:24 +00:00
Yiwei Zhang
3527146a26
venus: prepare vn_CreateBuffer for AHB
...
Signed-off-by: Yiwei Zhang <zzyiwei@chromium.org >
Reviewed-by: Chia-I Wu <olvaffe@gmail.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11661 >
2021-07-01 03:42:24 +00:00
Yiwei Zhang
0ea726b5fd
venus: add more logs for Android WSI debugging
...
Signed-off-by: Yiwei Zhang <zzyiwei@chromium.org >
Reviewed-by: Chia-I Wu <olvaffe@gmail.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11661 >
2021-07-01 03:42:24 +00:00
Mike Blumenkrantz
5951d2abac
lavapipe: implement EXT_vertex_input_dynamic_state
...
Reviewed-by: Dave Airlie <airlied@redhat.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11231 >
2021-07-01 00:37:08 +00:00
Mike Blumenkrantz
87b089c711
lavapipe: hook up some bits for handling dynamic line stipple state
...
this won't actually work, but it stubs out some (functional) placeholder
code for later code to build on
Reviewed-by: Dave Airlie <airlied@redhat.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11231 >
2021-07-01 00:37:08 +00:00
Thomas H.P. Andersen
85de630273
anv: remove dead code
...
The unused bo_flags here is a leftover from the past. A similar
setup of bo_flags is now performed within anv_device_alloc_bo
via a call to anv_bo_alloc_flags_to_bo_flags.
Reviewed-by: Marcin Ślusarz <marcin.slusarz@intel.com >
Reviewed-by: Lionel Landwerlin <lionel.g.landwerlin@intel.com >
Reviewed-by: Jason Ekstrand <jason@jlekstrand.net >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11645 >
2021-06-30 22:34:42 +00:00
Emma Anholt
4300853edc
freedreno: Flush the shadowed resource's write batch up front.
...
This simplifies my mental model of the swapping/blit process for resource
shadowing.
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11544 >
2021-06-30 21:39:11 +00:00
Emma Anholt
88161ced8d
freedreno: Swap needs_ubwc_clear when shadowing.
...
The destination of the upcoming blit (the old rsc struct that houses the
fresh BO) wouldn't have its ubwc cleared first, which if it got
unfortunate data in a recycled BO could lead to blit failures.
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11544 >
2021-06-30 21:39:11 +00:00
Emma Anholt
ed1f1dea28
freedreno: Stop manually marking blit dst buffers as valid.
...
fd_batch_resource_write() does this already.
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11544 >
2021-06-30 21:39:11 +00:00
Emma Anholt
514aa01853
freedreno/a5xx: Make sure to mark blit read/write access in the BC.
...
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11544 >
2021-06-30 21:39:11 +00:00
Emma Anholt
f413b30ad4
freedreno: swap ->valid when shadowing resources.
...
The valid flag indicates whether the bo has had any data written to it.
Failure to swap it meant that if for some reason we fell back to SW
mappings during the blit from shadow, the PIPE_MAP_READ staging blit would
get dropped.
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11544 >
2021-06-30 21:39:11 +00:00
Emma Anholt
172082f235
freedreno: Update comments about PIPE_BUFFER shadowing.
...
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11544 >
2021-06-30 21:39:11 +00:00
Eric Engestrom
90071dc47c
docs/release-calendar: add a few more 21.1 releases
...
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11660 >
2021-06-30 19:44:28 +01:00
Eric Engestrom
830ff5a697
docs: update calendar and link releases notes for 21.1.4
...
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11660 >
2021-06-30 19:38:19 +01:00
Eric Engestrom
f37e482013
docs: add release notes for 21.1.4
...
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11660 >
2021-06-30 19:38:00 +01:00
Rhys Perry
c094765a01
aco: remove resource flags
...
After disabling SMEM stores, nir_opt_access() now does the same analysis
and we don't need this anymore. Doing it in isel is also too late if we
want to lower descriptor loads in NIR.
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/11652 >
2021-06-30 19:07:12 +01:00
Emma Anholt
fcc41b0631
i915g: Set up the cube map texture wrap modes.
...
There are HW limits on what you're allowed to do. No change on dEQP, but
one less thing for me to worry about with our busted cubes.
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11648 >
2021-06-30 17:42:56 +00:00
Emma Anholt
25ce136d23
i915g: Add curly braces for normal mesa style (and helps clang-format)
...
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11648 >
2021-06-30 17:42:56 +00:00
Emma Anholt
afe627ea70
i915g: Delete redundant i915_hw_sampler_views atom.
...
The i915_hw_samplers atom already updated both samplers and maps, since
both samplers and maps depend on parts of both the gallium sampler state
and the sampler view. Just move the samplers+views atom down to the
bottom of the file for legibility, and delete the views-only one.
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11648 >
2021-06-30 17:42:56 +00:00
Emma Anholt
7e75b1ca49
i915g: Fix FS debug dumping for declarations.
...
Samplers have a type, and non-samplers have a destination writemask.
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11648 >
2021-06-30 17:42:56 +00:00
Emma Anholt
99fccbee48
i915g: Add the nice cube map layout comments from i915c.
...
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11648 >
2021-06-30 17:42:56 +00:00
Emma Anholt
33e9143faf
i915g: Finish the uint -> uint32_t conversion.
...
My sed job missed a few.
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11648 >
2021-06-30 17:42:56 +00:00
Rob Clark
525be27326
freedreno/a6xx: Fix framebuffer_barrier crash
...
This is emitting cmdstream, it should take the submit lock to (a) ensure
we actually have a batch, and (b) prevent it from being flushed from
under it. This was overlooked in the conversion.
Fixes: 02298ed1fc ("freedreno: Add submit lock")
Signed-off-by: Rob Clark <robdclark@chromium.org >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11658 >
2021-06-30 17:17:39 +00:00
Roman Stratiienko
f85d3113b2
egl: android: add IMapper@4 metadata API buffer_info getter
...
Starting from Android-11 Google introduces generalized API
to access buffer information. This API is a part of IMapper@4 HAL.
Signed-off-by: Roman Stratiienko <r.stratiienko@gmail.com >
Reviewed-by: Yiwei Zhang <zzyiwei@chromium.org >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/6045 >
2021-06-30 16:50:44 +00:00
Roman Stratiienko
5d3e64f105
egl: android: prepare code for adding more buffer_info getters
...
Instead of calling droid_create_image_ for every gralloc implementation,
create struct buffer_info which contains all required field for invoking
createImageFromDmaBufs2() and let the getters to fill this structure.
Since createImageFromDmaBufs2() is called now only once, the code looks
cleaner and more robust.
Signed-off-by: Roman Stratiienko <r.stratiienko@gmail.com >
Reviewed-by: Yiwei Zhang <zzyiwei@chromium.org >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/6045 >
2021-06-30 16:50:44 +00:00
Yevhenii Kolesnikov
974c58b317
intel: fix leaking memory on shader creation
...
ralloc_adopt takes care of all the shader's children, but shader itsel ends up
orphaned and never gets free'd.
Fixes: ef5bce9253 ("intel: Drop the last uses of a mem_ctx in nir_builder_init_simple_shader().")
Closes: https://gitlab.freedesktop.org/mesa/mesa/-/issues/4951
Signed-off-by: Yevhenii Kolesnikov <yevhenii.kolesnikov@globallogic.com >
Reviewed-by: Emma Anholt <emma@anholt.net >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11651 >
2021-06-30 19:34:56 +03:00
Jason Ekstrand
f5876dfdb9
intel/fs: Lower uniform pull constant load message to LSC dataport
...
Reviewed-by: Sagar Ghuge <sagar.ghuge@intel.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11600 >
2021-06-30 16:17:18 +00:00
Sagar Ghuge
6362059b6b
intel/fs: Lower varying pull constant load message to LSC dataport
...
Co-authored-by: Jason Ekstrand <jason@jlekstrand.net >
Reviewed-by: Jason Ekstrand <jason@jlekstrand.net >
Reviewed-by: Sagar Ghuge <sagar.ghuge@intel.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11600 >
2021-06-30 16:17:18 +00:00
Sagar Ghuge
4fca64ad4d
intel/fs: Lower A64 atomic messages to LSC dataport
...
Co-authored-by: Jason Ekstrand <jason@jlekstrand.net >
Reviewed-by: Jason Ekstrand <jason@jlekstrand.net >
Reviewed-by: Sagar Ghuge <sagar.ghuge@intel.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11600 >
2021-06-30 16:17:18 +00:00
Sagar Ghuge
07a4bdf1e8
intel/fs: Lower A64 byte scattered r/w messages to LSC dataport
...
Co-authored-by: Jason Ekstrand <jason@jlekstrand.net >
Reviewed-by: Jason Ekstrand <jason@jlekstrand.net >
Reviewed-by: Sagar Ghuge <sagar.ghuge@intel.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11600 >
2021-06-30 16:17:18 +00:00
Mark Janes
22d20dbb02
intel/fs: Lower A64 untyped r/w messages to LSC when available
...
We set the ex_desc to 0, since the address surface type is FLAT.
v2 (Sagar Ghuge):
- Fix message descriptor encoding
v2 (Jason Ekstrand):
- Drop support for block messages
Co-authored-by: Sagar Ghuge <sagar.ghuge@intel.com >
Co-authored-by: Jason Ekstrand <jason@jlekstrand.net >
Reviewed-by: Jason Ekstrand <jason@jlekstrand.net >
Reviewed-by: Sagar Ghuge <sagar.ghuge@intel.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11600 >
2021-06-30 16:17:18 +00:00
Sagar Ghuge
621cf9b1df
intel/fs: Lower Byte scattered r/w messages to LSC when available
...
v2 (Jason Ekstrand):
- Squash in brw_scheduler changes
- Update brw_ir_performance
Co-authored-by: Jason Ekstrand <jason@jlekstrand.net >
Reviewed-by: Jason Ekstrand <jason@jlekstrand.net >
Reviewed-by: Sagar Ghuge <sagar.ghuge@intel.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11600 >
2021-06-30 16:17:18 +00:00
Sagar Ghuge
8f82c8aa1a
intel/fs: Lower untyped float atomic messages to LSC when available
...
Reviewed-by: Jason Ekstrand <jason@jlekstrand.net >
Reviewed-by: Sagar Ghuge <sagar.ghuge@intel.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11600 >
2021-06-30 16:17:18 +00:00
Mark Janes
bd40a1e8c9
intel/fs: Lower untyped atomic messages to LSC when available
...
Bspec programming note metions that "Atomic messages are always forced
to "un-cacheable" in the L1 cache". We can make the L1 cache
un-cacheable and L3 with write-back policy.
v2: (Sagar Ghuge):
- Fix caching policy for atomic messages
- Fix simd exec size
v3: (Sagar Ghuge):
- Add atomic messages to brw_schedule_instructions
v4: (Jason Ekstrand):
- Rebase on lsc_msg_desc reworks
Co-authored-by: Sagar Ghuge <sagar.ghuge@intel.com >
Co-authored-by: Jason Ekstrand <jason@jlekstrand.net >
Reviewed-by: Jason Ekstrand <jason@jlekstrand.net >
Reviewed-by: Sagar Ghuge <sagar.ghuge@intel.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11600 >
2021-06-30 16:17:18 +00:00
Mark Janes
4f86a70599
intel/fs: Lower DW untyped r/w messages to LSC when available
...
This puts the basic infrastructure in place for lowering logical
dataport messages to LSC messages. We start with the two most obvious
opcodes and add more in later patches.
v2 (Sagar Ghuge):
- Pass required params to message desc
- Remove duplicate mlen calculation
- Change commit message.
v3 (Jason Ekstrand):
- Drop TGM support
Co-authored-by: Jason Ekstrand <mark.a.janes@intel.com >
Reviewed-by: Jason Ekstrand <jason@jlekstrand.net >
Reviewed-by: Sagar Ghuge <sagar.ghuge@intel.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11600 >
2021-06-30 16:17:18 +00:00
Mark Janes
32ec0662fd
intel/compiler: Add LSC messages to brw_schedule_instructions
...
v2 (Jason Ekstrand):
- Use lsc_msg_desc_opcode()
- Drop all opcodes for now and add them in later patches.
Reviewed-by: Jason Ekstrand <jason@jlekstrand.net >
Reviewed-by: Sagar Ghuge <sagar.ghuge@intel.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11600 >
2021-06-30 16:17:18 +00:00
Jason Ekstrand
8d3468ad5b
intel/compiler: Add LSC to messages brw_ir_performance
...
This adds framework only. No opcodes.
Reviewed-by: Sagar Ghuge <sagar.ghuge@intel.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11600 >
2021-06-30 16:17:18 +00:00
Sagar Ghuge
634925694d
intel/disasm: Disassemble LSC message extended descriptors
...
v2 (Mark Janes):
- changed to lsc convention
v3 (Jason Ekstrand):
- Use lsc_msg_desc_addr_type
Co-authored-by: Mark Janes <mark.a.janes@intel.com >
Reviewed-by: Jason Ekstrand <jason@jlekstrand.net >
Reviewed-by: Sagar Ghuge <sagar.ghuge@intel.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11600 >
2021-06-30 16:17:18 +00:00
Sagar Ghuge
2605727a80
intel/disasm: Disassmeble LSC messages
...
v2 (Jordan Justen):
- Use PRIu64
v3 (Jason Ekstrand):
- Drop ranged fence ops, Jason
v4: (Mark Janes)
- fixed missing parameter to brw_message_desc_cmask_or_vector
- changed to use lsc methods to extract fields
v5 (Jason Ekstrand):
- Squash original disassembler patch and fixes togetherk
- Use lsc_opcode_has_cmask
- Prefix atomic ops with "atomic_"
Co-authored-by: Mark Janes <mark.a.janes@intel.com >
Reviewed-by: Jason Ekstrand <jason@jlekstrand.net >
Reviewed-by: Sagar Ghuge <sagar.ghuge@intel.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11600 >
2021-06-30 16:17:18 +00:00
Mark Janes
f5541cd4e9
intel/compiler: Add getter helpers for LSC message descriptor fields
...
v2: (Sagar Ghuge):
- rename addr_reg_size to src0_len to match with bspec
v3 (Jason Ekstrand):
- Re-arrange things in increasing bit order
Reviewed-by: Jason Ekstrand <jason@jlekstrand.net >
Reviewed-by: Sagar Ghuge <sagar.ghuge@intel.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11600 >
2021-06-30 16:17:18 +00:00
Sagar Ghuge
4ff00194b7
intel/compiler: Add helpers for LSC message descriptors
...
v2 (Jason Ekstrand):
- Squash all the similar patches together
- Re-arrange and rename some things to be more consistent
- Add a lsc_opcode_has_cmask helper
- Drop is_one_addr_reg
v3 (Jason Ekstrand):
- Add transpose
- Re-order arguments to make more logical sense
- Switch from `write` to `has_dest`
Co-authored-by: Mark Janes <mark.a.janes@intel.com >
Co-authored-by: Jason Ekstrand <jason@jlekstrand.net >
Reviewed-by: Jason Ekstrand <jason@jlekstrand.net >
Reviewed-by: Sagar Ghuge <sagar.ghuge@intel.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11600 >
2021-06-30 16:17:18 +00:00
Sagar Ghuge
b67f1ff465
intel/compiler: Add support for LSC fence operations
...
v2 (Jason Ekstrand):
- Squash SLM and global fence ops together
v3 (Jason Ekstrand):
- Rework to use message descriptors instead of instruction fields
v4 (Jason Ekstrand):
- Don't pass BTI into back-end emit function. Always use FLAT.
Co-authored-by: Jason Ekstrand <jason@jlekstrand.net >
Reviewed-by: Jason Ekstrand <jason@jlekstrand.net >
Reviewed-by: Sagar Ghuge <sagar.ghuge@intel.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11600 >
2021-06-30 16:17:18 +00:00
Sagar Ghuge
cf612e4dc1
intel/compiler: Define new LSC data port encodings
...
Xe-HPG comes with a massively reworked dataport. The new thing, called
Load/Store Cache or LSC, has a significantly improved interface.
Instead of bespoke messages for every case, there's basically one or two
messages with different bits to control things like address size, how
much data is read/written, etc. It's way nicer but also means we get to
rewrite all our dataport encoding/decoding code. This patch kicks off
the party with all of the new enums.
v2 (Jason Ekstrand, Mark Janes):
- Rename to LSC
v3 (Jason Ekstrand):
- Add numbers to all enums
Co-authored-by: Mark Janes <mark.a.janes@intel.com >
Co-authored-by: Jason Ekstrand <jason@jlekstrand.net >
Reviewed-by: Jason Ekstrand <jason@jlekstrand.net >
Reviewed-by: Sagar Ghuge <sagar.ghuge@intel.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11600 >
2021-06-30 16:17:18 +00:00
Jason Ekstrand
4a85a5e09f
intel/devinfo: Add a has_lsc bit
...
Reviewed-by: Sagar Ghuge <sagar.ghuge@intel.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11600 >
2021-06-30 16:17:18 +00:00
SureshGuttula
52602452ab
radeon/vcn: calc_dpb_size should be based on dpb_type
...
This patch will fix the dpb size calculated for each dpb_type.
Current implementaion always calculating based on DPB_MAX_RES.To fix
this dpb_type should be decided before calc_dpb_size.
Signed-off-by: SureshGuttula <suresh.guttula@amd.corp-partner.google.com >
Reviewed-by: Leo Liu <leo.liu@amd.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11633 >
2021-06-30 14:22:37 +00:00
Mike Blumenkrantz
c0397a42ce
radv: pre-calc vertex buffer descriptor size on pipeline object
...
util_bitcount has a nonzero cost, and calling it like this in a hotpath
generates unnecessary overhead
Reviewed-by: Samuel Pitoiset <samuel.pitoiset@gmail.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11525 >
2021-06-30 13:42:42 +00:00
Mike Blumenkrantz
936c21d376
zink: attempt to handle some resource unmap cases in 32bit envs
...
address space is limited here, so in some cases it's worthwhile to
unmap resources
Reviewed-by: Dave Airlie <airlied@redhat.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11594 >
2021-06-30 13:07:57 +00:00
Mike Blumenkrantz
9d599ed417
zink: cache visible vram
...
yolo
Reviewed-by: Dave Airlie <airlied@redhat.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11594 >
2021-06-30 13:07:57 +00:00
Mike Blumenkrantz
d4a7b4fef8
zink: uncap mem caching
...
if it fits, it sits
Reviewed-by: Dave Airlie <airlied@redhat.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11594 >
2021-06-30 13:07:57 +00:00
Mike Blumenkrantz
778f325c67
zink: make mem cache limits dynamically scalable
...
this removes the hardcoded count of 5 mem blocks to cache and replaces
it with a value that's based on the number of allocations seen
Reviewed-by: Dave Airlie <airlied@redhat.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11594 >
2021-06-30 13:07:57 +00:00
Mike Blumenkrantz
252afe405f
zink: don't align device-local buffer memory
...
this can't be mapped
Reviewed-by: Dave Airlie <airlied@redhat.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11594 >
2021-06-30 13:07:57 +00:00
Mike Blumenkrantz
93e8494007
zink: try for better buffer allocation heaps
...
Reviewed-by: Dave Airlie <airlied@redhat.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11594 >
2021-06-30 13:07:57 +00:00
Gert Wollny
34cb401791
r600/sfn: initialize all texture lower options
...
Fixes: d1edf3cdf2
r600/sfn: Lower offset in TXF instructions
Signed-off-by: Gert Wollny <gert.wollny@collabora.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11650 >
2021-06-30 09:12:47 +00:00
Marcin Ślusarz
7048a15485
anv: drop unused argument of anv_descriptor_set_address
...
Signed-off-by: Marcin Ślusarz <marcin.slusarz@intel.com >
Reviewed-by: Jason Ekstrand <jason@jlekstrand.net >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11577 >
2021-06-30 08:41:41 +00:00
Marcin Ślusarz
904bd8f358
anv: handle push descriptor sets when they are sent with push constants
...
When vkCmdPushDescriptorSetKHR is used, the descriptor set is allocated
internally without belonging to any pool. Such descriptor set will be
visible on the GPU side because it's a part of the dynamic state stream,
but we still have to store its address in the array of descriptor sets.
Complements: 379b9bb7b0 ("anv: Support fetching descriptor addresses from push constants")
Signed-off-by: Marcin Ślusarz <marcin.slusarz@intel.com >
Reviewed-by: Jason Ekstrand <jason@jlekstrand.net >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11577 >
2021-06-30 08:41:41 +00:00
Marcin Ślusarz
79a50c6f54
anv: keep descriptor set's address directly in anv_descriptor_set
...
Signed-off-by: Marcin Ślusarz <marcin.slusarz@intel.com >
Reviewed-by: Jason Ekstrand <jason@jlekstrand.net >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11577 >
2021-06-30 08:41:41 +00:00
Timothy Arceri
f58e6fee74
util/disk_cache: delete more cache items in one go when full
...
Currently the cache just deletes enough items when the cache is
full to make room for the new item being stored. This hasn't
been too much of a problem in practice but for things like running
piglit where we have thousands of unique shaders and all threads
being utilised we end up with a pretty big bottle neck.
With this change rather than just brute forcing our way to having
enough room for the new item, we instead grab 10% of the least
recently used items in the random directory we chose and delete
them all. This should only be around 0.04% of total cache items
but should hopefully releave some of the pressure on system calls
like fstatat().
Acked-by: Pierre-Eric Pelloux-Prayer <pierre-eric.pelloux-prayer@amd.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11523 >
2021-06-30 07:44:44 +00:00
Daniel Stone
e4f762ac34
CI: Disable LAVA devices for maintenance
...
LAVA will be unavailable for probably most of the day today due to
scheduled maintenance; doing some spring cleaning to upgrade to a new
version, clean out the database, etc.
Signed-off-by: Daniel Stone <daniels@collabora.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11649 >
2021-06-30 06:53:45 +00:00
Samuel Pitoiset
2019014df9
radv: fix fd leak in vkAcquireImageANDROID()
...
Copied from ANV.
Closes: https://gitlab.freedesktop.org/mesa/mesa/-/issues/4915
Signed-off-by: Samuel Pitoiset <samuel.pitoiset@gmail.com >
Reviewed-by: Yiwei Zhang <zzyiwei@chromium.org >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11518 >
2021-06-30 08:14:03 +02:00
Simon Ser
fc667fdf3b
vulkan/wsi: prefer the Wayland linux-dmabuf protocol
...
When the linux-dmabuf protocol is available, prefer it over the old
wl_drm protocol. Previously wl_drm was used when modifiers aren't
supported, however linux-dmabuf supports formats without modifiers too.
In this case, linux-dmabuf will send a DRM_FORMAT_MOD_INVALID modifier
for each supported format [1].
All of this allows compositors to better handle these buffers, getting a
DMA-BUF and implementing features like direct scan-out.
A similar logic has been implemented for EGL [2].
In this patch, we bind to linux-dmabuf even if the driver doesn't support
modifiers. In this case the formats advertised by the compositor will
still be added to the display->dmabuf.formats list.
In wsi_wl_image_init, drop the assertions that display->drm_wrapper and
display->dmabuf.wl_dmabuf can't be both present. If the driver doesn't
support modifiers, the modifier is already set to DRM_FORMAT_MOD_INVALID.
If the parent compositor doesn't support modifiers, the modifiers list
passed to wsi_create_native_image will be empty, and the common code
will ensure that the image's modifier is set to DRM_FORMAT_MOD_INVALID.
In wsi_wl_surface_create_swapchain, create the wl_proxy proxy if we've
bound to it earlier. Don't decide to create the proxy depending on the
number of supported modifiers.
[1]: fb9b2a8731
[2]: c376865f5e
Signed-off-by: Simon Ser <contact@emersion.fr >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/4942 >
2021-06-30 04:48:19 +00:00
Simon Ser
14f0c0d9db
vulkan/wsi: unify format logic in dmabuf_handle_modifier
...
This function has a switch which currently duplicates the format
handling logic.
Move this logic out of the switch.
This avoids repeating the same code for each supported format and
prepares the work for proper DRM_FORMAT_MOD_INVALID handling.
Signed-off-by: Simon Ser <contact@emersion.fr >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/4942 >
2021-06-30 04:48:19 +00:00
Mike Blumenkrantz
63df413f95
zink: split dummy buffer creation and populate
...
populate requires the queue to be set up, but the resources must be created
before descriptor init
Reviewed-by: Dave Airlie <airlied@redhat.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11591 >
2021-06-30 04:38:10 +00:00
Mike Blumenkrantz
eade6b75c2
zink: add direct conversion from pipe_shader_type->VkPipelineStageFlags
...
Reviewed-by: Dave Airlie <airlied@redhat.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11592 >
2021-06-30 04:25:03 +00:00
Dave Airlie
a56f364ea9
crocus: disable Z16 unorm textures on pre-gen8 as well.
...
This fixes:
dEQP-GLES3.functional.fbo.completeness.renderable.texture.depth.depth_component_unsigned_short
as gallium will try an allocate a DS usage, but fallback to just
a sampling usage if that fails.
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11646 >
2021-06-30 00:53:55 +00:00
Dave Airlie
783dcd0634
crocus/gen8: add back z16 support for gen8
...
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11646 >
2021-06-30 00:53:55 +00:00
Rob Clark
140ce4f8ed
freedreno+ir3: Enable INT16
...
Signed-off-by: Rob Clark <robdclark@chromium.org >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11545 >
2021-06-29 23:27:28 +00:00
Rob Clark
c7b935962b
nir: Add pass to lower phi precision
...
In addition to register pressure benefits from getting more fp16/int16,
this avoids i2imp's from standing in the way of loop unrolling.
Signed-off-by: Rob Clark <robdclark@chromium.org >
Reviewed-by: Connor Abbott <cwabbott0@gmail.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11545 >
2021-06-29 23:27:28 +00:00
Enrico Galli
ddad83fc97
microsoft/compiler: Add support for get_ssbo_size to translator
...
Reviewed-by: Jesse Natalie <jenatali@microsoft.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11629 >
2021-06-29 23:15:28 +00:00
Thomas H.P. Andersen
b4369de27f
nir/lower_packing: use shader_instructions_pass
...
Reviewed-by: Jason Ekstrand <jason@jlekstrand.net >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11615 >
2021-06-29 22:08:29 +00:00
Thomas H.P. Andersen
ed530ac6c2
nir: return progress from nir_lower_packing
...
Compiling with clang warns about an unused variable in
nir_lower_packing.
Tracking progress was added to nir_lower_packing in
adb157ddfd but the function
will ignore the progress from impl calls and always return
false.
This patch changes it to return the progress. It fixes the
warning and should enable validation calls in NIR_PASS when
progress is made.
Reviewed-by: Christian Gmeiner <christian.gmeiner@gmail.com >
Reviewed-by: Jason Ekstrand <jason@jlekstrand.net >
Fixes: adb157ddfd "nir: Return progress from nir_lower_64bit_pack()"
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11615 >
2021-06-29 22:08:29 +00:00
Pierre-Eric Pelloux-Prayer
a92dcc4966
radeonsi/driconf: add workaround for SpaceEngine
...
Closes: https://gitlab.freedesktop.org/mesa/mesa/-/issues/4483
Reviewed-by: Marek Olšák <marek.olsak@amd.com >
Cc: mesa-stable
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11625 >
2021-06-29 23:38:21 +02:00
Pierre-Eric Pelloux-Prayer
c564841fae
ac/surface: don't print stencil info if tex has no stencil
...
color/zs are stored in a union so testing for zs.stencil_offset
isn't the correct way to test for stencil.
Fixes: 988f148db3 ("ac/surface: overlap color and Z/S fields using a union in gfx9_surf_layout")
Reviewed-by: Marek Olšák <marek.olsak@amd.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11625 >
2021-06-29 23:38:21 +02:00
Pierre-Eric Pelloux-Prayer
822f377736
radeonsi/gfx7: always sync pfp/me
...
Workaround for https://gitlab.freedesktop.org/mesa/mesa/-/issues/4764
Fixes: c5326164 ("radeonsi: add SI_CONTEXT_PFP_SYNC_ME to skip syncing PFP for image operations")
Reviewed-by: Marek Olšák <marek.olsak@amd.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11625 >
2021-06-29 23:38:21 +02:00
Pierre-Eric Pelloux-Prayer
b72c7c6c56
radeonsi: fix fb_too_small condition
...
fb->num_layers can be 0 so use util_num_layers(tex) instead.
Fixes: f7c58559f5 ("radeonsi: refine fast clears for small buffers, always use them for large HTILE")
Closes: https://gitlab.freedesktop.org/mesa/mesa/-/issues/4764
Reviewed-by: Marek Olšák <marek.olsak@amd.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11625 >
2021-06-29 23:38:21 +02:00
Pierre-Eric Pelloux-Prayer
b564ec7769
ac/llvm: call the callback in all return paths of ac_cull_triangle
...
Fixes: 12d2df15f1 ("ac/llvm: add a callback to ac_cull_triangle to generate code in inner-most block")
Closes: https://gitlab.freedesktop.org/mesa/mesa/-/issues/4959
Reviewed-by: Marek Olšák <marek.olsak@amd.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11625 >
2021-06-29 23:38:21 +02:00
Christian Gmeiner
017d6cc642
ci: bare-metal: drop webdav support
...
The NFS method is much faster.
Signed-off-by: Christian Gmeiner <christian.gmeiner@gmail.com >
Reviewed-by: Emma Anholt <emma@anholt.net >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11611 >
2021-06-29 18:37:55 +00:00
Jason Ekstrand
dd890f520e
iris/bufmgr: Stop changing mapping modes on buffers
...
With discrete GPUs, we aren't able to change mapping modes after we've
created a buffer. This is a limitation of TTM. However, we already
have a buffer cache and it's pretty likely that stuff in any given
memzone will end up with just the one mapping type anyway so this
shouldn't have much of a cost.
Acked-by: Daniel Vetter <daniel.vetter@ffwll.ch >
Reviewed-by: Kenneth Graunke <kenneth@whitecape.org >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11583 >
2021-06-29 17:03:25 +00:00
Emma Anholt
b18cf54f0d
intel: Early exit from inst_is_in_block().
...
Surely the compiler would sort that out, you would think. But no, my
debugoptimized build improves
dEQP-GLES31.functional.ubo.random.all_per_block_buffers.13 runtime by 25%
on my SKL from this change.
This was the slowest test in the GLES31 tests on APL in CI, at 22s. And
yes, we were spending around half of our runtime in this function.
Reviewed-by: Ian Romanick <ian.d.romanick@intel.com >
Reviewed-by: Matt Turner <mattst88@gmail.com >
Acked-by: Adam Jackson <ajax@redhat.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11631 >
2021-06-29 16:48:40 +00:00
Gert Wollny
3a9716e6b1
virgl: Enable ASTC formats also for 3D textures
...
The texture compression can also be used for 2D arrays and
3D textures.
Signed-off-by: Gert Wollny <gert.wollny@collabora.com >
Reviewed-by: Corentin Noël <corentin.noel@collabora.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11634 >
2021-06-29 16:14:43 +02:00
Rhys Perry
90c14398a3
docs/envvars: fix RADV_TEX_ANISO
...
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/11640 >
2021-06-29 13:22:34 +00:00
Gert Wollny
d1edf3cdf2
r600/sfn: Lower offset in TXF instructions
...
Closes : #4960
Signed-off-by: Gert Wollny <gert.wollny@collabora.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11639 >
2021-06-29 14:28:51 +02:00
Samuel Pitoiset
4a031a01ba
radv: fix RADV_FORCE_VRS for 2x1 and 1x2
...
The rates were inverted.
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/11578 >
2021-06-29 12:47:49 +02:00
Juan A. Suarez Romero
2ce2f09baf
ci/vc4: update piglit failures
...
Reviewed-by: Jose Maria Casanova Crespo <jmcasanova@igalia.com >
Signed-off-by: Juan A. Suarez Romero <jasuarez@igalia.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11521 >
2021-06-29 10:28:34 +00:00
Iago Toral Quiroga
8fada5cb21
broadcom/compiler: use nir_sort_variables_with_modes
...
Reviewed-by: Juan A. Suarez <jasuarez@igalia.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11624 >
2021-06-29 10:11:58 +00:00
Rhys Perry
ebeda07801
aco/tests: fix 32-bit build
...
"call of overloaded ‘Operand(long unsigned int)’ is ambiguous"
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/11627 >
2021-06-29 09:55:32 +00:00
Ishi Tatsuyuki
4f959e368c
radv: ignore redundant variable descriptor counts (v2)
...
The Vulkan specification says: "If VkDescriptorSetAllocateInfo::pSetLayouts[i]
does not include a variable count descriptor binding, then
pDescriptorCounts[i] is ignored". The previous code triggered an assertion
in such cases, and this patch fixes it.
v2: removed the offending assertion that is now always satisfied and
reworded the commit message with a reference to Vulkan spec.
Closes: https://gitlab.freedesktop.org/mesa/mesa/-/issues/4992
Reviewed-by: Samuel Pitoiset <samuel.pitoiset@gmail.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11576 >
2021-06-29 09:29:40 +00:00
Connor Abbott
42b3d83dd4
ir3/lower_parallelcopy: Use SWZ
...
shader-db results on a650:
total instructions in shared programs: 1575484 -> 1574866 (-0.04%)
instructions in affected programs: 32579 -> 31961 (-1.90%)
helped: 75
HURT: 0
helped stats (abs) min: 1 max: 98 x̄: 8.24 x̃: 7
helped stats (rel) min: 0.41% max: 30.12% x̄: 2.47% x̃: 1.13%
95% mean confidence interval for instructions value: -10.97 -5.51
95% mean confidence interval for instructions %-change: -3.44% -1.51%
Instructions are helped.
total nops in shared programs: 355742 -> 355628 (-0.03%)
nops in affected programs: 18635 -> 18521 (-0.61%)
helped: 55
HURT: 147
helped stats (abs) min: 1 max: 14 x̄: 4.76 x̃: 6
helped stats (rel) min: 1.41% max: 100.00% x̄: 8.13% x̃: 4.76%
HURT stats (abs) min: 1 max: 2 x̄: 1.01 x̃: 1
HURT stats (rel) min: 0.56% max: 25.00% x̄: 2.09% x̃: 1.20%
95% mean confidence interval for nops value: -0.98 -0.15
95% mean confidence interval for nops %-change: -1.93% 0.55%
Inconclusive result (%-change mean confidence interval includes 0).
total non-nops in shared programs: 1219742 -> 1219238 (-0.04%)
non-nops in affected programs: 61125 -> 60621 (-0.82%)
helped: 220
HURT: 0
helped stats (abs) min: 1 max: 99 x̄: 2.29 x̃: 1
helped stats (rel) min: 0.19% max: 29.17% x̄: 0.90% x̃: 0.40%
95% mean confidence interval for non-nops value: -3.26 -1.32
95% mean confidence interval for non-nops %-change: -1.24% -0.56%
Non-nops are helped.
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11565 >
2021-06-29 08:08:12 +00:00
Connor Abbott
92bb37cb59
ir3: Add min gen for multi-mov instructions
...
swz works on a5xx/a6xx but not a3xx according to CI. I don't have any
access to a4xx HW so I can't tell whether it works there.
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11565 >
2021-06-29 08:08:12 +00:00
Connor Abbott
78ab6250b5
ir3: Print multi-mov instructions
...
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11565 >
2021-06-29 08:08:12 +00:00
Connor Abbott
b7f114ea13
ir3/validate: Support multi-mov instructions
...
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11565 >
2021-06-29 08:08:12 +00:00
Connor Abbott
81812acccc
ir3: Use correct flags for movmsk & multi-mov
...
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11565 >
2021-06-29 08:08:12 +00:00
Connor Abbott
7036e4fd31
ir3/legalize: Support multi-mov instructions
...
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11565 >
2021-06-29 08:08:12 +00:00
Connor Abbott
3896de621e
ir3/postsched: Support multi-mov instructions
...
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11565 >
2021-06-29 08:08:12 +00:00
Connor Abbott
95e9a15f03
ir3/delay: Support multi-mov instructions
...
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11565 >
2021-06-29 08:08:12 +00:00
Connor Abbott
ab440d5141
ir3: Support multi-mov instructions
...
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11565 >
2021-06-29 08:08:12 +00:00
Connor Abbott
ea325226d6
ir3: Add foreach_dst/foreach_dst_n
...
And cleanup a few places I know of that are open-coding it
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11565 >
2021-06-29 08:08:12 +00:00
Connor Abbott
6b00db0183
ir3: Prepare dest helpers for multi-dst instructions
...
Assert in dest_regs() that dst_count == 1, since most users of it will
blow up if they encounter multiple destinations, and split out the core
of writes_gpr() so that we can easily make code using it multi-dst
aware.
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11565 >
2021-06-29 08:08:12 +00:00
Connor Abbott
48f5f3be5f
ir3: Stop creating dummy dest registers
...
These were a holdover from before the src/dst split and are no longer
necessary. Just don't create any dest registers for instructions that
never have a destination.
This has the side-effect that it becomes easier to replace uses of
dest_regs() with a per-register thing, once we start adding support for
multiple destinations.
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11565 >
2021-06-29 08:08:12 +00:00
Iago Toral Quiroga
6d84348bb4
v3dv: expose support for basic subgroup operations
...
Relevant CTS tests (requires Vulkan 1.1):
dEQP-VK.subgroups.builtin_var.compute.*
dEQP-VK.subgroups.basic.compute.*
Reviewed-by: Alejandro Piñeiro <apinheiro@igalia.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11620 >
2021-06-29 08:43:06 +02:00
Iago Toral Quiroga
b7cbb38222
v3dv: expose correct subgroup size
...
Reviewed-by: Alejandro Piñeiro <apinheiro@igalia.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11620 >
2021-06-29 08:43:06 +02:00
Iago Toral Quiroga
bf175fbb6a
broadcom/util: don't use compute supergroup packing with subgroups
...
When using subgroups there are additional restrictions to consider,
so for now we keep it simple and disable supergroup packing in that
scenario.
Reviewed-by: Alejandro Piñeiro <apinheiro@igalia.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11620 >
2021-06-29 08:43:06 +02:00
Iago Toral Quiroga
10313b03b5
broadcom/compiler: track if a compute shader uses subgroup functionality
...
Reviewed-by: Alejandro Piñeiro <apinheiro@igalia.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11620 >
2021-06-29 08:43:06 +02:00
Iago Toral Quiroga
5081de07f7
broadcom/compiler: add a set_a_flags_for_subgroup helper
...
We will need this in the future to implement more subgroup operations,
so make this code available in a helper.
Reviewed-by: Alejandro Piñeiro <apinheiro@igalia.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11620 >
2021-06-29 08:43:06 +02:00
Iago Toral Quiroga
b9f510087d
broadcom/compiler: add a ntq_emit_cond_to_bool helper
...
Reviewed-by: Alejandro Piñeiro <apinheiro@igalia.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11620 >
2021-06-29 08:43:06 +02:00
Iago Toral Quiroga
53341e44ad
broadcom/compiler: implement more subgroup intrinsics
...
Reviewed-by: Alejandro Piñeiro <apinheiro@igalia.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11620 >
2021-06-29 08:43:06 +02:00
Iago Toral Quiroga
87fa5908b3
broadcom/compiler: add FLAFIRST and FLNAFIRST opcodes
...
We will at least need the former to implement subgroupElect()
Reviewed-by: Alejandro Piñeiro <apinheiro@igalia.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11620 >
2021-06-29 08:43:06 +02:00
Iago Toral Quiroga
a9ad04f17d
broadcom/compiler: lower nir_intrinsic_load_num_subgroups
...
The number of subgroups is the local workgroup size divided by the
dispatch width.
Reviewed-by: Alejandro Piñeiro <apinheiro@igalia.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11620 >
2021-06-29 08:43:06 +02:00
Iago Toral Quiroga
30dec8b414
broadcom/compiler: implement nir_intrinsic_load_subgroup_id correctly
...
For some reason, this was implemented with the bulk of the compute
shader enablement, but this intrinsic is specific to subgroups and
thus was not really used. Also, its implementation was not correct,
since it was returning the element index within the subgroup, not
the subgroup index itself, which is the index of the batch in the
dispatch.
Reviewed-by: Alejandro Piñeiro <apinheiro@igalia.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11620 >
2021-06-29 08:43:06 +02:00
Lionel Landwerlin
71b7c7b0dc
intel/perf: use the right popcount for 64bits
...
We're currently using the 32bit version which is dropping half the
bits of the 64bits values.
Signed-off-by: Lionel Landwerlin <lionel.g.landwerlin@intel.com >
Cc: mesa-stable
Reviewed-by: Sagar Ghuge <sagar.ghuge@intel.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11607 >
2021-06-29 06:29:53 +00:00
Timothy Arceri
01fa90b456
util: add some workarounds for the game Luna Sky
...
Cc: mesa-stable
Closes: https://gitlab.freedesktop.org/mesa/mesa/-/issues/4948
Reviewed-by: Ian Romanick <ian.d.romanick@intel.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11602 >
2021-06-29 02:59:28 +00:00
Timothy Arceri
a73e7305e9
util/driconf: add new ignore_write_to_readonly_var workaround
...
This forces the GLSL compiler to ignore writes to readonly vars
rather than throwing an error.
Cc: mesa-stable
Reviewed-by: Ian Romanick <ian.d.romanick@intel.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11602 >
2021-06-29 02:59:28 +00:00
Timothy Arceri
e607205af0
glsl: force_glsl_version to shaders with no defined version
...
If a shader has no defined version force_glsl_version was
previous ignored and the shader would default to 110. This updates
the code so that those shaders are forced to a new level also.
We reused the existing code to make sure a sensible value is set
for the version.
Cc: mesa-stable
Reviewed-by: Ian Romanick <ian.d.romanick@intel.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11602 >
2021-06-29 02:59:28 +00:00
Timothy Arceri
02dd03ff3c
i965: don't crash on incorrect texture use
...
Cc: mesa-stable
Closes: https://gitlab.freedesktop.org/mesa/mesa/-/issues/4995
Reviewed-by: Ian Romanick <ian.d.romanick@intel.com >
Reviewed-by: Lionel Landwerlin <lionel.g.landwerlin@intel.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11603 >
2021-06-29 01:38:05 +00:00
Timothy Arceri
328ea8e04a
mesa: don't crash on incorrect texture use
...
Cc: mesa-stable
Closes: https://gitlab.freedesktop.org/mesa/mesa/-/issues/4995
Reviewed-by: Marek Olšák <marek.olsak@amd.com >
Reviewed-by: Ian Romanick <ian.d.romanick@intel.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11603 >
2021-06-29 01:38:05 +00:00
Timothy Arceri
a917c7433a
util/tests: initialise key in cache_test
...
Fixes: e8495646af ("glsl/tests: changes to test_disk_cache_create test")
Closes: https://gitlab.freedesktop.org/mesa/mesa/-/issues/2631
Reviewed-by: Pierre-Eric Pelloux-Prayer <pierre-eric.pelloux-prayer@amd.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11623 >
2021-06-28 23:53:10 +00:00
Yiwei Zhang
58a4ae3b99
venus: resolve AHB external format with DRM format
...
AHardwareBuffer_Format is lossier than DRM_FORMAT_*, which ends up with
unable to resolve implementation defined format upon creating sampler
ycbcr conversion. So we now use DRM format as AHB external format.
An external format error return in vkCreateSamplerYcbcrConversion is
also removed here since that is already an invalid usage per spec
(partly because there is no proper error code to return here).
Signed-off-by: Yiwei Zhang <zzyiwei@chromium.org >
Reviewed-by: Chia-I Wu <olvaffe@gmail.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11480 >
2021-06-28 22:18:19 +00:00
Yiwei Zhang
0679cffb02
venus: remove unsupported AHB formats
...
Likely not going to support them either.
Signed-off-by: Yiwei Zhang <zzyiwei@chromium.org >
Reviewed-by: Chia-I Wu <olvaffe@gmail.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11480 >
2021-06-28 22:18:19 +00:00
Yiwei Zhang
891cf98a88
venus: use the mesa "drm-uapi/drm_fourcc.h" header
...
Prepare for later CI integration.
Signed-off-by: Yiwei Zhang <zzyiwei@chromium.org >
Reviewed-by: Chia-I Wu <olvaffe@gmail.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11480 >
2021-06-28 22:18:19 +00:00
Emma Anholt
71617c3328
i915g: Fix off-by-one in constant count assertion.
...
You can have up to C[31].
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11617 >
2021-06-28 15:01:37 -07:00
Emma Anholt
ccc9418b27
i915g: Mark program errors on setting up temps, constants, and immediates.
...
We would proceed through the compiler, and usually fail for some other
reason (ALU ops, etc.), but best to be sure.
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11617 >
2021-06-28 15:01:37 -07:00
Emma Anholt
7ddebb0289
i915g: Remove redundant p->error setting.
...
i915_program_error() already does it.
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11617 >
2021-06-28 15:01:37 -07:00
Emma Anholt
ec646fdd45
i915g: Use stdbool.h instead of custom bools.
...
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11617 >
2021-06-28 15:01:37 -07:00
Emma Anholt
247cee92df
i915g: replace "uint" with normal uint32_t.
...
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11617 >
2021-06-28 15:01:37 -07:00
Emma Anholt
c786159186
i915g: Improve logging of unsupported opcodes.
...
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11617 >
2021-06-28 15:01:37 -07:00
Emma Anholt
e65ea05276
i915g: Stop translating the fragment program on the first error.
...
It would proceed through printing errors for each of the unsupported loop
opcodes in the program.
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11617 >
2021-06-28 15:01:37 -07:00
Emma Anholt
8259ff0d22
i915g: Log program compile errors to mesa_loge().
...
Now these major driver failures are no longer hidden under -DDEBUG, and
would also work on android (you know, if you cared). We do want to
suppress logging for u_blitter shaders that fail to compile during
util_blitter_cache_all_shaders().
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11617 >
2021-06-28 15:01:37 -07:00
Emma Anholt
7921648cd6
i915g: Use the normal compile error path for empty FSes.
...
This means they'll get dumped and you'll see the passthrough FS.
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11617 >
2021-06-28 15:01:37 -07:00
Emma Anholt
d83f0c1c04
i915g: Enable dumping of fragment shaders under I915_DEBUG=fs.
...
Probably the most common thing I want to debug in this driver, and we
didn't have a good option for it.
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11617 >
2021-06-28 14:58:28 -07:00
Emma Anholt
005b0f015b
i915g: Allow use of I915_DEBUG= options on non-DEBUG builds.
...
All the checks should be cheap, no need making things harder to debug.
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11617 >
2021-06-28 14:58:28 -07:00
Emma Anholt
79800a957d
i915g: Bake the decls and program together.
...
Simplifies program upload a bunch, and will let us disasm the program
independently of the whole cmd buffer.
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11617 >
2021-06-28 14:58:28 -07:00
Emma Anholt
26afccb97e
i915g: Apply clang-format.
...
Add the format file copied from freedreno, and run clang-format
--style=file -i src/gallium/drivers/i915/*.[ch] (with clang-format 11).
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11617 >
2021-06-28 14:58:28 -07:00
Yiwei Zhang
8391fb98cd
venus: properly support GPU_DATA_BUFFER for AHB
...
CrOS gralloc was missing support for GPU_DATA_BUFFER, which was only
fixed until recently. Now we can allcate properly.
This patch also removes a redundant TODO regarding image format list
support for AHB. vkGetPhysicalDeviceImageFormatProperties2 has already
checked the support for such though it only checks whether the optimal
tiling and the associated drm format modifier for the AHB image format
itself applies to the entire format list or not. Given the use case for
such combination is quite limited, we choose not to add new gralloc
support to force linear modifier as a fallback for wider coverage.
Signed-off-by: Yiwei Zhang <zzyiwei@chromium.org >
Reviewed-by: Chia-I Wu <olvaffe@gmail.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11501 >
2021-06-28 21:13:54 +00:00
Eleni Maria Stea
e094f75bd0
intel: PAGE_SIZE used in allocators shouldn't be defined on FreeBSD
...
iris, i965, and anv define the PAGE_SIZE in anv_allocator and bufmgr
files. As on FreeBSD the page size is defined in machine/param.h that is
indirectly included by those files, we'd rather define it only when the
system is not FreeBSD to avoid compile errors.
v2: Changed the path in the comment to make clear that machine/params.h
is a FreeBSD system file.
Signed-off-by: Eleni Maria Stea <elene.mst@gmail.com >
Reviewed-by: Ian Romanick <ian.d.romanick@intel.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11203 >
2021-06-28 21:12:24 +03:00
Eleni Maria Stea
49e8b77fd9
intel: struct bitset is renamed to brw_bitset
...
Static struct bitset was renamed to brw_bitset as a struct bitset
is defined in sys/_bitset.h included by pthread_np.h on FreeBSD that
is indirectly included by src/intel/compiler/brw_nir_lower_shader_calls.c
Signed-off-by: Eleni Maria Stea <elene.mst@gmail.com >
Reviewed-by: Ian Romanick <ian.d.romanick@intel.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11203 >
2021-06-28 21:12:24 +03:00
Eleni Maria Stea
91b83dce0a
util: Removed unused statement from FreeBSD build
...
Statement (void*)debug_name when FreeBSD is defined has no use. Removed
it to fix compiler warnings.
Signed-off-by: Eleni Maria Stea <elene.mst@gmail.com >
Reviewed-by: Ian Romanick <ian.d.romanick@intel.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11203 >
2021-06-28 21:12:24 +03:00
Eleni Maria Stea
32b94df23e
util: replaced ENODATA with ENOATTR for non-Linux systems
...
On Linux ENODATA is defined but on BSD, and MacOSX ENOATTR is used
instead. Defined ENODATA to be ENOATTR when the system is not Linux.
v2: Replaced ENODATA and ENOATTR with -EFAULT that is exists everywhere
and added a comment (Ian Romanick)
Signed-off-by: Eleni Maria Stea <elene.mst@gmail.com >
Reviewed-by: Ian Romanick <ian.d.romanick@intel.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11203 >
2021-06-28 21:12:24 +03:00
Mike Blumenkrantz
d8bbb9daa2
util/vbuf: flag fallback_always if any prim types are missing from restart modes
...
Reviewed-by: Marek Olšák <marek.olsak@amd.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11608 >
2021-06-28 17:05:53 +00:00
Mike Blumenkrantz
00272aa4a1
util/vbuf: always claim support for PATCHES in restart modes
...
this avoids forcing rewrites for patch mode which break tessellation
Reviewed-by: Marek Olšák <marek.olsak@amd.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11608 >
2021-06-28 17:05:53 +00:00
Emma Anholt
fd5293cc43
turnip: Short-circuit if ladder generation for constant index SSBO/UBOs.
...
The compiler *can* eventually chew through all the copy prop, constant
folding, and dead_cf necessary to use just our constant index, but we can
save a whole lot of hassle by chasing the MOVs up front and finding the
constant.
dEQP-VK.ubo.3_level_array.scalar.row_major_mat4.both goes from 2.0s to
1.6s on a release build (3.1s to 2.1s for a debug build like we use in CI).
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11613 >
2021-06-28 16:26:24 +00:00
Emma Anholt
0afab39af9
nir: Add a helper for chasing movs with nir_ssa_scalar().
...
Sometimes you might want to find a constant source without going through
all the copy prop and constant folding to make your source be a
load_const.
Reviewed-by: Jason Ekstrand <jason@jlekstrand.net >
Reviewed-by: Alyssa Rosenzweig <alyssa.rosenzweig@collabora.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11613 >
2021-06-28 16:26:24 +00:00
Connor Abbott
9133999430
ir3/sched: Speed up live_effect
...
If we've identified another use that isn't scheduled yet, we can break
right away rather than iterating through all the other uses. While this
could be optimized further, this simple change makes
dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcast_ivec4 go
from 40 seconds to 1.9 seconds on a release build according to my
unscientific testing.
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11613 >
2021-06-28 16:26:24 +00:00
Connor Abbott
56dc84b95c
freedreno/computerator: Fix local_size typo
...
Fixes: cbc68c79a5 ("freedreno: Add local_size to ir3_shader_variant")
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11622 >
2021-06-28 16:06:23 +00:00
Rhys Perry
502b06c4f5
nir/opt_load_store_vectorize: fix check_for_robustness() with deref access
...
We could do better if we knew the nir_address_format to obtain
addition_bits, but the only affected driver (Turnip) probably won't
benefit because it doesn't vectorize across vec4.
Signed-off-by: Rhys Perry <pendingchaos02@gmail.com >
Reviewed-by: Daniel Schürmann <daniel@schuermann.dev >
Fixes: 2e7bceb220 ("nir/load_store_vectorizer: fix check_for_robustness() with indirect loads")
Closes: https://gitlab.freedesktop.org/mesa/mesa/-/issues/4922
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11382 >
2021-06-28 15:15:42 +00:00
Ella-0
86fe8db4aa
anv: expose primary node to VK_EXT_physical_device_drm even when VK_KHR_display is not enabled
...
Fixes: e9e1e0362b ("anv: implement VK_EXT_physical_device_drm")
Reviewed-by: Lionel Landwerlin <lionel.g.landwerlin@intel.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11616 >
2021-06-28 14:03:22 +00:00
Marek Olšák
24292cc003
radeonsi: move the accepting code into the bbox cull branch in prim discard CS
...
This reduces the number of jumps. No change in behavior.
Acked-by: Pierre-Eric Pelloux-Prayer <pierre-eric.pelloux-prayer@amd.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11510 >
2021-06-28 13:23:14 +00:00
Marek Olšák
b141e50282
radeonsi: add optimal multi draws and draw-level splitting for prim discard CS
...
This is a partial rewrite of some parts of the code.
Acked-by: Pierre-Eric Pelloux-Prayer <pierre-eric.pelloux-prayer@amd.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11510 >
2021-06-28 13:23:14 +00:00
Marek Olšák
81365c86f9
radeonsi: fix issues with draw-level splitting for the prim discard CS
...
- move the unreachable statement up by inlining u_decomposed_prims_for_vertices
- the last draw was not submitted after splitting
- move "count" to the non-multi draw path
Acked-by: Pierre-Eric Pelloux-Prayer <pierre-eric.pelloux-prayer@amd.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11510 >
2021-06-28 13:23:14 +00:00
Marek Olšák
9fa0d2cf35
radeonsi: change how the prim discard CS is enabled and splitting limits
...
Acked-by: Pierre-Eric Pelloux-Prayer <pierre-eric.pelloux-prayer@amd.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11510 >
2021-06-28 13:23:14 +00:00
Marek Olšák
06da711350
radeonsi: remove the GDS variants of compute-based primitive discard
...
The GDS ordered append variant is unstable due to kernel and firmware bugs.
The unordered GDS variant isn't faster than the memory-based variant.
Only the memory-based variant is kept.
Acked-by: Pierre-Eric Pelloux-Prayer <pierre-eric.pelloux-prayer@amd.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11510 >
2021-06-28 13:23:14 +00:00
Marcin Ślusarz
2cf189cc88
intel/fs: use stack for temporary array
...
"regs" is an array of 2 ->
"m" must be <= 2 ->
"components" array can be allocated on the stack
Signed-off-by: Marcin Ślusarz <marcin.slusarz@intel.com >
Reviewed-by: Lionel Landwerlin <lionel.g.landwerlin@intel.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11575 >
2021-06-28 09:44:40 +00:00
Marcin Ślusarz
5c66fb7e6e
intel/blorp: initialize BLEND_STATE using braced initializer list
...
Coverity complains that memset has no effect, because of size 0.
Size of BLEND_STATE struct is 0 on gfx [6, 7.5], so memset has
nothing to do there. This is of course harmless, but we can make
code simpler by replacing memset with an empty initializer list
and at the same time avoid a warning from Coverity.
CID: 1486015
Signed-off-by: Marcin Ślusarz <marcin.slusarz@intel.com >
Reviewed-by: Lionel Landwerlin <lionel.g.landwerlin@intel.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11574 >
2021-06-28 09:31:41 +00:00
Marcin Ślusarz
5c5423e6ee
intel/tools: fix potential memory leaks
...
CID: 1444041
CID: 1444104
Signed-off-by: Marcin Ślusarz <marcin.slusarz@intel.com >
Reviewed-by: Jason Ekstrand <jason@jlekstrand.net >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11574 >
2021-06-28 09:31:41 +00:00
Marcin Ślusarz
14227b3364
intel/tools: fix invalid type in argument to printf format specifier
...
Also mark parse_error as printf-like to catch such errors with gcc.
CID: 1473100
CID: 1473101
Signed-off-by: Marcin Ślusarz <marcin.slusarz@intel.com >
Reviewed-by: Jason Ekstrand <jason@jlekstrand.net >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11574 >
2021-06-28 09:31:41 +00:00
Marcin Ślusarz
f2a3c9de67
intel/tools: fix int-to-pointer/pointer-to-int cast warnings on 32-bit
...
gcc complains:
../src/intel/tools/aub_write.c: In function ‘populate_ppgtt_table’:
../src/intel/tools/aub_write.c:254:16: warning: cast to pointer from integer of different size [-Wint-to-pointer-cast]
254 | (void *)(aub->phys_addrs_allocator++ << 12);
| ^
../src/intel/tools/aub_write.c:258:27: warning: cast from pointer to integer of different size [-Wpointer-to-int-cast]
258 | i, (uint64_t)table->subtables[i]);
| ^
../src/intel/tools/aub_write.c:273:24: warning: cast from pointer to integer of different size [-Wpointer-to-int-cast]
273 | (level == 1 ? (uint64_t)table->subtables[i] :
| ^
../src/intel/tools/aub_write.c: In function ‘ppgtt_lookup’:
../src/intel/tools/aub_write.c:346:11: warning: cast from pointer to integer of different size [-Wpointer-to-int-cast]
346 | return (uint64_t)L1_table(ppgtt_addr)->subtables[L1_index(ppgtt_addr)];
| ^
../src/intel/tools/intel_sanitize_gpu.c: In function ‘bo_size’:
../src/intel/tools/intel_sanitize_gpu.c:99:15: warning: cast from pointer to integer of different size [-Wpointer-to-int-cast]
99 | return e ? (uint64_t)e->data : UINT64_MAX;
| ^
Signed-off-by: Marcin Ślusarz <marcin.slusarz@intel.com >
Reviewed-by: Lionel Landwerlin <lionel.g.landwerlin@intel.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11574 >
2021-06-28 09:31:41 +00:00
Marcin Ślusarz
53c49ce41f
intel/tools: fix left shift overflow on 32-bit
...
gcc complains:
../src/intel/tools/aub_write.c:394:53: warning: left shift count >= width of type [-Wshift-count-overflow]
394 | assert((aub->phys_addrs_allocator + size) < (1UL << 32));
| ^~
Signed-off-by: Marcin Ślusarz <marcin.slusarz@intel.com >
Reviewed-by: Jason Ekstrand <jason@jlekstrand.net >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11574 >
2021-06-28 09:31:41 +00:00
Marcin Ślusarz
d19cf7d572
anv: fix potential integer overflows
...
In all cases both variables has a type of uint32_t, so multiplying
them will also generate uint32_t. The results of those multiplications
are used as uint64_t's, so Coverity thinks there might be integer
overflows here.
I don't think it's possible to hit them (query BOs should be relatively
small), but let's avoid those overflows.
CID: 1472820
CID: 1472821
CID: 1472822
CID: 1472824
CID: 1475934
CID: 1475927
Signed-off-by: Marcin Ślusarz <marcin.slusarz@intel.com >
Reviewed-by: Jason Ekstrand <jason@jlekstrand.net >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11574 >
2021-06-28 09:31:41 +00:00
Marcin Ślusarz
365c7cc87c
intel/decoder: add assert for register size
...
Coverity complains about out-of-bounds access in
intel_field_iterator_init, because it doesn't know that the GT_MODE
register has a size of 4 bytes. Add an assertion to verify that.
CID: 1474552
Signed-off-by: Marcin Ślusarz <marcin.slusarz@intel.com >
Reviewed-by: Jason Ekstrand <jason@jlekstrand.net >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11574 >
2021-06-28 09:31:41 +00:00
Pierre-Eric Pelloux-Prayer
11528b621c
mesa/shaderapi: add an optional shader override mechanism
...
MESA_SHADER_READ_PATH is handy but it's not usable in
all cases.
This commit allows to implement an alternative mechanism
without assuming too much about how it's done, nor where/how
the shaders are stored.
When this is enabled MESA_SHADER_DUMP_PATH,
MESA_SHADER_CAPTURE_PATH and MESA_GLSL env var handling is
disabled.
Reviewed-by: Marek Olšák <marek.olsak@amd.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11621 >
2021-06-28 10:10:35 +02:00
Pierre-Eric Pelloux-Prayer
5582c52a05
mesa/shaderapi: change construct_name signature
...
Pass the sha1 as an argument.
This will be used by the next commit.
Reviewed-by: Marek Olšák <marek.olsak@amd.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11621 >
2021-06-28 10:10:35 +02:00
Jeremy Newton
9c25107495
Update libva requirement
...
Bump libva requirement since mesa references API not present prior to
libva API version 1.1.0 (libva 2.1.0 release).
See fbf6511e35 , which added VA_SURFACE_ATTRIB_MEM_TYPE_DRM_PRIME_2
requiring API version 1.1.0 or later.
Signed-off-by: Jeremy Newton <Jeremy.Newton@amd.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11508 >
2021-06-28 07:30:21 +00:00
Marek Olšák
fb586a8e3c
mesa: lower GL_CLAMP in texture and sampler functions instead of st/mesa
...
This moves the GL_CLAMP translation out of st/mesa.
This should be faster assuming constant sampler states.
Reviewed-By: Mike Blumenkrantz <michael.blumenkrantz@gmail.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11339 >
2021-06-27 10:28:39 -04:00
Marek Olšák
8403e068d4
mesa: add IsBorderColorNonZero to skip border color update for st/mesa faster
...
0.8% less overhead.
Reviewed-By: Mike Blumenkrantz <michael.blumenkrantz@gmail.com >
Reviewed-by: Emma Anholt <emma@anholt.net >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11339 >
2021-06-27 10:28:39 -04:00
Marek Olšák
9ea8f67a1e
mesa: add LodBias quantization from st/mesa
...
Apparently the quantization math isn't cheap.
This further reduces overhead by 2% for drawoverhead/8 textures.
The improvement is measured by looking at the sysprof percentage delta and
multiplying by 2 (because we have the frontend and gallium threads with
equal overhead, so the benefit is doubled compared to 1 thread).
Both per-sampler and per-unit lod bias values are quantized.
The difference in behavior is that both values are quantized separately
and then added up, instead of first added up and then quantized.
The worst case error is +- 1/256 in the reduced precision, i.e. off by one
in a fixed-point representation, which should be fine.
Reviewed-By: Mike Blumenkrantz <michael.blumenkrantz@gmail.com >
Reviewed-by: Emma Anholt <emma@anholt.net >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11339 >
2021-06-27 10:28:39 -04:00
Marek Olšák
0c70a63f5f
mesa: translate into pipe_sampler_state in GL functions
...
- pipe_sampler_state is added into gl_sampler_attrib.
- The border color field is redundant, so the non-gallium field is removed.
- Other GL fields are still tracked because of glGet.
- Some fields are not set by GL functions because they are always derived
from multiple states.
- The behavior in GL functions is the same as st_convert_sampler.
This reduces overhead by 2% for drawoverhead/8 textures, and more is going
to be done.
Reviewed-By: Mike Blumenkrantz <michael.blumenkrantz@gmail.com >
Reviewed-by: Emma Anholt <emma@anholt.net >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11339 >
2021-06-27 10:28:39 -04:00
Marek Olšák
553588194e
mesa: remove mutex locking from a glBindTexture early out path
...
The locking doesn't seem to be needed. This removes large locking
overhead.
Reviewed-By: Mike Blumenkrantz <michael.blumenkrantz@gmail.com >
Reviewed-by: Emma Anholt <emma@anholt.net >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11339 >
2021-06-27 10:27:09 -04:00
Marek Olšák
cfb43c7e1b
mesa: use atomics instead of mutexes for refcounting renderbuffers
...
Reviewed-By: Mike Blumenkrantz <michael.blumenkrantz@gmail.com >
Reviewed-by: Emma Anholt <emma@anholt.net >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11339 >
2021-06-27 10:27:09 -04:00
Marek Olšák
e77adbffb4
mesa: use atomics instead of mutexes for refcounting sampler objects
...
Reviewed-By: Mike Blumenkrantz <michael.blumenkrantz@gmail.com >
Reviewed-by: Emma Anholt <emma@anholt.net >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11339 >
2021-06-27 10:27:09 -04:00
Marek Olšák
0b1914a7c1
mesa: use atomics instead of mutexes for refcounting texture objects
...
Reviewed-By: Mike Blumenkrantz <michael.blumenkrantz@gmail.com >
Reviewed-by: Emma Anholt <emma@anholt.net >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11339 >
2021-06-27 10:27:09 -04:00
Marek Olšák
f3d331a5e3
cso: don't look up a sampler CSO if the last one is identical
...
This is benefical when sampler states are identical often, and detrimental
if they are not. The average case seems to be in favor of this.
Reviewed-By: Mike Blumenkrantz <michael.blumenkrantz@gmail.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11428 >
2021-06-27 12:49:12 +00:00
Marek Olšák
1cb35d058f
cso: update max_sampler_seen only once in cso_set_samplers
...
Reviewed-By: Mike Blumenkrantz <michael.blumenkrantz@gmail.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11428 >
2021-06-27 12:49:12 +00:00
Marek Olšák
426dd55d6c
cso: disallow NULL sampler state templates in cso_single_sampler
...
No code passes NULL into this except the single place that is updated.
Let's remove the if. The next commit depends on this.
Reviewed-By: Mike Blumenkrantz <michael.blumenkrantz@gmail.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11428 >
2021-06-27 12:49:12 +00:00
Marek Olšák
9de9e83735
st/mesa: remove the sampler min_lod/max_lod value swap
...
It might not be needed at all.
v2: fix v3d assertion failure
Acked-By: Mike Blumenkrantz <michael.blumenkrantz@gmail.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11428 >
2021-06-27 12:49:12 +00:00
Marek Olšák
ef5d427413
st/mesa: add a mechanism to bypass atomics when binding sampler views
...
This is the same mechanism we already use for buffers. The code is mostly
copied from there. See the big comment for explanation.
This will be very effective when take_ownership is added into pipe_context
::set_sampler_views because that and this commit together will eliminate
atomics for sample views almost entirely.
Reviewed-By: Mike Blumenkrantz <michael.blumenkrantz@gmail.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11428 >
2021-06-27 12:49:12 +00:00
Marek Olšák
798518e510
st/mesa: sink refcounting from st_get_sampler_views into st_sampler_view.c
...
Do it deeper in the sampler view return path. It minimizes the deltas
for the next commit.
Reviewed-By: Mike Blumenkrantz <michael.blumenkrantz@gmail.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11428 >
2021-06-27 12:49:12 +00:00
Marek Olšák
8fe705b6b4
st/mesa: remove the const qualifier for a few st_sampler_view instances
...
It will be needed by following commits.
Reviewed-By: Mike Blumenkrantz <michael.blumenkrantz@gmail.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11428 >
2021-06-27 12:49:12 +00:00
Marek Olšák
4c95370949
st/mesa: return sview from st_update_single_texture via return value, not param
...
Reviewed-By: Mike Blumenkrantz <michael.blumenkrantz@gmail.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11428 >
2021-06-27 12:49:12 +00:00
Marek Olšák
c7f860b6de
st/mesa: read Target only once in st_update_single_texture
...
Reviewed-By: Mike Blumenkrantz <michael.blumenkrantz@gmail.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11428 >
2021-06-27 12:49:12 +00:00
Marek Olšák
fc9d1660b7
st/mesa: sink _mesa_get_samplerobj into st_update_single_texture
...
Reviewed-By: Mike Blumenkrantz <michael.blumenkrantz@gmail.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11428 >
2021-06-27 12:49:12 +00:00
Marek Olšák
2ab21558d4
st/mesa: don't memset the sampler view array, don't init trailing slots to NULL
...
No functional change.
Reviewed-By: Mike Blumenkrantz <michael.blumenkrantz@gmail.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11428 >
2021-06-27 12:49:12 +00:00
Marek Olšák
8106d9a807
st/mesa: don't track FS sampler views for bitmap/drawpix in st_context
...
Just query the sampler views from the update function. This will help
optimize sampler view updates.
Reviewed-By: Mike Blumenkrantz <michael.blumenkrantz@gmail.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11428 >
2021-06-27 12:49:12 +00:00
Marek Olšák
3f9ee64505
st/mesa: don't track VS sampler views for st_draw_feedback in st_context
...
Just query the sampler views from the update function. This will help
optimize sampler view updates.
Reviewed-By: Mike Blumenkrantz <michael.blumenkrantz@gmail.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11428 >
2021-06-27 12:49:12 +00:00
Rob Clark
e74366b18a
turnip: Add CrOS Gralloc support
...
Signed-off-by: Rob Clark <robdclark@chromium.org >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11612 >
2021-06-26 18:44:12 +00:00
Rob Clark
f875b61060
turnip: Fix AcquireImageANDROID() handle type
...
Signed-off-by: Rob Clark <robdclark@chromium.org >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11612 >
2021-06-26 18:44:12 +00:00
Rob Clark
7ca79b7639
turnip: Use drmIoctl()
...
Replace open-coded ioctl with drmIoctl() to get restart on interrupted
system calls.
Signed-off-by: Rob Clark <robdclark@chromium.org >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11612 >
2021-06-26 18:44:12 +00:00
Lionel Landwerlin
40b67a2922
anv: allocate bigger batches as we grow command buffers
...
This is the first time we see an application running out of mmap().
We essentially allocate too many batches (+65k) and end up not being
able to mmap them, at which point we can't mmap anything anymore and
things go sideways.
This change allocates bigger batch BOs as we grow an existing command
buffer. This drastically reduces the number of BOs we need to allocate
(the benchmark that reported the issue now reaches a max of ~630 BOs,
instead of reaching 65k and failing previously).
v2: Track the total batch size of command buffers (Jason)
Just give 0 for batch_len to i915 (Jason)
v3: Fix indentation (Jason)
v4: Drop uncessary reshuffling of error labels (Jason)
v5: Remove empty lines (Marcin)
v6: Limit BO growing to chunks of 16Mb (Jason)
v7: Add assert on initial size (Jason)
v8: Add define for max size (Jason)
v9: Fixup v7 assert for non softpin platforms (Lionel)
Signed-off-by: Lionel Landwerlin <lionel.g.landwerlin@intel.com >
Closes: https://gitlab.freedesktop.org/mesa/mesa/-/issues/4956
Cc: mesa-stable
Reviewed-by: Jason Ekstrand <jason@jlekstrand.net >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11482 >
2021-06-26 12:23:54 +03:00
Caio Marcelo de Oliveira Filho
5853f17c30
anv: Advertise VK_KHR_shader_subgroup_uniform_control_flow
...
This is always valid for Intel, so we don't need to do anything
different if the Execution Mode is being used.
Reviewed-by: Jason Ekstrand <jason@jlekstrand.net >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11476 >
2021-06-25 22:41:32 +00:00
Caio Marcelo de Oliveira Filho
6ad88a8f08
spirv: Support SPV_KHR_subgroup_uniform_control_flow
...
There's no SPIR-V Capability associated, so check in the Execution
Mode. For now, don't keep track of whether a shader uses uniform
control flow in the shader_info, we can add that when/if a driver
actually need that information.
Reviewed-by: Jason Ekstrand <jason@jlekstrand.net >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11476 >
2021-06-25 22:41:32 +00:00
Caio Marcelo de Oliveira Filho
a219073e9b
spirv: Update headers and metadata from latest Khronos commit
...
This corresponds to f95c3b3761ee1b1903f54ae69b526ed6f0edc3b9
("Merge pull request #219 from cmarcelo/SPV_EXT_shader_atomic_float16_add")
in https://github.com/KhronosGroup/SPIRV-Headers .
Acked-by: Jason Ekstrand <jason@jlekstrand.net >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11476 >
2021-06-25 22:41:32 +00:00
Caio Marcelo de Oliveira Filho
3a9289eaed
nir: Add test to check edge case in Split ALU optimization
...
Reviewed-by: Jason Ekstrand <jason@jlekstrand.net >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11476 >
2021-06-25 22:41:32 +00:00
Caio Marcelo de Oliveira Filho
b951929795
nir/opt_if: Don't split ALU for single block infinite loops
...
Some infinite loop cases were already covered by other
restrictions (e.g. if the loop had a body), but the case with a single
block in the loop body wasn't yet.
This prevents an infinite loop when optimizing the shader in
dEQP-VK.reconvergence.subgroup_uniform_control_flow_ballot.compute.nesting2.3.2
and various others reconvergence tests.
Fixes: 0881e90c09 ("nir: Split ALU instructions in loops that read phis")
Reviewed-by: Ian Romanick <ian.d.romanick@intel.com > [v1]
Reviewed-by: Jason Ekstrand <jason@jlekstrand.net >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11476 >
2021-06-25 22:41:32 +00:00
Miguel Gomez
7b89e4d104
i965: Prevent invalid framebuffer usage
...
When a surfaceless context is in use, driDrawablePriv might be NULL, so needs to
be checked before calling dri2InvalidateDrawable. Same for read calls.
Reviewed-by: Adam Jackson <ajax@redhat.com >
Reviewed-by: Eleni Maria Stea <estea@igalia.com >
See https://gitlab.freedesktop.org/mesa/mesa/-/issues/778
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11459 >
2021-06-25 22:08:13 +00:00
Philippe Normand
6a0c0d0da9
i915: Prevent invalid framebuffer usage
...
When a surfaceless context is in use, driDrawablePriv might be NULL, so needs to
be checked before calling dri2InvalidateDrawable. Same for read calls.
Reviewed-by: Adam Jackson <ajax@redhat.com >
Reviewed-by: Eleni Maria Stea <estea@igalia.com >
Closes https://gitlab.freedesktop.org/mesa/mesa/-/issues/778
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11459 >
2021-06-25 22:08:13 +00:00
Matt Turner
40b1668ebd
amd/ci: Use MESA_VK_IGNORE_CONFORMANCE_WARNING to reduce warnings
...
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11563 >
2021-06-25 19:45:38 +00:00
Matt Turner
ed77bf3c4e
ci: Unify on MESA_VK_IGNORE_CONFORMANCE_WARNING
...
Move and rename warn_non_conformant_implementation() to common location
of src/vulkan/util/vk_util.c as vk_warn_non_conformant_implementation().
In freedreno/ci, move MESA_VK_IGNORE_CONFORMANCE_WARNING to common
location of .baremetal-deqp-test-freedreno-vk.
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11563 >
2021-06-25 19:45:38 +00:00
Mike Blumenkrantz
6a79ee97f4
anv: VK_EXT_multi_draw implementation
...
Reviewed-by: Jason Ekstrand <jason@jlekstrand.net >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11531 >
2021-06-25 17:16:14 +00:00
Mike Blumenkrantz
1e39f2c199
anv: unify some draw state vertex constant emission
...
Reviewed-by: Jason Ekstrand <jason@jlekstrand.net >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11531 >
2021-06-25 17:16:14 +00:00
Mike Blumenkrantz
15a2e5dcdb
zink: repack zink_context struct a bit
...
Reviewed-by: Joshua Ashton <joshua@froggi.es >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11593 >
2021-06-25 17:04:42 +00:00
Connor Abbott
d01e7b50b8
freedreno, tu: Set SP_XS_PVT_MEM_HW_STACK_OFFSET
...
Theoretically this register should only be used when function calls in
the shader are used, which we don't support. But with the default value
of 0 it seems like pvtmem doesn't work on a650. Just set it to the total
per-SP size, effectively leaving no space for the return-address stack,
like the blob does.
Closes: https://gitlab.freedesktop.org/mesa/mesa/-/issues/4949
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11581 >
2021-06-25 15:57:54 +00:00
Connor Abbott
02b8f8704c
freedreno/a6xx: Make SP_XS_PVT_MEM_HW_STACK_OFFSET non-inline
...
Otherwise we can't use the helper to pack it as it collides with the
function in a6xx-pack.xml.h.
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11581 >
2021-06-25 15:57:54 +00:00
Danylo Piliaiev
fdc0f489e0
ir3: add ldg.a,stg.a which allow complex in-place offset calculation
...
The full form for ldg.a/stg.a offset is:
g[reg_address + reg_offset << (imm_shift + 2) + imm_offset << 2]
where imm_shift is in [0, 3] and imm_offset is in [0, 3]
a6xx blob was found to produce a bit simplier offset calculations
for TES/TCS shaders in GTA V:
[c002000a_03c14215] ldg.a.f32 r2.z, g[r1.y+((r2.z+1)<<2)], 3;
[c0020004_01c14609] ldg.a.f32 r1.x, g[r1.y+((r1.x+3)<<2)], 1;
Our new syntax:
stg.a.u32 g[r2.x+(r1.x+1)<<2], r5.x, 1
stg.a.u32 g[r2.x+r1.x<<4+3<<2], r5.x, 1
ldg.a.f32 r1.w, g[r1.y+(r1.w+1)<<2], 3
ldg.a.f32 r1.w, g[r1.y+r1.w<<5+2<<2], 3
Signed-off-by: Danylo Piliaiev <dpiliaiev@igalia.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11431 >
2021-06-25 15:39:51 +00:00
Danylo Piliaiev
4b06db0548
freedreno/isa: add uoffset type to print positive-only offsets
...
Signed-off-by: Danylo Piliaiev <dpiliaiev@igalia.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11431 >
2021-06-25 15:39:51 +00:00
Danylo Piliaiev
ba1c989348
freedreno/computerator: pass iova of buffer to const register
...
The syntax is:
@buf 32 (c2.x)
The "(c2.x)" is optional.
This makes possible to test stg, ldg, and global atomics.
Signed-off-by: Danylo Piliaiev <dpiliaiev@igalia.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11431 >
2021-06-25 15:39:51 +00:00
Samuel Iglesias Gonsálvez
e791b2045a
anv: do not dereference VkPipelineMultisampleStateCreateInfo always
...
VkGraphicsPipelineCreateInfo.pMultisampleState is a pointer to a
VkPipelineMultisampleStateCreateInfo structure, and is ignored if the
pipeline has rasterization disabled.
Fixes a crash in one CTS tests that checks this.
Signed-off-by: Samuel Iglesias Gonsálvez <siglesias@igalia.com >
Reviewed-by: Jason Ekstrand <jason@jlekstrand.net >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11601 >
2021-06-25 14:42:42 +00:00
Danylo Piliaiev
a9fd4fa26c
turnip: early exit in tu6_draw_common to save cpu cycles
...
Improves Zink + drawoverhead perf up to 4%
Before:
1, DrawElements ( 1 VBO| 0 UBO| 0 ) w/ no state change, 3981
1, DrawElements ( 1 VBO| 0 UBO| 0 ) w/ no state change, 3977
After:
1, DrawElements ( 1 VBO| 0 UBO| 0 ) w/ no state change, 4136
1, DrawElements ( 1 VBO| 0 UBO| 0 ) w/ no state change, 4163
Signed-off-by: Danylo Piliaiev <dpiliaiev@igalia.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11556 >
2021-06-25 13:37:32 +00:00
Danylo Piliaiev
815a85dd7c
turnip: do not re-emit same vs params
...
Improves drawoverhead perf through Zink up to 260%
Before:
1, DrawElements ( 1 VBO| 0 UBO| 0 ) w/ no state change, 1518
After:
1, DrawElements ( 1 VBO| 0 UBO| 0 ) w/ no state change, 3981
This brings it close to Freedreno, which has around 4300.
In vkQuake vs params re-emission now occurs in 0.23% of draw calls.
Signed-off-by: Danylo Piliaiev <dpiliaiev@igalia.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11556 >
2021-06-25 13:37:32 +00:00
Jason Ekstrand
63e80d441a
intel/genxml: Remove old scratch fields on GFX version 12.5
...
Reviewed-by: Jordan Justen <jordan.l.justen@intel.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11582 >
2021-06-25 00:18:29 +00:00
Jason Ekstrand
eeeea5cb87
anv: Add support for scratch on XeHP
...
Rework:
* Jordan: Handle per_thread_scratch==0 in anv_scratch_pool_get_surf
* Jordan: Update subslices in anv_scratch_pool_alloc
* Jason: Clean up the patch a bit
Reviewed-by: Jason Ekstrand <jason@jlekstrand.net >
Reviewed-by: Jordan Justen <jordan.l.justen@intel.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11582 >
2021-06-25 00:18:29 +00:00
Jason Ekstrand
ae18e1e707
iris: Add support for scratch on XeHP
...
Rework:
* Jordan: Handle prog_data->total_scratch==0 in iris_upload_compute_walker
* Jordan: Resolve iris_get_scratch_space conflict with e2c5ef6cd6
* Jordan: Rebase on 4256f7ed58 . broken
* Ken: Mostly fixed the rebase
* Jordan: Fix two small compilation issues
* Jordan: Rebase on Ken's ("iris: Make a pin_scratch_space() helper")
* Lionel: Fix a few bugs with scratch handles
* Jason: Tidy the patch up a bit
Reviewed-by: Jason Ekstrand <jason@jlekstrand.net >
Reviewed-by: Jordan Justen <jordan.l.justen@intel.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11582 >
2021-06-25 00:18:29 +00:00
Jason Ekstrand
545011b445
iris: Add a MEMZONE_BINDLESS and uploader
...
Reviewed-by: Jordan Justen <jordan.l.justen@intel.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11582 >
2021-06-25 00:18:29 +00:00
Jason Ekstrand
8ca0513eca
intel/genxml: Add new ScratchSpaceBuffer fields on GFX version 12.5
...
Rework:
* Jordan: Fix MEMZONE_BINDER_START detection
* Jordan: Bump the IRIS_BINDLESS_SIZE to 8M
Reviewed-by: Jordan Justen <jordan.l.justen@intel.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11582 >
2021-06-25 00:18:29 +00:00
Jason Ekstrand
1e242785c3
intel/fs: Implement load/store_scratch on XeHP
...
Reviewed-by: Jordan Justen <jordan.l.justen@intel.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11582 >
2021-06-25 00:18:29 +00:00
Jason Ekstrand
c38812be1d
intel/fs: Implement spilling on XeHP
...
Reviewed-by: Jordan Justen <jordan.l.justen@intel.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11582 >
2021-06-25 00:18:29 +00:00
Jason Ekstrand
96ee78778b
intel/isl: Add support for scratch buffers
...
XeHP adds support for a new surface type for scratch. It's similar to
SURFTYPE_STRBUF in that it's a 2D array-of-struct format but the one
key difference is that the U coordinate is computed automatically based
on the thread ID and only the V coordinate is provided in the dataport
message.
Reviewed-by: Jordan Justen <jordan.l.justen@intel.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11582 >
2021-06-25 00:18:29 +00:00
Jason Ekstrand
443627fcc0
intel/genxml: Add SURFTYPE_SCRATCH on GFX version 12.5
...
Reviewed-by: Jordan Justen <jordan.l.justen@intel.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11582 >
2021-06-25 00:18:29 +00:00
Emma Anholt
ea43465dbf
Revert "freedreno: Cooperate with tc to stop checking the BC for resource_busy()."
...
This reverts commit 5cb043cf82 .
While the numbers were impressive for drawoverhead, it comes at the cost
of additional flushes, which for gmem access (what we actually care about
most!) would greatly increase the actual cost to render. Also, gl_driver2
overhead is increased, probably due to spending time in the kernel for the
flushes.
drawoverhead's win came from the increased flushing causing the GPU to
start processing the buffers sooner on everything but test 1, which
already had some incremental flushing happening. That was certainly not
intended by the change.
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11599 >
2021-06-24 23:24:44 +00:00
Mike Blumenkrantz
be94bad126
zink: flush pending clears if a resource is bound as a descriptor
...
ensure that resource data is in sync with the expected command stream
Reviewed-by: Dave Airlie <airlied@redhat.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11590 >
2021-06-24 22:34:46 +00:00
Mike Blumenkrantz
9a027bebb5
zink: only queue deferred descriptor layout change on first bind or change
...
otherwise, the layout is either already correct or already queued
Reviewed-by: Dave Airlie <airlied@redhat.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11590 >
2021-06-24 22:34:46 +00:00
Mike Blumenkrantz
8f897ae7c1
zink: improve automatic layout transitions for sampler+image descriptors
...
binding new images may require auto-transitions for the other pipeline, and
unbinding an image requires that any persistent sampler binds have their layouts
updated
Reviewed-by: Dave Airlie <airlied@redhat.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11590 >
2021-06-24 22:34:46 +00:00
Mike Blumenkrantz
8a345adf20
zink: use bind counts to more accurately determine image descriptor's exact layout
...
Reviewed-by: Dave Airlie <airlied@redhat.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11590 >
2021-06-24 22:34:46 +00:00
Mike Blumenkrantz
e8a188a86e
zink: only do deferred image barriers if layout changes
...
otherwise these should be handled by apps using glMemoryBarrier
Reviewed-by: Dave Airlie <airlied@redhat.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11590 >
2021-06-24 22:34:46 +00:00
Mike Blumenkrantz
d3b7b35584
zink: split deferring of barriers to image and buffer functions
...
make this more explicit
Reviewed-by: Dave Airlie <airlied@redhat.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11590 >
2021-06-24 22:34:46 +00:00
Mike Blumenkrantz
0e390d2f83
zink: break out image descriptor layout into util function
...
Reviewed-by: Dave Airlie <airlied@redhat.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11590 >
2021-06-24 22:34:46 +00:00
Erik Faye-Lund
04578badc9
ci/windows: fix zink msvc build-rules
...
When I added the build-rules for zink to the windows build, I
accidentally added it to .windows-test-rules instead of
.windows-build-rules. This seems to trigger a build-error if we trigger
*just* a test due to a zink-change, but not a build.
Hopefully this fixes the problems Mike has had with Zink CI recently.
Fixes: a426d7c264 ("ci/windows: enable msvc builds of zink")
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11597 >
2021-06-24 22:45:35 +02:00
Enrico Galli
d0cbd39a5c
microsoft/spirv_to_dxil: Add drive_location assignment
...
Acked-by: Erik Faye-Lund <erik.faye-lund@collabora.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10989 >
2021-06-24 20:05:13 +00:00
Enrico Galli
aa7aa7c78f
microsoft/compiler: Switch io sort to use nir_sort_variables_with_modes
...
Acked-by: Erik Faye-Lund <erik.faye-lund@collabora.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10989 >
2021-06-24 20:05:13 +00:00
Enrico Galli
8a5333c105
nir: Add modes filter to nir_sort_variables
...
Reviewed-by: Jason Ekstrand <jason@jlekstrand.net >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10989 >
2021-06-24 20:05:13 +00:00
Jason Ekstrand
81cb20bd17
nir: Add a function for sorting variables
...
Reviewed-by: Iago Toral Quiroga <itoral@igalia.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10989 >
2021-06-24 20:05:13 +00:00
Enrico Galli
cf385cf68c
util: Add qsort_r/s args adapter for MSVC and BSD/macOS
...
MSVC's qsort_s behaves similarly to sort_r. Unfortunately, qsort_s's
compare function has the "context"/"args" as its first argument. BSD's
qsort_r has a different order than GNU's qsort_r. Finally, C11 added
qsort_s's which look like GNU's gsort_r.
Reviewed-by: Jason Ekstrand <jason@jlekstrand.net >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10989 >
2021-06-24 20:05:12 +00:00
Enrico Galli
1df2acfbb8
util: Add simple test for util_qsort_r
...
Reviewed-by: Jason Ekstrand <jason@jlekstrand.net >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10989 >
2021-06-24 20:05:12 +00:00
Jason Ekstrand
bdd460fdcb
util: Add an implementation of qsort_r for non-GNU platforms
...
Android and MSVC don't have qsort_r() so let's provide a util wrapper
that uses the old qsort and thread-local storage. We use C++ for this
because thread_local is built into C++11 and we can't rely on C11
everywhere.
Acked-by: Erik Faye-Lund <erik.faye-lund@collabora.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10989 >
2021-06-24 20:05:12 +00:00
Enrico Galli
e2e22720dc
d3d12, microsoft/compiler: Moving driver_location allocation to compiler
...
Acked-by: Erik Faye-Lund <erik.faye-lund@collabora.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10989 >
2021-06-24 20:05:12 +00:00
Enrico Galli
d0f1698a73
d3d12, microsoft/compiler: Switching semantic names to TEXCOORD
...
Switching from GENERIC/VARYING to TEXCOORD. This change better aligns
with other dxil generators (SPIRV-Cross, Tint).
Reviewed-by: Erik Faye-Lund <erik.faye-lund@collabora.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10989 >
2021-06-24 20:05:12 +00:00
Enrico Galli
b8e2374950
microsoft/compiler: Remove de-duplication of arbitrary semantic names
...
Since DXC doesn't perform de-duplication for arbitrary semantic names,
and the DXIL validator checks against this behavior. We need to remove
the de-duplication.
Reviewed-by: Jesse Natalie <jenatali@microsoft.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10989 >
2021-06-24 20:05:12 +00:00
Niklas Haas
83f8b19f9b
vulkan/wsi/wayland: implement the full format table
...
This code was written but (rightfully) commented out, because it
referenced non-existing vulkan formats.
The correct vulkan analogs come in the form _PACK16 and _PACK32,
respectively, which have their component ordering in high->low bit
order. This is compatible with the DRM format ordering on little endian
systems, so we can just implement them all in the obvious way. On big
endian systems, the _PACKN formats have no analogs, because the
corresponding DRM formats are specified as always being little endian.
I implemented all of the formats I could, while excluding those that
don't map to vulkan at all (e.g. BGRA1010102), and commenting out the
ones that require an extra extension (e.g. ARGB4444) because they
probably need to be checked for extension presence first.
List slightly re-ordered to make it more neatly organized. Tested
working with the 2101010 and 565 variants. Was not able to test the 4444
or 1555 formats, but I verified the channel order was correct so they
should be working in theory.
Signed-off-by: Niklas Haas <git@haasn.xyz >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/9737 >
2021-06-24 19:37:51 +00:00
Alexey Nurmukhametov
8d0d2e82e7
tu/kgsl: Fix file descriptor double close
...
tu_kgsl.c: tu_enumerate_devices closed fd previously closed by
tu_physical_device_init function.
Move out the fd closing from tu_physical_device_init function because
they do not belong to it.
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11561 >
2021-06-24 18:16:15 +00:00
Erik Faye-Lund
a426d7c264
ci/windows: enable msvc builds of zink
...
This depends on both the Vulkan SDK and the Vulkan Runtime, so let's
install those first.
Reviewed-by: Jesse Natalie <jenatali@microsoft.com >
Reviewed-by: Daniel Stone <daniels@collabora.com >
Acked-by: Mike Blumenkrantz <michael.blumenkrantz@gmail.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11424 >
2021-06-24 17:51:48 +00:00
Erik Faye-Lund
b437fb810a
ci/windows: work around meson encoding issues
...
It turns out, some combinations of Meson and MSVC doesn't handle UTF-8
symbols in source-files as gracefully as we'd like. Luckily, there's a
work-around; forcing UTF-8 as the default-encoding.
Please see this Meson ticket for details:
https://github.com/mesonbuild/meson/issues/8263
Cc: mesa-stable
Reviewed-by: Jesse Natalie <jenatali@microsoft.com >
Reviewed-by: Daniel Stone <daniels@collabora.com >
Acked-by: Mike Blumenkrantz <michael.blumenkrantz@gmail.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11424 >
2021-06-24 17:51:47 +00:00
Erik Faye-Lund
f815026d36
zink: cast pointers to uintptr_t
...
The way p_atomic_cmpxchg is implemented on Windows really wants us to
use integers instead of things like pointers. So let's use uintptr_t
here. It seems cleaner to use that than the value zero for the last
argument, because it shows the intent of the code more clearly.
Fixes: d80d9e1c93 ("zink: queue v3.0")
Reviewed-by: Jesse Natalie <jenatali@microsoft.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11424 >
2021-06-24 17:51:47 +00:00
Erik Faye-Lund
bae4dca8e4
aux/trace: fix bool argument
...
The second argument to debug_get_bool_option is a boolean, not a
pointer. Passing a NULL-pointer there triggers a warning, which we treat
as an error on MSVC:
---8<---
../src/gallium/auxiliary/driver_trace/tr_screen.c(1071): error C2220:
the following warning is treated as an error
../src/gallium/auxiliary/driver_trace/tr_screen.c(1071): warning C4047:
'function': 'bool' differs in levels of indirection from 'void *'
../src/gallium/auxiliary/driver_trace/tr_screen.c(1071): error C4024:
'debug_get_bool_option': different types for formal and actual parameter 2
---8<---
Fixes: c1270d4845 ("aux/trace: add screen deduplication for zink+lavapipe tracing")
Reviewed-by: Jesse Natalie <jenatali@microsoft.com >
Reviewed-by: Daniel Stone <daniels@collabora.com >
Acked-by: Mike Blumenkrantz <michael.blumenkrantz@gmail.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11424 >
2021-06-24 17:51:47 +00:00
Emma Anholt
ea5707c52f
turnip: Disable buffer texturing on 422 formats.
...
Fixes:
dEQP-VK.api.info.format_properties.g8b8g8r8_422_unorm
dEQP-VK.api.info.format_properties.b8g8r8g8_422_unorm
and part of:
dEQP-VK.api.info.format_properties.g8_b8_r8_3plane_420_unorm
dEQP-VK.api.info.format_properties.g8_b8r8_2plane_420_unorm
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11562 >
2021-06-24 17:34:06 +00:00
Emma Anholt
6bc88c26b6
ci/turnip: Document create_instance_device_intentional_alloc_fail's fail.
...
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11562 >
2021-06-24 17:34:06 +00:00
Emma Anholt
55000408f9
turnip: Use vk_startup_errorf() in more startup paths.
...
This does the logging for you.
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11562 >
2021-06-24 17:34:06 +00:00
Emma Anholt
31f8b70481
turnip: Link more MRs and issues related to our xfails.
...
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11562 >
2021-06-24 17:34:06 +00:00
Emma Anholt
4b44e28526
freedreno/ir3: Report RA failure with mesa_loge().
...
This is a major failure that should never happen (if we had spilling
support), don't hide the log behind DEBUG builds.
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11562 >
2021-06-24 17:34:06 +00:00
Erik Faye-Lund
45b7b57a83
iris/ci: disable amly jobs
...
These runners are having stability issues, and is causing a lot of
merge-requests to fail without reason. Let's disable them until the
runners have gotten some stability fixes in place.
See this discussion for details:
https://gitlab.freedesktop.org/mesa/mesa/-/issues/3437#note_971266
Acked-by: Mike Blumenkrantz <michael.blumenkrantz@gmail.com >
Acked-by: Daniel Stone <daniels@collabora.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11580 >
2021-06-24 17:13:18 +00:00
Daniel Schürmann
b14bd285f8
aco/ra: handle copies of copies better
...
Instead of adding a second copy, just redirect
the existing copy.
No fossil-db changes.
Reviewed-by: Rhys Perry <pendingchaos02@gmail.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11571 >
2021-06-24 16:53:10 +00:00
Daniel Schürmann
995e218993
aco/ra: handle copies of definition registers
...
Previously, it could happen that a parallelcopy of
a definition was inserted before the instruction.
Fixes Rage 2 with GFX7.
No fossil-db changes.
Reviewed-by: Rhys Perry <pendingchaos02@gmail.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11571 >
2021-06-24 16:53:10 +00:00
Jason Ekstrand
d31dd81292
anv: Claim to be a discrete GPU if has_lmem
...
Reviewed-by: Jordan Justen <jordan.l.justen@intel.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/5599 >
2021-06-24 16:14:38 +00:00
Jordan Justen
b6a1063c2e
intel/dev: Set has_local_mem for DG1
...
Signed-off-by: Jordan Justen <jordan.l.justen@intel.com >
Reviewed-by: Jason Ekstrand <jason@jlekstrand.net >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/5599 >
2021-06-24 16:14:38 +00:00
Sagar Ghuge
e505c221fa
anv: Allocate scratch and workaround BO in local memory
...
Signed-off-by: Sagar Ghuge <sagar.ghuge@intel.com >
Reviewed-by: Jason Ekstrand <jason@jlekstrand.net >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/5599 >
2021-06-24 16:14:38 +00:00
Sagar Ghuge
6352371ff6
anv: Allocate BO in appropriate region
...
Signed-off-by: Sagar Ghuge <sagar.ghuge@intel.com >
Reviewed-by: Jason Ekstrand <jason@jlekstrand.net >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/5599 >
2021-06-24 16:14:38 +00:00
Sagar Ghuge
3f8eca7f82
anv: Wrapper around I915_GEM_CREATE_EXT_MEMORY_REGIONS
...
v2 (Jordan Justin):
- add anv_gem_stubs.c impl
v3 (Jason Ekstrand):
- Use the upstream uAPI
- Rework the interface a bit
Signed-off-by: Sagar Ghuge <sagar.ghuge@intel.com >
Signed-off-by: Jordan Justen <jordan.l.justen@intel.com >
Reviewed-by: Jason Ekstrand <jason@jlekstrand.net >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/5599 >
2021-06-24 16:14:38 +00:00
Sagar Ghuge
65e8d72bc1
anv: Query memory region info
...
Create additional memory type with DEVICE_LOCAL_BIT if we have local
memory region aviable.
v2 (Jason Ekstrand):
- Don't leak mem_regions if the second ioctl fails
Signed-off-by: Sagar Ghuge <sagar.ghuge@intel.com >
Reviewed-by: Jason Ekstrand <jason@jlekstrand.net >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/5599 >
2021-06-24 16:14:38 +00:00
Rafael Antognolli
aa3775c8e4
iris: Map with WC on non-LLC platforms.
...
Reworks:
* Jordan: Required rework following
f62724ccac ("iris: Pick a single mmap mode (WB/WC) at BO allocation time")
Reviewed-by: Jason Ekstrand <jason@jlekstrand.net >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/5599 >
2021-06-24 16:14:38 +00:00
Rafael Antognolli
b6a7400dfd
iris/bufmgr: Add flag to allocate from local memory.
...
Reviewed-by: Jason Ekstrand <jason@jlekstrand.net >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/5599 >
2021-06-24 16:14:38 +00:00
Rafael Antognolli
55be94dcab
iris/bufmgr: Add new set of buckets for local memory.
...
Reviewed-by: Jason Ekstrand <jason@jlekstrand.net >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/5599 >
2021-06-24 16:14:38 +00:00
Rafael Antognolli
e60114b2ae
iris/bufmgr: Query memory region info.
...
v2 (Jason Ekstrand):
- Don't leak meminfo if the ioctl fails on the second pass
Reviewed-by: Jason Ekstrand <jason@jlekstrand.net >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/5599 >
2021-06-24 16:14:38 +00:00
Jordan Justen
84069acfd4
iris/bufmgr: Align vma addresses to 64K for local memory
...
Signed-off-by: Jordan Justen <jordan.l.justen@intel.com >
Reviewed-by: Jason Ekstrand <jason@jlekstrand.net >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/5599 >
2021-06-24 16:14:38 +00:00
Jordan Justen
cb6feae0b5
intel/devinfo: Add has_local_mem
...
Signed-off-by: Jordan Justen <jordan.l.justen@intel.com >
Reviewed-by: Jason Ekstrand <jason@jlekstrand.net >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/5599 >
2021-06-24 16:14:38 +00:00
Jason Ekstrand
8dc3c91a5c
include/drm-uapi: bump headers
...
From drm-next at the following commit:
commit 2a7005c8a3982ba27fab237d85c27da446484e9c (HEAD)
Merge: 0666cba1f5b2b 47c65b3853f88
Author: Dave Airlie <airlied@redhat.com >
Date: Fri Jun 11 13:34:42 2021 +1000
Merge tag 'drm-intel-gt-next-2021-06-10' of...
Acked-by: Daniel Vetter <daniel.vetter@ffwll.ch >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/5599 >
2021-06-24 16:14:38 +00:00
Simon Zeni
2fe2eb1911
radv: Implement VK_EXT_acquire_drm_display
...
Signed-off-by: Simon Zeni <simon@bl4ckb0ne.ca >
Reviewed-by: Simon Ser <contact@emersion.fr >
Reviewed-by: Bas Nieuwenhuizen <bas@basnieuwenhuizen.nl >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11014 >
2021-06-24 15:48:38 +00:00
Simon Zeni
f9944899a7
vulkan/wsi: Implement VK_EXT_acquire_drm_display
...
Implements the two functions defined in the extension
VK_EXT_acquire_drm_display, vkAcquireDrmDisplayEXT and vkGetDrmDisplayEXT.
Signed-off-by: Simon Zeni <simon@bl4ckb0ne.ca >
Reviewed-by: Jason Ekstrand <jason@jlekstrand.net >
Reviewed-by: Simon Ser <contact@emersion.fr >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11014 >
2021-06-24 15:48:38 +00:00
Simon Zeni
fdf22aad73
vulkan/wsi: add drm_fd param to wsi_display_get_connector
...
Modifies the signature on `wsi_display_get_connector` to retrieve the
connector of an arbitrary DRM FD instead of the one taken from the
wsi_display.
Signed-off-by: Simon Zeni <simon@bl4ckb0ne.ca >
Reviewed-by: Simon Ser <contact@emersion.fr >
Reviewed-by: Jason Ekstrand <jason@jlekstrand.net >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11014 >
2021-06-24 15:48:38 +00:00
Jason Ekstrand
7fb70ee2d5
docs/isl: Improve the bit[6] swizzling section of the tiling chapter
...
Suggested-by: Luis Strano <luis.strano@intel.com >
Acked-by: Luis Strano <luis.strano@intel.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11479 >
2021-06-24 13:57:40 +00:00
Jason Ekstrand
b8030ab1ea
isl,docs: Add a chapter on AUX state tracking
...
We also update and improve the docs in isl.h which get pulled into this
new chapter.
Acked-by: Luis Strano <luis.strano@intel.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11479 >
2021-06-24 13:57:40 +00:00
Jason Ekstrand
94a52bc85c
isl,iris: Move the extra_aux_surf logic into iris
...
This gets rid of the awkward interface for isl_surf_get_ccs_surf where
we passed it two aux surfaces and it was supposed to fill out the second
one based on whether or not the first one already had stuff in it.
Instead, we now pass it three well-labled surfaces: surf,
hiz_or_mcs_surf, and ccs_surf which have obvious meanings. This does
mean that iris has to carry a bit of logic and we have to flip
parameters around in all the callers. But the resulting interface is
much cleaner.
Reviewed-by: Nanley Chery <nanley.g.chery@intel.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11479 >
2021-06-24 13:57:40 +00:00
Jason Ekstrand
37f76aab1c
isl: Take a hiz_or_mcs_surf in isl_surf_supports_ccs
...
Whether or not a surface supports CCS on Tigerlake and later is
dependent not only on the main surface but also on the MCS or HiZ
surface, if any. We were doing some of these checks in
isl_get_ccs_surf based on the extra_aux parameter but not as many as we
probably should. In particular, we were really only checking HiZ
conditions and nothing for MCS. It also meant that, in spite of the
symmetry in names, the checks in isl_surf_get_ccs_surf were more
complete than in isl_surf_supports_ccs.
Reviewed-by: Nanley Chery <nanley.g.chery@intel.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11479 >
2021-06-24 13:57:40 +00:00
Jason Ekstrand
2d2590a879
isl: Assert some iris invariants in isl_surf_get_ccs_surf
...
The only driver which calls isl_surf_get_ccs_surf with extra_aux != NULL
is iris and it always calls it with two aux surfaces and never calls it
for CCS twice. We can turn those checks into asserts.
Reviewed-by: Nanley Chery <nanley.g.chery@intel.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11479 >
2021-06-24 13:57:40 +00:00
Vinson Lee
6fe82e6c1e
asahi: Fix macOS macro.
...
Fixes: 26b19bda30 ("asahi: Add device abstraction")
Fixes: 55c0956fd0 ("asahi: Add (clean room) IOKit uABI header")
Signed-off-by: Vinson Lee <vlee@freedesktop.org >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11569 >
2021-06-24 13:49:40 +00:00
Erik Faye-Lund
9aff548ff4
libgl-gdi: add missing include
...
Without this, I get the following error if I try to compile Zink without
any other drivers:
src/gallium/targets/libgl-gdi/libgl_gdi.c(210): error C2037: left of
'flush_frontbuffer' specifies undefined struct/union 'pipe_screen'
Fixes: fdfe4a4d30 ("libgl-gdi: add zink support")
Reviewed-by: Jesse Natalie <jenatali@microsoft.com >
Acked-by: Mike Blumenkrantz <michael.blumenkrantz@gmail.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11536 >
2021-06-24 09:30:20 +00:00
Erik Faye-Lund
fa784acbdf
zink: remove some needless moltenvk details
...
This removes a macro that we don't need, and removes a comment about a
detail that we don't care about in that location.
Acked-By: Mike Blumenkrantz <michael.blumenkrantz@gmail.com >
Acked-by: Hoe Hao Cheng <haochengho12907@gmail.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11554 >
2021-06-24 10:47:00 +02:00
Erik Faye-Lund
ccb9f8670e
zink: do not store moltenvk functions in screen
...
These functions are only used once anyway, no need to store them and
make the rest of Zink care.
Acked-By: Mike Blumenkrantz <michael.blumenkrantz@gmail.com >
Acked-by: Hoe Hao Cheng <haochengho12907@gmail.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11554 >
2021-06-24 10:46:55 +02:00
Erik Faye-Lund
95cbb560cf
zink: remove unused moltenvk functions
...
These functions were added, but never used. Let's get rid of them.
Fixes: c2cb2dd3bc ("zink: Added support for MacOS MoltenVK APIs.")
Acked-By: Mike Blumenkrantz <michael.blumenkrantz@gmail.com >
Acked-by: Hoe Hao Cheng <haochengho12907@gmail.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11554 >
2021-06-24 10:46:52 +02:00
Erik Faye-Lund
7b220f8694
zink: unbreak moltenvk code
...
These functions don't exist in the Khronos XML, so we don't generate
dispatch-table entries for them. So let's not try to call them in that
way.
Fixes: 5574868103 ("zink: use the dispatch tables")
Acked-By: Mike Blumenkrantz <michael.blumenkrantz@gmail.com >
Acked-by: Hoe Hao Cheng <haochengho12907@gmail.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11554 >
2021-06-24 10:46:31 +02:00
Erik Faye-Lund
e979ecbd45
zink: remove unused function-pointers
...
We also forgot to remove these when we stoped using them, more stuff to
delete, yeah!
Fixes: 5574868103 ("zink: use the dispatch tables")
Reviewed-By: Mike Blumenkrantz <michael.blumenkrantz@gmail.com >
Reviewed-by: Hoe Hao Cheng <haochengho12907@gmail.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11554 >
2021-06-24 10:46:13 +02:00
Erik Faye-Lund
efa863990a
zink: drop unused macros
...
We stopped using these without removing them, let's tidy that bit up.
Fixes: 5574868103 ("zink: use the dispatch tables")
Reviewed-By: Mike Blumenkrantz <michael.blumenkrantz@gmail.com >
Reviewed-by: Hoe Hao Cheng <haochengho12907@gmail.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11554 >
2021-06-24 10:45:18 +02:00
Dave Airlie
d2114bf413
crocus: fix another printf specifier.
...
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11570 >
2021-06-24 07:10:49 +00:00
Dave Airlie
78c979dc93
crocus/gfx6: always be dirtying gs attachments for xfb
...
This fixes hangs seen with xfb and the deqp test
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11567 >
2021-06-24 06:50:49 +00:00
Dave Airlie
7399d6028f
crocus: Avoid replacing backing storage for buffers with no contents
...
Ported 97e9de1795 from iris
We might get asked to pitch the storage on a buffer that already has
no meaningful contents. In this case, the existing buffer is as good
as a new one.
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11567 >
2021-06-24 06:50:49 +00:00
Dave Airlie
0fa4b64f6c
crocus: dirty blend state more often.
...
The blend state depends on wm_prog_data dual_src and it also
depends on the cbuf formats in can_emit_logic_op.
Dirty it in the correct places.
Fixes:
dEQP-GLES3.functional.fbo.invalidate*
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11567 >
2021-06-24 06:50:49 +00:00
Dave Airlie
a74c16e5f8
crocus/gfx6: fix sampler view first level.
...
The gfx6 state needs to dirty sampler state so that BaseMipLevel
gets updated properly.
Fixes:
dEQP-GLES3.functional.texture.mipmap.cube.base_level.*
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11567 >
2021-06-24 06:50:49 +00:00
Dave Airlie
0acd202858
intel/genxml: fix gfx6 GS SVB_INDEX encoding
...
This seems to match what the docs + 965 traces say
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11567 >
2021-06-24 06:50:49 +00:00
Dave Airlie
c282a082be
crocus/query: poll the syncobj in the no wait situation
...
In the no wait, poll the syncobj and bail if it's hasn't signalled.
This fixes a bunch of deqp xfb tests on sandybridge
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11567 >
2021-06-24 06:50:49 +00:00
Adam Jackson
9ca6abd424
vl/dri3: Don't leak regions on the X server
...
I can't tell from a quick read whether this clip region is actually just
the bounding box so could be skipped entirely. But the old code never
destroyed it, which means we'd leak a couple hundred bytes on the X
server side for every SwapBuffers until the client dies of XID
exhaustion, which is somewhere north of 2GB for typical systems so you
may or may not just run out of memory first.
Create the region at swap time and stash it in the drawable state.
Reviewed-By: Mike Blumenkrantz <michael.blumenkrantz@gmail.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11461 >
2021-06-24 03:18:06 +00:00
Adam Jackson
7e9424d91b
loader/dri3: Don't churn through xfixes regions in SwapBuffers
...
Regions are not expensive objects on the server side, it's very slightly
cheaper to update an existing one than to create a new one, and we can
garbage collect them when the drawable is destroyed. Worse, XID reuse
bugs exist, so the more we can do to not churn through XIDs the better.
Reviewed-By: Mike Blumenkrantz <michael.blumenkrantz@gmail.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11461 >
2021-06-24 03:18:06 +00:00
Adam Jackson
34e4622983
loader/dri3: Properly initialize the XFIXES extension
...
The server starts off assuming the only XFIXES request the client might
known is FixesQueryVersion, and based on the version number the client
supplies it unlocks additional requests. If you forget to do this then
xcb_xfixes_create_region will throw BadRequest and you will be very
confused. libXfixes would hide this for you in extension setup but xcb
is not so forgiving.
Reviewed-By: Mike Blumenkrantz <michael.blumenkrantz@gmail.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11461 >
2021-06-24 03:18:06 +00:00
Marek Olšák
888b7ba338
radeonsi: optimize set_inlinable_constants when they don't change
...
Reviewed-by: Pierre-Eric Pelloux-Prayer <pierre-eric.pelloux-prayer@amd.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11509 >
2021-06-23 22:37:34 -04:00
Marek Olšák
86355b5984
ac/gpu_info: adjust the condition for use_late_alloc
...
Reviewed-by: Pierre-Eric Pelloux-Prayer <pierre-eric.pelloux-prayer@amd.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11509 >
2021-06-23 22:37:32 -04:00
Marek Olšák
ff42fd1fdf
radeonsi: don't use NGG culling on 1 RB chips
...
Reviewed-by: Pierre-Eric Pelloux-Prayer <pierre-eric.pelloux-prayer@amd.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11509 >
2021-06-23 22:37:31 -04:00
Marek Olšák
f7afcc3d11
radeonsi: remove incorrect comment about hangs in gfx10_ngg_gs_emit_epilogue
...
Reviewed-by: Pierre-Eric Pelloux-Prayer <pierre-eric.pelloux-prayer@amd.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11509 >
2021-06-23 22:37:29 -04:00
Marek Olšák
593f3b3a5a
radeonsi: if shader culling culls all vertices, cull the primitive exports too
...
This was overlooked. It benefits triangle strips the most due to
GS fast launch.
Reviewed-by: Pierre-Eric Pelloux-Prayer <pierre-eric.pelloux-prayer@amd.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11509 >
2021-06-23 22:37:27 -04:00
Marek Olšák
defc7c92d9
radeonsi: document why VBO descriptors in user SGPRs are beneficial
...
Reviewed-by: Pierre-Eric Pelloux-Prayer <pierre-eric.pelloux-prayer@amd.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11509 >
2021-06-23 22:37:23 -04:00
Mike Blumenkrantz
f99f7c06e7
lavapipe: implement multidraw ext
...
Reviewed-by: Dave Airlie <airlied@redhat.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11533 >
2021-06-24 01:35:33 +00:00
Mike Blumenkrantz
be0e34450b
zink: use depth/stencil-only layouts for depth/stencil-only formats
...
just kidding, this is banned by spec
Reviewed-by: Dave Airlie <airlied@redhat.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11389 >
2021-06-24 01:19:07 +00:00
Timothy Arceri
d22cdcd33a
util: add work around for the game We Happy Few
...
This is another Unreal engine game that requires the
allow_glsl_cross_stage_interpolation_mismatch workaround.
Cc: mesa-stable
Closes: https://gitlab.freedesktop.org/mesa/mesa/-/issues/4966
Reviewed-by: Marek Olšák <marek.olsak@amd.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11558 >
2021-06-23 23:44:33 +00:00
Emma Anholt
a067f54f3e
ci/i915g: Skip the piglit glx tests since we're not running X.
...
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11559 >
2021-06-23 19:54:55 +00:00
Emma Anholt
1ccb8ab801
i915g: Finish out blend factor overrides for both RGBx and A8.
...
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11559 >
2021-06-23 19:54:55 +00:00
Emma Anholt
2683c7bf9a
i915g: Fix bad naming of depth texture formats.
...
Now matches classic's i915_reg.h and the spec.
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11559 >
2021-06-23 19:54:55 +00:00
Connor Abbott
078030973b
ir3/ra: Fix corner case in collect handling
...
I ran into this when accidentally changing the scheduling order in the
hl2 trace.
Fixes: 0ffcb19 ("ir3: Rewrite register allocation")
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11469 >
2021-06-23 17:20:29 +00:00
Connor Abbott
3dc8c59858
ir3: Remove IR3_REG_DEST
...
This was needed because code iterating the regs array needed to know
what was a destination and what wasn't, but now we have separate srcs
and dsts arrays so it's not needed.
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11469 >
2021-06-23 17:20:29 +00:00
Connor Abbott
def96adaee
ir3: Remove regs array
...
Now that everything is converted over, switch to separate src/dst
arrays.
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11469 >
2021-06-23 17:20:29 +00:00
Connor Abbott
57aeef5c13
ir3/frontend: Switch to srcs/dsts arrays
...
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11469 >
2021-06-23 17:20:29 +00:00
Connor Abbott
5785abb9ed
ir3/opts: Switch to srcs/dsts arrays
...
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11469 >
2021-06-23 17:20:29 +00:00
Connor Abbott
58fb0a01e1
ir3/validate: Switch to srcs/dsts arrays
...
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11469 >
2021-06-23 17:20:29 +00:00
Connor Abbott
050ec77d1b
ir3/print: Switch to srcs/dsts arrays
...
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11469 >
2021-06-23 17:20:29 +00:00
Connor Abbott
1b4990eea6
ir3/legalize: Switch to srcs/dsts arrays
...
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11469 >
2021-06-23 17:20:29 +00:00
Connor Abbott
abebc1f53f
ir3/array_to_ssa: Switch to srcs/dsts arrays
...
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11469 >
2021-06-23 17:20:29 +00:00
Connor Abbott
dd13081e03
ir3/parser: Switch to srcs/dsts arrays
...
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11469 >
2021-06-23 17:20:29 +00:00
Connor Abbott
af48cfc06b
ir3/ra: Switch to srcs/dsts arrays
...
RA was manually fiddling with regs to copy over the parallel copy code,
which has to be done in a different way, but if we switch this all over
at once it shouldn't be a problem.
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11469 >
2021-06-23 17:20:29 +00:00
Connor Abbott
d3e08327cf
ir3/core: Switch to srcs/dsts arrays
...
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11469 >
2021-06-23 17:20:29 +00:00
Connor Abbott
50994eeabf
ir3/sched: Convert to srcs/dsts arrays
...
Also change the indexing in ir3_delayslots, so it's finally sane! To do
this we also have to change foreach_ssa_src_n to index srcs instead of
regs, so that the indexing stays in sync.
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11469 >
2021-06-23 17:20:29 +00:00
Connor Abbott
132dfacdcb
freedreno/tests: Convert to srcs/dsts
...
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11469 >
2021-06-23 17:20:29 +00:00
Connor Abbott
bff83fc42b
freedreno/isa: Convert to srcs/dsts
...
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11469 >
2021-06-23 17:20:29 +00:00
Connor Abbott
db7814ad56
ir3: Add srcs/dsts arrays to ir3_instruction
...
Initially these will shadow regs, so that we can transition things
before getting rid of regs.
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11469 >
2021-06-23 17:20:29 +00:00
Connor Abbott
59b9935877
ir3/legalize: Construct branch properly
...
Don't just yeet stuff into regs without updating regs_count, etc. This
will break horribly during the transition otherwise.
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11469 >
2021-06-23 17:20:29 +00:00
Connor Abbott
e93f15d4bc
ir3: Add separate src/dst count in ir3_instr
...
srcs and dsts will be in separate arrays, so we need everything creating
it to give a separate source and dest max count.
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11469 >
2021-06-23 17:20:29 +00:00
Connor Abbott
3071e2e933
ir3: Split ir3_reg_create() into ir3_{src,dst}_create()
...
Right now they are basically the same, but in the future they will
append to different arrays.
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11469 >
2021-06-23 17:20:29 +00:00
Connor Abbott
9af795d9b9
ir3: Make ir3_instruction::address a normal register
...
This fixes an annoying mismatch in the indices between foreach_ssa_src_n
and ir3_delayslots(), and lets us remove a bunch of other special cases.
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11469 >
2021-06-23 17:20:29 +00:00
Connor Abbott
2522f387a3
ir3: Add is_reg_special()
...
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11469 >
2021-06-23 17:20:29 +00:00
Connor Abbott
dce680737d
ir3: Validate that ir3_register::instr is correct
...
Catch the mistake fixed in the previous commit.
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11469 >
2021-06-23 17:20:29 +00:00
Connor Abbott
ef7bc4a2aa
ir3: Update ir3_register::instr when cloning instructions
...
We happened to not clone any SSA instructions, but we will once address
instructions start counting as SSA. Fix this oversight.
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11469 >
2021-06-23 17:20:29 +00:00
Connor Abbott
0f329ba10a
ir3: Split read-modify-write array dests in two
...
Instructions that operate on an array read the previous state of the
array, modify it, and write a new array, at least conceptually before
RA. Previously the same register specified the previous state and acted
as the new state, but this meant that it was both a source and
destination which meant that it was getting in the way of splitting up
sources and destinations. Break out the source into a separate register,
and use the new tied-src infrastructure to share code with a6xx atomics.
With this, there are basically no more special cases for arrays in RA.
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11469 >
2021-06-23 17:20:29 +00:00
Connor Abbott
cc64945336
ir3: Make tied sources/destinations part of the IR
...
Previously this was hard-coded for a6xx atomic instructions. However
we'll need a way for array destinations to point to the source with the
previous value of the array when we split them up. This is conceptually
the same as tied source/destinations for a6xx atomics, except that array
writes sometimes won't have a previous value to point to. So move this
into the IR so that it can be more dynamic. As a bonus we can move the
knowledge of a6xx atomics out of RA, where it's out-of-place, and into
the a6xx-specific code that creates them.
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11469 >
2021-06-23 17:20:29 +00:00
Daniel Schürmann
f953dc2ced
amd/ci: add hawaii-specific skip and fail lists
...
Reviewed-by: Samuel Pitoiset <samuel.pitoiset@gmail.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10424 >
2021-06-23 15:17:22 +00:00
Icecream95
08495a948e
pan/mdg: Add 16 bytes of padding to the end of shaders
...
Fixes INSTR_INVALID_PC faults when a shader ends on a 16MB boundary.
Cc: mesa-stable
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11551 >
2021-06-23 14:42:55 +00:00
Tapani Pälli
55951ac28e
anv: fix emitting dynamic primitive topology
...
Initial implementation missed various fields that derive from the
primitive topology. This patch fixes 3DSTATE_RASTER/3DSTATE_SF,
3DSTATE_CLIP and 3DSTATE_WM (gen7.x) emission in the dynamic case.
Fixes: f6fa4a8000 ("anv: add support for dynamic primitive topology change")
Closes: https://gitlab.freedesktop.org/mesa/mesa/-/issues/4924
Signed-off-by: Tapani Pälli <tapani.palli@intel.com >
Reviewed-by: Lionel Landwerlin <lionel.g.landwerlin@intel.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11379 >
2021-06-23 12:01:45 +00:00
Daniel Stone
43b99e48b1
Revert "ci: disable panfrost t760 jobs"
...
Both our T760 machines took a dive in beautiful synchronicity last
night, were recovered early this morning.
This reverts commit 854d93f73d .
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11555 >
2021-06-23 12:30:07 +01:00
Tapani Pälli
2d87ea3166
iris: take a reference to memobj bo in iris_resource_from_memobj
...
v2: and remove it from iris_memobj_create_from_handle ... (Nanley)
Closes: https://gitlab.freedesktop.org/mesa/mesa/-/issues/4969
Fixes: 772dc50d16 ("iris: hook up resource creation from memory object")
Signed-off-by: Tapani Pälli <tapani.palli@intel.com >
Reviewed-by: Nanley Chery <nanley.g.chery@intel.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11552 >
2021-06-23 10:46:09 +00:00
Pierre-Eric Pelloux-Prayer
52547cfbd0
radeonsi: disable ngg culling on llvm < 12
...
Closes: https://gitlab.freedesktop.org/mesa/mesa/-/issues/4874
Reviewed-by: Marek Olšák <marek.olsak@amd.com >
CC: mesa-stable
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11362 >
2021-06-23 08:42:46 +00:00
Lionel Landwerlin
9b7cba7724
anv: bound checks buffer memory binding in debug builds
...
Validation layers should warn you about this
(VUID-VkBindBufferMemoryInfo-size-01037) but this would be useful for
zink debugging.
Requested by Zmike.
v2: Also check memoryOffset (Jason)
Signed-off-by: Lionel Landwerlin <lionel.g.landwerlin@intel.com >
Reviewed-by: Jason Ekstrand <jason@jlekstrand.net >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11542 >
2021-06-23 08:16:57 +00:00
Francisco Jerez
4dc4284342
intel/fs: Implement Wa_14013745556 on TGL+.
...
Reviewed-by: Jason Ekstrand <jason@jlekstrand.net >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11433 >
2021-06-23 07:34:22 +00:00
Francisco Jerez
c19cfa9dc2
intel/fs: Fix synchronization of accumulator-clearing W/A move on TGL+.
...
Right now the accumulator-clearing move emitted by the generator for
Wa_14010017096 inherits the SWSB field from the previous instruction.
This can lead to redundant synchronization, or possibly more serious
issues if the previous instruction had a TGL_SBID_SET SWSB
synchronization mode. Take the SWSB synchronization information from
the IR.
Fixes: a27542c5dd ("intel/compiler: Clear accumulator register before EOT")
Reviewed-by: Jason Ekstrand <jason@jlekstrand.net >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11433 >
2021-06-23 07:34:22 +00:00
Francisco Jerez
63abc083ce
intel/fs: Teach IR about EOT instruction writing the accumulator implicitly on TGL+.
...
This is unlikely to have had any negative side effect on the original
TGL, but will lead to issues on XeHP+ if the software scoreboard pass
isn't able to synchronize the accumulator writes.
Fixes: a27542c5dd ("intel/compiler: Clear accumulator register before EOT")
Reviewed-by: Jason Ekstrand <jason@jlekstrand.net >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11433 >
2021-06-23 07:34:22 +00:00
Francisco Jerez
5e7f443de0
intel/fs: Add SWSB dependency annotations for cross-pipeline WaR data hazards on XeHP+.
...
In cases where an in-order instruction is overwriting a register
previously read by another in-order instruction, drop the dependency
iff the previous read is guaranteed to have occurred from the same
in-order pipeline. This should only have an effect on XeHP+ since
previous Xe platforms only had one in-order FPU pipeline.
The previous workaround we were using for this treated all ordered
read dependencies as write dependencies to avoid noise from our
simulation environment. Relative to our previous workaround this
improves performance of GFXBench5 gl_tess by ~7% on a DG2 system
among other single-digit percentual FPS improvements.
Reviewed-by: Jason Ekstrand <jason@jlekstrand.net >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11433 >
2021-06-23 07:34:22 +00:00
Francisco Jerez
d46bb14d14
intel/fs: Implement Wa_22012725308 for cross-pipe accumulator data hazard.
...
The hardware fails to provide the expected data coherency guarantees
for accumulator registers when accessed from multiple FPU pipelines.
Fix this by tracking implicit accumulator accesses just like we do for
regular GRF registers, but instead of adding synchronization
annotations for any dependency we only do it for dependencies with a
pipeline mismatch, since the hardware should be able to guarantee
proper synchronization for matching pipelines.
Note that this workaround handles RaW and WaW dependencies in addition
to the WaR dependencies described in the hardware bug report even
though cross-pipeline RaW accumulator dependencies should be extremely
rare, since chances are the hardware will also hang if we ever hit
such a condition. This only affects XeHP+, since all FPU instructions
are executed as a single in-order pipeline on earlier Xe platforms.
Reviewed-by: Jason Ekstrand <jason@jlekstrand.net >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11433 >
2021-06-23 07:34:22 +00:00
Francisco Jerez
385da1fe36
intel/fs: Track single accumulator in scoreboard lowering pass.
...
This change reduces the precision of the scoreboard data structure for
accumulator registers, because the rules determining the aliasing of
accumulator registers are non-trivial and poorly documented (e.g. acc0
overlaps the storage of acc1 when the former is accessed with an
integer type). We could implement those rules but it wouldn't have
any practical benefit since we currently only use acc0-1, and for the
most part we can rely on the hardware's accumulator dependency
tracking. Instead make our lives easier by representing it as a
single register.
Reviewed-by: Jason Ekstrand <jason@jlekstrand.net >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11433 >
2021-06-23 07:34:22 +00:00
Francisco Jerez
231337a13a
intel/fs/xehp: Assert that the compiler is sending all 3 coords for cubemaps.
...
As required by HSDES:14013363432.
Reviewed-by: Jason Ekstrand <jason@jlekstrand.net >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11433 >
2021-06-23 07:34:22 +00:00
Matt Turner
85315f5fb1
freedreno/ci: Use TU_IGNORE_CONFORMANCE_WARNING to reduce warnings
...
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11543 >
2021-06-23 07:07:42 +00:00
Matt Turner
205d6e582c
tu: Provide a toggle to avoid warnings about unsupported devices
...
In the CI, we have such devices, and this message is printed many
hundreds of times. This results in a useless spam which makes it
difficult to see real issues.
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11543 >
2021-06-23 07:07:42 +00:00
Dave Airlie
17a1cc6163
meson/crocus: add prefer-crocus option.
...
This just allows picking crocus without having to set the env var.
Acked-by: Alyssa Rosenzweig <alyssa@collabora.com >
Acked-by: Adam Jackson <ajax@redhat.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11353 >
2021-06-23 06:42:24 +00:00
Marek Olšák
ec7e262349
mesa: unreference zombie buffers when creating buffers to lower memory usage
...
This fixes an issue where one context only creates buffers while another
context only destroys buffers. Only the creating context can release its
buffers and the destroying context only turns them into zombie buffers.
This fix makes the creating context release its zombie buffers.
It's not a plot from an apocalyptic movie.
Fixes: e014e3b6be "mesa: don't count buffer references for the context that created them"
Closes: https://gitlab.freedesktop.org/mesa/mesa/-/issues/4840
Reviewed-by: Pierre-Eric Pelloux-Prayer <pierre-eric.pelloux-prayer@amd.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11514 >
2021-06-23 06:06:04 +00:00
Dave Airlie
29d272f144
crocus: fix batch state bo leak
...
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11547 >
2021-06-23 05:31:59 +00:00
Dave Airlie
9027aae546
crocus: fix vertex buffer leak on screen end.
...
this was stopping the screen from being cleaned up as well
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11547 >
2021-06-23 05:31:59 +00:00
Dave Airlie
6036121a55
crocus: free context state properly.
...
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11547 >
2021-06-23 05:31:59 +00:00
Mike Blumenkrantz
c9bc5e3a86
zink: ci updates
...
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10973 >
2021-06-23 03:13:42 +00:00
Mike Blumenkrantz
a784713080
zink: remove primconvert
...
this is no longer used
Reviewed-by: Dave Airlie <airlied@redhat.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10973 >
2021-06-23 03:13:42 +00:00
Mike Blumenkrantz
c032c9e32d
zink: export supported primitive restart types
...
this is now handled by gallium, so the codepath can be dropped
Reviewed-by: Dave Airlie <airlied@redhat.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10973 >
2021-06-23 03:13:42 +00:00
Mike Blumenkrantz
2953d70994
zink: export supported prim types
...
this is now handled by gallium, so the related codepaths can be dropped
Reviewed-by: Dave Airlie <airlied@redhat.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10973 >
2021-06-23 03:13:42 +00:00
Mike Blumenkrantz
8ac4be916e
zink: export 8bit index buffer support based on extension presence
...
this is now handled by gallium, so the codepath can be dropped
Reviewed-by: Dave Airlie <airlied@redhat.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10973 >
2021-06-23 03:13:42 +00:00
Mike Blumenkrantz
09c28a35a5
zink: export PIPE_CAP_EMULATE_NONFIXED_PRIMITIVE_RESTART
...
gallium will now handle unsupported restart index rewriting, so
this codepath can be removed
Reviewed-by: Dave Airlie <airlied@redhat.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10973 >
2021-06-23 03:13:41 +00:00
Mike Blumenkrantz
3fc651110c
gallium: add a pipe cap for determining driver support for prim type in restarts
...
this is another prim type bitmask which will trigger automatic draw rewriting
to a direct draw any time a prim-restart draw occurs with a prim type that is
not supported by the driver for prim restart, even if that prim type is supported
for normal drawing
the default is set to all prim types to preserve existing functionality, and PrimitiveRestartForPatches
is now explicitly set to false because no driver supports it
Reviewed-by: Marek Olšák <marek.olsak@amd.com >
Reviewed-by: Rob Clark <robdclark@chromium.org >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10973 >
2021-06-23 03:13:41 +00:00
Mike Blumenkrantz
f8ff6eb78b
gallium: add a pipe cap for performing automatic prim type conversion
...
drivers can now export a bitmask of the primitive types they support,
and all others will be automatically be rewritten
the default value is set to all primitive types supported to preserve
existing behavior
Reviewed-by: Marek Olšák <marek.olsak@amd.com >
Reviewed-by: Rob Clark <robdclark@chromium.org >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10973 >
2021-06-23 03:13:41 +00:00
Mike Blumenkrantz
c8e674d4e3
gallium: handle automatic 8bit -> 16bit index buffer rewrites
...
this is based on PIPE_FORMAT_R8_UINT format support
Reviewed-by: Marek Olšák <marek.olsak@amd.com >
Reviewed-by: Rob Clark <robdclark@chromium.org >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10973 >
2021-06-23 03:13:41 +00:00
Mike Blumenkrantz
c9a65e5f77
gallium: add a pipe cap to rewrite index buffers for draws using a non-fixed restart index
...
for drivers that set it, this now automatically handles restart index rewriting
by running draws through primconvert when necessary
Reviewed-by: Marek Olšák <marek.olsak@amd.com >
Reviewed-by: Rob Clark <robdclark@chromium.org >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10973 >
2021-06-23 03:13:41 +00:00
Mike Blumenkrantz
99a60ed378
util/primconvert: handle multidraws in primconvert
...
once a draw reaches primconvert, it should never be able to reach the driver
until all draw operations have been converted as necessary
Reviewed-by: Rob Clark <robdclark@chromium.org >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10973 >
2021-06-23 03:13:41 +00:00
Mike Blumenkrantz
583070748c
util/primconvert: handle rewriting of prim-restart draws with unsupported primtype
...
this is a bit more work, as the primitive restart needs to be rewritten into a multidraw,
then the multidraw converted to the new primitive type and serialized back into a
single draw
detection is handled using a new primconvert config member, which is set to the full
primtype mask by default for compatibility with existing drivers
Reviewed-by: Rob Clark <robdclark@chromium.org >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10973 >
2021-06-23 03:13:41 +00:00
Mike Blumenkrantz
f3fe70f10e
util/primconvert: map index buffer before getting index translator function
...
also set other local values on init using new util functions
no functional changes
Reviewed-by: Rob Clark <robdclark@chromium.org >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10973 >
2021-06-23 03:13:41 +00:00
Mike Blumenkrantz
26e718fb37
util/primconvert: handle indirect draws
...
this avoids ping-ponging to the driver, which would have to call back
to here anyway with the unwrapped indirect draw
Reviewed-by: Rob Clark <robdclark@chromium.org >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10973 >
2021-06-23 03:13:41 +00:00
Mike Blumenkrantz
4673febf91
util/prim_restart: break out draw rewriting into separate function
...
this enables doing the draw rewrites without calling draw_vbo
Reviewed-by: Rob Clark <robdclark@chromium.org >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10973 >
2021-06-23 03:13:41 +00:00
Mike Blumenkrantz
3eb9932317
aux/draw: add a util function for reading back indirect draw params
...
the return type of this is a bit clunky because instance values can change,
but it's simpler to just return the full draw info struct than to force the
caller to keep pulling from arrays or whatever
Reviewed-by: Rob Clark <robdclark@chromium.org >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10973 >
2021-06-23 03:13:41 +00:00
Mike Blumenkrantz
854d93f73d
ci: disable panfrost t760 jobs
...
these are timing out
Acked-by: Rob Clark <robdclark@chromium.org >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11548 >
2021-06-22 22:58:02 -04:00
Dave Airlie
fd09727a7d
crocus: Explicitly cast value to uint64_t
...
Ports 565a80450d from iris.
Acked-by: Jason Ekstrand <jason@jlekstrand.net >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11546 >
2021-06-23 02:22:40 +00:00
Simon Ser
17f0d7ef83
amd/addrlib: remove Meson debug message()
...
This message pops up in the Meson build logs, but has no context
and doesn't seem to be directed at end-users. Sounds like a leftover
from a debugging session.
Signed-off-by: Simon Ser <contact@emersion.fr >
Fixes: d0767fc045 ("amd/addrlib: use cpp.has_argument() to filter compiler arguments")
Reviewed-by: Pierre-Eric Pelloux-Prayer <pierre-eric.pelloux-prayer@amd.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11524 >
2021-06-22 23:47:19 +00:00
Thong Thai
d977e7fbe1
radeon/vcn/enc: Add missing line to HEVC SPS header code
...
Add previously missing line in HEVC SPS header generation on VCN 1.0
devices, for when an image does not need to be cropped.
Fixes: e62c7e7c6c ("radeon: Add cropping to encoded H.265 when padding is used")
Signed-off-by: Thong Thai <thong.thai@amd.com >
Reviewed-by: Leo Liu <leo.liu@amd.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11535 >
2021-06-22 23:36:29 +00:00
Marek Olšák
d3fddf63ec
ac/llvm: don't set skip-uniform-regions to fix atomic.cmpswap
...
This fixes SSBO atomic cmpswap tests and transform feedback order piglit tests.
Fixes: 3bb65c0670 - ac: force enable -structurizecfg-skip-uniform-regions for LLVM 11
Closes: https://gitlab.freedesktop.org/mesa/mesa/-/issues/3884
Reviewed-by: Pierre-Eric Pelloux-Prayer <pierre-eric.pelloux-prayer@amd.com >
Acked-by: Samuel Pitoiset <samuel.pitoiset@gmail.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11517 >
2021-06-22 22:13:07 +00:00
Paul Gofman
bdd8646306
util: add force_gl_names_reuse for SWKOTOR.
...
SWKOTOR is expecting texture names generated by glGenTextures() to
be small enough and crashes otherwise.
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11527 >
2021-06-22 21:43:33 +00:00
Emma Anholt
a9e3ddfc63
i915g: Fix GL_ARB_copy_buffer assertion fails.
...
The i915_texture() asserts that the resource is not a buffer, so check for
the buffer fallback first.
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11540 >
2021-06-22 21:32:36 +00:00
Lionel Landwerlin
7ed0aaced7
nir: use a more fitting index for btd_stack_push_intel
...
Signed-off-by: Lionel Landwerlin <lionel.g.landwerlin@intel.com >
Reviewed-by: Jason Ekstrand <jason@jlekstrand.net >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/8637 >
2021-06-22 21:09:25 +00:00
Lionel Landwerlin
423c47de99
nir: drop the btd_resume_intel intrinsic
...
This is now 100% equivalent to the new rt_resume intrinsic.
Signed-off-by: Lionel Landwerlin <lionel.g.landwerlin@intel.com >
Reviewed-by: Jason Ekstrand <jason@jlekstrand.net >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/8637 >
2021-06-22 21:09:25 +00:00
Lionel Landwerlin
4d9fcf2799
intel/rt: switch to common pass for shader calls lowering
...
v2: rename for new indices
Signed-off-by: Lionel Landwerlin <lionel.g.landwerlin@intel.com >
Reviewed-by: Jason Ekstrand <jason@jlekstrand.net >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/8637 >
2021-06-22 21:09:25 +00:00
Lionel Landwerlin
1dacea10f3
anv: implement caching for ray tracing pipelines
...
v2: Turn a bunch of pointer checks into checks against NULL (Jason)
Signed-off-by: Lionel Landwerlin <lionel.g.landwerlin@intel.com >
Reviewed-by: Jason Ekstrand <jason@jlekstrand.net >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/8637 >
2021-06-22 21:09:25 +00:00
Lionel Landwerlin
fed7ac932f
anv: move trivial return shader to device
...
Signed-off-by: Lionel Landwerlin <lionel.g.landwerlin@intel.com >
Reviewed-by: Jason Ekstrand <jason@jlekstrand.net >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/8637 >
2021-06-22 21:09:25 +00:00
Lionel Landwerlin
7c852f78c4
anv: store more RT shader data in pipeline_stage object
...
Signed-off-by: Lionel Landwerlin <lionel.g.landwerlin@intel.com >
Reviewed-by: Jason Ekstrand <jason@jlekstrand.net >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/8637 >
2021-06-22 21:09:25 +00:00
Lionel Landwerlin
045f4600b1
anv: cache raytracing trampoline shader
...
Signed-off-by: Lionel Landwerlin <lionel.g.landwerlin@intel.com >
Reviewed-by: Jason Ekstrand <jason@jlekstrand.net >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/8637 >
2021-06-22 21:09:25 +00:00
Lionel Landwerlin
ab77aeb488
blorp: add blorp string in shader keys
...
Upon looking at caching the raytracing shader (in particular the
trampoline one) I kind of got afraid that some of the keys used for
blorp would end up matching other keys. This is because blorp keys are
fairly simple. There is no SPIRV module hash included.
This change includes a "blorp" string at the beginning of the queue to
ensure we don't collide with other keys.
Signed-off-by: Lionel Landwerlin <lionel.g.landwerlin@intel.com >
Reviewed-by: Jason Ekstrand <jason@jlekstrand.net >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/8637 >
2021-06-22 21:09:25 +00:00
Jason Ekstrand
7479fe6ae0
anv: Implement vkCmdTraceRays and vkCmdTraceRaysIndirect
...
v2: Fix anv_cmd_state::binding_tables array size (Lionel)
v2: Fix anv_cmd_state::samplers array size (Lionel)
Reviewed-by: Lionel Landwerlin <lionel.g.landwerlin@intel.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/8637 >
2021-06-22 21:09:25 +00:00
Jason Ekstrand
ac6d7a1758
anv: Make anv_address::offset 64-bit
...
This allows us to convert a 64-bit address to an anv_address which is
useful for working with device addresses.
v2: switch to int64_t to keep state pool relative relocation working
on non-softpin platforms
v3: Update assert to reflect relative offsets (Jason)
Reviewed-by: Lionel Landwerlin <lionel.g.landwerlin@intel.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/8637 >
2021-06-22 21:09:25 +00:00
Jason Ekstrand
a67d7c9dee
anv: Allow _anv_combine_address with a NULL batch
...
This is required in order to be able to use GenXML pack functions for
structs with addresses when you're not packing into a batch.
Reviewed-by: Lionel Landwerlin <lionel.g.landwerlin@intel.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/8637 >
2021-06-22 21:09:25 +00:00
Jason Ekstrand
f68d64dac0
anv: Add support for vkCmdSetRayTracingPipelineStackSizeKHR
...
Reviewed-by: Lionel Landwerlin <lionel.g.landwerlin@intel.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/8637 >
2021-06-22 21:09:25 +00:00
Jason Ekstrand
02f7964a13
anv: Compute scratch sizes for ray-tracing pipelines and shader groups
...
Reviewed-by: Lionel Landwerlin <lionel.g.landwerlin@intel.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/8637 >
2021-06-22 21:09:25 +00:00
Jason Ekstrand
c3ac9afca3
anv: Create and return ray-tracing pipeline SBT handles
...
Reviewed-by: Lionel Landwerlin <lionel.g.landwerlin@intel.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/8637 >
2021-06-22 21:09:25 +00:00
Jason Ekstrand
b66d3e627a
intel/fs: Don't pull CS push constants if uses_inline_data
...
Reviewed-by: Lionel Landwerlin <lionel.g.landwerlin@intel.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/8637 >
2021-06-22 21:09:25 +00:00
Jason Ekstrand
79dc25d867
anv: Compile trivial return and trampoline shaders
...
These don't necessarily go in any group but are required for dispatch to
work properly. The trampoline is a compute shader that is the initial
start point for the trace. It's in charge of invoking the actual
ray-gen shader. The trivial return shader is used whenever another
shader is missing and it does no work except the minimum required to do
a stack return.
v2: Rebase on upstream changes (Lionel)
Reviewed-by: Lionel Landwerlin <lionel.g.landwerlin@intel.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/8637 >
2021-06-22 21:09:25 +00:00
Jason Ekstrand
e104555851
anv: Compile ray-tracing shaders
...
This doesn't look too different from other compile functions we have in
anv_pipeline.c. The primary difference is that ray-tracing pipelines
have this weird two-stage thing where you have "stages" which are
individual shaders and "groups" which are sort of mini pipelines that
are used to handle hits. For any given ray intersection, only the hit
and intersection shaders from the same group get used together. You
can't have an intersection shader from group A used with an any-hit from
group B. This results in a weird two-step compile.
Reviewed-by: Lionel Landwerlin <lionel.g.landwerlin@intel.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/8637 >
2021-06-22 21:09:25 +00:00
Jason Ekstrand
379b9bb7b0
anv: Support fetching descriptor addresses from push constants
...
Bindless shaders don't have binding tables so they have to get at the
descriptor sets via a different mechanism.
Reviewed-by: Lionel Landwerlin <lionel.g.landwerlin@intel.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/8637 >
2021-06-22 21:09:25 +00:00
Jason Ekstrand
937ffb1af0
nir/apply_pipeline_layout: Handle bindless shaders
...
They don't have binding tables so they have to use A64 descriptor set
access and everything has to be bindless all the time.
Reviewed-by: Lionel Landwerlin <lionel.g.landwerlin@intel.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/8637 >
2021-06-22 21:09:25 +00:00
Jason Ekstrand
770d331285
anv: Disallow UBO pushing for bindless shaders
...
They don't really have push constants.
Reviewed-by: Lionel Landwerlin <lionel.g.landwerlin@intel.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/8637 >
2021-06-22 21:09:25 +00:00
Jason Ekstrand
c92fd35848
intel/rt: Use reloc constants for the resume SBT
...
It's going to be attached to the end of the shader binary, not an
arbitrary table somewhere in memory.
Reviewed-by: Lionel Landwerlin <lionel.g.landwerlin@intel.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/8637 >
2021-06-22 21:09:25 +00:00
Jason Ekstrand
705395344d
intel/fs: Add support for compiling bindless shaders with resume shaders
...
Instead of depending on the driver to compile each resume shader
separately, we compile them all in one go in the back-end and build an
SBT as part of the shader program. Shader relocs are used to make the
entries in the SBT point point to the correct resume shader.
Reviewed-by: Lionel Landwerlin <lionel.g.landwerlin@intel.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/8637 >
2021-06-22 21:09:25 +00:00
Jason Ekstrand
d055ac9bdf
intel/compiler: Add a U32 reloc type
...
Reviewed-by: Lionel Landwerlin <lionel.g.landwerlin@intel.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/8637 >
2021-06-22 21:09:25 +00:00
Jason Ekstrand
55508bbe66
intel/compiler: Generalize shader relocations a bit
...
This commit adds a delta to be added to the relocated value as well as
the possibility of multiple types of relocations.
Reviewed-by: Lionel Landwerlin <lionel.g.landwerlin@intel.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/8637 >
2021-06-22 21:09:25 +00:00
Jason Ekstrand
f7668d6fe5
anv,iris: Move the SHADER_RELOC enums to brw_compiler.h
...
They're common between the two drivers and we want to add a couple more
that get emitted from code in src/intel/compiler.
Reviewed-by: Lionel Landwerlin <lionel.g.landwerlin@intel.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/8637 >
2021-06-22 21:09:25 +00:00
Jason Ekstrand
d95d5b1465
anv: Add support for binding ray-tracing pipelines
...
This includes not only vkCmdBindPipeline but also descriptor sets and
push constants.
Reviewed-by: Lionel Landwerlin <lionel.g.landwerlin@intel.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/8637 >
2021-06-22 21:09:25 +00:00
Jason Ekstrand
8cc5080580
anv: Add a ray-tracing pipeline object
...
This just adds the core data structure which we'll build on going
forward.
v2: Add VK_EXT_pipeline_creation_cache_control handling (Lionel)
Reviewed-by: Lionel Landwerlin <lionel.g.landwerlin@intel.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/8637 >
2021-06-22 21:09:25 +00:00
Jason Ekstrand
dc05daf0e5
anv: Get ready for more pipeline stages
...
This makes a bunch of loops use ARRAY_SIZE instead of MESA_SHADER_STAGES,
extends a few arrays, and adds a bunch of array length asserts.
Reviewed-by: Lionel Landwerlin <lionel.g.landwerlin@intel.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/8637 >
2021-06-22 21:09:25 +00:00
Jason Ekstrand
f366f6a071
anv: Add minimal boilerplate for VK_KHR_ray_tracing_pipeline
...
Reviewed-by: Lionel Landwerlin <lionel.g.landwerlin@intel.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/8637 >
2021-06-22 21:09:25 +00:00
Jason Ekstrand
d258b0bf0e
anv: Add support for binding acceleration structures
...
Reviewed-by: Lionel Landwerlin <lionel.g.landwerlin@intel.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/8637 >
2021-06-22 21:09:25 +00:00
Jason Ekstrand
4664c92478
anv: Add stub support for acceleration structures
...
This just adds a base struct and trivial implementations of all the
create/destroy/bind functions.
Reviewed-by: Kenneth Graunke <kenneth@whitecape.org >
Reviewed-by: Lionel Landwerlin <lionel.g.landwerlin@intel.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/8637 >
2021-06-22 21:09:25 +00:00
Jason Ekstrand
e97002ebcf
anv: Add minimal boilerplate for VK_KHR_acceleration_structure
...
Reviewed-by: Kenneth Graunke <kenneth@whitecape.org >
Reviewed-by: Lionel Landwerlin <lionel.g.landwerlin@intel.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/8637 >
2021-06-22 21:09:25 +00:00
Jason Ekstrand
72437f6d54
spirv: Create acceleration structure and shader record variables
...
spirv_to_nir now requires NIR variables to be created for everything.
Fixes: 10b3eecd36 "spirv: Don't remove variables used by resource..."
Reviewed-by: Caio Marcelo de Oliveira Filho <caio.oliveira@intel.com >
Reviewed-by: Lionel Landwerlin <lionel.g.landwerlin@intel.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/8637 >
2021-06-22 21:09:25 +00:00
Mike Blumenkrantz
5cecf826d3
zink: don't clear batch resources on fence finish
...
this eliminates the need for locking here and has no noticeable
increase in overhead, so the reduction of complexity seems worthwhile
Acked-by: Dave Airlie <airlied@redhat.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11437 >
2021-06-22 20:57:33 +00:00
Mike Blumenkrantz
b315aa43f1
zink: move some end-of-batch stuff to submit thread
...
no reason to do this on the driver thread when it could be async
Acked-by: Dave Airlie <airlied@redhat.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11437 >
2021-06-22 20:57:33 +00:00
Mike Blumenkrantz
d8dc03c213
zink: flag scanout updates to batch state, not resource
...
now that submission is serialized better, it's not actually the resource that should be
tagged for scanout sync, it's the batch state, as multiple contexts might reuse the same
resource, thus requiring synchronization on every submit
Acked-by: Dave Airlie <airlied@redhat.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11437 >
2021-06-22 20:57:33 +00:00
Mike Blumenkrantz
c1d06c402a
zink: move fence reset to submit thread
...
try to reduce job queue latency
Acked-by: Dave Airlie <airlied@redhat.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11437 >
2021-06-22 20:57:33 +00:00
Mike Blumenkrantz
97f8249336
zink: move sparse buffer commit to screen queue
...
all queue submission must be serialized with the dispatch thread
Acked-by: Dave Airlie <airlied@redhat.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11437 >
2021-06-22 20:57:33 +00:00
Mike Blumenkrantz
478f129ee7
zink: move queue submit thread to screen
...
this needs to be a screen-based queue in order to serialize properly
with multiple contexts
Acked-by: Dave Airlie <airlied@redhat.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11437 >
2021-06-22 20:57:33 +00:00
Mike Blumenkrantz
d4159963e3
zink: enforce multi-context waiting for unflushed resources on foreign batches
...
this doesn't seem to be a real issue now that tc doesn't break makeCurrent
anymore, but if such a thing were to once again become a problem, at least
there will be handling for it
Acked-by: Dave Airlie <airlied@redhat.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11437 >
2021-06-22 20:57:33 +00:00
Mike Blumenkrantz
ef418cfc59
zink: make init_mem_range() a public function
...
Acked-by: Dave Airlie <airlied@redhat.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11437 >
2021-06-22 20:57:33 +00:00
Mike Blumenkrantz
18c22f5024
zink: break out offset alignment calculation into helper
...
Acked-by: Dave Airlie <airlied@redhat.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11437 >
2021-06-22 20:57:33 +00:00
Mike Blumenkrantz
d574b0a51e
zink: apply zink_resource_object::offset for memory flush/invalidates
...
Acked-by: Dave Airlie <airlied@redhat.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11437 >
2021-06-22 20:57:33 +00:00
Mike Blumenkrantz
d80d9e1c93
zink: queue v3.0
...
this uses a pointer to a batch state substruct for timeline tracking,
which provides a few nice benefits:
* explicit ability to detect unflushed batches (even on other contexts)
* the context doesn't need to have a "current" timeline id
* timeline (batch) ids can be distributed during submit, not when recording begins
* an abstracted api which can be more easily changed under the hood
Acked-by: Dave Airlie <airlied@redhat.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11437 >
2021-06-22 20:57:33 +00:00
Mike Blumenkrantz
28496f6ff2
zink: remove no-longer-used resource helper functions
...
Acked-by: Dave Airlie <airlied@redhat.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11437 >
2021-06-22 20:57:33 +00:00
Mike Blumenkrantz
59ec1794f6
zink: use batch usage api for resource helper function
...
Acked-by: Dave Airlie <airlied@redhat.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11437 >
2021-06-22 20:57:33 +00:00
Mike Blumenkrantz
1226628eb6
zink: add and use fencing functions which take batch usage structs
...
this hides the exact mechanics of fencing based on batch usage and makes
the usage a bit more explicit
Acked-by: Dave Airlie <airlied@redhat.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11437 >
2021-06-22 20:57:33 +00:00
Mike Blumenkrantz
982a2dfbd4
zink: improve tc fence disambiguation
...
instead of storing separate batch_id values onto the tc fence for matching:
* use a fence pointer on the main context to indicate the current deferred fence
* add a monotonic counter to each batch state which double-increments on each use,
thereby enabling direct determination by the tc fence as to whether this is the same
batch state it was created with
Acked-by: Dave Airlie <airlied@redhat.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11437 >
2021-06-22 20:57:33 +00:00
Mike Blumenkrantz
618784732a
zink: only update last_finished during batch reset if the batch was used
...
0 is never a valid batch_id, so don't try to update this
minor cosmetic change
Acked-by: Dave Airlie <airlied@redhat.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11437 >
2021-06-22 20:57:33 +00:00
Emma Anholt
56c7e69c4d
freedreno: Fix leak of the screen hash table.
...
Now we have no leaks detected on a run of a basic deqp test
(dEQP-GLES2.functional.shaders.constants.const_float_assignment_3_fragment).
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11537 >
2021-06-22 20:39:18 +00:00
Dave Airlie
b76f229954
crocus/bufmgr: fix userptr left over fail
...
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11538 >
2021-06-23 06:08:19 +10:00
Dave Airlie
45c12da211
croucs: limit stencil swizzle change to older generations
...
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11538 >
2021-06-23 06:08:19 +10:00
Mike Blumenkrantz
7eb3728e4b
zink: clear textures directly when possible
...
now that overhead for resuming renderpasses has been made mostly nonexistent,
this is by far the better option and cuts cpu usage by ~90% in some cases,
e.g., tomb raider benchmark
Reviewed-by: Adam Jackson <ajax@redhat.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11430 >
2021-06-22 19:37:07 +00:00
Dave Airlie
a0608b3efc
crocus/gen8: add support for cherryview (env var for bdw)
...
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11507 >
2021-06-22 18:56:21 +00:00
Dave Airlie
c630304196
crocus/gen8: hookup gen8 state generators
...
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11507 >
2021-06-22 18:56:21 +00:00
Dave Airlie
edf05076a4
crocus/gen8: handle sampler differences
...
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11507 >
2021-06-22 18:56:21 +00:00
Dave Airlie
661f108d80
croucs/gen8: handle gfx8 surface aux addr reloc.
...
This is ported from i965
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11507 >
2021-06-22 18:56:21 +00:00
Dave Airlie
12e4da8053
crocus/gen8: port over VFE/compute state changes
...
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11507 >
2021-06-22 18:56:21 +00:00
Dave Airlie
612c30bff7
crocus/gen8: port over ps/wm state changes from iris.
...
This emits the PS extra packet as well
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11507 >
2021-06-22 18:56:21 +00:00
Dave Airlie
5888b71847
crocus/gen8: port over vs/gs/ds state changes.
...
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11507 >
2021-06-22 18:56:21 +00:00
Dave Airlie
457f21aa91
crocus/gen8: add depth stencil state support
...
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11507 >
2021-06-22 18:56:21 +00:00
Dave Airlie
524eae8b78
crocus/gen8: add viewport support
...
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11507 >
2021-06-22 18:56:21 +00:00
Dave Airlie
d12a9eda72
crocus/gen8: add rasterizer state changes.
...
Port over raster packet and state changes
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11507 >
2021-06-22 18:56:21 +00:00
Dave Airlie
6613c0ac37
crocus/gen8: refactor blend state for gen8
...
gen8 emits these packets differently, port the i965 style
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11507 >
2021-06-22 18:56:21 +00:00
Dave Airlie
4025c9d340
crocus/gen8: add PS blend command support.
...
This adds support for new gen8 command
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11507 >
2021-06-22 18:56:21 +00:00
Dave Airlie
22b9063aee
crocus/gen8: add VF SGVS support.
...
This is moved functionality on gen8
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11507 >
2021-06-22 18:56:21 +00:00
Dave Airlie
5b32fccd3f
crocus/gen8: add SBE swiz support
...
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11507 >
2021-06-22 18:56:21 +00:00
Dave Airlie
88bba6a49e
crocus/gen8: add streamout support
...
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11507 >
2021-06-22 18:56:21 +00:00
Dave Airlie
750e0c1ff3
crocus/gen8: add PMA fix from iris
...
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11507 >
2021-06-22 18:56:21 +00:00
Dave Airlie
786cf437db
crocus/gen8: add VF topology support
...
this is a new command on gen8
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11507 >
2021-06-22 18:56:21 +00:00
Dave Airlie
961ee7e72b
crocus/gen8: state base address + misc setup state.
...
This ports over SBA setup and some misc packets needed to
setup the context
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11507 >
2021-06-22 18:56:21 +00:00
Dave Airlie
515f9f5e40
crocus/gen8: add support for vertex instancing and index buffers.
...
This ports over the VF instancing code from iris
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11507 >
2021-06-22 18:56:21 +00:00
Dave Airlie
abc990df9b
crocus/gen8: add raw pipe control support for gen8 workarounds
...
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11507 >
2021-06-22 18:56:21 +00:00
Dave Airlie
117fdacc2b
crocus/gen8: limit vertex buffer workarounds to ivb
...
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11507 >
2021-06-22 18:56:21 +00:00
Dave Airlie
36fd6152f6
crocus/gen8: extending gen7 binding table pointers
...
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11507 >
2021-06-22 18:56:21 +00:00
Dave Airlie
643475bad3
crocus/gen8: add l3 config support
...
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11507 >
2021-06-22 18:56:21 +00:00
Dave Airlie
d0a96d6817
crocus/gen8: add sampler / border color support for gen8
...
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11507 >
2021-06-22 18:56:21 +00:00
Dave Airlie
0cec8eed70
crocus/gen8: extend predicate handling to gen8.
...
This adds some gen8 specific code to do MI_PREDICATE properly,
otherwise just extends the hsw code
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11507 >
2021-06-22 18:56:20 +00:00
Dave Airlie
aac830ec65
crocus: extend hsw cut index to gen8
...
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11507 >
2021-06-22 18:56:20 +00:00
Dave Airlie
a422823a61
crocus/gen8: extend image support to gen8
...
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11507 >
2021-06-22 18:56:20 +00:00
Dave Airlie
60c03d003a
crocus/gen8: extend some compute + state functions to gen8
...
This just extends some hsw functionality to gen8
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11507 >
2021-06-22 18:56:20 +00:00
Dave Airlie
27b86a8b5c
crocus/gen8: add push constant support (extend hsw)
...
This just extends the gen7 checks and adds the gen8 value
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11507 >
2021-06-22 18:56:20 +00:00
Dave Airlie
72e5778579
crocus: extend l3 config setup to gen8
...
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11507 >
2021-06-22 18:56:20 +00:00
Dave Airlie
7210e98c00
crocus/query: add gen8 support to queries by extending hsw checks
...
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11507 >
2021-06-22 18:56:20 +00:00
Dave Airlie
6b5b2237a0
crocus/stencil: limit stencil workaround to gen7
...
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11507 >
2021-06-22 18:56:20 +00:00
Dave Airlie
fa52824f3d
crocus: limit texture gather workarounds to gen7/hsw
...
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11507 >
2021-06-22 18:56:20 +00:00
Dave Airlie
df0e131b43
crocus/gen8: limit some pipe controls to gen7/hsw
...
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11507 >
2021-06-22 18:56:20 +00:00
Dave Airlie
22ee372eb3
crocus: refactor blend state code.
...
This just refactors this code before adding gen8 support which
needs more changes in this area.
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11507 >
2021-06-22 18:56:20 +00:00
Dave Airlie
a9c1c75e9c
crocus: convert a bunch of is_haswell into verx10 checks.
...
This just make things easier when gen8 support is added
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11507 >
2021-06-22 18:56:20 +00:00
Dave Airlie
ae17ffedb7
crocus: fixup workaround_bo to match 965.
...
Always add to the batch, and don't set the reloc write flag when
adding to reloc list, as this will confuse the render/compute sync
code and cause over syncing.
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11507 >
2021-06-22 18:56:20 +00:00
Dave Airlie
1ced421330
crocus: rename genX proto functions to avoid iris conflicts.
...
If we start adding gen8, then conflicts occur, but the crocus
ones into their own namespace to avoid this.
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11507 >
2021-06-22 18:56:20 +00:00
Dave Airlie
7cfc41aa6b
crocus: fixup stray tab
...
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11507 >
2021-06-22 18:56:20 +00:00
Dave Airlie
f557d11f15
crocus: drop dead gen prototypes.
...
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11507 >
2021-06-22 18:56:20 +00:00
Emma Anholt
553743e04a
i915g: Clear xfails for vertex texturing.
...
Fixes: 7378c64792 ("i915: Disable vertex texturing and delete the code.")
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11512 >
2021-06-22 11:06:56 -07:00
Emma Anholt
4ef8eebdc7
i915g: Use the color swizzle to reshuffle the blend const color.
...
If we're remapping RGBA from the shader into dst channels, we also need to
remap the blend constant color. The previous static mapping only worked
for ARGB cbufs, but we get ABGR in surfaceless deqp.
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11512 >
2021-06-22 11:06:56 -07:00
Emma Anholt
0fda53b574
i915g: Simplify color write mask setup.
...
Use the surface's precomputed swizzle instead of doing a local format
table.
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11512 >
2021-06-22 11:06:37 -07:00
Emma Anholt
bd4121fe04
i915g: Move cbuf color swizzle lookup to CSO creation time.
...
Saves walking the loop, and makes a nice place to store a swizzle for use
in other atoms.
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11512 >
2021-06-22 11:06:37 -07:00
Emma Anholt
5b3840d961
i915g: Compute 3DSTATE_BUF_INFO flags at surface create time.
...
No need to compute them at state emit.
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11512 >
2021-06-22 11:06:37 -07:00
Emma Anholt
f8867b3d98
i915g: Create an i915_surface for our pipe_surfaces.
...
Nothing added in yet, just wrapping the struct.
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11512 >
2021-06-22 11:06:37 -07:00
Emma Anholt
51458ba9e9
i915g: Remove nr_cbufs loop.
...
This hardware definitely only does one cbuf.
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11512 >
2021-06-22 11:06:36 -07:00
Boyuan Zhang
c6da3827d0
radeon/vcn: use st_rps_bits only when it's set
...
Fixes: c9baccb5
For certain player which doesn't implement st_rps_bits, or when st_rps_bits
is set to 0 (e.g. it doesn't have rps explicitly defined in slice header),
we don't set st_rps_bits and the related flag, since we don't skip parsing
the rps structure in these cases.
Signed-off-by: Boyuan Zhang <boyuan.zhang@amd.com >
Reviewed-by: Leo Liu <leo.liu@amd.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11432 >
2021-06-22 17:42:08 +00:00
Jason Ekstrand
806498eee8
docs/isl: Consistently use 3-space tabs
...
Reviewed-by: Connor Abbott <cwabbott0@gmail.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11529 >
2021-06-22 17:37:55 +00:00
Jason Ekstrand
105a51b166
docs/nir: Use 3-space tabs
...
Reviewed-by: Connor Abbott <cwabbott0@gmail.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11529 >
2021-06-22 17:37:55 +00:00
Jason Ekstrand
2175cc3920
editorconfig: Use 3-space tabs for .rst
...
This is what all the sphinx examples do and is what most of docs/
currently does.
Acked-by: Erik Faye-Lund <erik.faye-lund@collabora.com >
Reviewed-by: Connor Abbott <cwabbott0@gmail.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11529 >
2021-06-22 17:37:55 +00:00
Emma Anholt
7c6084634f
ci/llvmpipe: Mark two more multithread program link flakes.
...
Seen in #mesa-swrast-ci since adding the IRC channel.
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11534 >
2021-06-22 17:23:59 +00:00
Emma Anholt
5cb043cf82
freedreno: Cooperate with tc to stop checking the BC for resource_busy().
...
The resource_busy() hook was having to check the batch cache for usage of
the resource, since TC didn't know how long our driver would. By
committing to calling the tc_driver_internal_flush_notify() hook on
non-deferred flushes, TC keeps track of which buffers have been used but
not flushed and considers them busy, saving us needing to look in the BC
(which we won't be able to do once we move it to being per-context).
drawoverhead test results (all numbers are throughput, n=5):
1, DrawElements ( 1 VBO| 0 UBO| 0 ) w/ no state change: -4.94214% +/- 2.45047%
7, DrawElements ( 1 VBO| 8 UBO| 8 Tex) w/ vertex attrib change: 48.3992% +/- 5.02827%
8, DrawElements ( 1 VBO| 8 UBO| 8 Tex) w/ 1 texture change: 26.0974% +/- 1.14932%
9, DrawElements ( 1 VBO| 8 UBO| 8 Tex) w/ 8 textures change: 12.6963% +/- 3.01077%
17, DrawElements ( 1 VBO| 8 UBO| 8 Tex) w/ 8 UBOs change: 54.3846% +/- 35.0049%
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11513 >
2021-06-22 09:51:21 -07:00
Mike Blumenkrantz
6d0aceae4d
vk/util: add macros for multidraw
...
this simplifies implementations since a lot of the code is going to be
copy/pasted around, enabling related tweaks to be made in a centralized place
Reviewed-by: Jason Ekstrand <jason@jlekstrand.net >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11496 >
2021-06-22 15:53:03 +00:00
Samuel Pitoiset
8c968b8301
radv: advertise extendedDynamicState2LogicOp
...
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/10880 >
2021-06-22 15:32:31 +00:00
Samuel Pitoiset
8efa897168
radv: implement dynamic logic op
...
This is part of VK_EXT_extended_dynamic_state2.
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/10880 >
2021-06-22 15:32:31 +00:00
Timur Kristóf
e6bf5cfe59
aco/gfx10: Emit barrier at the start of NGG VS and TES.
...
The Navi 1x NGG hardware can hang in certain conditions when
not every wave launched before s_sendmsg(GS_ALLOC_REQ).
As a workaround, to ensure this never happens, let's emit a
workgroup barrier at the beginning of NGG VS and TES.
Note that NGG GS already has a workgroup barrier so it doesn't
need this.
Cc: mesa-stable
Signed-off-by: Timur Kristóf <timur.kristof@gmail.com >
Reviewed-by: Rhys Perry <pendingchaos02@gmail.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10837 >
2021-06-22 14:32:27 +00:00
Timur Kristóf
f9447abb36
aco/gfx10: NGG zero output workaround for conservative rasterization.
...
Navi 1x GPUs have an issue: they can hang when the output vertex
and primitive counts are zero. The workaround is exporting a dummy
triangle.
This commit changes the dummy triangle's vertex so its positions
are all NaN. This should make sure the triangle is never rendered.
Cc: mesa-stable
Signed-off-by: Timur Kristóf <timur.kristof@gmail.com >
Reviewed-by: Rhys Perry <pendingchaos02@gmail.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10837 >
2021-06-22 14:32:27 +00:00
Timur Kristóf
25314996d0
radv/llvm: Emit s_barrier at the beginning of NGG non-GS shaders.
...
This is to fix a hang that can potentially happen when not every
wave had launched when a gs_alloc_req is executed.
Cc: mesa-stable
Signed-off-by: Timur Kristóf <timur.kristof@gmail.com >
Reviewed-by: Rhys Perry <pendingchaos02@gmail.com >
Reviewed-by: Samuel Pitoiset <samuel.pitoiset@gmail.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10837 >
2021-06-22 14:32:27 +00:00
Boris Brezillon
d970fe2e9d
panfrost: Add a Vulkan driver for Midgard/Bifrost GPUs
...
Based on turnip.
Signed-off-by: Boris Brezillon <boris.brezillon@collabora.com >
Acked-by: Kristian H. Kristensen <hoegsberg@google.com >
Acked-by: Bas Nieuwenhuizen <bas@basnieuwenhuizen.nl >
Acked-by: Jason Ekstrand <jason@jlekstrand.net >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11139 >
2021-06-22 14:07:34 +00:00
Boris Brezillon
20b22efdcb
pan/midg: Add a flag to dump internal shaders
...
Signed-off-by: Boris Brezillon <boris.brezillon@collabora.com >
Reviewed-by: Alyssa Rosenzweig <alyssa@collabora.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11139 >
2021-06-22 14:07:33 +00:00
Boris Brezillon
773bc1188b
panfrost: Make panfrost_scoreboard_initialize_tiler() return the job pointer
...
In the vulkan driver we need to patch job headers when re-submitting
an already submitted batch. Change panfrost_scoreboard_initialize_tiler()
prototype to allow that.
Signed-off-by: Boris Brezillon <boris.brezillon@collabora.com >
Reviewed-by: Alyssa Rosenzweig <alyssa@collabora.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11139 >
2021-06-22 14:07:33 +00:00
Boris Brezillon
6d2ed635c3
panfrost: Constify the constants pointers passed to pan_blend functions
...
Signed-off-by: Boris Brezillon <boris.brezillon@collabora.com >
Reviewed-by: Alyssa Rosenzweig <alyssa@collabora.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11139 >
2021-06-22 14:07:33 +00:00
Jan Beich
aefa40886b
anv: adjust headers for non-GNU after e9e1e0362b
...
src/intel/vulkan/anv_device.c:27:10: fatal error: 'sys/sysmacros.h' file not found
#include <sys/sysmacros.h>
^~~~~~~~~~~~~~~~~
Fixes: e9e1e036 ("anv: implement VK_EXT_physical_device_drm")
Reviewed-by: Lionel Landwerlin <lionel.g.landwerlin@intel.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11516 >
2021-06-22 13:38:26 +00:00
Simon Ser
7aaa54feb5
radv: implement VK_EXT_physical_device_drm
...
This adds support for the Vulkan extension introduced in [1]. The
extension allows to get a VkPhysicalDevice's DRM node device IDs.
[1]: https://github.com/KhronosGroup/Vulkan-Docs/pull/1356
Signed-off-by: Simon Ser <contact@emersion.fr >
Reviewed-by: Samuel Pitoiset <samuel.pitoiset@gmail.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/8390 >
2021-06-22 13:18:18 +00:00
Mike Blumenkrantz
60ff9dea27
zink: use multidraw
...
Reviewed-by: Hoe Hao Cheng <haochengho12907@gmail.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11498 >
2021-06-22 13:06:35 +00:00
Mike Blumenkrantz
b6855b2e18
zink: support multidraw
...
Reviewed-by: Hoe Hao Cheng <haochengho12907@gmail.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11498 >
2021-06-22 13:06:35 +00:00
Mike Blumenkrantz
84199077d9
zink: clear the fb clears array instead of freeing it on reset
...
this cuts cpu usage by ~2% in sourcemark due to not reallocating the array
on every draw
Reviewed-by: Hoe Hao Cheng <haochengho12907@gmail.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11499 >
2021-06-22 12:55:37 +00:00
Mike Blumenkrantz
6cc2929e87
zink: add more clear hooks
...
Reviewed-by: Erik Faye-Lund <erik.faye-lund@collabora.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11466 >
2021-06-22 12:45:39 +00:00
Mike Blumenkrantz
3f420b3f55
zink: add a flag for disabling conditional render during blit
...
Reviewed-by: Erik Faye-Lund <erik.faye-lund@collabora.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11466 >
2021-06-22 12:45:39 +00:00
Charlie Turner
786fa3435c
spirv_to_nir: Add environment variable to change default log level
...
During dEQP runs for radv, I see a lot of warnings like,
ERROR - dEQP error: SPIR-V WARNING:
ERROR - dEQP error: In file ../src/compiler/spirv/spirv_to_nir.c:1073
ERROR - dEQP error: Decoration not allowed on struct members: SpvDecorationRestrict
ERROR - dEQP error: 408 bytes into the SPIR-V binary
This fails jobs on Gitlab, due to,
Job's log exceeded limit of 4194304 bytes.
Job execution will continue but no more output will be collected.
Since it doesn't seem feasible right now to fix the many shaders in
the VK-CTS triggering this warning, add an environment toggle that
allows test runners to only see the level of commentary they want.
v2 from Martin:
- Add my SoB
v3 from Martin:
- fix the indentation (suggested by Eric)
- put the declarations at the top of the function
v4 from Martin:
- make vtn_default_log_level() static (Marcin)
- cache the default level in vtn_log (Marcin)
- move vtn_log_level_strings inside vtn_default_log_level()
- Fix the build issue on MSC
Signed-off-by: Martin Peres <martin.peres@mupuf.org >
Reviewed-by: Eric Engestrom <eric@engestrom.ch >
Acked-by: Andres Gomez <agomez@igalia.com >
Acked-by: Samuel Iglesias Gonsálvez <siglesias@igalia.com >
Acked-by: Samuel Pitoiset <samuel.pitoiset@gmail.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11491 >
2021-06-22 13:59:43 +03:00
Charlie Turner
e9991d5ff1
radv: Provide a toggle to avoid warnings about unsupported devices.
...
In the CI, we have such devices, and this message is printed many
hundreds of times. This results in a useless spam which makes it
difficult to see real issues.
v2 from Martin:
- Reword the commit message a bit
- Add a SoB
Signed-off-by: Martin Peres <martin.peres@mupuf.org >
Reviewed-by: Eric Engestrom <eric@engestrom.ch >
Acked-by: Andres Gomez <agomez@igalia.com >
Acked-by: Samuel Iglesias Gonsálvez <siglesias@igalia.com >
Acked-by: Samuel Pitoiset <samuel.pitoiset@gmail.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11491 >
2021-06-22 13:59:43 +03:00
Alejandro Piñeiro
26af7ef67f
v3dv/build: meson infrastructure for multi-hw-version support
...
We follow the same approach that v3d. We compile the files that
depends on the version several times, passing a different version each
time. We link all those per-version libs on the main library.
Note that right now we only support version == 42, so the array of
supported versions is one-sized.
Also note that although we were doing a previous work to split
hw-version dependant code from general code, this is the first commit
that only inject the current V3D_VERSION on the former.
We have two cases where we hardcode the V3D_VERSION (as a full
wrapping would be an overkill) that we need to include here to avoid
warnings/errors if we do that before or after.
Having some exceptions also happens on v3d. As we are here we add some
comment on v3d clarifying that.
Reviewed-by: Iago Toral Quiroga <itoral@igalia.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11310 >
2021-06-22 11:34:06 +02:00
Alejandro Piñeiro
f257c79ea4
v3dv: remove gen-dependant includes from v3dv_private
...
As we are here, we move the hooks for the packet definitions (used by
the broadcom packets helpers) to v3dv_cl
Reviewed-by: Iago Toral Quiroga <itoral@igalia.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11310 >
2021-06-22 11:34:06 +02:00
Alejandro Piñeiro
2e40f13f9a
v3dv: don't use cl_packet_length for prepacked data
...
cl_packet_length depends on the specific hw generation packets, so it
is can't be included directly by main header.
The straight forward solution would be to allocate them dynamically,
based on the current generation. That ended to be complex and
messy. Also, even if that change between hw versions, it will not
change significantly.
So we just add some definition with the size of the packets we
prepack. We just need to be careful that this needs to be the maximum
value considering all the versions supported.
Note that on Opengl v3d does something similar, using hardcoded
values, but without a define, neither a runtime check.
Reviewed-by: Iago Toral Quiroga <itoral@igalia.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11310 >
2021-06-22 11:34:06 +02:00
Alejandro Piñeiro
1bea0d76b8
v3dv: split v3dv_descriptor hw version dependant to a new source file.
...
As part of this, we get rid of the v3dv_xxx_descriptor structs to
v3dv_descriptor. The main reason is that in order to support several
versions, we would need to define them several times. Also, they were
somewhat an overkill even before, as their main advantage was getting
the offset for each data on the combined case. That functionality is
replaced with some new helpers.
Reviewed-by: Iago Toral Quiroga <itoral@igalia.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11310 >
2021-06-22 11:34:06 +02:00
Alejandro Piñeiro
67f4624c0c
v3dv: move several hw version dependant code to their own (v3dvx) source file
...
This includes code from:
* v3dv_cmd_buffer
* v3dv_meta_copy
* v3dv_meta_clear
v2: move some of the functions to source files that makes more sense
now (Iago).
Reviewed-by: Iago Toral Quiroga <itoral@igalia.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11310 >
2021-06-22 11:34:06 +02:00
Alejandro Piñeiro
76634f9b8a
v3dv: split v3dv_device hw version dependant code to a new source file
...
Reviewed-by: Iago Toral Quiroga <itoral@igalia.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11310 >
2021-06-22 11:34:06 +02:00
Alejandro Piñeiro
f526f92043
v3dv: split v3dv_format hw version dependant code to a new source file
...
Reviewed-by: Iago Toral Quiroga <itoral@igalia.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11310 >
2021-06-22 11:34:06 +02:00
Alejandro Piñeiro
a3793dbef3
v3dv: split v3dv_image hw version dependant code to a new source file
...
Reviewed-by: Iago Toral Quiroga <itoral@igalia.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11310 >
2021-06-22 11:34:06 +02:00
Alejandro Piñeiro
ad805712ed
v3dv: split v3dv_pipeline hw version dependant code to a new source file
...
v2: merge some of the v3dvx entrypoints to general pack methods (Iago)
Reviewed-by: Iago Toral Quiroga <itoral@igalia.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11310 >
2021-06-22 11:34:06 +02:00
Alejandro Piñeiro
83ba3c1020
v3dv: start to move and wrap hw-version code with v3dv_queue
...
The idea would be to move all the code that uses cl_emit,
cl_emit_with_prepack, v3dx_pack, and any enum/structure definition
defined on the v3d pack headers.
All those methods would be defined on v3dvx_private (that would be the
equivalent to v3dx_context.h on v3d).
This commit includes the definition of v3dX for the current version
supported (42), a function calling wrapper, and the move for v3dv_queue
methods as a reference.
About the function calling wrapper, I took the idea from anv. We don't
have on v3d, but we added it because we foresee that we will need that
functionality more often. So without that macro, in order to call the
correct version of the method from the general code we would need to
do like we do on v3d, and doing something like this:
if (devinfo->ver >= 42)
return v3d42_pack_sampler_state(sampler, pCreateInfo);
else
return v3d33_pack_sampler_state(sampler, pCreateInfo);
So with the macro we can just do this:
v3dv_X(device, pack_sampler_state)(sampler, pCreateInfo).
Note that as mentioned, that is to be used on the general code, so a
runtime decision. If we are already on version-dependant code (so at
v3dx_queue for example) we just use v3dX, as at that point is a build
time decision.
Also, fwiw, I don't like too much the name of that macro, but I was
not able to think on a better one.
v2: merge job_emit_noop_bin and job_emit_noop_render (Iago)
Reviewed-by: Iago Toral Quiroga <itoral@igalia.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11310 >
2021-06-22 11:34:06 +02:00
Alejandro Piñeiro
efc363a7ce
v3dv/cmd_buffer: move cl_emit calls for Draw methods to helpers
...
As we plan to move them to hw-dependant source files, but not the main
entrypoint.
Reviewed-by: Iago Toral Quiroga <itoral@igalia.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11310 >
2021-06-22 11:34:06 +02:00
Alejandro Piñeiro
d39930fb92
v3dv/cmd_buffer: add helper job_emit_binning_prolog
...
Just to isolate more tightly cl_emit calls. That would make easier to
split v3dv_cmd_buffer.
Reviewed-by: Iago Toral Quiroga <itoral@igalia.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11310 >
2021-06-22 11:34:06 +02:00
Alejandro Piñeiro
1dc8c2d9f6
v3dv: rename v3dv_pack for v3dvx_pack
...
For consistency, as we use use the v3dvx convention to point that it
depends on the hw version. Also on OpenGL the equivalent macro is
v3dx_pack.
Reviewed-by: Iago Toral Quiroga <itoral@igalia.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11310 >
2021-06-22 11:34:06 +02:00
Dave Airlie
7c4478f43b
i965: fix regression in pipe control on g45
...
The cleanups got the wrong value here, just noticed in drive by.
Fixes: b505db3864 ("intel: Simplify few version checks involving G4X")
Reviewed-by: Tapani Pälli <tapani.palli@intel.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11519 >
2021-06-22 07:40:30 +00:00
Erik Faye-Lund
91a1849ff0
wgl: remove hard limit on pixelformats
...
Zink on Intel's Windows driver supports more than 256 pixelformats,
triggering asserts. So let's get rid of the hard-coded limit, and
instead use u_dynarray to store the pixelformat info.
Reviewed-by: Jesse Natalie <jenatali@microsoft.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11447 >
2021-06-22 06:57:03 +00:00
Samuel Pitoiset
8f9368ddb7
ac/perfcounters: add a GPU block ID to every block definitions
...
The enumeration comes from AMDVLK.
Signed-off-by: Samuel Pitoiset <samuel.pitoiset@gmail.com >
Acked-by: Marek Olšák <marek.olsak@amd.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11186 >
2021-06-22 06:38:55 +00:00
Samuel Pitoiset
5a8776fd8c
ac/perfcounters: add more SPM configuration fields
...
Add the number of SPM wires because sometimes a block has eg.
2 counters but only holds 3 16-bit counters instead of 4.
Signed-off-by: Samuel Pitoiset <samuel.pitoiset@gmail.com >
Acked-by: Marek Olšák <marek.olsak@amd.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11186 >
2021-06-22 06:38:55 +00:00
Samuel Pitoiset
3d8d6ebcb0
ac/perfcounters: rename num_multi to num_spm_counters
...
Signed-off-by: Samuel Pitoiset <samuel.pitoiset@gmail.com >
Acked-by: Marek Olšák <marek.olsak@amd.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11186 >
2021-06-22 06:38:54 +00:00
Samuel Pitoiset
da94772510
ac/perfcounters,radeonsi: rework performance counters layout
...
Instead of having different layouts which might complicate things when
some registers are missing, hardcode the SELECT and SELECT1 registers
into separate arrays.
The SELECT registers are "legacy" counters, while the SELECT1 registers
are SPM counters.
This is more verbose and emit more UCONFIG registers, but emitting the
SELECT registers is now much simpler and it seems less error prone.
This will also help emitting the SPM configuration.
Signed-off-by: Samuel Pitoiset <samuel.pitoiset@gmail.com >
Acked-by: Marek Olšák <marek.olsak@amd.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11186 >
2021-06-22 06:38:54 +00:00
Samuel Pitoiset
66a34be6ac
ac/perfcounters: remove ac_pc_block_base::num_prelude
...
This seems unnecessary if the first select register is correctly set.
This CB filter was always disabled anyways.
Signed-off-by: Samuel Pitoiset <samuel.pitoiset@gmail.com >
Acked-by: Marek Olšák <marek.olsak@amd.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11186 >
2021-06-22 06:38:54 +00:00
Tapani Pälli
100fc3020a
anv: provide dummy vkCmdSetPatchControlPointsEXT
...
This makes dEQP-VK.api.version_check.entry_points pass and matches how
other drivers are handling this case. We do not support the feature but
still need to provide a dummy entrypoint.
v2: throw error if/when called (Jason)
Fixes: 0d031d1da3 ("anv: toggle on VK_EXT_extended_dynamic_state2")
Signed-off-by: Tapani Pälli <tapani.palli@intel.com >
Reviewed-by: Jason Ekstrand <jason@jlekstrand.net >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11503 >
2021-06-22 09:14:46 +03:00
Daniel Stone
9102921109
llvmpipe: Add handle export for resource_get_param
...
mesa/mesa@2dcc9c7f54 from mesa/mesa!6639 added a resource_get_param
hook for llvmpipe, which was nice since it gave lavapipe more features.
One of those features was not exporting llvmpipe textures, so those
parts were stubbed out and landed in an assert(0).
This completely broke kms_swrast (llvmpipe+GBM) on non-release builds,
since that definitely does need to export llvmpipe textures.
The query codepath which caused this explosion does fall back to
resource_get_handle() - which is how it worked previously - but not all
callers do this, so just do what all other drivers implementing
resource_get_param() do and open-code the translation.
Signed-off-by: Daniel Stone <daniels@collabora.com >
Reviewed-By: Mike Blumenkrantz <michael.blumenkrantz@gmail.com >
Reviewed-by: Dave Airlie <airlied@redhat.com >
Reported-by: Jonas Ådahl <jadahl@gmail.com >
Tested-by: Jonas Ådahl <jadahl@gmail.com >
Fixes: 2dcc9c7f54 ("llvmpipe: add resource get param support.")
Ref: https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/6639
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11504 >
2021-06-22 02:13:13 +00:00
Jason Ekstrand
d3ea8f519e
docs,isl: Document Sandy Bridge HiZ/stencil
...
This is annoying and tricky and we don't have all the gory details
written down in one central place anywhere. Add a docs section on it.
Reviewed-by: Emma Anholt <emma@anholt.net >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11500 >
2021-06-21 22:54:31 +00:00
Bas Nieuwenhuizen
8dfb240b1f
nir: Add raytracing shader call lowering pass.
...
Really copying Jason's pass.
Changes:
- Instead of all the intel lowering introduce rt_{execute_callable,trace_ray,resume}
- Add the ability to use scratch intrinsics directly.
Reviewed-by: Lionel Landwerlin <lionel.g.landwerlin@intel.com >
Reviewed-by: Jason Ekstrand <jason@jlekstrand.net >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10339 >
2021-06-21 21:23:51 +00:00
Bas Nieuwenhuizen
02c5dc8035
nir: Add lowered vendor independent raytracing intrinsics.
...
For use in a generic nir_lower_shader_calls.
Reviewed-by: Lionel Landwerlin <lionel.g.landwerlin@intel.com >
Reviewed-by: Jason Ekstrand <jason@jlekstrand.net >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10339 >
2021-06-21 21:23:51 +00:00
Emma Anholt
58f5605124
freedreno: Handle full blit discards by invalidating the resource.
...
The previous implementation had several issues:
- It wasn't checking all the conditions necessary for "this blit updates
the whole surface", like PIPE_MASK_Z but not S on a depth/stencil
buffer.
- It would reset the previous batchbuffer, even if that batch had side
effects on other buffers.
- The layering was painful to follow and made any recursion extra
dangerous.
Now, we use a more conservative test (enough for the resource shadowing
case) and just invalidate the buffer up front, which should have the right
logic for discarding drawing to that resource.
I found I had to add fd_bc_flush_writer() to the end of fd_blitter_blit()
-- a flush was happening at fb state restore time when the discard flag
was set, and losing that flush breaks
dEQP-GLES31.functional.stencil_texturing.format.stencil_index8_cube.
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11455 >
2021-06-21 20:48:21 +00:00
Emma Anholt
74ede4b353
freedreno: Move the rsc-based batch flushing to helper functions.
...
I want to reuse these, and this gives them nice names.
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11455 >
2021-06-21 20:48:21 +00:00
Emma Anholt
447b6f60a6
gallium/util: Introduce a helper for finding whole-resource blits.
...
This can be useful for tilers to discard previous rendering to a buffer
instead of reloading before drawing all the pixels.
Reviewed-by: Rob Clark <robdclark@chromium.org >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11455 >
2021-06-21 20:48:21 +00:00
Emma Anholt
9ce44dc9bc
gallium/draw: Garbage collect draw_pt_fetch_emit.
...
Now that we don't have draw_set_force_passthrough(), this middle end was
inaccessible.
Reviewed-By: Mike Blumenkrantz <michael.blumenkrantz@gmail.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11410 >
2021-06-21 20:27:35 +00:00
Emma Anholt
5e019269d6
gallium/draw: Garbage collect draw_set_force_passthrough
...
Introduced in c48da7d78b ("draw: add switch for drivers to force vertex
data passthrough") in 2008 and never used.
Reviewed-By: Mike Blumenkrantz <michael.blumenkrantz@gmail.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11410 >
2021-06-21 20:27:35 +00:00
Simon Ser
ae2b7a29d2
docs/envvars: document MESA_VK_WSI_PRESENT_MODE
...
This env var was introduced in a182adfd83 ("wsi: allow to override the
present mode with MESA_VK_WSI_PRESENT_MODE").
Signed-off-by: Simon Ser <contact@emersion.fr >
Reviewed-by: Samuel Pitoiset <samuel.pitoiset@gmail.com >
Reviewed-by: Adam Jackson <ajax@redhat.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11441 >
2021-06-21 20:22:51 +00:00
Simon Ser
7369b1a21e
vulkan/wsi/wayland: simplify wl_surface version check
...
No need to cast to a wl_proxy, there is a wl_surface variant
available.
No need to cache the result of get_version(), this is just a
one-line getter and doesn't perform any roundtrip.
Signed-off-by: Simon Ser <contact@emersion.fr >
Reviewed-by: Jason Ekstrand <jason@jlekstrand.net >
Reviewed-by: Daniel Stone <daniels@collabora.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11420 >
2021-06-21 20:01:28 +00:00
Jordan Justen
eb98171252
intel/gen125.xml: Drop GPGPU_WALKER
...
Ref: f4902bb189 ("intel/genxml,anv,iris: Drop the legacy compute path from gen125.xml")
Signed-off-by: Jordan Justen <jordan.l.justen@intel.com >
Reviewed-by: Lionel Landwerlin <lionel.g.landwerlin@intel.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11489 >
2021-06-21 19:40:14 +00:00
Lionel Landwerlin
e9e1e0362b
anv: implement VK_EXT_physical_device_drm
...
v2: add docs
update error messages (Sagar)
v3: Use fstat() (Jason)
v4: Do fstat() on demand (Jason)
v5: clear major/minor values if not present (Jason)
Signed-off-by: Lionel Landwerlin <lionel.g.landwerlin@intel.com >
Reviewed-by: Sagar Ghuge <sagar.ghuge@intel.com >
Reviewed-by: Jason Ekstrand <jason@jlekstrand.net >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/8649 >
2021-06-21 19:18:07 +00:00
Marek Olšák
6a2e3d2736
radeonsi: cleanup some primitive discard CS TODOs regarding instancing, etc.
...
Reviewed-by: Pierre-Eric Pelloux-Prayer <pierre-eric.pelloux-prayer@amd.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11102 >
2021-06-21 19:03:29 +00:00
Marek Olšák
4b5eb336e1
radeonsi: skip buffer_atomic_add(ptr, n) when n=0 in the prim discard CS
...
This improves performance of the shader nicely.
Reviewed-by: Pierre-Eric Pelloux-Prayer <pierre-eric.pelloux-prayer@amd.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11102 >
2021-06-21 19:03:29 +00:00
Marek Olšák
df4de12af4
radeonsi: drop support for triangle fans from the prim discard CS
...
because it doesn't implement triangle fan splitting, so it's incomplete
Acked-by: Pierre-Eric Pelloux-Prayer <pierre-eric.pelloux-prayer@amd.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11102 >
2021-06-21 19:03:29 +00:00
Marek Olšák
4fa58c04e4
radeonsi: drop gfx7 support from the prim discard CS to simplify code
...
Reviewed-by: Pierre-Eric Pelloux-Prayer <pierre-eric.pelloux-prayer@amd.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11102 >
2021-06-21 19:03:29 +00:00
Marek Olšák
fc95ba6c86
radeonsi: remove the Z culling option from the primitive discard CS
...
Not useful.
Acked-by: Pierre-Eric Pelloux-Prayer <pierre-eric.pelloux-prayer@amd.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11102 >
2021-06-21 19:03:29 +00:00
Marek Olšák
a448074d05
radeonsi: don't compile TES and GS draw_vbo variants for the prim discard CS
...
This also fixes the incorrect emit_draw_packets template argument.
The condition should be inverted.
Acked-by: Pierre-Eric Pelloux-Prayer <pierre-eric.pelloux-prayer@amd.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11102 >
2021-06-21 19:03:29 +00:00
Marek Olšák
b35b5926c9
radeonsi: try to keep all VS input loads together for better perf
...
Acked-by: Pierre-Eric Pelloux-Prayer <pierre-eric.pelloux-prayer@amd.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11102 >
2021-06-21 19:03:29 +00:00
Marek Olšák
901f4aa5d6
radeonsi: remove incorrect comment about PA
...
Acked-by: Pierre-Eric Pelloux-Prayer <pierre-eric.pelloux-prayer@amd.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11102 >
2021-06-21 19:03:29 +00:00
Marek Olšák
ce4f4a8d13
radeonsi: set more precise max_waves in NGG code
...
Acked-by: Pierre-Eric Pelloux-Prayer <pierre-eric.pelloux-prayer@amd.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11102 >
2021-06-21 19:03:29 +00:00
Marek Olšák
1e9cc86511
radeonsi: merge 2 conditional blocks with same condition into 1 in culling code
...
The block only loads input VGPRs from LDS, and the next block uses them.
The entering condition is the same, even though the second block is
the next shader part beginning with the prolog.
Simply move the VGPR loads into the prolog.
This decreases the shader code size by 12 bytes.
Acked-by: Pierre-Eric Pelloux-Prayer <pierre-eric.pelloux-prayer@amd.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11102 >
2021-06-21 19:03:29 +00:00
Marek Olšák
786678a017
radeonsi: restructure si_get_vs_vgpr_comp_cnt for readability
...
Reviewed-by: Pierre-Eric Pelloux-Prayer <pierre-eric.pelloux-prayer@amd.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11102 >
2021-06-21 19:03:29 +00:00
Rob Clark
06ff0ae4bb
freedreno: Flush if at risk of overflowing bos table
...
Fixes overflow crash in tex-miplevel-selection
Closes: https://gitlab.freedesktop.org/mesa/mesa/-/issues/4007
Signed-off-by: Rob Clark <robdclark@chromium.org >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11487 >
2021-06-21 18:45:23 +00:00
Rob Clark
5b4f670c1c
freedreno/a6xx: Handle fb_read in sysmem path
...
Signed-off-by: Rob Clark <robdclark@chromium.org >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11487 >
2021-06-21 18:45:23 +00:00
Rob Clark
1a1eabd7d8
freedreno/ci: Garbage collect some a630 flakes
...
Haven't seen these, at least since flake reporting switched to OFTC
channel (~1 month ago)
Signed-off-by: Rob Clark <robdclark@chromium.org >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11487 >
2021-06-21 18:45:23 +00:00
Matti Hamalainen
aeaeef661a
gallium/tools: improve handling of pointer arrays
...
Extend the special handling of return types to also include pointer
type array list elements, so we ignore the initial "name" of the
element until we know a better type for them. This improves the type
"detection" of such pointer array elements when parsing the logs
with dump.py / tracediff.sh
Related to Mesa issue #4609
Signed-off-by: Matti Hamalainen <ccr@tnsp.org >
Acked-By: Mike Blumenkrantz <michael.blumenkrantz@gmail.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11492 >
2021-06-21 18:33:41 +00:00
Rhys Perry
1e508777b4
radv: allow VK_FORMAT_R8G8_SRGB sampling
...
No reason why we can't do this. AMDVLK also allows this.
Signed-off-by: Rhys Perry <pendingchaos02@gmail.com >
Reviewed-by: Bas Nieuwenhuizen <bas@basnieuwenhuizen.nl >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11317 >
2021-06-21 18:17:09 +00:00
Jason Ekstrand
1a14d98fa2
nir: Document all the ALU opcodes
...
Reviewed-by: Connor Abbott <cwabbott0@gmail.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11438 >
2021-06-21 16:47:00 +00:00
Jason Ekstrand
73188c6954
nir,docs: Add docs for NIR ALU instructions
...
About half or more of the text here is actually from Connor Abbot. I've
edited it a bit to bring it up-to-date and make a few things more clear.
Reviewed-by: Connor Abbott <cwabbott0@gmail.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11438 >
2021-06-21 16:46:59 +00:00
Jason Ekstrand
f00b5a30f5
nir: Require vectorized ALU ops to be all-or-nothing
...
Long ago, the semantics of bcsel were such that it took a single boolean
value and selected between whole vectors. These days, it takes a vector
boolean with the assumption that if you want the old behavior you can
just use a .xxxx swizzle. There currently are no opcodes which use a
output_size of 0 but have a scalar or fixed-vector input. Let's
disallow it for now to force us to think through the semantics again if
this ever comes up as something someone actually wants.
Reviewed-by: Connor Abbott <cwabbott0@gmail.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11438 >
2021-06-21 16:46:59 +00:00
Rhys Perry
ea68d4a676
nir/propagate_invariant: add invariant_prim option
...
Signed-off-by: Rhys Perry <pendingchaos02@gmail.com >
Reviewed-by: Alyssa Rosenzweig <alyssa@collabora.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11035 >
2021-06-21 15:13:05 +00:00
Mike Blumenkrantz
7144f33802
zink: handle custom border color without matching wrap mode case
...
this is just default border color and the custom color is ignored
Fixes: 36f4e61403 ("zink: rework border color handling")
Reviewed-by: Erik Faye-Lund <erik.faye-lund@collabora.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11495 >
2021-06-21 14:54:33 +00:00
Jason Ekstrand
69d4fa3a1c
vulkan: Update the XML and headers to 1.2.182
...
Acked-By: Mike Blumenkrantz <michael.blumenkrantz@gmail.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11497 >
2021-06-21 14:29:16 +00:00
Jason Ekstrand
2e08bae9b3
nir,vc4: Suffix a bunch of unorm 4x8 opcodes _vc4
...
Reviewed-by: Alyssa Rosenzweig <alyssa@collabora.com >
Reviewed-by: Iago Toral Quiroga <itoral@igalia.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11463 >
2021-06-21 09:04:08 -05:00
Jason Ekstrand
0afbfee8da
nir,panfrost: Suffix fsat_signed and fclamp_pos with _mali
...
Reviewed-by: Alyssa Rosenzweig <alyssa@collabora.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11463 >
2021-06-21 09:03:34 -05:00
Jason Ekstrand
f0f713960b
nir,amd: Suffix nir_op_cube_face_coord/index with _amd
...
Reviewed-by: Alyssa Rosenzweig <alyssa@collabora.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11463 >
2021-06-21 09:03:34 -05:00
Timur Kristóf
e5510536e7
aco: Fix checking if load_shared is used by cross lane instructions.
...
This commit fixes two issues with it:
1. Prevent it from going into an infinite loop.
2. Check all uses, not just first use.
Closes : #4916
Fixes: b4e22eb482
Signed-off-by: Timur Kristóf <timur.kristof@gmail.com >
Reviewed-by: Daniel Schürmann <daniel@schuermann.dev >
Reviewed-by: Tony Wasserka <tony.wasserka@gmx.de >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11361 >
2021-06-21 13:42:52 +00:00
Andres Gomez
90c7ab08ea
ci: use bash with download-git-cache.sh
...
It's a bash script, so make sure we use bash and not just sh.
Reviewed-by: Benjamin Tissoires <benjamin.tissoires@gmail.com >
Signed-off-by: Andres Gomez <agomez@igalia.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/9865 >
2021-06-21 15:05:25 +03:00
Bas Nieuwenhuizen
d074cc4af4
util/fossilize_db: Only lock the db file, not the index.
...
This thing is entirely opt-in wrt caring about it when writing to
a file anyway. Since we also lock the two at the same time and they
have an 1-1 relation we can just lock one of the two files. Saves
some syscalls.
Reviewed-by: Timothy Arceri <tarceri@itsqueeze.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11485 >
2021-06-21 10:05:12 +00:00
Bas Nieuwenhuizen
4f0f8133a3
util/fossilize_db: Do not lock the fossilize db permanently.
...
This avoids all locks for reads and using lock only while actually
writing.
This is enabled by doing two things:
1) Reading the index incrementally. This way we get new entries
written by other processes and do not write duplicate entries.
2) Taking the lock only during writes, and applying the incremental
read while holding the lock so we always append to the actual end of the file.
Fixes: eca6bb9540 ("util/fossilize_db: add basic fossilize db util to read/write shader caches")
Reviewed-by: Timothy Arceri <tarceri@itsqueeze.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11485 >
2021-06-21 10:05:12 +00:00
Bas Nieuwenhuizen
2ec1bff0f3
util/fossilize_db: Split out reading the index.
...
Fixes: eca6bb9540 ("util/fossilize_db: add basic fossilize db util to read/write shader caches")
Reviewed-by: Timothy Arceri <tarceri@itsqueeze.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11485 >
2021-06-21 10:05:12 +00:00
Bas Nieuwenhuizen
bd41c51c8f
util/fossilize_db: Pull seek into lock.
...
Otherwise the seek can overlap with other reads/writes.
Fixes: eca6bb9540 ("util/fossilize_db: add basic fossilize db util to read/write shader caches")
Reviewed-by: Timothy Arceri <tarceri@itsqueeze.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11485 >
2021-06-21 10:05:12 +00:00
Bas Nieuwenhuizen
a99474fae5
radv: Add -Wpointer-arith.
...
Gives earlier indications of MSVC issues.
Reviewed-by: Samuel Pitoiset <samuel.pitoiset@gmail.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11478 >
2021-06-21 09:32:00 +00:00
Timur Kristóf
72174a3eef
ac/nir: Update TCS output barriers with nir_var_mem_shared.
...
Output loads and stores are lowered to shared memory access,
so we have to update the barriers to also reflect this.
Closes : #4955
Fixes: bf966d1c1d
Signed-off-by: Timur Kristóf <timur.kristof@gmail.com >
Reviewed-by: Daniel Schürmann <daniel@schuermann.dev >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11484 >
2021-06-21 08:27:14 +00:00
Erik Faye-Lund
ed04cb62d8
docs: use rst captions
...
This is slightly stronger semantically.
Reviewed-by: Eric Engestrom <eric@engestrom.ch >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11464 >
2021-06-21 08:22:51 +00:00
Erik Faye-Lund
e41efc173b
docs: use more file-roles
...
This makes the documentation a bit easier to read, and aids
spell-checkers, so let's specify these using file-roles.
Reviewed-by: Eric Engestrom <eric@engestrom.ch >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11464 >
2021-06-21 08:22:51 +00:00
Erik Faye-Lund
63c9d51981
docs: drop historic meson details
...
Similar to the last few commits, we require Meson 0.52 now. There's no
point in confusing users with specifying what versions supports what
here, as all supported versions works the same way now.
Reviewed-by: Eric Engestrom <eric@engestrom.ch >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11464 >
2021-06-21 08:22:51 +00:00
Erik Faye-Lund
07cd8897fb
docs: remove outdated clarification
...
Similar to the previous commit, we now require Meson 0.52 all the time,
so there's no point in singling this out.
Reviewed-by: Eric Engestrom <eric@engestrom.ch >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11464 >
2021-06-21 08:22:51 +00:00
Erik Faye-Lund
309b549f0e
docs: remove outdated meson-section
...
We're already requiring Meson 0.52, so there's no point in mentioning
this old work-around.
Reviewed-by: Eric Engestrom <eric@engestrom.ch >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11464 >
2021-06-21 08:22:51 +00:00
Iago Toral Quiroga
fa8868192b
v3dv: remove const qualifier for resource pointer in view objects
...
Reviewed-by: Alejandro Piñeiro <apinheiro@igalia.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11443 >
2021-06-21 06:00:56 +00:00
Iago Toral Quiroga
b8abedb974
v3dv: expose VK_KHR_copy_commands2
...
Relevant CTS tests:
dEQP-VK.api.copy_and_blit.copy_commands2.*
Reviewed-by: Alejandro Piñeiro <apinheiro@igalia.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11443 >
2021-06-21 06:00:56 +00:00
Iago Toral Quiroga
aa61a653a5
v3dv: implement vkCmdResolveImage2KHR
...
The common Vulkan code will call this to implement vkCmdResolveImage.
Reviewed-by: Alejandro Piñeiro <apinheiro@igalia.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11443 >
2021-06-21 06:00:56 +00:00
Iago Toral Quiroga
8e358a74d0
v3dv: implement vkCmdCopyImage2KHR
...
The common Vulkan code will call this to implement vkCmdCopyImage.
Reviewed-by: Alejandro Piñeiro <apinheiro@igalia.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11443 >
2021-06-21 06:00:56 +00:00
Iago Toral Quiroga
3bdc03fd28
v3dv: implement vkCmdCopyBufferToImage2KHR and vkCmdCopyImageToBuffer2KHR
...
The common Vulkan code will call this to implement vkCmdCopyImageToBuffer.
Reviewed-by: Alejandro Piñeiro <apinheiro@igalia.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11443 >
2021-06-21 06:00:56 +00:00
Iago Toral Quiroga
47390d6669
v3dv: implement vkCmdCopyBuffer2KHR
...
The common Vulkan code will call this to implement vkCmdCopyBuffer.
Reviewed-by: Alejandro Piñeiro <apinheiro@igalia.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11443 >
2021-06-21 06:00:56 +00:00
Iago Toral Quiroga
06a9a3ead5
v3dv: implement vkCmdBlitImage2KHR
...
The common Vulkan code will call this to implement vkCmdBlitImage.
Reviewed-by: Alejandro Piñeiro <apinheiro@igalia.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11443 >
2021-06-21 06:00:56 +00:00
Yurii Kolesnykov
89b4f337d5
c_std=c11 in meson default_options
...
Closes: https://gitlab.freedesktop.org/mesa/mesa/-/issues/1020
Co-authored-by: Kristian Høgsberg <krh@bitplanet.net >
Acked-by: Karol Herbst <kherbst@redhat.com >
Acked-by: Eric Engestrom <eric@engestrom.ch >
Signed-off-by: Yurii Kolesnykov <root@yurikoles.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/6935 >
2021-06-20 11:36:06 +03:00
Marek Olšák
61a845ca19
ac/surface: don't set DCC_PIPE_ALIGN modifier bit for gfx10 with 1 RB
...
Acked-by: Pierre-Eric Pelloux-Prayer <pierre-eric.pelloux-prayer@amd.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11486 >
2021-06-20 01:22:01 -04:00
Marek Olšák
2acd34f266
ac/surface/tests: fix RB counts
...
The real number of RBs can be less than what GB_ADDR_CONFIG contains.
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11486 >
2021-06-20 01:22:01 -04:00
Marek Olšák
9c3225cb53
radeonsi: move the accepting code into the bbox cull branch in NGG cull code
...
This reduces the number of jumps. No change in behavior.
Reviewed-by: Pierre-Eric Pelloux-Prayer <pierre-eric.pelloux-prayer@amd.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11486 >
2021-06-20 01:22:01 -04:00
Marek Olšák
12d2df15f1
ac/llvm: add a callback to ac_cull_triangle to generate code in inner-most block
...
This will reduce jumps in culling code.
Reviewed-by: Pierre-Eric Pelloux-Prayer <pierre-eric.pelloux-prayer@amd.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11486 >
2021-06-20 01:22:01 -04:00
Marek Olšák
1805572694
radeonsi: fix multi draws for the prim discard CS
...
Reviewed-by: Pierre-Eric Pelloux-Prayer <pierre-eric.pelloux-prayer@amd.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11486 >
2021-06-20 01:22:01 -04:00
Marek Olšák
848dbe9ff7
radeonsi: fix incorrect counting of compute_num_verts_rejected
...
Both cases should subtract to undo what is done in the conditional.
Reviewed-by: Pierre-Eric Pelloux-Prayer <pierre-eric.pelloux-prayer@amd.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11486 >
2021-06-20 01:22:01 -04:00
Marek Olšák
3cde2f96f9
radeonsi: use ac_build_bit_count instead of opencoding it
...
Reviewed-by: Pierre-Eric Pelloux-Prayer <pierre-eric.pelloux-prayer@amd.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11486 >
2021-06-20 01:22:01 -04:00
Marek Olšák
70b5a5cbbf
radeonsi: fix compile failures with SI_PRIM_DISCARD_DEBUG enabled
...
Reviewed-by: Pierre-Eric Pelloux-Prayer <pierre-eric.pelloux-prayer@amd.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11486 >
2021-06-20 01:22:01 -04:00
Eleni Maria Stea
b4d90b1182
egl: fix in expected type
...
Function mincore expects a pointer of type char* but we use an unsigned
char* instead generating signedness related warnings.
v2: Made the fix FreeBSD specific because the type is unsigned char* for
Linux and char* for FreeBSD. (Adam Jackson)
v3: We'd rather cast the param to (void*) to avoid warnings in all
systems (Adam Jackson)
Signed-off-by: Eleni Maria Stea <elene.mst@gmail.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11298 >
2021-06-19 19:34:20 +00:00
Jason Ekstrand
7b8199e4a2
crocus: Drop extra_aux support
...
This exists for combined MCS+CCS or HiZ+CCS which was introduced on
Tigerlake. Crocus will never support hardware that has these features
so there's no point carrying the dead copied+pasted code from iris.
Reviewed-by: Kenneth Graunke <kenneth@whitecape.org >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11483 >
2021-06-19 14:57:25 +00:00
Bas Nieuwenhuizen
82de184c3a
radv: Enable VK_KHR_acceleration_structure with RADV_PERFTEST=rt.
...
Reviewed-by: Samuel Pitoiset <samuel.pitoiset@gmail.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11078 >
2021-06-18 22:16:27 +00:00
Bas Nieuwenhuizen
c27e3a6248
radv: Add rt perftest flag.
...
Reviewed-by: Samuel Pitoiset <samuel.pitoiset@gmail.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11078 >
2021-06-18 22:16:27 +00:00
Bas Nieuwenhuizen
438cb7f9a3
radv: Expose formats for acceleration structure.
...
Reviewed-by: Samuel Pitoiset <samuel.pitoiset@gmail.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11078 >
2021-06-18 22:16:27 +00:00
Bas Nieuwenhuizen
9920eadf83
radv: Implement load_vulkan_descriptor for acceleration structures.
...
It always uses nir_address_format_64bit_global.
Reviewed-by: Samuel Pitoiset <samuel.pitoiset@gmail.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11078 >
2021-06-18 22:16:27 +00:00
Bas Nieuwenhuizen
85e39cb325
radv: Convert lower_intrinsics to a switch statement
...
Reviewed-by: Samuel Pitoiset <samuel.pitoiset@gmail.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11078 >
2021-06-18 22:16:27 +00:00
Bas Nieuwenhuizen
a4b3ce5d56
radv: Add acceleration structure descriptor set support.
...
Reviewed-by: Samuel Pitoiset <samuel.pitoiset@gmail.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11078 >
2021-06-18 22:16:27 +00:00
Bas Nieuwenhuizen
0dad88b469
radv: Implement device-side BVH building.
...
Same naive algorithm as the host build.
Reviewed-by: Samuel Pitoiset <samuel.pitoiset@gmail.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11078 >
2021-06-18 22:16:27 +00:00
Bas Nieuwenhuizen
d51a4b4c4b
radv: Add initial CPU BVH building.
...
The algorithm used for the BVH:
1) first create 1 leaf per primitive (triangle/aabb/instance)
2) Then create internal layers from the bottom up until we are left with
1 node in the top layer. Node i in the layer will have children
(i*4+0) ... (i*4+3) in the previous layer.
This results in a very naive algorithm but it is also very simple to implement.
Reviewed-by: Samuel Pitoiset <samuel.pitoiset@gmail.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11078 >
2021-06-18 22:16:27 +00:00
Bas Nieuwenhuizen
67e949a8f8
radv: Use the global BO list for acceleration structures.
...
We have nested structures so tracking this from the descriptor
set is going to be a mess.
Reviewed-by: Samuel Pitoiset <samuel.pitoiset@gmail.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11078 >
2021-06-18 22:16:27 +00:00
Jason Ekstrand
f31bfda34a
util: Move the 4x4 matrix inverse function to u_math
...
Reviewed-by: Bas Nieuwenhuizen <bas@basnieuwenhuizen.nl >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11078 >
2021-06-18 22:16:27 +00:00
Rob Clark
1727adfbc5
freedreno/ci: Increase # of jobs for CI runners
...
The idea is that the tests will spend *some* time stalling waiting to
read back results from the GPU. So use a # of jobs that is slightly
more than the # of CPUs to keep the CPUs more busy.
Locally this is dropping a bit more than a minute off a parallel
deqp-gles31 run, so turn it on across the board for a6xx.
Signed-off-by: Rob Clark <robdclark@chromium.org >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11477 >
2021-06-18 21:59:06 +00:00
Rob Clark
fc00abe46c
freedreno/ci: Start longest traces first
...
Shave off a bit of runtime on the CI job by starting the longer traces
first.
Signed-off-by: Rob Clark <robdclark@chromium.org >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11477 >
2021-06-18 21:59:06 +00:00
Dave Airlie
714145f54c
crocus/gen6: fix depth blit blorp regression.
...
The tesseract fix broke depth blits using blorp as depth blits
on gen6 are done using the color engine. Just disable aux
up front on the destination for this case.
Reviewed-by: Jason Ekstrand <jason@jlekstrand.net >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11456 >
2021-06-19 06:05:08 +10:00
Emma Anholt
caa5c5b12e
freedreno/ir3: Move NIR printing to mesa_log.
...
Now we can get some NIR debug on Android.
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/9262 >
2021-06-18 18:18:35 +00:00
Emma Anholt
990c232603
nir: Add an interface for logging shaders with mesa_log*.
...
For debug on Android, it's useful to be able to print shaders to the
android log interface, since you don't usually have stdout/stderr.
Reviewed-by: Rob Clark <robdclark@chromium.org >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/9262 >
2021-06-18 18:18:35 +00:00
Emma Anholt
88fe7ab4fa
freedreno/ir3: Move the native code output to mesa_log as well.
...
I didn't feel like rewriting ir3_shader_disasm() off of FILE *s, so use
the same trick as the disasm_info path above to write to memory and then
hand the multi-line blob off to mesa_log.
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/9262 >
2021-06-18 18:18:35 +00:00
Emma Anholt
9d458336c6
freedreno/ir3: Use mesa_log_stream() for ir3 disassembly.
...
This means you can get dumps on android, and output on Linux goes to
stderr. However, this does mean that on Linux the output goes from
looking like:
AFTER: ir3_legalize:
block3276208368 {
0000:0001:002: cov.u32s16 hr2.x, c2.x
0000:0002:002: mov.u32u32 r0.x, c0.x
[...]
to:
MESA: info: AFTER: ir3_legalize:
MESA: info: block3405271904 {
MESA: info: 0000:0001:002: cov.u32s16 hr2.x, c2.x
MESA: info: 0000:0002:002: mov.u32u32 r0.x, c0.x
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/9262 >
2021-06-18 18:18:35 +00:00
Emma Anholt
250c127c20
util/log: Add a streaming printf interface.
...
Often disassemblers and things in our drivers want to be able to
incrementally printf together a line, but that gets in the way of
Android's logging that wants to see a whole line all at once. Make a
little wrapper to do the ralloc_asprintf_rewrite_tail() and flushing lines
as they appear.
Reviewed-by: Rob Clark <robdclark@chromium.org >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/9262 >
2021-06-18 18:18:35 +00:00
Emma Anholt
3863008c22
freedreno/ir3: Move the assert output to mesa_loge().
...
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/9262 >
2021-06-18 18:18:35 +00:00
Emma Anholt
ecf807c900
freedreno: Move some driver debug printfs to mesa_logd.
...
This means the logging will work on Android, and won't get mixed up in
application stdout on Linux.
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/9262 >
2021-06-18 18:18:35 +00:00
Emma Anholt
caf69b5b77
i915g: Add triangle provoking vertex support.
...
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11470 >
2021-06-18 18:11:12 +00:00
Eric Engestrom
ddf5c798d2
docs: update calendar and link releases notes for 21.1.3
...
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11472 >
2021-06-18 18:07:12 +00:00
Eric Engestrom
b8d54b7a71
docs: add release notes for 21.1.3
...
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11472 >
2021-06-18 18:07:11 +00:00
Mike Blumenkrantz
4f86cd46eb
nine: add zink to the build target
...
Reviewed-by: Axel Davy <davyaxel0@gmail.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11467 >
2021-06-18 17:44:14 +00:00
Mike Blumenkrantz
f91ffe1349
nine: only enable tgsi disk cache if the driver supports it
...
this crashes otherwise
Reviewed-by: Axel Davy <davyaxel0@gmail.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11471 >
2021-06-18 17:34:09 +00:00
Samuel Pitoiset
977355c6e5
radv: fix dynamic culling and depth/stencil related dynamic states
...
To avoid overwriting previous dynamic state with default state from
the pipeline.
Closes: https://gitlab.freedesktop.org/mesa/mesa/-/issues/4926
Cc: 21.1 mesa-stable
Signed-off-by: Samuel Pitoiset <samuel.pitoiset@gmail.com >
Reviewed-by: Bas Nieuwenhuizen <bas@basnieuwenhuizen.nl >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11375 >
2021-06-18 16:27:57 +00:00
Mike Blumenkrantz
651c6b16ff
radv: move pipe_misaligned and l2_coherent image checks to flags set on init
...
this should save 4-5% cpu in some cases
Reviewed-by: Samuel Pitoiset <samuel.pitoiset@gmail.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11462 >
2021-06-18 16:02:26 +00:00
Boyuan Zhang
e1af22d9dd
radeon/vcn: allocate non-tmz context buffer for VCN2+
...
By design, context buffer should be allocated as TMZ buffer for secure playback
for VCN 1 only. For VCN 2&2+, context buffer should be moved out of TMZ.
Signed-off-by: Boyuan Zhang <boyuan.zhang@amd.com >
Reviewed-by: Pierre-Eric Pelloux-Prayer <pierre-eric.pelloux-prayer@amd.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11388 >
2021-06-18 14:35:44 +00:00
Boyuan Zhang
796358e2f5
radeon/vcn: move calc_dpb_size into create_decoder
...
Dpb buffer size calculation should based on the values provided in player's
decoder creation call. db_alignmet should be decided in decoder creation
call as well. Therefore, move db_alignment and dpb buffer size calculation
from rvcn_dec_message_decode to radeon_create_decoder function.
Signed-off-by: Boyuan Zhang <boyuan.zhang@amd.com >
Reviewed-by: Leo Liu <leo.liu@amd.com >
Acked-by: Pierre-Eric Pelloux-Prayer <pierre-eric.pelloux-prayer@amd.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11378 >
2021-06-18 14:23:24 +00:00
Jason Ekstrand
b97dedd365
docs/isl: Add detailed documentation about CCS compression
...
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11366 >
2021-06-18 13:03:48 +00:00
Jason Ekstrand
6b15ce9fa2
docs/isl: Add detailed documentation about tiling on Intel GPUs
...
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11366 >
2021-06-18 13:03:48 +00:00
Jason Ekstrand
0f6ebd2b73
docs/isl: Add detailed documentation about isl formats
...
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11366 >
2021-06-18 13:03:48 +00:00
Jason Ekstrand
3894e42590
docs/isl: Document ISL's units
...
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11366 >
2021-06-18 13:03:48 +00:00
Jason Ekstrand
d07ec294bb
isl: Document more members of isl_surf
...
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11366 >
2021-06-18 13:03:48 +00:00
Jason Ekstrand
831750b40b
docs: Begin documenting ISL
...
This commit mostly just adds the framework required to scrape
documentation out of the ISL sources and headers. The method chosen
here is a combination of doxygen and breathe (a sphinx extension for
doxygen integration). I'll freely admit that doxygen is pretty terrible
but it seems like the best option we have available to us today.
Acked-by: Emma Anholt <emma@anholt.net >
Acked-by: Daniel Stone <daniels@collabora.com >
Acked-by: Erik Faye-Lund <erik.faye-lund@collabora.com >.
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11366 >
2021-06-18 13:03:48 +00:00
Mike Blumenkrantz
d3a63149da
zink: remove inlinable_uniforms_dirty_mask
...
this should've always just been flagging the shaders dirty directly
Reviewed-by: Dave Airlie <airlied@redhat.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11405 >
2021-06-18 12:50:03 +00:00
Mike Blumenkrantz
78f820acd7
zink: remove duplicated bitflag filtering for inline uniforms
...
'bits' already does this
Reviewed-by: Dave Airlie <airlied@redhat.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11405 >
2021-06-18 12:50:03 +00:00
Samuel Pitoiset
60348360a2
radv: create only one pipeline for decompressing depth/stencil images
...
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/11263 >
2021-06-18 14:15:30 +02:00
Samuel Pitoiset
213c4c5f44
radv: always decompress both aspects of a depth/stencil image
...
If compressed rendering is only used for the depth aspect of a
depth/stencil image, stencil might also be compressed and it needs
to be decompressed. This only happens for non-TC compatible images.
As long as the driver needs to decompress the depth aspect, I don't
think that decompressing the stencil aspect introduces extra cost.
Fixes dEQP-VK.renderpass*late_fragment_tests*.d32_sfloat_s8_uint for
chips that don't support TC-compat HTILE.
Cc: 21.1 mesa-stable
Signed-off-by: Samuel Pitoiset <samuel.pitoiset@gmail.com >
Reviewed-by: Bas Nieuwenhuizen <bas@basnieuwenhuizen.nl >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11263 >
2021-06-18 14:15:30 +02:00
Samuel Pitoiset
50233d0daa
radv: reject binding buffer/image when the device memory is too small
...
From the Vulkan spec 1.2.181:
"The difference of the size of memory and memoryOffset must be
greater than or equal to the size member of the
VkMemoryRequirements structure returned from a call to
vkGetImageMemoryRequirements with the same image"
This is invalid usage but adding a check in the driver is safe and
might avoid spurious failures.
This is a workaround for the inventory GPU hang with Cyberpunk 2077
which is actually a game bug. Luckily the game handles this error
gracefully.
Since the addrlib change from March, addrlib now selects a better
swizzle mode (4KB instead of 64KB) which reduces image size. Though,
the game assumes that an image with 2 mips is always smaller than the
same image but with 6 mips. This is not always true if the swizzle mode
is different. Then, it creates a D312 heap that is too small for the 2
mips image and the GPU hang with a memory violation, ugh...
Note that next vkd3d-proton release should also reject this but
fixing both sides is fine.
Cc: 21.1 mesa-stable
Closes: https://gitlab.freedesktop.org/mesa/mesa/-/issues/4823
Closes: https://gitlab.freedesktop.org/mesa/mesa/-/issues/4593
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/11448 >
2021-06-18 08:04:29 +00:00
Pierre-Eric Pelloux-Prayer
66dbd16f38
radeonsi: skip instance_count==0 draws on <= GFX9
...
This changes seems to prevent a hang, at least on Renoir chips.
Closes: https://gitlab.freedesktop.org/mesa/mesa/-/issues/4866
Cc: mesa-stable
Reviewed-by: Marek Olšák <marek.olsak@amd.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11356 >
2021-06-18 09:18:47 +02:00
Vinson Lee
2624765e66
nvc0/ir: Initialize Limits members in constructor.
...
Fix defect reported by Coverity Scan.
Uninitialized scalar field (UNINIT_CTOR)
uninit_member: Non-static class member min is not initialized in this constructor nor in any functions that it calls.
uninit_member: Non-static class member max 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/11351 >
2021-06-18 05:28:06 +00:00
Vinson Lee
5f771134ad
intel/vec4: Add missing break statement.
...
Fix defect reported by Coverity Scan.
Missing break in switch (MISSING_BREAK)
unterminated_case: The case for value
VEC4_OPCODE_ZERO_OOB_PUSH_REGS is not terminated by a break
statement.
Fixes: 89fd196f6b ("intel/vec4: Add support for masking pushed data")
Signed-off-by: Vinson Lee <vlee@freedesktop.org >
Reviewed-by: Lionel Landwerlin <lionel.g.landwerlin@intel.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11347 >
2021-06-18 05:02:23 +00:00
Emma Anholt
2b3fc26da8
i915g: Switch to using nir-to-tgsi.
...
This fixes ~10% of the GLES2 failures thanks to having a better compiler,
though in some cases we get some new compile fails due to instr count or
uniform count. We still have to do NIR-to-TGSI because the NIR gallivm
draw path isn't ready for non-native-integer NIR code, and st/mesa treats
native-integer as a screen property instead of a stage property.
Other than the noted regressions in the xfails, for
dEQP-GLES2.functional.uniform_api.random.74: compile fail changes reasons
triggering an aassertion instead of drawing magenta.
Reviewed-by: Adam Jackson <ajax@redhat.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11329 >
2021-06-18 04:30:43 +00:00
Emma Anholt
934d2c8f7f
i915g: Handle fragment depth being in OUT[1] not OUT[0].
...
Prevents regressions when switching to nir-to-tgsi which orders the
outputs differently.
Reviewed-by: Adam Jackson <ajax@redhat.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11329 >
2021-06-18 04:30:43 +00:00
Emma Anholt
026452fe46
nir_to_tgsi: Support integer sysvals on !CAP_INTEGERS hardware.
...
glsl_to_tgsi does the same thing, needed for the draw path on i915g.
Reviewed-by: Adam Jackson <ajax@redhat.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11329 >
2021-06-18 04:30:43 +00:00
Emma Anholt
baa8d33908
nir_to_tgsi: Fix internal handling of NIR uints for !CAP_INTEGERS
...
If we called nir_lower_int_to_float(), then ALU-consumed ints got turned
into floats and we have to interpret them that way.
Reviewed-by: Adam Jackson <ajax@redhat.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11329 >
2021-06-18 04:30:43 +00:00
Eric Anholt
47804f53f9
nir: Do peephole select on other instructions if the limit is ~0.
...
limit==0 is the signal for "don't peephole anything but a move that will
be optimized aways." limit > 0 is "up to N alu instructions may be moved
out." nir-to-tgsi uses ~0 as the indicator of "No, we really need to
eliminate all if instructions" on hardware like i915 that doesn't have
control flow.
Reviewed-by: Jason Ekstrand <jason@jlekstrand.net >
Reviewed-by: Adam Jackson <ajax@redhat.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11329 >
2021-06-18 04:30:43 +00:00
Emma Anholt
aba8b6675a
nir/lower_int_to_float: Make sure the cursor is in the right spot.
...
We need to make get it updated after we may have nir_instr_remove()d an
instruction, and when we cross blocks. This didn't really matter before
because the only builder usage was idiv, which other users of
lower_int_to_float were probably never hitting.
Reviewed-by: Jason Ekstrand <jason@jlekstrand.net >
Reviewed-by: Adam Jackson <ajax@redhat.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11329 >
2021-06-18 04:30:43 +00:00
Emma Anholt
31ab2735db
i915g: Allow fragment coord conventions TGSI properties to be set.
...
The frontend lowering handles normalizing the conventions to the only
model we support, we just need to ignore the property in the TGSI.
Reviewed-by: Adam Jackson <ajax@redhat.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11329 >
2021-06-18 04:30:43 +00:00
Emma Anholt
942f62a9b2
i915: Drop assertion failure about seeing each const decled once.
...
nir_to_tgsi sometimes emits multiple decls currently, but we don't
actually care because we're just checking which ones are live.
Reviewed-by: Adam Jackson <ajax@redhat.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11329 >
2021-06-18 04:30:43 +00:00
Emma Anholt
7378c64792
i915: Disable vertex texturing and delete the code.
...
It's not a required feature of the GL2.1 or GLES2, and you really don't
want to be doing SW VS access of the write-combined texture data. Also,
avoids memory corruption in deqp:
Test case 'dEQP-GLES2.functional.texture.vertex.cube.filtering.linear_mipmap_nearest_linear_repeat'..
Mesa: User error: GL_INVALID_ENUM in glGetIntegerv(pname=GL_MAJOR_VERSION)
Fail (Image comparison failed)
Test case 'dEQP-GLES2.functional.fragment_ops.depth_stencil.stencil_depth_funcs.stencil_equal_depth_always'..
==559181== Invalid read of size 4
==559181== at 0x641E8D0: i915_drm_buffer_unmap (i915_drm_buffer.c:204)
==559181== by 0x64151EB: i915_cleanup_vertex_sampling (i915_state.c:449)
==559181== by 0x640AEA7: i915_draw_vbo (i915_context.c:134)
==559181== by 0x640AEA7: i915_draw_vbo (i915_context.c:55)
==559181== by 0x61367B1: cso_draw_vbo (cso_context.c:1524)
[...]
Reviewed-by: Adam Jackson <ajax@redhat.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11329 >
2021-06-18 04:30:43 +00:00
Yiwei Zhang
87f35032a6
anv: enable multi-planar support for drm format modifier
...
This patch only enables the below VkFormat:
- VK_FORMAT_G8_B8R8_2PLANE_420_UNORM
This patch ensures the proper behavior of the below APIs:
- vkGetPhysicalDeviceFormatProperties2
- vkGetPhysicalDeviceImageFormatProperties2
- vkCreateImage
- vkGetImageSubresourceLayout
- vkGetImageDrmFormatModifierPropertiesEXT
- vkGetImageMemoryRequirements
- vkGetImageMemoryRequirements2
Signed-off-by: Yiwei Zhang <zzyiwei@chromium.org >
Reviewed-by: Chad Versace <chad@kiwitree.net >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11281 >
2021-06-18 01:04:15 +00:00
Yiwei Zhang
ec70092d55
anv: support multi-planar format in add_all_surfaces_explicit_layout
...
Add initial multi-planar format support on the images with modifiers:
- With aux usage,
- Format plane count must be 1.
- Memory plane count must be 2.
- Without aux usage,
- Each format plane must map to a distinct memory plane.
For the other cases, currently there is no way to properly map memory
planes to format planes and aux planes due to the lack of defined ABI
for external multi-planar images.
This patch doesn't include some potentially supported cases like all
format planes mapping to a single memory plane, additional refactoring
is needed to workaround explicit base offset + ANV_OFFSET_IMPLICIT.
Signed-off-by: Yiwei Zhang <zzyiwei@chromium.org >
Reviewed-by: Chad Versace <chad@kiwitree.net >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11281 >
2021-06-18 01:04:15 +00:00
Yiwei Zhang
345a4e9871
anv: fix some log formats
...
Signed-off-by: Yiwei Zhang <zzyiwei@chromium.org >
Reviewed-by: Chad Versace <chad@kiwitree.net >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11281 >
2021-06-18 01:04:15 +00:00
Emma Anholt
6bce24e214
freedreno: Add some cheza flakes from the last week.
...
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11453 >
2021-06-17 23:06:18 +00:00
Emma Anholt
df7fdae127
freedreno: Skip staging blits from uninitialized resources.
...
When storing depth- or stencil-only texture data that has been packed into
a depth/stencil texture, the tex store gets PIPE_MAP_READ added onto it
since the other channel will get ORed into the incoming data, but
sometimes we know that the other component is undefined because the whole
texture is either fresh or just invalidated.
Cleans up a confusing extra blit in a dEQP case I've been debugging, and
should be less work for dEQP CI.
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11452 >
2021-06-17 22:47:51 +00:00
Emma Anholt
4018c5f928
freedreno: Add more detailed blit debug in FD_MESA_DEBUG=msgs.
...
For debugging the batch cache, it really helps to see the blits that
happen, and which are staging blits in the transfer map process.
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11452 >
2021-06-17 22:47:51 +00:00
Emma Anholt
8effbeeea6
freedreno/fdl: Give the tiling mode a nice name in debug dumps.
...
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11452 >
2021-06-17 22:47:51 +00:00
Emma Anholt
57da290b52
freedreno: Move FD_MESA_DEBUG=msgs output to mesa_logi.
...
It didn't work unless you had a debug build, and I regularly want to use
it on non-debug builds.
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11452 >
2021-06-17 22:47:51 +00:00
Emma Anholt
d4203bf7ab
freedreno: Add perf_debug() for our software conditional rendering.
...
We could do it in hardware, and turnip does, but it hasn't bubbled up our
priorities yet. At least make it more discoverable when you stumble over
it.
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11452 >
2021-06-17 22:47:51 +00:00
Rob Clark
6402dc17b3
freedreno: Defer freeing batch->key
...
We use the same key in autotune to track historical data about a given
framebuffer state, to inform the decision about using gmem vs sysmem
rendering. Which means we need the key to stick around during the
flush, even if the batch is removed from the batch-cache before the
flush.
Fixes: 507f701d9e ("freedreno: Fix batch flush race condition")
Signed-off-by: Rob Clark <robdclark@chromium.org >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11450 >
2021-06-17 14:01:36 -07:00
Caio Marcelo de Oliveira Filho
64cb143b92
spirv: Fix handling of OpBranchConditional with same THEN and ELSE
...
When an OpBranchConditional that had two equal branches was parsed, we
were treating it as a regular OpBranch. However this doesn't work
well when there's an associated OpSelectionMerge. We ended up
skipping marking the merge block as such, and depending on what was
inside the construct we would end up trying to process the block
twice.
Fix this by keeping the vtn_if around, but when emitting NIR identify
the two equal branch case.
Fixes: 9c2a11430e ("spirv: Rewrite CFG construction")
Closes : #3786 , #4580
Reviewed-by: Yevhenii Kolesnikov <yevhenii.kolesnikov@globallogic.com >
Reviewed-by: Ian Romanick <ian.d.romanick@intel.com >
Acked-by: Jason Ekstrand <jason@jlekstrand.net >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/9297 >
2021-06-17 20:05:39 +00:00
Icecream95
38e8d7afe3
pan/mdg: Fix reading a spilt register in the bundle it's written
...
Read directly from the instruction getting spilt. Otherwise a fill
will be inserted before the spill writing the value, so the
instruction reading the spilt value gets garbage data.
Use the bundle_id to check if the instructions are in the same bundle.
Insert a move instruction, as the spill needs the value in a LD/ST
register such as AL0, while the ALU instruction reading the value
needs it in a work register such as R0.
Cc: mesa-stable
Closes: https://gitlab.freedesktop.org/mesa/mesa/-/issues/4857
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11212 >
2021-06-17 19:53:14 +00:00
Icecream95
31d26ebf1b
pan/mdg: Fill from TLS before spilling non-SSA nodes
...
Otherwise the data already written to the node will get overwritten.
Cc: mesa-stable
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11212 >
2021-06-17 19:53:14 +00:00
Icecream95
ed9a9a09f2
pan/mdg: Reorder some code in mir_spill_register
...
Cc: mesa-stable
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11212 >
2021-06-17 19:53:14 +00:00
Icecream95
1490e7e622
pan/mdg: Add a bundle ID to instructions
...
So that it is possible to check if two instructions were scheduled
into the same bundle.
Cc: mesa-stable
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11212 >
2021-06-17 19:53:14 +00:00
Rob Clark
3e3ec59895
freedreno/a6xx: Skip nv_copy_image tests
...
These look pretty redundant with arb_copy_image, so skip to keep CI
runtime reasonable.
Signed-off-by: Rob Clark <robdclark@chromium.org >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11402 >
2021-06-17 19:34:51 +00:00
Rob Clark
fff2aa46a7
freedreno/a6xx: Flip on copy_image
...
Now that we have the rest of format "casting" sharp edges sorted, flip
on copy_image and gles32.
Unfortunately it adds back to piglit xfails (but at least that is more
than offset by my previous round of piglit fixes, and these are pretty
much all things we know had issues based on corresponding nv_copy_image
tests).
Signed-off-by: Rob Clark <robdclark@chromium.org >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11402 >
2021-06-17 19:34:51 +00:00
Rob Clark
6ca9f4f5ca
freedreno: Fix for multi-draw blits
...
We have some logic to detect when u_blitter generated draws overwrite
the entire render-target, so we know we can discard anything previous.
But some blits (like multi-sample) do multiple draws. We don't want to
discard the earlier draws from the same blit.
Signed-off-by: Rob Clark <robdclark@chromium.org >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11402 >
2021-06-17 19:34:51 +00:00
Rob Clark
9629f3aa46
freedreno/a6xx: Handle u/snorm vs u/sint validation
...
Signed-off-by: Rob Clark <robdclark@chromium.org >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11402 >
2021-06-17 19:34:51 +00:00
Rob Clark
678e4842cc
freedreno/a6xx: Use UNORM for SNORM copy blits
...
Signed-off-by: Rob Clark <robdclark@chromium.org >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11402 >
2021-06-17 19:34:51 +00:00
Rob Clark
70d571e558
freedreno/blitter: Flush before self-blits
...
In paths where we are handling blits on the 3d pipe, if src==dst we need
to flush to ensure what gets sampled by the blit shader reflects the
results of any previous blits.
Signed-off-by: Rob Clark <robdclark@chromium.org >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11402 >
2021-06-17 19:34:50 +00:00
Rob Clark
2f29425a0a
freedreno: Fix flushes with NULL batch
...
Sequences that pctx->set_framebuffer_state() before pctx->flush() will
see ctx->batch being NULL.. but they still need to call fd_bc_flush(ctx)
to ensure pending batches associated with the context are flushed.
Signed-off-by: Rob Clark <robdclark@chromium.org >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11402 >
2021-06-17 19:34:50 +00:00
Iván Briano
4c67924251
intel/nir: Fix txs for null surfaces
...
Closes : #4860
Fixes: 05a37e2422 ("intel/nir: Set lower txs with non-zero LOD")
Reviewed-by: Lionel Landwerlin <lionel.g.landwerlin@intel.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11435 >
2021-06-17 11:55:22 -07:00
Emma Anholt
ac9ae97d30
freedreno: Flush batches upon destroying the ctx.
...
The invalidate would take it out of the bc tracking, so you could go
allocate a new batch->idx matching this one, while this one is still in
the bc using that idx.
You can't generate any new rendering with the ctx's old batches at this
point, anyway, so just flush for simplicity.
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11439 >
2021-06-17 09:11:57 -07:00
Emma Anholt
2a9225d05f
freedreno: Remove broken back_blit optimization.
...
It wasn't checking that the transfer map would definitely overwrite all of
the data being initialized by the back blit, and if we knew that it
would then the caller would have provided PIPE_MAP_DISCARD_WHOLE_RESOURCE.
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11439 >
2021-06-17 09:11:02 -07:00
Emma Anholt
09e1fb2bce
freedreno: Move the !MAP_WRITE write batch refcounting to the branch.
...
For MAP_WRITE, we flush all the batches referencing the BO, so the write
batch will get flushed anyway. No need to take an extra ref.
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11439 >
2021-06-17 09:11:02 -07:00
Emma Anholt
fd571565d2
freedreno: Fix batch reference handling in flush_resource().
...
We take references under the lock, but then accessed the lock-requiring
batch_cache structure without holding the lock. The batches wouldn't get
freed and removed from their slots until the last ref goes away so it was
safe (other than the assert at the end), but writing the simple code is
shorter and requires fewer assumptions.
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11439 >
2021-06-17 09:11:02 -07:00
Iago Toral Quiroga
cf2747e7ac
v3dv: implement VK_EXT_index_type_uint8
...
Relevant CTS tests:
dEQP-VK.pipeline.input_assembly.*.index_type_uint8.*
Reviewed-by: Alejandro Piñeiro <apinheiro@igalia.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11444 >
2021-06-17 12:26:44 +00:00
Charlie
d9c53c50ad
v3dv: enable ASTC formats
...
Reviewed-by: Iago Toral Quiroga <itoral@igalia.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11336 >
2021-06-17 11:33:06 +00:00
Charlie
26a7afc94f
v3dv: add ASTC formats to get_compatible_tlb_format
...
CTS doesn't seem to hit this, but they're all 128bit formats so this
should be right
Reviewed-by: Iago Toral Quiroga <itoral@igalia.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11336 >
2021-06-17 11:33:06 +00:00
Charlie
56bf92ff0b
v3dv: divide by block size in copy_image_blit
...
This handles compressed formats with non-4x4 blocks, like ASTC.
Reviewed-by: Iago Toral Quiroga <itoral@igalia.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11336 >
2021-06-17 11:33:06 +00:00
Charlie
6756f55c84
v3dv: add the unswizzled RGBA4444 format
...
If we're supporting the R/B swapped one we might as well support the one that
isn't.
Reviewed-by: Iago Toral Quiroga <itoral@igalia.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11336 >
2021-06-17 11:33:06 +00:00
Gert Wollny
8aaa08844f
r600/sfn: Clean up some ALU lowering and move code
...
Signed-off-by: Gert Wollny <gert.wollny@collabora.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11348 >
2021-06-17 10:53:52 +00:00
Gert Wollny
82c076d2c3
r600/sfn: Don't read return values of atomic ops that are not used
...
Signed-off-by: Gert Wollny <gert.wollny@collabora.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11348 >
2021-06-17 10:53:52 +00:00
Gert Wollny
800bfefde5
r600/sfn: Drop method for emit_atomic_add, it is handled in generic code
...
Signed-off-by: Gert Wollny <gert.wollny@collabora.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11348 >
2021-06-17 10:53:52 +00:00
Gert Wollny
2e8901a072
r600/sfn: don't read back unused image atomic result values
...
Signed-off-by: Gert Wollny <gert.wollny@collabora.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11348 >
2021-06-17 10:53:52 +00:00
Gert Wollny
5e1a703934
r600/sfn: don't designates initializers, since they are c++20
...
Signed-off-by: Gert Wollny <gert.wollny@collabora.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11348 >
2021-06-17 10:53:52 +00:00
Kai-Heng Feng
f9d8d9acbb
iris: Avoid abort() if kernel can't allocate memory
...
When the system doesn't have enough memory, GNOME Shell may be crashed
by iris:
gnome-shell[1161]: iris: Failed to submit batchbuffer: Cannot allocate memory
gnome-shell[1161]: GNOME Shell crashed with signal 6
So don't abort() when kernel can't allocate memory to avoid crashing the
entire desktop.
Acked-by: Kenneth Graunke <kenneth@whitecape.org >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11178 >
2021-06-17 09:04:17 +00:00
Iago Toral Quiroga
d873e30d3b
v3dv: expose VK_KHR_shader_non_semantic_info
...
This is entirely implemented in the SPIR-V frontend.
Relevant CTS tests:
dEQP-VK.spirv_assembly.instruction.compute.non_semantic_info.*
Reviewed-by: Alejandro Piñeiro <apinheiro@igalia.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11440 >
2021-06-17 08:49:16 +00:00
Pierre-Eric Pelloux-Prayer
0fd152dab3
disk_cache: use UTIL_QUEUE_INIT_SCALE_THREADS
...
Instead of spawning 4 threads when the cache is created,
spawn 1 and let u_queue grow the number of threads if
needed.
I wrote this patch because when running piglit's quick_shader
profile I had lots of samples in disk cache threads - mostly
in native_queued_spin_lock_slowpath kernel function.
Since these tests shouldn't really stress the cache, I assumed
it was caused only by thread creations.
After writing the patch and redoing the measurement, I got an
improvement but I still more hits in the same function for
shader_runner:$disk0 thread so something was wrong.
After digging more, I found out that my shader cache index was
corrupted: the on-disk size was 29MB but the index reported it
was way more than 1GB. So each disk cache thread was spending
a lot of time trying to evict files. Given that my cache had
a really low count of files, the LRU method based on randomly
generating subfolder names failed, so evicting was very slow.
Now that my cache index is fixed, the disk cache threads are
mostly idle but I still think it makes sense to grow the
number of threads instead of spawning 4 at the program start.
Reviewed-by: Marek Olšák <marek.olsak@amd.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11296 >
2021-06-17 09:11:59 +02:00
Pierre-Eric Pelloux-Prayer
3713dc6b2a
util/u_queue: add UTIL_QUEUE_INIT_SCALE_THREADS flag
...
This flag allow to create a single thread initially, but set
max_thread to the request thread count.
If the queue is full and num_threads is lower than max_threads,
we spawn a new thread to help process the queue faster.
This avoid creating N threads at queue creation time.
Reviewed-by: Marek Olšák <marek.olsak@amd.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11296 >
2021-06-17 09:11:59 +02:00
Pierre-Eric Pelloux-Prayer
0c88df1f6a
util/u_queue: move function definition up
...
Will be used by the next commit.
Reviewed-by: Marek Olšák <marek.olsak@amd.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11296 >
2021-06-17 09:11:58 +02:00
Pierre-Eric Pelloux-Prayer
edb77ec3c7
radeonsi: delay sample_pos_buffer creation until first use
...
And use pipe_buffer_create_with_data instead of doing it
manually.
Reviewed-by: Marek Olšák <marek.olsak@amd.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11296 >
2021-06-17 09:10:29 +02:00
Pierre-Eric Pelloux-Prayer
84dca32c51
vbo: delay vbo_exec_vtx_map call
...
Instead of doing vbo_exec_vtx_map during initialization,
defer it until the first actual user.
v2: move init to vbo_exec_wrap_upgrade_vertex (Emma Anholt)
Reviewed-by: Marek Olšák <marek.olsak@amd.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11296 >
2021-06-17 09:10:29 +02:00
Vinson Lee
3333a96b6f
nvc0/ir: Initialize CodeEmitterNVC0 member progType in constructor.
...
Fix defect reported by Coverity Scan.
Uninitialized scalar field (UNINIT_CTOR)
uninit_member: Non-static class member progType is not initialized
in this constructor nor in any functions that it calls.
Signed-off-by: Vinson Lee <vlee@freedesktop.org >
Reviewed-by: Ilia Mirkin <imirkin@alum.mit.edu >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11350 >
2021-06-16 22:23:52 -07:00
Marek Olšák
849ab4ea0c
mesa: execute glFlush asynchronously if no image has been imported/exported
...
This improves viewperf performance and it shouldn't break synchronization
with external clients when it's indirectly implied by glFlush.
This should not break the cases described in:
https://gitlab.freedesktop.org/mesa/mesa/-/issues/4903
Acked-By: Mike Blumenkrantz <michael.blumenkrantz@gmail.com >
Reviewed-by: Adam Jackson <ajax@redhat.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11341 >
2021-06-17 02:24:22 +00:00
Marek Olšák
0336b13e1e
mesa: move _mesa_notifySwapBuffers into the x11 swrast driver
...
It has no other use and no relevance to DRI drivers despite the name.
Acked-By: Mike Blumenkrantz <michael.blumenkrantz@gmail.com >
Reviewed-by: Adam Jackson <ajax@redhat.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11341 >
2021-06-17 02:24:22 +00:00
Marek Olšák
b7dc72380a
mesa: add gallium flush_flags param into ctx->Driver.Flush
...
Acked-By: Mike Blumenkrantz <michael.blumenkrantz@gmail.com >
Reviewed-by: Adam Jackson <ajax@redhat.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11341 >
2021-06-17 02:24:22 +00:00
Marek Olšák
ee6929a779
st/mesa: move the st_flush_bitmap_cache call into st_flush
...
Acked-By: Mike Blumenkrantz <michael.blumenkrantz@gmail.com >
Reviewed-by: Adam Jackson <ajax@redhat.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11341 >
2021-06-17 02:24:22 +00:00
Marek Olšák
37bf4184db
st/mesa: fix an incorrect comment in st_context_flush
...
Acked-By: Mike Blumenkrantz <michael.blumenkrantz@gmail.com >
Reviewed-by: Adam Jackson <ajax@redhat.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11341 >
2021-06-17 02:24:22 +00:00
Marek Olšák
3da170faae
glthread: change when glFlush flushes asynchronously
...
This fixes the flushing with external textures.
We don't know if we need to flush synchronously with multiple contexts,
so I removed that.
Acked-By: Mike Blumenkrantz <michael.blumenkrantz@gmail.com >
Reviewed-by: Adam Jackson <ajax@redhat.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11341 >
2021-06-17 02:24:22 +00:00
Kenneth Graunke
0510a947ba
anv: Fix dynamic primitive topology for tess on Gfx7.x too
...
Commit 24342e499b changed how primitive
topology is handled on Gfx8+ but missed updating the Gfx7.x code.
As a result, tests which previously used topologies like PATCHLIST_3
instead started using bogus ones like LINESTRIP_ADJ. This caused a
GPU hangs in a bunch of Vulkan conformance tests involving tessellation.
This fixes those hangs.
Fixes: 24342e499b ("anv: fix dynamic primitive topology for tess")
Reviewed-by: Mike Blumenkrantz <michael.blumenkrantz@gmail.com >
Reviewed-by: Lionel Landwerlin <lionel.g.landwerlin@intel.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11434 >
2021-06-17 02:00:32 +00:00
Zhaofeng Li
9908da1b7a
Add default driver selections for RISC-V
...
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11346 >
2021-06-17 01:29:38 +00:00
Mike Blumenkrantz
0ea8becff0
zink: always defer image descriptor barriers
...
this is simpler and guaranteed to be accurate
Reviewed-by: Adam Jackson <ajax@redhat.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11393 >
2021-06-17 01:18:39 +00:00
Mike Blumenkrantz
5341b985e4
zink: use fake buffer barriers for descriptors
...
GL requires explicit glMemoryBarrier calls for shader synchronization
and only calls that map/copy buffers get implicit sync, so we don't actually
need barriers for any of these cases, only the state needs to be updated
Reviewed-by: Adam Jackson <ajax@redhat.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11393 >
2021-06-17 01:18:39 +00:00
Mike Blumenkrantz
3c2f343618
zink: check actual mem props to determine if resource object is coherent
...
this was correct for what it has been used for until now, but it will no
longer be correct going forward
Reviewed-by: Adam Jackson <ajax@redhat.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11397 >
2021-06-17 01:07:35 +00:00
Mike Blumenkrantz
b1b6aecf9d
zink: key alloc cache on heap index, not heap flags
...
this is a bit more sane
Reviewed-by: Adam Jackson <ajax@redhat.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11397 >
2021-06-17 01:07:35 +00:00
Mike Blumenkrantz
c56a100494
zink: avoid caching visible vram allocations
...
the visible vram heap is potentially going to be limited in size, so avoid
caching these allocations since that locks them to a given allocation size
Reviewed-by: Adam Jackson <ajax@redhat.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11397 >
2021-06-17 01:07:35 +00:00
Mike Blumenkrantz
18b71c0da3
zink: change a bunch of sparse buffer resource checks to host-visible checks
...
(sparse buffer) is a subset of !host-visible, and !host-visible is actually the
more correct check to be using
Reviewed-by: Adam Jackson <ajax@redhat.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11397 >
2021-06-17 01:07:35 +00:00
Mike Blumenkrantz
5fee58bf59
zink: collapse host_visible and non-coherent alignment alloc cases
...
* buffers can use normal mem prop checking to determine host_visible setting
* sparse buffers are never coherent, so this case can be dropped from the conditional
Reviewed-by: Adam Jackson <ajax@redhat.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11397 >
2021-06-17 01:07:35 +00:00
Martin Krastev
eb272f6571
compiler/glsl: Use mutex lock while freeing up mem_ctx
...
builtin_builder::~builtin_builder() and builtin_builder::release()
are running into race condition. This leads lightsmark to crash at
the end because both calls ralloc_free which mutates the arguments state
This patch fixes lightsmark2008 crash
Fixes: e4da8b9c33 ("mesa/compiler: rework tear down of builtin/types")
Reviewed-by: Charmaine Lee <charmainel@vmware.com >
Reviewed-by: Neha Bhende <bhenden@vmware.com >
Reviewed-by: Marek Olšák <marek.olsak@amd.com >
Tested-by: Neha Bhende <bhenden@vmware.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11385 >
2021-06-16 23:14:23 +00:00
Mike Blumenkrantz
4a407e0ad8
zink: mark some functions inline
...
Reviewed-by: Dave Airlie <airlied@redhat.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11429 >
2021-06-16 23:02:55 +00:00
Connor Abbott
e19f112435
ir3/ra: Fix array parallelcopy confusion
...
With array registers, there are two num's we care about:
1. The base num that the whole array starts at (->array.base)
2. The num that the instruction uses, plus possibly an indirect offset
(->num or ->array.offset)
For parallel copies we always copy the whole array, so (2) is irrelevant
here. For phis and parallel copies inserted for phis, we used
assign_reg() which assigned ->array.base, but we forgot about this when
constructing our own parallel copies for live range splitting, just
setting ->num instead. The parallel copy lowering was also inconsistent
here, using ra_reg_get_num() (which looks at ->array.base for arrays)
for sources but looking at ->num directly for destinations. This makes
everything use ->array.base consistently.
While we're here, make sure to remove IR3_REG_SSA from liveout copies to
make sure printing works correctly.
Fixes: 0ffcb19 ("ir3: Rewrite register allocation")
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11422 >
2021-06-16 22:45:13 +00:00
Connor Abbott
2c21dab36e
ir3: Improve printing of array parallelcopies/phis
...
Normally something with IR3_REG_ARRAY doesn't have a register assigned,
but we keep IR3_REG_ARRAY for parallel copies after RA because we need
to know the appropriate size. We want to see the register assigned for
these when printing the RA result before parallel copies are lowered.
The register is in ->array.base in this case, so initialize it to
INVALID_REG and print ->array.base if it's been assigned to something,
similar to ->num in the normal case.
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11422 >
2021-06-16 22:45:13 +00:00
Marek Olšák
d0d2108425
shader_enums: change VERT_BIT back to the 32-bit shift
...
This reverts 0e2566a8 . The warning is fixed differently.
Reviewed-by: Jesse Natalie <jenatali@microsoft.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10993 >
2021-06-16 21:45:57 +00:00
Marek Olšák
45cbb08848
gallium/pb: change alignment to 32 bits
...
This partially reverts 4a3f0444 . The warning is fixed differently.
Reviewed-by: Jesse Natalie <jenatali@microsoft.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10993 >
2021-06-16 21:45:57 +00:00
Marek Olšák
97a5753812
radeonsi: remove -Wstrict-overflow=0 since it doesn't seem to be needed
...
Reviewed-by: Pierre-Eric Pelloux-Prayer <pierre-eric.pelloux-prayer@amd.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11384 >
2021-06-16 21:29:13 +00:00
Marek Olšák
72a395b6de
radeonsi: remove the chip_class dimension from the draw_vbo array
...
We don't use/initialize draw_vbo callbacks for other generations anymore.
Reviewed-by: Pierre-Eric Pelloux-Prayer <pierre-eric.pelloux-prayer@amd.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11384 >
2021-06-16 21:29:13 +00:00
Marek Olšák
1e4d91355f
radeonsi: compile si_state_draw.cpp for each gfx generation separately
...
It makes compilating faster.
Reviewed-by: Pierre-Eric Pelloux-Prayer <pierre-eric.pelloux-prayer@amd.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11384 >
2021-06-16 21:29:13 +00:00
Marek Olšák
24895f020a
radeonsi: move a few functions from si_state_draw.cpp into si_gfx_cs.c
...
Reviewed-by: Pierre-Eric Pelloux-Prayer <pierre-eric.pelloux-prayer@amd.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11384 >
2021-06-16 21:29:13 +00:00
Yiwei Zhang
b8ce8530a0
venus: remove workarounds for multi-planar format interop
...
Signed-off-by: Yiwei Zhang <zzyiwei@chromium.org >
Reviewed-by: Chia-I Wu <olvaffe@gmail.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11282 >
2021-06-16 20:31:32 +00:00
Yiwei Zhang
357e7ae30b
anv: fix build errors after commit 8b7ff78
...
Signed-off-by: Yiwei Zhang <zzyiwei@chromium.org >
Reviewed-by: Roman Stratiienko <r.stratiienko@gmail.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11373 >
2021-06-16 19:55:48 +00:00
Yiwei Zhang
ec1968dcc9
radv: fix build errors after commit 8b7ff784
...
Signed-off-by: Yiwei Zhang <zzyiwei@chromium.org >
Reviewed-by: Roman Stratiienko <r.stratiienko@gmail.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11373 >
2021-06-16 19:55:48 +00:00
Mike Blumenkrantz
25972df4b7
zink: ci updates
...
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11391 >
2021-06-16 19:45:25 +00:00
Mike Blumenkrantz
d0833f611a
zink: support more RGBX formats
...
the base formats are supported, so these should fall into place naturally
Reviewed-by: Erik Faye-Lund <erik.faye-lund@collabora.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11391 >
2021-06-16 19:45:25 +00:00
Mike Blumenkrantz
1e86cdd8b7
zink: also nope out of any dst alpha blends for rgbx formats
...
Reviewed-by: Erik Faye-Lund <erik.faye-lund@collabora.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11391 >
2021-06-16 19:45:25 +00:00
Mike Blumenkrantz
f091392c0d
zink: smash dstAlphaBlendFactor to ZERO for RGBX attachments
...
this is a no-op
Reviewed-by: Erik Faye-Lund <erik.faye-lund@collabora.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11391 >
2021-06-16 19:45:25 +00:00
Mike Blumenkrantz
2f2976e9e1
zink: add a more direct check for rgbx formats in create_sampler_view hook
...
really the point of this is to clamp void channels for any permutation of rgbx
where all channels are the same (e.g., both rgbx8 and rgbx16), so the previous
helper isn't inclusive enough
Reviewed-by: Erik Faye-Lund <erik.faye-lund@collabora.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11391 >
2021-06-16 19:45:25 +00:00
Mike Blumenkrantz
a3a6611e96
util/queue: add a global data pointer for the queue object
...
this better enables object-specific (e.g., context) queues where the owner
of the queue will always be needed and various pointers will be passed in
for tasks
Reviewed-by: Marek Olšák <marek.olsak@amd.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11312 >
2021-06-16 15:10:09 -04:00
Marek Olšák
d305a8fc5f
radeonsi: set desc[3] of all buffer descriptors at context creation
...
instead of at bind time. When we unbind, we shouldn't memset the last
element.
Reviewed-by: Pierre-Eric Pelloux-Prayer <pierre-eric.pelloux-prayer@amd.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11340 >
2021-06-16 17:14:49 +00:00
Marek Olšák
42801731b8
radeonsi: remove no-op unref in si_set_constant_buffer
...
buffer is already NULL here
Reviewed-by: Pierre-Eric Pelloux-Prayer <pierre-eric.pelloux-prayer@amd.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11340 >
2021-06-16 17:14:49 +00:00
Marek Olšák
a29ff4c67e
radeonsi: restructure si_set_sampler_views for faster unbinding trailing slots
...
si_set_sampler_view updates only one slot. This rewrites it to update
multiple slots.
Reviewed-by: Pierre-Eric Pelloux-Prayer <pierre-eric.pelloux-prayer@amd.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11340 >
2021-06-16 17:14:49 +00:00
Marek Olšák
10cf7b3031
radeonsi: don't clear register fields in si_set_mutable_tex_desc_fields
...
They are always initialized to 0.
Reviewed-by: Pierre-Eric Pelloux-Prayer <pierre-eric.pelloux-prayer@amd.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11340 >
2021-06-16 17:14:49 +00:00
Marek Olšák
810e84387b
radeonsi: use the restrict keyword to set sampler view descriptors faster
...
All places must set restrict for the same pointer.
Reviewed-by: Pierre-Eric Pelloux-Prayer <pierre-eric.pelloux-prayer@amd.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11340 >
2021-06-16 17:14:49 +00:00
Marek Olšák
53853d0b27
radeonsi: check is_buffer once instead of 4 times in si_set_sampler_view_desc
...
Reviewed-by: Pierre-Eric Pelloux-Prayer <pierre-eric.pelloux-prayer@amd.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11340 >
2021-06-16 17:14:49 +00:00
Erik Faye-Lund
a8fc38b276
zink: do not check buffer-format for usage-bits
...
Buffers are created without a format in Vulkan, and we always pass in
R8_UNORM for them in Gallium. It's the view-formats we should have
checked, if anything.
But that's orthogonal to this. We shoudn't keep checking R8_UNORM
capabilities for buffers, all it's going to do is trigger asserts.
Fixes: 00dc0036b ("zink: flatten out buffer creation usage flags codepath")
Reviewed-By: Mike Blumenkrantz <michael.blumenkrantz@gmail.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11416 >
2021-06-16 15:36:59 +00:00
Erik Faye-Lund
662dc70002
zink: drop repeated usage-bit
...
We already set this bit unconditionally right before, no point in
repeating it.
Fixes: 00dc0036b ("zink: flatten out buffer creation usage flags codepath")
Reviewed-By: Mike Blumenkrantz <michael.blumenkrantz@gmail.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11416 >
2021-06-16 15:36:59 +00:00
Erik Faye-Lund
c35fc7ad2c
zink: remove unused function
...
There's no call-sites to this function, so let's drop it.
Fixes: e4e20556d6 ("zink: switch to memory barriers instead of actual buffer barriers")
Reviewed-By: Mike Blumenkrantz <michael.blumenkrantz@gmail.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11421 >
2021-06-16 15:15:14 +00:00
Erik Faye-Lund
0360533d6c
zink: fixup signedness of subtraction
...
I'm not even going to pretend that I grok this code, but since we take
the abs value, it's pretty obvious that we meant to use a signed value
here. So let's cast the two operands to int before we subtract.
This was noticed by the following clang warning:
---8<---
../src/gallium/drivers/zink/zink_context.c:3284:14: warning: taking the
absolute value of unsigned type 'unsigned int' has no effect
[-Wabsolute-value]
last = abs(reads - writes) > UINT32_MAX / 2 ? MIN2(reads, writes) : MAX2(reads, writes);
^
---8<---
Fixes: 0c1fe392e8 ("zink: implement a tc is_resource_busy hook")
Reviewed-By: Mike Blumenkrantz <michael.blumenkrantz@gmail.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11421 >
2021-06-16 15:15:14 +00:00
Mike Blumenkrantz
806251c72d
zink: move queue init to screen creation
...
this is a race condition
Reviewed-by: Erik Faye-Lund <erik.faye-lund@collabora.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11398 >
2021-06-16 15:03:22 +00:00
Mike Blumenkrantz
0cfcc0602b
zink: set subdata hook as PIPE_MAP_ONCE
...
Reviewed-by: Erik Faye-Lund <erik.faye-lund@collabora.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11401 >
2021-06-16 14:45:01 +00:00
Mike Blumenkrantz
3e66808a82
zink: update pipe_screen::num_contexts
...
Reviewed-by: Erik Faye-Lund <erik.faye-lund@collabora.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11394 >
2021-06-16 14:31:41 +00:00
Mike Blumenkrantz
24342e499b
anv: fix dynamic primitive topology for tess
...
this needs to use the pre-converted topology using tess state patch control points
Fixes: f6fa4a8000 ("anv: add support for dynamic primitive topology change")
Reviewed-by: Jason Ekstrand <jason@jlekstrand.net >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11332 >
2021-06-16 13:45:15 +00:00
Erik Faye-Lund
bcd82a90c2
zink: correct type of flags to flush
...
This type is unsigned in the prototype, so this produces a warning on
MSVC.
Reviewed-By: Mike Blumenkrantz <michael.blumenkrantz@gmail.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11380 >
2021-06-16 13:04:55 +00:00
Erik Faye-Lund
fde7b6694b
zink: use alloca instead of hard-to-size vlas
...
These variable-length arrays are hard to size statically, and VLAs
aren't supported by MSVC. So let's use alloca instead.
Reviewed-by: Hoe Hao Cheng <haochengho12907@gmail.com >
Reviewed-By: Mike Blumenkrantz <michael.blumenkrantz@gmail.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11380 >
2021-06-16 13:04:55 +00:00
Erik Faye-Lund
14597315f8
zink: use max-descriptor define
...
This avoids compile errors on MSVC due to VLAs.
Reviewed-by: Hoe Hao Cheng <haochengho12907@gmail.com >
Reviewed-By: Mike Blumenkrantz <michael.blumenkrantz@gmail.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11380 >
2021-06-16 13:04:55 +00:00
Erik Faye-Lund
4439f500a2
zink: introduce a define for max descriptors per type
...
We know what this max is in the compiler, let's move that out into
zink_descriptors.h, so we can reuse the constant.
Reviewed-by: Hoe Hao Cheng <haochengho12907@gmail.com >
Reviewed-By: Mike Blumenkrantz <michael.blumenkrantz@gmail.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11380 >
2021-06-16 13:04:55 +00:00
Erik Faye-Lund
0ee48216dd
zink: fix more initializer styles
...
Empty initializer lists are a GCC extension, let's use the syntax that
compilers like MSVC also supports.
Reviewed-by: Hoe Hao Cheng <haochengho12907@gmail.com >
Reviewed-By: Mike Blumenkrantz <michael.blumenkrantz@gmail.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11380 >
2021-06-16 13:04:55 +00:00
Erik Faye-Lund
3179ce61e9
zink: drop some more vla usage
...
MSVC doesn't like them, so let's get rid of more of them.
Reviewed-by: Hoe Hao Cheng <haochengho12907@gmail.com >
Reviewed-By: Mike Blumenkrantz <michael.blumenkrantz@gmail.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11380 >
2021-06-16 13:04:55 +00:00
Erik Faye-Lund
c14af0065e
zink: add missing compiler-dependency
...
Without this, we depend on something else previously in the build to
have built these.
Fixes: ed2fb809 ("zink: introduce vk_dispatch_table")
Reviewed-by: Hoe Hao Cheng <haochengho12907@gmail.com >
Reviewed-By: Mike Blumenkrantz <michael.blumenkrantz@gmail.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11380 >
2021-06-16 13:04:55 +00:00
Erik Faye-Lund
b20c1c2a3b
zink: drop paranoid code
...
If we ever get here, res->dt is non-NULL. No need to assert, and no need
to check twice.
Reviewed-By: Mike Blumenkrantz <michael.blumenkrantz@gmail.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11414 >
2021-06-16 12:42:07 +00:00
Erik Faye-Lund
0bb4703292
zink: do not unmap dt-buffers twice
...
Seems I missed that we already did an unconditional unmap here, and
forgot to remove it. Whoops.
Fixes: 5159f406d ("zink: use gallium api to copy to display-target")
Reviewed-By: Mike Blumenkrantz <michael.blumenkrantz@gmail.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11414 >
2021-06-16 12:42:07 +00:00
Mike Blumenkrantz
bb9efa527a
zink: split stencil ref changes to separate dirty flag
...
the values here are for the cmdbuf, not the pipeline, so they should
always be updated regardless of what the current dsa state uses
Reviewed-by: Hoe Hao Cheng <haochengho12907@gmail.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11396 >
2021-06-16 12:10:08 +00:00
Mike Blumenkrantz
e6a100b4cd
zink: add update flag for dsa state change
...
reduce overhead by avoiding unnecessary updates
Reviewed-by: Hoe Hao Cheng <haochengho12907@gmail.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11396 >
2021-06-16 12:10:08 +00:00
Mike Blumenkrantz
57ee14dd8c
zink: add update flag for rasterizer state change
...
this can be used to avoid updating related dynamic states too frequently
Reviewed-by: Hoe Hao Cheng <haochengho12907@gmail.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11396 >
2021-06-16 12:10:08 +00:00
Mike Blumenkrantz
541af28cb2
zink: handle nir_op_pack_64_2x32
...
Reviewed-by: Erik Faye-Lund <erik.faye-lund@collabora.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11392 >
2021-06-16 11:57:55 +00:00
Charlie
9753dec07d
v3dv: remove sRGB blending workaround
...
This reverts commits 4c15131b1d and
1cf36797bf .
Reviewed-by: Iago Toral Quiroga <itoral@igalia.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11377 >
2021-06-16 11:05:03 +00:00
Charlie
70d3ba1b68
v3dv: clamp srgb render targets
...
Reviewed-by: Iago Toral Quiroga <itoral@igalia.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11377 >
2021-06-16 11:05:03 +00:00
Iago Toral Quiroga
a78e7a76c8
Revert "v3dv: allow creating uncompressed views from compressed images and vice versa"
...
This reverts commit b32a48c7e2 .
Reviewed-by: Alejandro Piñeiro <apinheiro@igalia.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11415 >
2021-06-16 10:49:42 +00:00
Iago Toral Quiroga
8ae5b44339
v3dv: don't support VK_IMAGE_CREATE_BLOCK_TEXEL_VIEW_COMPATIBLE_BIT
...
The hardware doesn't support this naturally and we need to do a lot
of nasty stuff in the driver to almost make it work.
Reviewed-by: Alejandro Piñeiro <apinheiro@igalia.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11415 >
2021-06-16 10:49:42 +00:00
Karol Herbst
c1f938b647
nv50/ir: fix surface lowering when values get shared accross operations
...
With nir I encountered the case where the same value can be written to from
multiple surface operations. This caused some weird messups with the unions
as the def.rewrite operations caused unrelated instructions to get new their
value replaced as well.
In order to replace def.rewrite, we have to create a new temp value, write
to that one instead and move to the original value.
Fixes: 869e32593a ("gm107/ir: fix loading z offset for layered 3d image bindings")
Signed-off-by: Karol Herbst <kherbst@redhat.com >
Reviewed-by: Ilia Mirkin <imirkin@alum.mit.edu >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11053 >
2021-06-16 11:58:18 +02:00
Ilia Mirkin
561f9ae74b
st/mesa: always report the max samples as supported
...
This is required by GL. Doing this even when the backend driver does not
support it leads to creating attachments which are not renderable. This
is not ideal, but does pass tests. This covers scenarios such as missing
MSAA for 128-bit formats on Sandybridge, and missing 8x MSAA on 128-bit
formats on NVIDIA Tesla generation boards.
Signed-off-by: Ilia Mirkin <imirkin@alum.mit.edu >
Reviewed-by: Marek Olšák <marek.olsak@amd.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11372 >
2021-06-16 05:13:16 +00:00
Mike Blumenkrantz
b14b1bef5d
zink: stop sanitizing primitive_restart flag in draw info
...
this is a 1bit struct member, sanitizing is pointless
Reviewed-by: Dave Airlie <airlied@redhat.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11408 >
2021-06-16 05:00:44 +00:00
Mike Blumenkrantz
38119e4e7d
zink: move batch decl to top of draw_vbo
...
this may still change during descriptor updating, but having the pointer
earlier is helpful
Reviewed-by: Dave Airlie <airlied@redhat.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11408 >
2021-06-16 05:00:43 +00:00
Mike Blumenkrantz
83b1d937a7
zink: remove unnecessary draw checks
...
I don't know how/why these got here but they aren't needed
Reviewed-by: Dave Airlie <airlied@redhat.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11408 >
2021-06-16 05:00:43 +00:00
Mike Blumenkrantz
a1fb2e9c27
zink: use u_live_shader_cache
...
let the duplicated shader madness end
Reviewed-by: Dave Airlie <airlied@redhat.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11403 >
2021-06-16 04:49:45 +00:00
Mike Blumenkrantz
caf79bd421
zink: unify gfx shader create callbacks
...
these are identical
Reviewed-by: Dave Airlie <airlied@redhat.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11403 >
2021-06-16 04:49:45 +00:00
Mike Blumenkrantz
84bce72014
zink: mark bind_stage() as inline
...
Reviewed-by: Dave Airlie <airlied@redhat.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11403 >
2021-06-16 04:49:45 +00:00
Mike Blumenkrantz
1672056ee8
zink: simplify zink_program_has_descriptors()
...
Reviewed-by: Dave Airlie <airlied@redhat.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11407 >
2021-06-16 04:38:26 +00:00
Mike Blumenkrantz
f6108c2d64
zink: remove return types from program update functions during draw
...
also remove some null checks; these add overhead and the app is going to
explode anyway if they fail
Reviewed-by: Dave Airlie <airlied@redhat.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11406 >
2021-06-16 04:25:00 +00:00
Mike Blumenkrantz
ee24c719ee
zink: slightly refactor program updating during draw
...
Reviewed-by: Dave Airlie <airlied@redhat.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11406 >
2021-06-16 04:25:00 +00:00
Mike Blumenkrantz
3edb0a0a53
zink: destroy lazy descriptor pools during batch reset when unused
...
this should keep resource usage a bit lower
Reviewed-by: Dave Airlie <airlied@redhat.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11404 >
2021-06-16 04:12:35 +00:00
Mike Blumenkrantz
95fe2f7b82
zink: track active use counts for descriptor layouts
...
Reviewed-by: Dave Airlie <airlied@redhat.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11404 >
2021-06-16 04:12:35 +00:00
Mike Blumenkrantz
43dace32a0
zink: cache descriptor update templates along with layout
...
this simplifies a bunch of code and just makes more sense given that the
lifetimes should match
Reviewed-by: Dave Airlie <airlied@redhat.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11404 >
2021-06-16 04:12:35 +00:00
Dave Airlie
2e97d8245d
crocus: disable Z16
...
This is disabled on i965 for all pre-gen8, so do the same here.
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11409 >
2021-06-16 13:40:47 +10:00
Dave Airlie
2a540877d1
crocus: fixup render aux usage function.
...
This got misaligned somewhere in development, should fix the
regressions vs i965 in tesseract as seen on phoronix benchmarks.
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11409 >
2021-06-16 13:40:47 +10:00
Mike Blumenkrantz
1108db982e
zink: make batch_usage_matches take a batch state param
...
no functional changes, just some unwinding in some cases
Reviewed-by: Dave Airlie <airlied@redhat.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11399 >
2021-06-16 02:45:45 +00:00
Mike Blumenkrantz
6e0f552fd2
zink: make batch_usage_set take a batch state param
...
no functional changes
Reviewed-by: Dave Airlie <airlied@redhat.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11399 >
2021-06-16 02:45:45 +00:00
Mike Blumenkrantz
a96c6e4589
zink: remove unnecessary conditionals in resource batch tracking
...
this is no longer an atomic op
Reviewed-by: Dave Airlie <airlied@redhat.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11399 >
2021-06-16 02:45:45 +00:00
Mike Blumenkrantz
fec24a2fa4
zink: unset program batch usage on state reset
...
Reviewed-by: Dave Airlie <airlied@redhat.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11399 >
2021-06-16 02:45:45 +00:00
Mike Blumenkrantz
48add48209
zink: make batch_usage_unset take a batch state param
...
no functional changes
Reviewed-by: Dave Airlie <airlied@redhat.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11399 >
2021-06-16 02:45:45 +00:00
Mike Blumenkrantz
50cfe0dbd1
zink: remove atomic from batch usage setting
...
this shouldn't be necessary since usage can only be set from the context thread
and only needs to be accessed atomically for the cmpxchg when unsetting
Reviewed-by: Dave Airlie <airlied@redhat.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11399 >
2021-06-16 02:45:45 +00:00
Mike Blumenkrantz
559f534e11
zink: move batch usage functions to static inlines
...
Reviewed-by: Dave Airlie <airlied@redhat.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11399 >
2021-06-16 02:45:45 +00:00
Mike Blumenkrantz
b3f4e76c07
zink: optimize zink_tc_fence struct packing
...
Reviewed-by: Dave Airlie <airlied@redhat.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11400 >
2021-06-16 01:28:12 +00:00
Mike Blumenkrantz
1c1b0f7c91
zink: reorder has_barriers flag in batch state struct
...
better struct packing
Reviewed-by: Dave Airlie <airlied@redhat.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11400 >
2021-06-16 01:28:12 +00:00
Mike Blumenkrantz
e1ba1b5b25
zink: split batch state work_count into separate vars
...
this has better struct packing
Reviewed-by: Dave Airlie <airlied@redhat.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11400 >
2021-06-16 01:28:12 +00:00
Mike Blumenkrantz
b85a6b9162
zink: remove zink_batch_state::descs_used
...
this is no longer used or needed
Reviewed-by: Dave Airlie <airlied@redhat.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11400 >
2021-06-16 01:28:12 +00:00
Dave Airlie
f93aec2d04
crocus: fixed some missing WM dirtys.
...
This fixes misrendering in ET: legacy.
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11390 >
2021-06-16 00:41:00 +00:00
Mike Blumenkrantz
4e3768914d
zink: add ZINK_DESCRIPTORS env var to explicitly set a mode
...
currently this supports 3 modes, with the default being a hybrid between
caching and lazy
Reviewed-by: Hoe Hao Cheng <haochengho12907@gmail.com >
Acked-by: Dave Airlie <airlied@redhat.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11188 >
2021-06-15 20:15:58 -04:00
Mike Blumenkrantz
75c7619253
zink: unblock last_set cached descriptor reuse when safe to do so
...
if no changes at all have occurred to a given set since the last use,
and if the program hasn't changed, then there is no possiblility for
the set to have been invalidated, and so it can immediately be reused
Reviewed-by: Hoe Hao Cheng <haochengho12907@gmail.com >
Acked-by: Dave Airlie <airlied@redhat.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11188 >
2021-06-15 20:15:58 -04:00
Mike Blumenkrantz
7348a083ed
zink: skip hash updates for descriptor types which aren't used
...
this is pointless and hurts drawoverhead perf
Reviewed-by: Hoe Hao Cheng <haochengho12907@gmail.com >
Acked-by: Dave Airlie <airlied@redhat.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11188 >
2021-06-15 20:15:58 -04:00
Mike Blumenkrantz
d8c11ebe29
zink: add oob asserts for descriptor set ref setting
...
Reviewed-by: Hoe Hao Cheng <haochengho12907@gmail.com >
Acked-by: Dave Airlie <airlied@redhat.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11188 >
2021-06-15 20:15:58 -04:00
Mike Blumenkrantz
cc2d54641c
zink: enable templated descriptor updates in cache mode
...
this leverages the template infrastructure from the lazy manager for the
cached mode, alternatively generating a pseudo-template for updates
if real templates aren't available in order to retain 1.0 compatibility
Acked-by: Hoe Hao Cheng <haochengho12907@gmail.com >
Acked-by: Dave Airlie <airlied@redhat.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11188 >
2021-06-15 20:15:58 -04:00
Mike Blumenkrantz
4487825f0b
zink: move samplerview descset refs to base objects
...
this further extends the lifetimes for sets
Reviewed-by: Hoe Hao Cheng <haochengho12907@gmail.com >
Acked-by: Dave Airlie <airlied@redhat.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11188 >
2021-06-15 20:15:58 -04:00
Mike Blumenkrantz
ff692d042b
zink: add funcs for descriptor_surface refs
...
this abstracts more code for the cache backend
Reviewed-by: Hoe Hao Cheng <haochengho12907@gmail.com >
Acked-by: Dave Airlie <airlied@redhat.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11188 >
2021-06-15 20:15:57 -04:00
Mike Blumenkrantz
2d99f10286
zink: move shader image descriptor set refs to underlying type
...
this was kinda useless since it meant that the set was invalidated any
time the shader image was unbound
Reviewed-by: Hoe Hao Cheng <haochengho12907@gmail.com >
Acked-by: Dave Airlie <airlied@redhat.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11188 >
2021-06-15 20:14:36 -04:00
Mike Blumenkrantz
df5c97eea8
zink: update null sampler/image descriptor surface with is_buffer during hashing
...
this is the only time it might need to be used, so it can be updated naturally here
Reviewed-by: Hoe Hao Cheng <haochengho12907@gmail.com >
Acked-by: Dave Airlie <airlied@redhat.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11188 >
2021-06-15 20:14:36 -04:00
Mike Blumenkrantz
b2f4b35d5d
zink: add is_buffer flag to union zink_descriptor_surface
...
Reviewed-by: Hoe Hao Cheng <haochengho12907@gmail.com >
Acked-by: Dave Airlie <airlied@redhat.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11188 >
2021-06-15 20:14:36 -04:00
Mike Blumenkrantz
fd9118a739
zink: run lazy batch descriptor functions in cache mode
...
Acked-by: Hoe Hao Cheng <haochengho12907@gmail.com >
Acked-by: Dave Airlie <airlied@redhat.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11188 >
2021-06-15 20:14:36 -04:00
Mike Blumenkrantz
e00268894f
zink: unify cached descriptor update code
...
this is all pretty much standardized now, so it can be combined into something
simpler
Acked-by: Hoe Hao Cheng <haochengho12907@gmail.com >
Acked-by: Dave Airlie <airlied@redhat.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11188 >
2021-06-15 20:14:35 -04:00
Mike Blumenkrantz
93021aa6c8
zink: move ubo range assert to update_descriptor_state()
...
Acked-by: Hoe Hao Cheng <haochengho12907@gmail.com >
Acked-by: Dave Airlie <airlied@redhat.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11188 >
2021-06-15 20:04:53 -04:00
Mike Blumenkrantz
e5b0d21628
zink: remove sorting for dynamic ubo offset updating
...
if the offsets are assigned in the right order, they don't need to be
ordered later
Acked-by: Hoe Hao Cheng <haochengho12907@gmail.com >
Acked-by: Dave Airlie <airlied@redhat.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11188 >
2021-06-15 20:04:53 -04:00
Mike Blumenkrantz
0b54edad9b
zink: modernize cached image descriptor updating
...
use the auto-updated descriptor info
Reviewed-by: Hoe Hao Cheng <haochengho12907@gmail.com >
Acked-by: Dave Airlie <airlied@redhat.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11188 >
2021-06-15 20:04:53 -04:00
Mike Blumenkrantz
b9c0e99960
zink: modernize cached ssbo descriptor updating
...
use the already-updated bufferinfo structs
Reviewed-by: Hoe Hao Cheng <haochengho12907@gmail.com >
Acked-by: Dave Airlie <airlied@redhat.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11188 >
2021-06-15 20:04:53 -04:00
Mike Blumenkrantz
24b98a2925
zink: modernize cached ubo descriptor updating
...
use the already-updated bufferinfo structs
Reviewed-by: Hoe Hao Cheng <haochengho12907@gmail.com >
Acked-by: Dave Airlie <airlied@redhat.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11188 >
2021-06-15 20:04:53 -04:00
Mike Blumenkrantz
c0e9896139
zink: modernize cached push ubo descriptor updating
...
use the already-updated bufferinfo structs
Reviewed-by: Hoe Hao Cheng <haochengho12907@gmail.com >
Acked-by: Dave Airlie <airlied@redhat.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11188 >
2021-06-15 20:04:53 -04:00
Mike Blumenkrantz
d2f04604d6
zink: match lazy descriptor set layout in cache mode
...
now cached descriptors also use a push set for ubo0, also reusing the
ZINK_DESCRIPTOR_TYPES for this set for enum purposes
Acked-by: Hoe Hao Cheng <haochengho12907@gmail.com >
Acked-by: Dave Airlie <airlied@redhat.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11188 >
2021-06-15 20:04:52 -04:00
Mike Blumenkrantz
ab7ea7acfa
zink: split lazy sets based on descriptor type
...
this is now closer to the cached descriptor set layout, but with
the push set as the zero-indexed set (passed as ZINK_DESCRIPTOR_TYPES
for enum purposes)
Acked-by: Hoe Hao Cheng <haochengho12907@gmail.com >
Acked-by: Dave Airlie <airlied@redhat.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11188 >
2021-06-15 20:04:36 -04:00
Mike Blumenkrantz
c4dd9cdabb
zink: add a function for creating descriptor layouts for push sets
...
push sets contain a single ubo at index 0 per shader stage in the set
Reviewed-by: Hoe Hao Cheng <haochengho12907@gmail.com >
Acked-by: Dave Airlie <airlied@redhat.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11188 >
2021-06-15 20:03:58 -04:00
Ian Romanick
daa2ccff7a
v3d: ci: Add KHR-GLES31.core.shader_image_load_store.basic-glsl-earlyFragTests to flakes
...
Closes : #4934
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11386 >
2021-06-15 21:37:17 +00:00
Yiwei Zhang
ac27493824
venus: add debug info for experimental features during init
...
Signed-off-by: Yiwei Zhang <zzyiwei@chromium.org >
Reviewed-by: Chia-I Wu <olvaffe@gmail.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11387 >
2021-06-15 21:25:28 +00:00
Jason Ekstrand
7bf0c762c3
anv: Agressively no-op Flush/InvalidateMappedMemoryRanges
...
This has two steps. First, for each range we look at the memory object
and see if it actually needs flushing before we start throwing CLFLUSH
instructions. Second, we look at the whole list of types on device
initialization and decide whether or not we need CLFLUSH at all. The
first part should speed up atom chips a bit since we're currently
CLFLUSHing everything even when we don't need to. The second isn't
needed on most of today's parts because we base it on !has_llc but it is
needed for discrete parts. It's also over-all cleaner.
Reviewed-by: Kenneth Graunke <kenneth@whitecape.org >
Tested-by: Felix DeGrood <felix.j.degrood@intel.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11364 >
2021-06-15 21:00:37 +00:00
Emma Anholt
591a3c738d
freedreno: Be more strict about QUERY_AVAILABLE to simplify the code.
...
ARB_oq doesn't just say "polling in a loop will make it complete
eventually", it says "querying will make it complete in finite time."
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11368 >
2021-06-15 20:42:26 +00:00
Emma Anholt
bfb83d1fe8
freedreno: Drop a bit of indirection around the batch cache flush path.
...
Checking the flag to call separate functions which then call the same
helper with the flag is a bit silly.
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11368 >
2021-06-15 20:42:26 +00:00
Emma Anholt
32bed95e0b
freedreno: Make a bunch of the batch cache take ctx as the arg.
...
As we move the batch cache from screen to context, it cleans up the diff a
ton to separate this mechanical change out, and makes the API generally
more consistent (since you usually have to pass the ctx anyway).
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11368 >
2021-06-15 20:42:26 +00:00
Emma Anholt
a960b0e477
freedreno: Drop batch-cache orphan tracking.
...
Let's let valgrind/asan handle leak detection. This means you can use the
flag even on non-DEBUG builds.
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11368 >
2021-06-15 20:42:26 +00:00
Alyssa Rosenzweig
0cec71d7ce
pan/bi: Fuse abs into FCMP/FMIN/FMAX.v2f16
...
Needs to be aware of an encoding restriction here.
No shader-db changes.
Signed-off-by: Alyssa Rosenzweig <alyssa@collabora.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11327 >
2021-06-15 20:27:22 +00:00
Alyssa Rosenzweig
097c9092af
pan/bi: Schedule FCMP.v2f16 with abs modifier
...
So many encoding restrictions, because Bifrost.
Signed-off-by: Alyssa Rosenzweig <alyssa@collabora.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11327 >
2021-06-15 20:27:22 +00:00
Alyssa Rosenzweig
0c4de24f15
pan/bi: Fuse fclamp_pos and fsat_signed
...
Mostly interesting now that we fuse clamps.
total instructions in shared programs: 149562 -> 148927 (-0.42%)
instructions in affected programs: 37195 -> 36560 (-1.71%)
helped: 233
HURT: 0
helped stats (abs) min: 1 max: 10 x̄: 2.73 x̃: 2
helped stats (rel) min: 0.22% max: 17.39% x̄: 2.19% x̃: 1.72%
95% mean confidence interval for instructions value: -2.97 -2.48
95% mean confidence interval for instructions %-change: -2.44% -1.94%
Instructions are helped.
total tuples in shared programs: 130487 -> 130122 (-0.28%)
tuples in affected programs: 25693 -> 25328 (-1.42%)
helped: 179
HURT: 12
helped stats (abs) min: 1 max: 10 x̄: 2.11 x̃: 2
helped stats (rel) min: 0.26% max: 25.00% x̄: 2.52% x̃: 1.70%
HURT stats (abs) min: 1 max: 1 x̄: 1.00 x̃: 1
HURT stats (rel) min: 0.61% max: 0.68% x̄: 0.65% x̃: 0.66%
95% mean confidence interval for tuples value: -2.15 -1.68
95% mean confidence interval for tuples %-change: -2.74% -1.91%
Tuples are helped.
total clauses in shared programs: 27827 -> 27761 (-0.24%)
clauses in affected programs: 1407 -> 1341 (-4.69%)
helped: 56
HURT: 0
helped stats (abs) min: 1 max: 4 x̄: 1.18 x̃: 1
helped stats (rel) min: 1.79% max: 14.29% x̄: 6.11% x̃: 5.26%
95% mean confidence interval for clauses value: -1.32 -1.03
95% mean confidence interval for clauses %-change: -7.00% -5.23%
Clauses are helped.
total quadwords in shared programs: 118563 -> 118248 (-0.27%)
quadwords in affected programs: 19859 -> 19544 (-1.59%)
helped: 144
HURT: 16
helped stats (abs) min: 1 max: 10 x̄: 2.30 x̃: 2
helped stats (rel) min: 0.29% max: 16.00% x̄: 2.65% x̃: 2.13%
HURT stats (abs) min: 1 max: 1 x̄: 1.00 x̃: 1
HURT stats (rel) min: 0.47% max: 2.00% x̄: 0.80% x̃: 0.76%
95% mean confidence interval for quadwords value: -2.27 -1.66
95% mean confidence interval for quadwords %-change: -2.67% -1.93%
Quadwords are helped.
Signed-off-by: Alyssa Rosenzweig <alyssa@collabora.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11327 >
2021-06-15 20:27:22 +00:00
Alyssa Rosenzweig
295e65bb50
pan/bi: Add back custom algebraic opts
...
Right now just do a trivial one to test the infrastructure. In the next
commit we'll use this for a more interesting optimization that's a bit
painful in BIR but trivial with nir_search.
total instructions in shared programs: 149566 -> 149562 (<.01%)
instructions in affected programs: 502 -> 498 (-0.80%)
helped: 3
HURT: 0
helped stats (abs) min: 1 max: 2 x̄: 1.33 x̃: 1
helped stats (rel) min: 0.38% max: 1.30% x̄: 0.97% x̃: 1.21%
total tuples in shared programs: 130957 -> 130487 (-0.36%)
tuples in affected programs: 54752 -> 54282 (-0.86%)
helped: 303
HURT: 2
helped stats (abs) min: 1 max: 29 x̄: 1.56 x̃: 1
helped stats (rel) min: 0.13% max: 7.14% x̄: 1.08% x̃: 0.92%
HURT stats (abs) min: 1 max: 2 x̄: 1.50 x̃: 1
HURT stats (rel) min: 1.89% max: 2.99% x̄: 2.44% x̃: 2.44%
95% mean confidence interval for tuples value: -1.79 -1.30
95% mean confidence interval for tuples %-change: -1.17% -0.95%
Tuples are helped.
total clauses in shared programs: 27877 -> 27827 (-0.18%)
clauses in affected programs: 1556 -> 1506 (-3.21%)
helped: 45
HURT: 0
helped stats (abs) min: 1 max: 2 x̄: 1.11 x̃: 1
helped stats (rel) min: 1.43% max: 9.52% x̄: 3.88% x̃: 3.57%
95% mean confidence interval for clauses value: -1.21 -1.02
95% mean confidence interval for clauses %-change: -4.38% -3.39%
Clauses are helped.
total quadwords in shared programs: 119058 -> 118563 (-0.42%)
quadwords in affected programs: 33777 -> 33282 (-1.47%)
helped: 250
HURT: 2
helped stats (abs) min: 1 max: 29 x̄: 1.99 x̃: 1
helped stats (rel) min: 0.23% max: 11.11% x̄: 1.67% x̃: 1.40%
HURT stats (abs) min: 1 max: 1 x̄: 1.00 x̃: 1
HURT stats (rel) min: 1.64% max: 2.00% x̄: 1.82% x̃: 1.82%
95% mean confidence interval for quadwords value: -2.27 -1.66
95% mean confidence interval for quadwords %-change: -1.80% -1.49%
Quadwords are helped.
Signed-off-by: Alyssa Rosenzweig <alyssa@collabora.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11327 >
2021-06-15 20:27:22 +00:00
Alyssa Rosenzweig
41070fedca
pan/bi: Propagate fabs/neg/sat
...
Initial support for modifier propagation. Bifrost makes this
unreasonably hard.
total instructions in shared programs: 151604 -> 150761 (-0.56%)
instructions in affected programs: 48773 -> 47930 (-1.73%)
helped: 212
HURT: 0
helped stats (abs) min: 1 max: 28 x̄: 3.98 x̃: 1
helped stats (rel) min: 0.29% max: 12.70% x̄: 1.75% x̃: 1.26%
95% mean confidence interval for instructions value: -4.71 -3.25
95% mean confidence interval for instructions %-change: -1.97% -1.53%
Instructions are helped.
total tuples in shared programs: 131876 -> 131560 (-0.24%)
tuples in affected programs: 25393 -> 25077 (-1.24%)
helped: 104
HURT: 3
helped stats (abs) min: 1 max: 28 x̄: 3.08 x̃: 2
helped stats (rel) min: 0.34% max: 8.57% x̄: 1.55% x̃: 1.04%
HURT stats (abs) min: 1 max: 2 x̄: 1.33 x̃: 1
HURT stats (rel) min: 0.51% max: 2.86% x̄: 1.30% x̃: 0.53%
95% mean confidence interval for tuples value: -3.63 -2.28
95% mean confidence interval for tuples %-change: -1.73% -1.21%
Tuples are helped.
total clauses in shared programs: 28122 -> 28032 (-0.32%)
clauses in affected programs: 2720 -> 2630 (-3.31%)
helped: 58
HURT: 1
helped stats (abs) min: 1 max: 6 x̄: 1.57 x̃: 1
helped stats (rel) min: 0.88% max: 14.29% x̄: 4.06% x̃: 3.67%
HURT stats (abs) min: 1 max: 1 x̄: 1.00 x̃: 1
HURT stats (rel) min: 7.69% max: 7.69% x̄: 7.69% x̃: 7.69%
95% mean confidence interval for clauses value: -1.85 -1.20
95% mean confidence interval for clauses %-change: -4.60% -3.13%
Clauses are helped.
total quadwords in shared programs: 119778 -> 119509 (-0.22%)
quadwords in affected programs: 20698 -> 20429 (-1.30%)
helped: 95
HURT: 1
helped stats (abs) min: 1 max: 28 x̄: 2.85 x̃: 2
helped stats (rel) min: 0.38% max: 7.14% x̄: 1.50% x̃: 1.13%
HURT stats (abs) min: 2 max: 2 x̄: 2.00 x̃: 2
HURT stats (rel) min: 3.23% max: 3.23% x̄: 3.23% x̃: 3.23%
95% mean confidence interval for quadwords value: -3.49 -2.11
95% mean confidence interval for quadwords %-change: -1.71% -1.20%
Quadwords are helped.
Signed-off-by: Alyssa Rosenzweig <alyssa@collabora.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11327 >
2021-06-15 20:27:22 +00:00
Alyssa Rosenzweig
e41d8ed007
pan/bi: Report tuples, not nops, in shader-db
...
More useful in practice, I find.
Signed-off-by: Alyssa Rosenzweig <alyssa@collabora.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11327 >
2021-06-15 20:27:22 +00:00
Alyssa Rosenzweig
ecd9a3fed5
pan/bi: Handle fsat_signed and fclamp_pos
...
Translates to Mali-specific clamps.
Signed-off-by: Alyssa Rosenzweig <alyssa@collabora.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11327 >
2021-06-15 20:27:22 +00:00
Alyssa Rosenzweig
16bf1ae935
pan/bi: Track instruction size in opcode table
...
Signed-off-by: Alyssa Rosenzweig <alyssa@collabora.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11327 >
2021-06-15 20:27:22 +00:00
Alyssa Rosenzweig
91a2804d8f
pan/bi: Move typesize to common code
...
Useful for the opcode table.
Signed-off-by: Alyssa Rosenzweig <alyssa@collabora.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11327 >
2021-06-15 20:27:22 +00:00
Alyssa Rosenzweig
7db6d8d748
pan/bi: Move bi_word_node to common code
...
Signed-off-by: Alyssa Rosenzweig <alyssa@collabora.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11327 >
2021-06-15 20:27:22 +00:00
Alyssa Rosenzweig
7ad9e1e5a5
pan/bi: Include modifier info in opcode table
...
Signed-off-by: Alyssa Rosenzweig <alyssa@collabora.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11327 >
2021-06-15 20:27:22 +00:00
Ian Romanick
70c9726e06
util: Consider CPU affinity when detecting number of CPUs
...
A similar path can be used on at least FreeBSD using cpuset_getaffinity.
This is how Ninja determines the number of available CPUs on that
platform. See the GetProcessorCount function in util.cc:
https://github.com/ninja-build/ninja/blob/master/src/util.cc
v2: Fix counting the number of available CPUs. The CPU_COUNT API does
not work the way I thought it did. :face_palm: Noticed by Marek.
Reviewed-by: Adam Jackson <ajax@redhat.com > [v1]
Reviewed-by: Pierre-Eric Pelloux-Prayer <pierre-eric.pelloux-prayer@amd.com > [v1]
Reviewed-by: Marek Olšák <marek.olsak@amd.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11228 >
2021-06-15 20:01:53 +00:00
Ian Romanick
59ca535576
util: Use maximum number of CPUs for determining cache topology
...
This prevents problems when some CPUs are offline. In a four CPU
system, if CPUs 1 and 2 are offline, the cache topology code would
only examine CPUs 0 and 1... giving incorrect information.
The types are changed to int16_t so that the offset of num_L3_caches
does not change. This triggered a STATIC_ASSERT failure:
STATIC_ASSERT(offsetof(struct util_cpu_caps_t, num_L3_caches) == 5 * sizeof(uint32_t));
I'm assuming there's some assembly code or something that depends on
this offset, and I don't feel like messing with it.
Reviewed-by: Marek Olšák <marek.olsak@amd.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11228 >
2021-06-15 20:01:53 +00:00
Ian Romanick
c12b52b856
util: Set util_cpu_caps.num_cpu_mask_bits based on total CPUs in the system
...
In the current code, this prevents a very unlikely corner case. More
importantly, it should prevent the next commit from breaking the
universe.
Imagine a system with 64 CPUs configured, but first 32 CPUs are offline.
_SC_NPROCESSORS_CONF will return 32. All of the surrounding code will
interpret this as meaning CPUs 0 through 31, but all of those CPUs are
offline. Nothing good can happen then.
The problem cases require systems with more than 32 CPUs because
util_cpu_caps.num_cpu_mask_bits is always rounded up to a multiple of
32.
Reviewed-by: Marek Olšák <marek.olsak@amd.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11228 >
2021-06-15 20:01:53 +00:00
Ian Romanick
5623c75e40
util: Fix setting nr_cpus on some BSD variants
...
Linux, FreeBSD, and DragonFly should have _SC_NOPROCESSORS_ONLN. NetBSD
and OpenBSD should have HW_NCPUONLINE. This is what FFmpeg uses on
those platforms.
FreeBSD sysconf(3) manual page:
https://www.freebsd.org/cgi/man.cgi?query=sysconf&sektion=3&apropos=0&manpath=freebsd
The FFmpeg patch is at:
https://patchwork.ffmpeg.org/project/ffmpeg/patch/YGi4sJx3trG3Yn7c@humpty.home.comstyle.com/
OpenBSD sysctl(2) manual page:
https://man.openbsd.org/sysctl.2
Acked-by: Marek Olšák <marek.olsak@amd.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11228 >
2021-06-15 20:01:53 +00:00
Ian Romanick
44246892a0
util: Trivial cleanup in the BSD code of util_cpu_detect_once
...
This code is going to be replicated in future commits, so tidy up a bit
first.
Acked-by: Marek Olšák <marek.olsak@amd.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11228 >
2021-06-15 20:01:53 +00:00
Ian Romanick
1786e847d9
util: Change order of PIPE_OS_UNIX code in util_cpu_detect_once
...
This makes it easier to add preferred vs. fallback paths later.
Reviewed-by: Marek Olšák <marek.olsak@amd.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11228 >
2021-06-15 20:01:52 +00:00
Ian Romanick
a923e95b10
util: Zero out all of mask in util_set_thread_affinity
...
memset operates in bytes, and there are 8-bits in a byte. This is a
very easy to miss typo. :(
Fixes: 9758b1d416 ("util: add util_set_thread_affinity helpers including Windows support")
Reviewed-by: Marek Olšák <marek.olsak@amd.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11228 >
2021-06-15 20:01:52 +00:00
Ian Romanick
5971f29c8f
radeonsi: Use util_cpu_caps to detect number of CPUs
...
The next patch will change the way the number of CPUs is detected, and
this change prevents some code duplication.
v2: Add missing #include. Noticed by Pierre-Eric... not sure how I
missed it. :(
Reviewed-by: Adam Jackson <ajax@redhat.com > [v1]
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/11228 >
2021-06-15 20:01:52 +00:00
Yiwei Zhang
04e28356b4
venus: moves GPU rendering off CPU timeline for Android WSI
...
When globalFencing is supported, we can export a native sync fd for
presentation to move rendering off CPU timeline.
Signed-off-by: Yiwei Zhang <zzyiwei@chromium.org >
Reviewed-by: Chia-I Wu <olvaffe@gmail.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11342 >
2021-06-15 19:50:10 +00:00
Yiwei Zhang
c7b405b39d
venus: refactor vn_AcquireImageANDROID with globalFencing
...
This patch refactors to use vn_Import*FdKHR for Android WSI native sync
fence import when globalFencing is supported. Currently there's no perf
win from this, but will move the composer release fence waiting to the
GPU device side automatically when the entire Venus fencing support is
improved.
Signed-off-by: Yiwei Zhang <zzyiwei@chromium.org >
Reviewed-by: Chia-I Wu <olvaffe@gmail.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11342 >
2021-06-15 19:50:10 +00:00
Yiwei Zhang
d249cff1e7
venus: silence a build warning
...
Address -Wsometimes-uninitialized
Signed-off-by: Yiwei Zhang <zzyiwei@chromium.org >
Reviewed-by: Chia-I Wu <olvaffe@gmail.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11342 >
2021-06-15 19:50:10 +00:00
Neha Bhende
532472da0b
aux/indices: include provoking vertex check in prim type conversion
...
Include provoking vertex checking in u_index_prim_type_convert() to make sure
the right primitive type is returned from the generator function.
Fixes google earth running on VMware svga device on hw version 11.
Fixes: cad2026b72 ("aux/indices: break out primitive type conversion to separate function")
Reviewed-by: Charmaine Lee <charmainel@vmware.com >
Reviewed-By: Mike Blumenkrantz <michael.blumenkrantz@gmail.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11367 >
2021-06-15 19:27:50 +00:00
Rob Clark
fd23a54c71
freedreno: Fallback to sw for copy_image with compressed
...
Signed-off-by: Rob Clark <robdclark@chromium.org >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11371 >
2021-06-15 19:09:24 +00:00
Rob Clark
c64f217495
freedreno: Flush batches on shadow/uncompress
...
Normally when we shadow a resource (whether it is changing the modifier
or not) we do not need to flush existing batches, since they reference
the original version of the resource. There is a special case for
resources that are referenced by a batches framebuffer state, because
this state is emitted when the batch is flushed. Because of this, we
need those batches to be flushed before we shadow the resource.
Signed-off-by: Rob Clark <robdclark@chromium.org >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11371 >
2021-06-15 19:09:24 +00:00
Rob Clark
de91d07927
freedreno/a6xx: Also validate format in blitter path
...
Since we can be blitting using a format that is different from the
resource's native format, we also need to validate and demote if
necessary, similar to sampler-views, image-views, and fb state.
Signed-off-by: Rob Clark <robdclark@chromium.org >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11371 >
2021-06-15 19:09:24 +00:00
Rob Clark
b97e3bb2e1
freedreno/a6xx: Handle R8G8 sharp edges in validate_format()
...
Because R8G8 has a different layout from R16, we not only need to demote
to uncompressed to (for example) sample R8G8 as R16 (or visa versa) but
we also need to demote further to linear.
Signed-off-by: Rob Clark <robdclark@chromium.org >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11371 >
2021-06-15 19:09:24 +00:00
Rob Clark
1061a68644
freedreno: Avoid recursive re-entry of u_blitter
...
Normally when demotion to uncompressed is required, it is handled when
various state is attached (sampler-view, framebuffer, etc). But in this
one path into u_blitter we need to handle it up front, to avoid
recursing back into u_blitter for a decompress blit.
Signed-off-by: Rob Clark <robdclark@chromium.org >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11371 >
2021-06-15 19:09:24 +00:00
Rob Clark
6d01c17805
freedreno: Add debugging for blitter fallback recursion
...
Signed-off-by: Rob Clark <robdclark@chromium.org >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11371 >
2021-06-15 19:09:24 +00:00
Rob Clark
fb8fe017ee
freedreno: Don't try staging blit for non-renderable formats
...
If a format is not supported as a render target, there is no point in
trying a staging blit, as it will end up in a CPU copy fallback.
Signed-off-by: Rob Clark <robdclark@chromium.org >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11371 >
2021-06-15 19:09:24 +00:00
Rob Clark
e2f9ef9ce9
freedreno: Drop obsolete comment
...
Signed-off-by: Rob Clark <robdclark@chromium.org >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11371 >
2021-06-15 19:09:24 +00:00
Chia-I Wu
17375c5d2d
venus: be verbose about which physical devices are skipped
...
Signed-off-by: Chia-I Wu <olvaffe@gmail.com >
Reviewed-by: Yiwei Zhang <zzyiwei@chromium.org >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11369 >
2021-06-15 18:20:41 +00:00
Chia-I Wu
c496dc1120
venus: fix compatibility with older host drivers
...
Unlike on Android, KHR_swapchain may be advertised even when the host
driver does not support EXT_image_drm_format_modifier and
EXT_queue_family_foreign. Do not request those extensions when they are
not supported.
Signed-off-by: Chia-I Wu <olvaffe@gmail.com >
Reviewed-by: Yiwei Zhang <zzyiwei@chromium.org >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11369 >
2021-06-15 18:20:41 +00:00
Chia-I Wu
84ec64c4e4
venus: clean up vn_physical_device_get_native_extensions
...
Separate Android and non-Android paths. No real change.
Signed-off-by: Chia-I Wu <olvaffe@gmail.com >
Reviewed-by: Yiwei Zhang <zzyiwei@chromium.org >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11369 >
2021-06-15 18:20:41 +00:00
Rhys Perry
35e54abc67
nir/cse: resize the instruction set
...
ministat (CSE only):
Difference at 95.0% confidence
-3357.54 +/- 32.5177
-25.267% +/- 0.24098%
(Student's t, pooled s = 33.909)
ministat (entire run):
Difference at 95.0% confidence
-3414.27 +/- 270.628
-2.76477% +/- 0.217647%
(Student's t, pooled s = 282.207)
Signed-off-by: Rhys Perry <pendingchaos02@gmail.com >
Reviewed-by: Daniel Schürmann <daniel@schuermann.dev >
Reviewed-by: Matt Turner <mattst88@gmail.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/6390 >
2021-06-15 17:57:07 +00:00
Rhys Perry
964f59d20e
nir: use a single set during CSE
...
Use a single set and ensure dominance by checking after a equivalent
instruction is found.
Besides removing the need to copy a set, this also lets us resize the set
at the start of the pass in the next commit.
ministat (CSE only):
Difference at 95.0% confidence
-984.956 +/- 28.8559
-6.90075% +/- 0.190231%
(Student's t, pooled s = 26.9052)
ministat (entire run):
Difference at 95.0% confidence
-1246.1 +/- 257.253
-0.998972% +/- 0.205094%
(Student's t, pooled s = 239.863)
Signed-off-by: Rhys Perry <pendingchaos02@gmail.com >
Co-authored-by: Daniel Schürmann <daniel@schuermann.dev >
Reviewed-by: Daniel Schürmann <daniel@schuermann.dev >
Reviewed-by: Rhys Perry <pendingchaos02@gmail.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/6390 >
2021-06-15 17:57:07 +00:00
Jonathan Marek
cb1ddff350
freedreno/registers: define REG_DSI_CPHY_MODE_CTRL
...
For use by the kernel driver.
Signed-off-by: Jonathan Marek <jonathan@marek.ca >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11381 >
2021-06-15 12:42:57 -04:00
Marcin Ślusarz
49c01da589
iris: fix error message on I915_GEM_[GS]ET_TILING failure
...
The first problem was noticed by Coverity (CID 1485970).
Fixes: ab49063f44 ("iris: Only use SET/GET_TILING when exporting/importing BOs")
Signed-off-by: Marcin Ślusarz <marcin.slusarz@intel.com >
Reviewed-by: Kenneth Graunke <kenneth@whitecape.org >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11357 >
2021-06-15 15:07:42 +00:00
Erik Faye-Lund
db5f895dab
zink: use correct type for u_bit_scan
...
Since we're going to iterate over each bit of this variable using
u_bit_scan, we should make sure we use an unsigned int for the variable.
While this works on GCC, it's not guaranteed to work, and produces a
warning on MSVC.
Reviewed-By: Mike Blumenkrantz <michael.blumenkrantz@gmail.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11358 >
2021-06-15 14:49:25 +00:00
Felix DeGrood
a49b145e8d
anv: Replace DC Flush with HDC Pipeline Flush
...
HDC Pipeline Flush is the correct method for flushing HDC
pipeline on Gfx12+ HW. Continue using DC Flush for earlier HW.
Reviewed-by: Lionel Landwerlin <lionel.g.landwerlin@intel.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/9834 >
2021-06-15 12:57:42 +00:00
Felix DeGrood
ef70388a3a
anv: Add ANV_PIPE_HDC_PIPELINE_FLUSH_BIT
...
Gfx12+ PIPE_CONTROL bit for flushing HDC cache and memory
transactions to L3 cache.
Reviewed-by: Lionel Landwerlin <lionel.g.landwerlin@intel.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/9834 >
2021-06-15 12:57:42 +00:00
Felix DeGrood
82952deb8b
anv: Only flush Tile Cache on VK_ACCESS_HOST_R/W
...
Tile Cache flush flushes all Color/Depth values from L3 cache
to memory in Unified Cache mode. This is only required when
CPU access is required.
Reviewed-by: Lionel Landwerlin <lionel.g.landwerlin@intel.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/9834 >
2021-06-15 12:57:42 +00:00
Felix DeGrood
6f26a51f47
anv: remove unnecessary Tile Cache flushes
...
On Gfx12+, flushing tile cache ensures color/depth values are
globally visible, but that's expensive. Most operations only
need values to be GT-visible which can be achieved with depth
or rt flush. Remove a bunch of unnecessary Tile Cache flushes.
Fast clears and slow depth clears still require Tile Cache flush.
Reviewed-by: Lionel Landwerlin <lionel.g.landwerlin@intel.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/9834 >
2021-06-15 12:57:42 +00:00
Felix DeGrood
a7bb74db7b
anv: Remove Tile Cache flush from SBA, Pipe Select
...
Tile Cache flushing not required for State Base Address or
Pipe Select instructions.
Reviewed-by: Lionel Landwerlin <lionel.g.landwerlin@intel.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/9834 >
2021-06-15 12:57:42 +00:00
Felix DeGrood
1da9ff047e
anv: Clear all pending stall after pipe flush
...
Was only clearing CS stalls after emitting pending pipe
controls. Need to clear all stalls.
Cc: mesa-stable
Reviewed-by: Lionel Landwerlin <lionel.g.landwerlin@intel.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/9834 >
2021-06-15 12:57:42 +00:00
Felix DeGrood
fc5cb54008
anv: Add debug messages for DEBUG_PIPE_CONTROL
...
Enable with INTEL_DEBUG=pc.
Reviewed-by: Lionel Landwerlin <lionel.g.landwerlin@intel.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/9834 >
2021-06-15 12:57:42 +00:00
Felix DeGrood
6c345ddbe4
anv: Cache VB/IB in L3$ for Gfx12
...
Gfx12 enables caching of Vertex and Index Buffers in L3.
Reviewed-by: Lionel Landwerlin <lionel.g.landwerlin@intel.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/9834 >
2021-06-15 12:57:42 +00:00
Hoe Hao Cheng
00f01f5226
zink: standardize zero-init code style
...
quick grepping shows that the amount of {0} (there were 8) is higher
than { 0 } (only 5), so {0} it is!
Reviewed-by: Erik Faye-Lund <erik.faye-lund@collabora.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11376 >
2021-06-15 12:33:03 +00:00
Hoe Hao Cheng
65c8ae6bbd
zink: zero-init structs with ISO C
...
zero-initing with empty braces is a GNU extension, MSVC does not like
it.
Reviewed-by: Erik Faye-Lund <erik.faye-lund@collabora.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11376 >
2021-06-15 12:33:03 +00:00
Daniel Stone
a439db5844
ci/lava: Generate YAML from Python, not Jinja
...
This makes it much easier to use the common init scripts ... which we
also do here.
Signed-off-by: Daniel Stone <daniels@collabora.com >
Acked-by: Martin Peres <martin.peres@mupuf.org >
Acked-by: Emma Anholt <emma@anholt.net >
Reviewed-by: Tomeu Vizoso <tomeu.vizoso@collabora.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11337 >
2021-06-15 14:02:44 +02:00
Daniel Stone
d237f5ab56
ci/lava: Make kernel image type a normal argument
...
Just pass the actual parameter, rather than bare YAML.
Signed-off-by: Daniel Stone <daniels@collabora.com >
Acked-by: Martin Peres <martin.peres@mupuf.org >
Acked-by: Emma Anholt <emma@anholt.net >
Reviewed-by: Tomeu Vizoso <tomeu.vizoso@collabora.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11337 >
2021-06-15 14:02:44 +02:00
Daniel Stone
f02634d5d2
ci/lava: Drop bitrotten fastboot support
...
We don't have any fastboot devices in LAVA, and even if we did, the old
overlay path no longer applies.
Signed-off-by: Daniel Stone <daniels@collabora.com >
Acked-by: Martin Peres <martin.peres@mupuf.org >
Acked-by: Emma Anholt <emma@anholt.net >
Reviewed-by: Tomeu Vizoso <tomeu.vizoso@collabora.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11337 >
2021-06-15 14:02:44 +02:00
Daniel Stone
8f934e96e1
ci/lava: Use common stage-2 init
...
Now that our job-execution scripts look very similar for LAVA and
bare-metal, we can just tell LAVA to use the same stage-2 init we use
for bare-metal and delete a bunch of duplication.
Signed-off-by: Daniel Stone <daniels@collabora.com >
Acked-by: Martin Peres <martin.peres@mupuf.org >
Acked-by: Emma Anholt <emma@anholt.net >
Reviewed-by: Tomeu Vizoso <tomeu.vizoso@collabora.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11337 >
2021-06-15 14:02:44 +02:00
Daniel Stone
759dcb482d
ci/lava: Pass MinIO path on the command line
...
This brings us much closer with what bare-metal does, and also allows us
to upload job data to a local instance rather than the primary fd.o one.
Signed-off-by: Daniel Stone <daniels@collabora.com >
Acked-by: Martin Peres <martin.peres@mupuf.org >
Acked-by: Emma Anholt <emma@anholt.net >
Reviewed-by: Tomeu Vizoso <tomeu.vizoso@collabora.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11337 >
2021-06-15 14:02:44 +02:00
Daniel Stone
a8c1155209
ci/bare-metal: Set CPU and GPU governors to max, disable GPU runtime PM
...
Give us a bit more predictable performance by making sure we always run
at full tilt.
Signed-off-by: Daniel Stone <daniels@collabora.com >
Acked-by: Martin Peres <martin.peres@mupuf.org >
Acked-by: Emma Anholt <emma@anholt.net >
Reviewed-by: Tomeu Vizoso <tomeu.vizoso@collabora.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11337 >
2021-06-15 14:02:44 +02:00
Daniel Stone
a1e734a874
ci: Unify {BARE_METAL,LAVA}_TEST_SCRIPT environment
...
Should also probably never have been different.
Signed-off-by: Daniel Stone <daniels@collabora.com >
Acked-by: Martin Peres <martin.peres@mupuf.org >
Acked-by: Emma Anholt <emma@anholt.net >
Reviewed-by: Tomeu Vizoso <tomeu.vizoso@collabora.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11337 >
2021-06-15 14:02:44 +02:00
Daniel Stone
0d6dd44818
ci: Unify {BM,LAVA}_START_XORG environment
...
Why were they ever different ... ?
Signed-off-by: Daniel Stone <daniels@collabora.com >
Acked-by: Martin Peres <martin.peres@mupuf.org >
Acked-by: Emma Anholt <emma@anholt.net >
Reviewed-by: Tomeu Vizoso <tomeu.vizoso@collabora.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11337 >
2021-06-15 14:02:44 +02:00
Daniel Stone
5f32d2a438
ci: Consistent pass/fail result output
...
One less point of differentiation.
Signed-off-by: Daniel Stone <daniels@collabora.com >
Acked-by: Martin Peres <martin.peres@mupuf.org >
Acked-by: Emma Anholt <emma@anholt.net >
Reviewed-by: Tomeu Vizoso <tomeu.vizoso@collabora.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11337 >
2021-06-15 14:02:44 +02:00
Daniel Stone
0723692a21
ci/lava: Start using devcoredump captures
...
No reason not to.
Signed-off-by: Daniel Stone <daniels@collabora.com >
Acked-by: Martin Peres <martin.peres@mupuf.org >
Acked-by: Emma Anholt <emma@anholt.net >
Reviewed-by: Tomeu Vizoso <tomeu.vizoso@collabora.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11337 >
2021-06-15 14:02:44 +02:00
Daniel Stone
f71d7fce61
ci/bare-metal: Move devcoredump capture to CI common
...
Reusing this for LAVA sounds like a good idea!
Signed-off-by: Daniel Stone <daniels@collabora.com >
Acked-by: Martin Peres <martin.peres@mupuf.org >
Acked-by: Emma Anholt <emma@anholt.net >
Reviewed-by: Tomeu Vizoso <tomeu.vizoso@collabora.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11337 >
2021-06-15 14:02:44 +02:00
Daniel Stone
51395f01ce
ci/bare-metal: Split init script into two stages
...
Whilst we want to reuse the same init and job environment for LAVA and
bare-metal, LAVA needs to additionally inject wget and tar jobs, so we
can actually get our per-job environment, as the rootfs we run in is
just the container-generated base rootfs.
Split the init script into two stages, with the first stage doing very
base bringup of devices and networking, and the second stage setting the
job environment and running the jobs.
Signed-off-by: Daniel Stone <daniels@collabora.com >
Acked-by: Martin Peres <martin.peres@mupuf.org >
Acked-by: Emma Anholt <emma@anholt.net >
Reviewed-by: Tomeu Vizoso <tomeu.vizoso@collabora.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11337 >
2021-06-15 14:02:44 +02:00
Daniel Stone
a941f9bf43
ci/bare-metal: Consistently set library paths
...
Everything needs them, so might as well set it up front.
Signed-off-by: Daniel Stone <daniels@collabora.com >
Acked-by: Martin Peres <martin.peres@mupuf.org >
Acked-by: Emma Anholt <emma@anholt.net >
Reviewed-by: Tomeu Vizoso <tomeu.vizoso@collabora.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11337 >
2021-06-15 14:02:44 +02:00
Daniel Stone
813c3324f0
ci: Be consistent about install path
...
Make both LAVA and bare-metal untar into $CI_PROJECT_DIR/install/, and
symlink /install/ to it during init.
Signed-off-by: Daniel Stone <daniels@collabora.com >
Acked-by: Martin Peres <martin.peres@mupuf.org >
Acked-by: Emma Anholt <emma@anholt.net >
Reviewed-by: Tomeu Vizoso <tomeu.vizoso@collabora.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11337 >
2021-06-15 14:02:44 +02:00
Daniel Stone
b9e0aad639
ci: Move bare-metal init script to common directory
...
Signed-off-by: Daniel Stone <daniels@collabora.com >
Acked-by: Martin Peres <martin.peres@mupuf.org >
Acked-by: Emma Anholt <emma@anholt.net >
Reviewed-by: Tomeu Vizoso <tomeu.vizoso@collabora.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11337 >
2021-06-15 14:02:44 +02:00
Daniel Stone
525a21d0ff
ci/bare-metal: Reorder init so network comes first
...
Make sure that everything we need to ensure network access comes first,
so we can reuse this in LAVA which needs the network to pull the
per-pipeline build and the per-job environment overlays.
Signed-off-by: Daniel Stone <daniels@collabora.com >
Acked-by: Martin Peres <martin.peres@mupuf.org >
Acked-by: Emma Anholt <emma@anholt.net >
Reviewed-by: Tomeu Vizoso <tomeu.vizoso@collabora.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11337 >
2021-06-15 14:02:44 +02:00
Daniel Stone
62de8f913a
ci/bare-metal: Try harder to do NTP
...
Same as LAVA does.
Signed-off-by: Daniel Stone <daniels@collabora.com >
Acked-by: Martin Peres <martin.peres@mupuf.org >
Acked-by: Emma Anholt <emma@anholt.net >
Reviewed-by: Tomeu Vizoso <tomeu.vizoso@collabora.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11337 >
2021-06-15 14:02:44 +02:00
Daniel Stone
3c757aa44f
ci/lava: Rename environment variable script
...
Make it line up with bare-metal.
Signed-off-by: Daniel Stone <daniels@collabora.com >
Acked-by: Martin Peres <martin.peres@mupuf.org >
Acked-by: Emma Anholt <emma@anholt.net >
Reviewed-by: Tomeu Vizoso <tomeu.vizoso@collabora.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11337 >
2021-06-15 14:02:44 +02:00
Daniel Stone
0fcb53e8f4
ci/lava: Use HWCI_KERNEL_MODULES to load modules
...
One fewer difference to bare-metal.
Signed-off-by: Daniel Stone <daniels@collabora.com >
Acked-by: Martin Peres <martin.peres@mupuf.org >
Acked-by: Emma Anholt <emma@anholt.net >
Reviewed-by: Tomeu Vizoso <tomeu.vizoso@collabora.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11337 >
2021-06-15 14:02:44 +02:00
Tomeu Vizoso
c06e72791e
ci/bare-metal: Add parens around shell command
...
Play safe and make sure we don't get bit by priority rules between the
|| and | operators.
Signed-off-by: Tomeu Vizoso <tomeu.vizoso@collabora.com >
Suggested-by: Martin Peres <martin.peres@mupuf.org >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11337 >
2021-06-15 14:02:44 +02:00
Daniel Stone
b04e826e33
ci/bare-metal: Rename BM_KERNEL_MODULES to HWCI_KERNEL_MODULES
...
To try to make init more common.
Signed-off-by: Daniel Stone <daniels@collabora.com >
Acked-by: Martin Peres <martin.peres@mupuf.org >
Acked-by: Emma Anholt <emma@anholt.net >
Reviewed-by: Tomeu Vizoso <tomeu.vizoso@collabora.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11337 >
2021-06-15 14:02:44 +02:00
Daniel Stone
aefb2a70d4
ci/lava: Explicitly start Xorg for Iris EGL tests
...
These tests relies on Xorg being started, so let's explicitly declare
that.
Signed-off-by: Daniel Stone <daniels@collabora.com >
Acked-by: Martin Peres <martin.peres@mupuf.org >
Acked-by: Emma Anholt <emma@anholt.net >
Reviewed-by: Tomeu Vizoso <tomeu.vizoso@collabora.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11337 >
2021-06-15 14:02:44 +02:00
Daniel Stone
4e581b0202
ci/lava: Set PIGLIT_NO_WINDOW
...
This got lost in the move away from hardcoded environment variables, and
fixes the Iris EGL tests.
Signed-off-by: Daniel Stone <daniels@collabora.com >
Acked-by: Martin Peres <martin.peres@mupuf.org >
Acked-by: Emma Anholt <emma@anholt.net >
Reviewed-by: Tomeu Vizoso <tomeu.vizoso@collabora.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11337 >
2021-06-15 14:02:44 +02:00
Daniel Stone
b035ea8e7d
ci/lava: Always upload Piglit replay images to MinIO
...
This should probably be set in the trace-job environments, but the
inheritance is a bit of a mess between all the systems at the moment,
and this matches previous hardcoded behaviour at least.
Signed-off-by: Daniel Stone <daniels@collabora.com >
Acked-by: Martin Peres <martin.peres@mupuf.org >
Acked-by: Emma Anholt <emma@anholt.net >
Reviewed-by: Tomeu Vizoso <tomeu.vizoso@collabora.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11337 >
2021-06-15 14:02:44 +02:00
Daniel Stone
1efa5c0ea6
ci/piglit: Fix path to uploaded images
...
Missed this bit when I was reworking environment variables.
Signed-off-by: Daniel Stone <daniels@collabora.com >
Reported-by: Emma Anholt <emma@anholt.net >
Ref: https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11329#note_956187
Acked-by: Martin Peres <martin.peres@mupuf.org >
Acked-by: Emma Anholt <emma@anholt.net >
Reviewed-by: Tomeu Vizoso <tomeu.vizoso@collabora.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11337 >
2021-06-15 14:02:44 +02:00
Pierre-Eric Pelloux-Prayer
b78a38bd02
radeonsi: use si_nir_is_output_const_if_tex_is_const
...
When a blending mode producing "color = src * dst" is used and we
can determine that dst is 1, then the draw call can dropped completely.
Reviewed-by: Marek Olšák <marek.olsak@amd.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10979 >
2021-06-15 11:18:02 +02:00
Pierre-Eric Pelloux-Prayer
83250036be
radeonsi/nir: add si_nir_is_output_const_if_tex_is_const
...
Determine if a given shader write the same constant value to its output
if a specific input texture is replaced by constant load.
It's done by checking if the store_output intrinsics only depends on
constant and a texture. If it's true, the given texture is replaced by
a constant load in cloned shader and this clone is optimized.
Then the output is checked (= is it constant or not).
Reviewed-by: Marek Olšák <marek.olsak@amd.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10979 >
2021-06-15 11:18:02 +02:00
Pierre-Eric Pelloux-Prayer
9675de4c18
radeonsi: use si_install_draw_wrapper for tmz handling
...
Reviewed-by: Marek Olšák <marek.olsak@amd.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10979 >
2021-06-15 10:19:07 +02:00
Pierre-Eric Pelloux-Prayer
b2bd9c5ccd
radeonsi: add si_install_draw_wrapper
...
This allows to implement custom draw_vbo code-path without
touching si_draw_vbo.
As an example, skipped all draw calls with an odd new_draws
could be done like this:
void mywrapper(...) {
if (new_draws % 2)
return;
return sctx->real_draw_vbo(...);
}
if (some_condition_is_met)
si_install_draw_wrapper(sctx, mywrapper);
Instead of having to add the "if ()" condition inside si_draw_vbo.
Note that a single wrapper may be installed so care must be taken
to not override an existing wrapper.
Reviewed-by: Marek Olšák <marek.olsak@amd.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10979 >
2021-06-15 10:19:04 +02:00
Pierre-Eric Pelloux-Prayer
ff8a930cf7
radeonsi: add _once suffix to depth_cleared_level_mask
...
And add a new variable to disambiguate between "has been cleared once" and
"is cleared".
Reviewed-by: Marek Olšák <marek.olsak@amd.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10979 >
2021-06-15 10:19:02 +02:00
Marek Olšák
eb0fa78b68
gallium/u_threaded: merge draws faster by merging indexbuf unreferencing
...
Instead of N times decrementing the index buffer refcount by 1, decrement
it by N once.
Reviewed-by: Rob Clark <robdclark@chromium.org >
Reviewed-By: Mike Blumenkrantz <michael.blumenkrantz@gmail.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11349 >
2021-06-15 04:12:44 +00:00
Hyunjun Ko
639579d116
turnip: Copy command buffers to deferred submit request
...
To make sure the index of global bo table in drm_msm_gem_submit_cmd is
valid at actual submit time.
v1. Move the entry_count calculation into the submit request creation
function.
Fixes : #4877
Fixes: 3f229e34 ("turnip: Implement VK_KHR_timeline_semaphore.")
Signed-off-by: Hyunjun Ko <zzoon@igalia.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11260 >
2021-06-15 02:16:21 +00:00
Dave Airlie
cebbdf5de3
crocus: fix scanout tiling so glamor/modesetting can work.
...
This fixes the scanout tiling to be like iris, with this X/glamor
can run.
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11354 >
2021-06-15 10:58:09 +10:00
Dave Airlie
a7d95bfd5f
crocus: enable GL_EXT_memory_object feature on gen7
...
This is enabled by enabling gallium's memobj capability.
Ports 05cf1e7f36 from iris
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11352 >
2021-06-15 00:02:06 +00:00
Dave Airlie
4a9da4dade
crocus: plumb device/driver UUID generators
...
Ports 456fa9b838 from iris.
Use the same generators as used in anv driver so both Vulkan and OpenGL
drivers can share the same external memory objects.
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11352 >
2021-06-15 00:02:06 +00:00
Dave Airlie
bc9af971d2
crocus: hook up resource creation from memory object
...
Port 772dc50d16 from iris
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11352 >
2021-06-15 00:02:06 +00:00
Dave Airlie
8bf662df52
crocus: hook up memory object creation from handle
...
Port cdb5a72764 from iris
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11352 >
2021-06-15 00:02:06 +00:00
Dave Airlie
9be4eb1688
crocus: Drop buffer support in resource_from_handle
...
Port 9d503b36ca from iris
The callers don't seem to pass targets of PIPE_BUFFER. Stop nesting an
if-else block by dropping support for this target.
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11352 >
2021-06-15 00:02:06 +00:00
Dave Airlie
32728dc66e
crocus: introduce main resource configuration helper.
...
Along the lines of what iris does.
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11352 >
2021-06-15 00:02:06 +00:00
Dave Airlie
1e6e87a3c9
crocus: Make iris_bo_import_dmabuf take a modifier
...
Port 493298528a from iris
Replace the tiling parameter with a modifier parameter. I find it more
straightforward to have this function figure out the tiling from the
modifier than to have its caller do it.
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11352 >
2021-06-15 00:02:06 +00:00
Dave Airlie
4cd0f8535c
crocus: Don't call SET_TILING for dmabuf imports
...
This is a port of c111e9099c from iris to
crocus.
Calling SET_TILING on a DMA buffer with the gen12 CCS modifier can fail
unnecessarily. The main surface in the BO is Y-tiled, but the CCS portion is
linear and can have a stride that's not a multiple of 128B. Because SET_TILING
is called on the CCS plane with I915_TILING_Y, the ioctl will sometimes reject
the stride.
SET_TILING was originally used in b6d45e7f74 to
fix an assertion failure in iris_resource_from_handle. Assigning the BO's
tiling_mode field is sufficient to avoid the failure.
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11352 >
2021-06-15 00:02:06 +00:00
Andres Gomez
98474055d7
ci: remove unzip from several containers that don't use it at all
...
Signed-off-by: Andres Gomez <agomez@igalia.com >
Acked-by: Emma Anholt <emma@anholt.net >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11110 >
2021-06-14 23:39:26 +00:00
Marek Olšák
a6e0650d9c
gallium/u_threaded: use tc_drop_resource_reference in call_draw_single_drawid
...
Reviewed-by: Rob Clark <robdclark@chromium.org >
Reviewed-By: Mike Blumenkrantz <michael.blumenkrantz@gmail.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11335 >
2021-06-14 22:54:03 +00:00
Marek Olšák
988d091720
gallium/u_threaded: clear valid buffer range only if it's not bound for write
...
We can't invalidate the range if a buffer is bound for write because we
would need to add the range that is bound, which we don't track.
This fixes buffer mappings incorrectly promoted to unsynchronized because
the valid range was cleared while the buffers were bound for write.
It also clears the valid range if the invalidation is allowed but skipped.
Reviewed-by: Rob Clark <robdclark@chromium.org >
Reviewed-By: Mike Blumenkrantz <michael.blumenkrantz@gmail.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11335 >
2021-06-14 22:54:03 +00:00
Marek Olšák
2b1677860e
gallium/u_threaded: don't update valid_buffer_range for read-only shader buffers
...
Reviewed-by: Rob Clark <robdclark@chromium.org >
Reviewed-By: Mike Blumenkrantz <michael.blumenkrantz@gmail.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11335 >
2021-06-14 22:54:03 +00:00
Mike Blumenkrantz
14ab4e9a9b
util/prim_restart: use more direct conversion for restart index
...
Reviewed-by: Marek Olšák <marek.olsak@amd.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11363 >
2021-06-14 22:33:35 +00:00
Mike Blumenkrantz
74abd5df0e
aux/tc: pass rebind count and rebind bitmask with replace_buffer_storage func
...
tc already calculates all the rebinding that needs to be done on a given
context, so (some of) this info can be passed on to drivers to enable
optimizations
Reviewed-by: Marek Olšák <marek.olsak@amd.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11245 >
2021-06-14 20:42:47 +00:00
Michel Zou
f9a69cbcd4
zink: Fix win32 build
...
Reviewed-by: Hoe Hao Cheng <haochengho12907@gmail.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11338 >
2021-06-14 19:48:36 +00:00
Michel Zou
d31ea71c44
zink: Drop useless zink_dispatch_table
...
Reviewed-by: Hoe Hao Cheng <haochengho12907@gmail.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11338 >
2021-06-14 19:48:36 +00:00
Emma Anholt
323abf2fb2
ci/piglit: Skip glx_arb_sync_control@timing.* on all systems.
...
The test involves timestamping to figure out how long a swap actually
takes, but if anything ends up rescheduling the process you can end up
spuriously failing. I could easily reproduce flakiness by just running a
loop accessing the filesystem in parallel with a loop running the test.
So, it's certainly not usable on a CI system with other piglit tests
running in parallel, and we don't want to run it if it's going to just
produce flake noise.
Acked-by: Alyssa Rosenzweig <alyssa.rosenzweig@collabora.com >
Reviewed-by: Christian Gmeiner <christian.gmeiner@gmail.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11333 >
2021-06-14 12:09:19 -07:00
Emma Anholt
e594b18d6a
ci/piglit: Move the WGL skip to a common skips file.
...
This will also give us a central place to handle known CI issues for
piglit.
Acked-by: Alyssa Rosenzweig <alyssa.rosenzweig@collabora.com >
Reviewed-by: Christian Gmeiner <christian.gmeiner@gmail.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11333 >
2021-06-14 12:09:19 -07:00
Emma Anholt
e9f9de0d2a
ci/deqp: Skip dEQP-VK.wsi.display.get_display_plane_capabilities
...
The flakiness of this test is due to CI running deqp in parallel, rather
than exposing any underlying driver issue. Just skip it in CI until we
come up with a reasonable way to handle tests to be run in isolation
during a deqp-runner run (likely as part of
https://gitlab.freedesktop.org/anholt/deqp-runner/-/issues/7 ).
Acked-by: Alyssa Rosenzweig <alyssa.rosenzweig@collabora.com >
Reviewed-by: Christian Gmeiner <christian.gmeiner@gmail.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11333 >
2021-06-14 12:09:19 -07:00
Emma Anholt
40c920b945
ci: Add a flakes IRC channel for llvmpipe/softpipe.
...
I'll watch this for deqp flake reports so we can stay on top of them (and
maybe expire those ancient softpipe annotations at some point).
Acked-by: Alyssa Rosenzweig <alyssa.rosenzweig@collabora.com >
Reviewed-by: Christian Gmeiner <christian.gmeiner@gmail.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11333 >
2021-06-14 12:09:19 -07:00
Emma Anholt
0d0d333b7d
ci/softpipe: Move the flake to the flakes list.
...
These flake annotations in the skips list predated having flakes support.
Acked-by: Alyssa Rosenzweig <alyssa.rosenzweig@collabora.com >
Reviewed-by: Christian Gmeiner <christian.gmeiner@gmail.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11333 >
2021-06-14 12:09:19 -07:00
Emma Anholt
9cc1f08919
ci/deqp: Skip flush_finish on all CI jobs.
...
They're too slow to run in CI even on non-tiled renderers, they don't
block conformance (unless you crash), and provide unreliable warning
results unless you isolate them from other activity on the system.
This means that the following jobs now skip these tests:
- deqp-iris-*
- deqp-llvmpipe (you know, the one mentioned in the comment!)
- deqp-virgl-gl
- deqp-zink-lvp
Acked-by: Alyssa Rosenzweig <alyssa.rosenzweig@collabora.com >
Reviewed-by: Christian Gmeiner <christian.gmeiner@gmail.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11333 >
2021-06-14 12:09:19 -07:00
Emma Anholt
e8ca9b99cb
ci/deqp: Drop stress/perf skips lists.
...
The mustpass doesn't have any tests matching these, so no need to
skip. These tests only show up if you run without using a mustpass list.
Acked-by: Alyssa Rosenzweig <alyssa.rosenzweig@collabora.com >
Reviewed-by: Christian Gmeiner <christian.gmeiner@gmail.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11333 >
2021-06-14 12:09:19 -07:00
Andres Gomez
02587c1dd0
ci: bump x86_test-base tag
...
When adding crosvm to the x86_test-gl building deqp-runner was also
mistakenly introduced. deqp-runner is already included in the
x86_test-base image.
Additionally, when bumping the deqp-runner version, only the
x86_test-gl tag was updated.
Now, we remove the unnecessary build from x86_test-gl and bump the tag
for the x86_test-base image.
v2:
- Bump x86_test-gl, not x86_test-vk (Tomeu).
v3: add in fixes for duplicated lines in lvp xfails (Anholt)
Fixes: dc9cd18f52 ("ci: Build Crosvm in our container")
Fixes: 53826932db ("ci: Update piglit and deqp/piglit-runner.")
Signed-off-by: Andres Gomez <agomez@igalia.com >
Reviewed-by: Corentin Noël <corentin.noel@collabora.com >
Reviewed-by: Martin Peres <martin.peres@mupuf.org >
Reviewed-by: Emma Anholt <emma@anholt.net >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11359 >
2021-06-14 18:44:04 +00:00
Emma Anholt
c4a32927ab
ci: Disable Xorg's screensaver entirely.
...
The screensaver kicks in at 10 minutes and obscures the screen,
independent of dpms. This causes piglit tests to get flaky (swaps start
taking a whole second, and swapbuffersmsc-divisor-zero times out at
exactly the wrong time) and slow if the run takes longer than 10 minutes.
Hopefully with this we'll see some piglit glx flakes go away forever, it
did seem to for this test locally.
Reviewed-by: Adam Jackson <ajax@redhat.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11334 >
2021-06-14 17:49:38 +00:00
Alexander Monakov
11da35d86d
freedreno/drm-shim: keep GEM buffers page-aligned
...
Trying to run turnip under drm-shim reveals that pretended device
offsets are not sufficiently aligned, failing this assert in tu_pipeline.c:
/* emit program binary & private memory layout
* binary_iova should be aligned to 1 instrlen unit (128 bytes)
*/
assert((binary_iova & 0x7f) == 0);
Round up BO size to 4096 in msm_ioctl_gem_new to avoid this (the kernel
aligns to page size).
Signed-off-by: Alexander Monakov <amonakov@ispras.ru >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11331 >
2021-06-14 17:30:01 +00:00
Alexander Monakov
a5e4fc3ff5
freedreno/drm-shim: pretend to offer DRM 1.6.0
...
turnip's DRM device interface requires version 1.6 (for SYNCOBJ).
To unblock use of turnip over drm-shim, raise shim's version to 1.6.
This allows to see shader disassembly, while submission fails with
DRM_SHIM: unhandled core DRM ioctl 0xC4 (0xc01064c4)
TU: error: DRM_IOCTL_SYNCOBJ_RESET failure: Invalid argument
Signed-off-by: Alexander Monakov <amonakov@ispras.ru >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11331 >
2021-06-14 17:30:01 +00:00
Rhys Perry
bc1c527834
aco/lower_phis: don't allocate unused temporary ids
...
The excessive number of temporary IDs caused #4872 's live-out sets to be
extremely large and expensive to iterate.
With this change, #4872 's shader is much faster to compile and uses much
less memory.
Signed-off-by: Rhys Perry <pendingchaos02@gmail.com >
Reviewed-by: Daniel Schürmann <daniel@schuermann.dev >
Closes: https://gitlab.freedesktop.org/mesa/mesa/-/issues/4872
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11300 >
2021-06-14 16:48:38 +00:00
Rhys Perry
ecc0353af7
aco/lower_phis: fix undef_operands initialization with >32 predecessors
...
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/11300 >
2021-06-14 16:48:38 +00:00
Samuel Pitoiset
16d5939ff5
radv: fix dynamic rasterizer discard enable state
...
If a pipeline enables rasterizerDiscardEnable statically we have to
properly initialize the value, otherwise it won't be updated when a
new pipeline is bound.
Fixes few dEQP-VK.pipeline.extended_dynamic_state.*disable_raster.
Fixes: dd19bf9d7d ("radv: implement dynamic rasterizer discard enable")
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/11242 >
2021-06-14 16:31:14 +00:00
Rhys Perry
d64f5a3f9d
aco: move VMEM instructions below descriptor loads
...
This is to prevent sequences like:
a = descriptor_load()
vmem(a)
b = descriptor_load()
vmem(b)
and instead create:
a = descriptor_load()
b = descriptor_load()
vmem(a)
vmem(b)
fossil-db (GFX10.3):
Totals from 114521 (78.30% of 146267) affected shaders:
VGPRs: 4540352 -> 4540216 (-0.00%); split: -0.03%, +0.02%
CodeSize: 289864228 -> 289114652 (-0.26%); split: -0.29%, +0.03%
MaxWaves: 2940234 -> 2940338 (+0.00%); split: +0.00%, -0.00%
Instrs: 55112418 -> 54919910 (-0.35%); split: -0.38%, +0.03%
Latency: 956528393 -> 954682011 (-0.19%); split: -0.24%, +0.05%
InvThroughput: 229280830 -> 229238107 (-0.02%); split: -0.04%, +0.02%
VClause: 1141832 -> 1139002 (-0.25%); split: -0.63%, +0.38%
SClause: 2357840 -> 2225008 (-5.63%); split: -6.01%, +0.38%
Copies: 3316040 -> 3331519 (+0.47%); split: -0.31%, +0.77%
Branches: 1187212 -> 1186919 (-0.02%); split: -0.03%, +0.01%
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/6489 >
2021-06-14 15:47:37 +00:00
Rhys Perry
bc71222cd9
aco: don't move descriptor loads below buffer loads
...
fossil-db (GFX10.3):
Totals from 52870 (36.15% of 146267) affected shaders:
VGPRs: 2109936 -> 2110056 (+0.01%); split: -0.01%, +0.01%
CodeSize: 134898056 -> 134812748 (-0.06%); split: -0.08%, +0.02%
MaxWaves: 1347354 -> 1347346 (-0.00%)
Instrs: 25598063 -> 25575415 (-0.09%); split: -0.11%, +0.02%
Latency: 432491613 -> 432047723 (-0.10%); split: -0.12%, +0.02%
InvThroughput: 90940977 -> 90927545 (-0.01%); split: -0.03%, +0.01%
VClause: 570039 -> 570019 (-0.00%); split: -0.05%, +0.04%
SClause: 1145076 -> 1139040 (-0.53%); split: -0.60%, +0.07%
Copies: 1513949 -> 1513102 (-0.06%); split: -0.32%, +0.26%
Branches: 524279 -> 524275 (-0.00%); split: -0.03%, +0.03%
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/6489 >
2021-06-14 15:47:37 +00:00
Rhys Perry
f8bf6b9e0a
aco/ra: use adjust_max_used_regs() in compact_relocate_vars()
...
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/6489 >
2021-06-14 15:47:37 +00:00
Samuel Pitoiset
44e7057304
radv/winsys: remove useless errno.h includes
...
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/11269 >
2021-06-14 15:52:48 +02:00
Samuel Pitoiset
ec7f7a7e33
radv/winsys: adjust some error messages
...
Report the return code from libdrm instead of errno. While we are at it,
fix the function name in radv_amdgpu_wait_timeline_syncobj().
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/11269 >
2021-06-14 15:52:45 +02:00
Bas Nieuwenhuizen
fbf6511e35
gallium/va: Add support for PRIME_2 import.
...
That way we can actually import surfaces with modifiers & metadata
planes.
Tested with patches for ffmpeg to use this with kmsgrab & modifiers.
For AMD & multiplanar formats we always have 1 format plane = 1
memory plane, even with modifiers.
Intel (non Gallium) does have 1 format plane is 2 memory planes
for some modifiers with NV12. Currently with Gallium we don't really
have info about layer/plane ordering so this manually orders things
so that they align with Intel.
This shouldn't impact other drivers as without modifiers with metadata
planes this should give equivalent behavior to the old import path.
Reviewed-and-Tested-by: Leo Liu <leo.liu@amd.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10815 >
2021-06-14 11:38:19 +00:00
Bas Nieuwenhuizen
243475b96c
gallium/vl: Use format plane count for sampler view creation.
...
Extra memory planes don't need a sampler.
Reviewed-and-Tested-by: Leo Liu <leo.liu@amd.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10815 >
2021-06-14 11:38:19 +00:00
Bas Nieuwenhuizen
720ee494e5
radv: Allow DCC images to be compressed with foreign queues.
...
Otherwise we would always decompress when transitioning to the
foreign queue.
Fixes: 8b9033ad0a ("radv: Support DCC modifiers fully.")
Reviewed-by: Samuel Pitoiset <samuel.pitoiset@gmail.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10802 >
2021-06-14 11:20:59 +00:00
Bas Nieuwenhuizen
f44a6c6a54
radv: Actually return correct value for read-only DCC compressedness.
...
Most stuff that depends on the value wouldn't be triggered anyway but
...
Fixes: b5ecf0748a ("radv: Ensure we never decompress or FCE read-only textures.")
Reviewed-by: Samuel Pitoiset <samuel.pitoiset@gmail.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10802 >
2021-06-14 11:20:59 +00:00
Bas Nieuwenhuizen
f7c622307d
radv: Don't skip barriers that only change queues.
...
We depend on the queue mask for some decisions ...
CC: mesa-stable
Reviewed-by: Samuel Pitoiset <samuel.pitoiset@gmail.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10802 >
2021-06-14 11:20:59 +00:00
Rhys Perry
1d50ef9ca6
aco: adjust the condition for expanding vertex fetch data format
...
Instead of avoiding out-of-bounds access, avoid creating a load larger
than the original attribute. This should work just as well, since the only
situations expending a load helped was because we shrunk it first.
Also fixes a bug where a 3 component load (4 components with the first
component skipped) would be incorrectly expanded to 4 components because
the stride check would never be performed. Maybe we should avoid skipping
the first component in some situations, but I'm not sure if it's worth
the VGPR cost.
fossil-db (vega10):
Totals from 583 (0.39% of 149974) affected shaders:
CodeSize: 1496848 -> 1500868 (+0.27%); split: -0.03%, +0.30%
Instrs: 286155 -> 286575 (+0.15%); split: -0.07%, +0.22%
Latency: 2947101 -> 2946865 (-0.01%); split: -0.23%, +0.22%
InvThroughput: 797396 -> 797127 (-0.03%); split: -0.08%, +0.04%
fossil-db (polaris10):
Totals from 583 (0.39% of 151365) affected shaders:
SGPRs: 38880 -> 39216 (+0.86%)
VGPRs: 24440 -> 24356 (-0.34%)
CodeSize: 1506808 -> 1510876 (+0.27%); split: -0.01%, +0.28%
Instrs: 288735 -> 289167 (+0.15%); split: -0.06%, +0.21%
Latency: 2963263 -> 2961884 (-0.05%); split: -0.24%, +0.19%
InvThroughput: 802351 -> 801665 (-0.09%); split: -0.12%, +0.04%
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/9007 >
2021-06-14 09:48:32 +00:00
Rhys Perry
91f8f82806
radv,aco: use all attributes in a binding to obtain an alignment for fetch
...
Instead of assuming scalar alignment for an attribute, we can use the
required alignment of other attributes in a binding to expect a higher
one.
This uses the alignment of all attributes in the pipeline, not just the
ones loaded. This can create slightly better code, but could break
pipelines which relied on unused (and unaligned) attributes no being
loaded. I don't think such pipelines are allowed by the spec.
fossil-db (Sienna Cichlid):
Totals from 44350 (30.32% of 146267) affected shaders:
VGPRs: 1694464 -> 1700616 (+0.36%); split: -0.08%, +0.44%
CodeSize: 60207184 -> 58093836 (-3.51%); split: -3.51%, +0.00%
MaxWaves: 1175998 -> 1174948 (-0.09%); split: +0.02%, -0.11%
Instrs: 11763444 -> 11458952 (-2.59%); split: -2.60%, +0.01%
Latency: 70679612 -> 67062215 (-5.12%); split: -5.27%, +0.15%
InvThroughput: 11482495 -> 11362911 (-1.04%); split: -1.20%, +0.16%
VClause: 359459 -> 343248 (-4.51%); split: -6.36%, +1.85%
SClause: 422404 -> 419229 (-0.75%); split: -1.17%, +0.42%
Copies: 754384 -> 764368 (+1.32%); split: -1.74%, +3.06%
Branches: 197472 -> 197474 (+0.00%); split: -0.03%, +0.03%
PreVGPRs: 1215348 -> 1215503 (+0.01%)
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/9007 >
2021-06-14 09:48:32 +00:00
Tomeu Vizoso
d41faa69ca
Revert "ci: Disable the iris APL jobs"
...
This reverts commit 209c829775 .
They are stable now.
Signed-off-by: Tomeu Vizoso <tomeu.vizoso@collabora.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11355 >
2021-06-14 09:52:03 +02:00
Iago Toral Quiroga
42b351370d
v3dv: handle Vulkan 1.1 feature and property queries
...
Reviewed-by: Alejandro Piñeiro <apinheiro@igalia.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11316 >
2021-06-14 06:26:43 +00:00
Hyunjun Ko
1a773c0009
turnip: add missing VKAPI_ATTR/CALL
...
Signed-off-by: Hyunjun Ko <zzoon@igalia.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11099 >
2021-06-14 02:01:57 +00:00
Dave Airlie
ce04fd10b8
ci: add crocus to the build tests
...
Reviewed-by: Jason Ekstrand <jason@jlekstrand.net >
Acked-by: Emma Anholt <emma@anholt.net >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11146 >
2021-06-14 06:34:05 +10:00
Dave Airlie
f3630548f1
crocus: initial gallium driver for Intel gfx 4-7
...
This is a gallium driver for the Intel gfx 4-7 GPUs.
It was initially cloned from the iris driver by Ilia Mirkin,
then I ported over large reams of code from i965 until it worked.
Acked-by: Jason Ekstrand <jason@jlekstrand.net >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11146 >
2021-06-14 06:34:05 +10:00
Dave Airlie
8da92b5c0a
intel/compiler: add flag to indicate edge flags vertex input is last
...
965 and the mesa st disagree on how vertex elements are ordered when
edgeflags are involved. 965 wants them in gl_vert_attrib order,
but gallium supplies the edgeflag as the last vertex element regardless.
This adds a flag which is enabled for gen4/5 to denote that the
edgeflag is at the end. When we reap 965 later we can resolve this
better.
Reviewed-by: Jason Ekstrand <jason@jlekstrand.net >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11146 >
2021-06-14 06:05:18 +10:00
Dave Airlie
5f03570eaa
intel: reorder base program key.
...
This gets hashed a lot, this reduces the size of this, and the other
keys by a small amount
Reviewed-by: Jason Ekstrand <jason@jlekstrand.net >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11146 >
2021-06-14 06:05:17 +10:00
Dave Airlie
4de8ba15b4
intel/decode: handle gen4/5 WM state fragment shaders
...
Reviewed-by: Jason Ekstrand <jason@jlekstrand.net >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11146 >
2021-06-14 06:05:17 +10:00
Dave Airlie
11d3cebab4
st/mesa: also disable other int textures
...
Reviewed-by: Jason Ekstrand <jason@jlekstrand.net >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11146 >
2021-06-14 06:05:17 +10:00
Rob Clark
0aa6674389
freedreno/a6xx: Improve UBWC demotion logic
...
Sampler/image/surface views with different component sizes also need to
force demotion to uncompressed, as the UBWC metadata is not compatible.
Signed-off-by: Rob Clark <robdclark@chromium.org >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11343 >
2021-06-13 19:10:08 +00:00
Rob Clark
0c3079ce2d
freedreno/a6xx: Handle non-UBWC surface views
...
Similar to sampler views and shader images, if we get a surface view
with a non-UBWC compatible format while the underlying resource is UBWC,
we need to demote to uncompressed.
Signed-off-by: Rob Clark <robdclark@chromium.org >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11343 >
2021-06-13 19:10:08 +00:00
Rob Clark
2964f32cc9
freedreno/a6xx: Fix r16_snorm blits
...
The .NORM bit doesn't seem to do what we think or want.. tu also doesn't
set it, and things seem to work out better when we don't.
Signed-off-by: Rob Clark <robdclark@chromium.org >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11343 >
2021-06-13 19:10:08 +00:00
Rob Clark
ed1e729aa0
freedreno/ci: Sort a630 piglit xfails
...
Next patches fixes a bunch.. it will be easier to not update the xfails
by hand.
Signed-off-by: Rob Clark <robdclark@chromium.org >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11343 >
2021-06-13 19:10:08 +00:00
Hoe Hao Cheng
b5d344c3af
zink: move extension function verification to when it is used
...
Some vulkan functions are not loaded when the corresponding features are
not enabled, but the verifier checks for *all* functions, so make the
verifier more forgiving and use a stub to catch when we actually use a
function that is not loaded.
Reviewed-By: Mike Blumenkrantz <michael.blumenkrantz@gmail.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11328 >
2021-06-13 18:58:34 +00:00
Yiwei Zhang
a0122385f0
anv: fix Android WSI VkFence
...
Fix an obvious one-liner bug.
Signed-off-by: Yiwei Zhang <zzyiwei@chromium.org >
Reviewed-by: Jason Ekstrand <jason@jlekstrand.net >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11344 >
2021-06-13 06:12:31 +00:00
Ilia Mirkin
aa14851340
nv50: use the no-mipmap texture type for 2d ms views
...
There are size restrictions on 2D images which can't accommodate the
*full* 2D MSAA image. There's no way to make it work for 2D MSAA Array
images, but at least for the non-array variants, we can use the
no-mipmap variant which has a larger maximum size.
Fixes dEQP-GLES31.functional.shaders.builtin_functions.texture_size.*2d
Signed-off-by: Ilia Mirkin <imirkin@alum.mit.edu >
Reviewed-by: Karol Herbst <kherbst@redhat.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11285 >
2021-06-12 04:35:59 +00:00
Chia-I Wu
5e4ff4ef1f
venus: add support for external semaphores on Android
...
This is a hack.
Signed-off-by: Chia-I Wu <olvaffe@gmail.com >
Reviewed-by: Yiwei Zhang <zzyiwei@chromium.org >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11253 >
2021-06-11 23:44:45 +00:00
Chia-I Wu
e2ac01aaac
venus: add support for external fence on Android
...
This is a hack.
Signed-off-by: Chia-I Wu <olvaffe@gmail.com >
Reviewed-by: Yiwei Zhang <zzyiwei@chromium.org >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11253 >
2021-06-11 23:44:45 +00:00
Chia-I Wu
74a0c0c08b
venus: update venus-protocol headers
...
Signed-off-by: Chia-I Wu <olvaffe@gmail.com >
Reviewed-by: Yiwei Zhang <zzyiwei@chromium.org >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11253 >
2021-06-11 23:44:45 +00:00
Chia-I Wu
823d889b21
venus: simplify vn_renderer_sync creation
...
Remove the ability to init/release repeatedly.
Signed-off-by: Chia-I Wu <olvaffe@gmail.com >
Reviewed-by: Yiwei Zhang <zzyiwei@chromium.org >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11253 >
2021-06-11 23:44:45 +00:00
Chia-I Wu
517828784c
venus: move vn_renderer_sync_ops to vn_renderer
...
To follow vn_renderer_{shmem,bo}_ops.
Signed-off-by: Chia-I Wu <olvaffe@gmail.com >
Reviewed-by: Yiwei Zhang <zzyiwei@chromium.org >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11253 >
2021-06-11 23:44:45 +00:00
Emma Anholt
eddbb3193f
ci/iris: Enable piglit testing on AML-Y.
...
We use AML-Y since it's pretty fast and we have a bunch of boards running.
In exchange, to keep the farm from getting too busy, we disable
deqp-gles3/31 jobs by default, since the other gens get us pretty good
coverage.
Reviewed-by: Tomeu Vizoso <tomeu.vizoso@collabora.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11193 >
2021-06-11 23:02:31 +00:00
Mike Blumenkrantz
a042211bcb
aux/cso: set flatshade_first onto vbuf when binding rasterizer
...
ensure this value is always updated
Reviewed-by: Marek Olšák <marek.olsak@amd.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10964 >
2021-06-11 22:06:49 +00:00
Mike Blumenkrantz
f679ba562c
util/vbuf: add flatshade_first to vbuf context and api
...
Reviewed-by: Marek Olšák <marek.olsak@amd.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10964 >
2021-06-11 22:06:49 +00:00
Mike Blumenkrantz
2432455390
util/primconvert: add function for setting flatshade_first
...
this is the value that needs to be set, not the actual rasterizer state
original function preserved to avoid driver changes
Acked-by: Rob Clark <robdclark@chromium.org >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10964 >
2021-06-11 22:06:49 +00:00
Mike Blumenkrantz
ca5131638d
aux/cso: store flatshade_first state from rasterizer
...
this is necessary for handling index rewriting
Reviewed-by: Marek Olšák <marek.olsak@amd.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10964 >
2021-06-11 22:06:49 +00:00
Jason Ekstrand
e23b55c3f0
i965: Use nir_lower_passthrough_edgeflags
...
Now that there's a common NIR pass, there's no point in us doing this in
the back-end anymore. In order to use this pass in i965, we do have to
make one tiny change. Gallium runs the pass after assigning input and
output locations and so needs the pass to respect those locations and
num_inputs. i965, however, runs it before any location assignment or
I/O lowering so we don't care. We do, however, need the pass to succeed
with num_inputs == 0 because we set that later.
Reviewed-by: Kenneth Graunke <kenneth@whitecape.org >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11313 >
2021-06-11 21:19:06 +00:00
Dave Airlie
eff418fe57
nir/edgeflags: update outputs written when lowering edge flags.
...
In theory you can rerun the info gather pass, but in practice that
doesn't always end well. Be consistent inside this pass and update the
info.
While we're here, change the inputs read to use VERT_BIT_EDGEFLAG.
Reviewed-by: Jason Ekstrand <jason@jlekstrand.net >
Reviewed-by: Kenneth Graunke <kenneth@whitecape.org >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11313 >
2021-06-11 21:19:06 +00:00
Jason Ekstrand
00dc4e0d83
intel/isl: Use a 4D physical total extent for size calculations
...
With Yf and Ys tiling, everything is actually four dimensional because
we can have multiple depth or multisampled array slices in the same
tile. This commit just enhances the calculations so they can handle it.
Reviewed-by: Topi Pohjolainen <topi.pohjolainen@intel.com >
Reviewed-by: Nanley Chery <nanley.g.chery@intel.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11330 >
2021-06-11 20:51:21 +00:00
Jason Ekstrand
dc764916d9
intel/isl: Make tile logical extents four dimensional
...
Reviewed-by: Topi Pohjolainen <topi.pohjolainen@intel.com >
Reviewed-by: Nanley Chery <nanley.g.chery@intel.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11330 >
2021-06-11 20:51:21 +00:00
Jason Ekstrand
a4dafe1fad
intel/isl: Make the offset helpers four dimensional
...
We need to do this in order to handle Yf and Ys tiling because they use
a four-dimensional tile instead of laying everything out in two
dimensions.
v2 (Jason Ekstrand):
- Update functions added since v1:
- isl_surf_get_image_range_B_tile
- blorp_can_hiz_clear_depth
- get_image_offset_el
Reviewed-by: Topi Pohjolainen <topi.pohjolainen@intel.com > (v1)
Reviewed-by: Nanley Chery <nanley.g.chery@intel.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11330 >
2021-06-11 20:51:21 +00:00
Jason Ekstrand
3f7f6b878c
intel/blorp: Use isl_surf_get_image_offset_B_tile_el in ccs_ambiguate
...
Reviewed-by: Topi Pohjolainen <topi.pohjolainen@intel.com >
Reviewed-by: Nanley Chery <nanley.g.chery@intel.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11330 >
2021-06-11 20:51:21 +00:00
Jason Ekstrand
0eb3d0a8df
intel/isl: Add a isl_surf_get_image_offset_B_tile_el helper
...
Reviewed-by: Topi Pohjolainen <topi.pohjolainen@intel.com >
Reviewed-by: Nanley Chery <nanley.g.chery@intel.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11330 >
2021-06-11 20:51:21 +00:00
Emma Anholt
6cfd1298e1
ci/fastboot: Consistently restart the run on intermittent conditions.
...
Not currently on my list of intermittent issues, but let's be
resilient hopefully.
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11308 >
2021-06-11 20:24:55 +00:00
Emma Anholt
fe70badfc3
ci/fastboot: Add a serial timeout to catch fastboot prompt failure.
...
The a530s will occasionally fail to make it to the fastboot prompt,
with no other deltas between a working log and a log stalled waiting
for that line to show up.
So, add a serial timeout (like the rpi boards do for similar reasons),
and on timeout restart the run. We actually restart the whole serial
watching process, because the SerialBuffer finishes itself on timeout.
This should also help with the intermittent issue we've had where a
power cycle causes the python serial module to throw an exception.
Tested with the gitlab-disabled db820c that never makes it to the
fastboot prompt (I think it's one where we need a longer micro cable
to connect it!) and saw successful boot looping to retry.
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11308 >
2021-06-11 20:24:55 +00:00
Chia-I Wu
a084e79a49
venus: document the darkest corner of venus
...
The "Optional Requirements" section is fine. The
"VK_MEMORY_PROPERTY_HOST_VISIBLE_BIT" section details how venus goes
out-of-spec and becomes illegal.
Signed-off-by: Chia-I Wu <olvaffe@gmail.com >
Reviewed-by: Yiwei Zhang <zzyiwei@chromium.org >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11277 >
2021-06-11 12:21:27 -07:00
Mike Blumenkrantz
2428786d64
zink: fix typo that's definitely not at all embarrassing or anything like that
...
and also adjust some formatting to pad out the diff and really make sure nobody
notices that anything was ever amiss here
Fixes: 787412b7eb ("zink: break out region overlap testing function into helper")
Reviewed-by: Erik Faye-Lund <erik.faye-lund@collabora.com >
Reviewed-by: Alyssa Rosenzweig <alyssa.rosenzweig@collabora.com >
Reviewed-by: Joshua Ashton <joshua@froggi.es >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11279 >
2021-06-11 17:43:53 +00:00
Mike Blumenkrantz
5b3e8d3d6f
lavapipe: use cso caching
...
really this only needs cso_cache api, but it's cumbersome to redo all
the hashing and state creation, so just use the whole context
Reviewed-by: Dave Airlie <airlied@redhat.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11071 >
2021-06-11 17:19:36 +00:00
Mike Blumenkrantz
a73cb106a6
aux/cso: split cso_destroy_context into unbind and a destroy functions
...
this makes the unbind function reusable
Reviewed-by: Marek Olšák <marek.olsak@amd.com >
Reviewed-by: Dave Airlie <airlied@redhat.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11071 >
2021-06-11 17:19:36 +00:00
Mike Blumenkrantz
3b66d70fba
aux/cso: add flag to disable vbuf
...
it may be known in advance that vbuf shouldn't be used, so allow users
to skip this in case caps would otherwise enable it
Reviewed-by: Marek Olšák <marek.olsak@amd.com >
Reviewed-by: Dave Airlie <airlied@redhat.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11071 >
2021-06-11 17:19:36 +00:00
Mike Blumenkrantz
377936ee76
zink: clamp PIPE_CAP_MAX_VIEWPORTS to PIPE_MAX_VIEWPORTS
...
this is all we need
Reviewed-by: Erik Faye-Lund <erik.faye-lund@collabora.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11322 >
2021-06-11 11:01:46 -04:00
Hoe Hao Cheng
acc9fb18a1
zink: do not fail when EXT_calibrated_timestamps is unavailable
...
Fixes: 039078fe ("zink: slight refactor of load_device_extensions()")
Acked-by: Danylo Piliaiev <dpiliaiev@igalia.com >
Reviewed-by: Erik Faye-Lund <erik.faye-lund@collabora.com >
Reviewed-by: Mike Blumenkrantz <michael.blumenkrantz@gmail.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11314 >
2021-06-11 13:26:30 +00:00
Mike Blumenkrantz
5f61382280
zink: use scissor region for discarding clears during blit
...
ensure that clears aren't being mistakenly discarded or applied due to
scissor region being ignored and full surface geometry being used
Fixes: a8e047e8f4 ("zink: discard pending clears during blit/copy if we'll overwrite the data")
Reviewed-by: Dave Airlie <airlied@redhat.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11307 >
2021-06-11 12:48:44 +00:00
Daniel Stone
df402eb83e
ci/lava: Avoid tee as it ruins exit status
...
I was today years old when I learned this about classic composable UNIX
tools:
~/mesa/mesa lava-submitter-overlay * % bash
[daniels@strictly mesa]$ set -e
[daniels@strictly mesa]$ false | tee
[daniels@strictly mesa]$ echo $?
0
Use tail rather than tee, so it doesn't hide our exit status.
Signed-off-by: Daniel Stone <daniels@collabora.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11309 >
2021-06-11 12:13:00 +00:00
Daniel Stone
1788017e23
ci/lava: Dump and artifact YAML again
...
Now it's safe to do so without leaking JWTs, dump the generated YAML to
make it easier to reproduce things.
Signed-off-by: Daniel Stone <daniels@collabora.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11309 >
2021-06-11 12:13:00 +00:00
Daniel Stone
bbf5f412ab
ci/lava: Disable stdout/stderr buffering
...
Frequency of writes is unlikely to be a performance bottleneck, and
given the number of steps in between execution and the user, less
buffering is gooder.
Signed-off-by: Daniel Stone <daniels@collabora.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11309 >
2021-06-11 12:13:00 +00:00
Daniel Stone
82631c7182
ci/lava: Add explicit fatal-error handler
...
Truth is relative in 2021, and Python's duck-typing means truthiness
isn't what you think it is. Use an explicit fatal-error handler to make
sure we crash out hard on failure, rather than hoping sys.exit() behaves
like you think it does, because it doesn't.
Signed-off-by: Daniel Stone <daniels@collabora.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11309 >
2021-06-11 12:13:00 +00:00
Daniel Stone
4082fe7ce2
ci/lava: Remove unused arguments
...
Signed-off-by: Daniel Stone <daniels@collabora.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11309 >
2021-06-11 12:13:00 +00:00
Daniel Stone
d23c80eaee
ci/lava: Generate job name from lava-submit.sh
...
Just use the CI job name rather than open-coding the parameters.
Signed-off-by: Daniel Stone <daniels@collabora.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11309 >
2021-06-11 12:13:00 +00:00
Daniel Stone
11ac035c2b
ci/panfrost: Remove useless variable
...
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11309 >
2021-06-11 12:13:00 +00:00
Daniel Stone
d0e5203855
ci/lava: Use per-job rootfs overlay for environment
...
Trying to get arbitrary strings suitably quoted for shell, embedded in a
YAML file, processed by Python templating, is like seven bad ideas all
embedded into one big can of bees.
Reuse the same script we use for bare-metal to generate the environment,
tar that up into a per-job overlay which is added to the
inter-pipeline-reusable rootfs built by the container jobs and the
intra-pipeline-reusable overlay built by the build jobs.
@anholt wrote a chunk of this - replacing the $ENV_VARS GitLab CI
variable with a Python loop across the POSIX job environment - in
!11192 , but this still had YAML quoting nightmares, and was more
needless duplication between LAVA and bare-metal.
The diff is large and annoying, but is mostly a sed job to get
ENV_VARS="FOO=bar BAZ=quux" into FOO: bar\nBAZ: quux.
Signed-off-by: Daniel Stone <daniels@collabora.com >
Co-authored-by: Emma Anholt <emma@anholt.net >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11309 >
2021-06-11 12:13:00 +00:00
Daniel Stone
0cccf00436
ci: Use JOB_ARTIFACTS_BASE for Piglit fails
...
It's not Piglit-specific per se, it's just another per-job artifact
upload which needs to be made visible through MinIO.
Signed-off-by: Daniel Stone <daniels@collabora.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11309 >
2021-06-11 12:13:00 +00:00
Daniel Stone
d5d3dd7d97
ci: Add JOB_ARTIFACTS_BASE variable
...
Used for both LAVA (uploading results to MinIO because we don't yet have
non-ephemeral NFS storage) and Piglit (for the Tracie dashboard).
Signed-off-by: Daniel Stone <daniels@collabora.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11309 >
2021-06-11 12:13:00 +00:00
Daniel Stone
79a0220d28
ci: Make PIPELINE_ARTIFACTS_BASE a common variable
...
$minio/artifacts/$project/$pipeline/ is common between all our CI.
Signed-off-by: Daniel Stone <daniels@collabora.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11309 >
2021-06-11 12:13:00 +00:00
Daniel Stone
0fd2320c94
ci/lava: Clean up variable naming, document them
...
Our variable names haven't aged very well. Rename them to make them more
clear and straightforward, especially when we bring in a third rootfs
element to download.
Signed-off-by: Daniel Stone <daniels@collabora.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11309 >
2021-06-11 12:13:00 +00:00
Daniel Stone
561a1a9ad9
ci/lava: Wrap submission in a shell script
...
Just do what we're already doing but in a shell script, which will make
it less tedious to expand out later.
Signed-off-by: Daniel Stone <daniels@collabora.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11309 >
2021-06-11 12:13:00 +00:00
Daniel Stone
d5262a933e
ci/lava: Cosmetic reordering of job init
...
Split our init up into: base system setup (filesystem mounts, network),
pulling the build artifacts, environment common to us and bare-metal,
bespoke environment, and finally running the tests.
Signed-off-by: Daniel Stone <daniels@collabora.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11309 >
2021-06-11 12:13:00 +00:00
Daniel Stone
f3d69923a1
ci/lava: Pass JWT separately from environment variables
...
As the JWT is sensitive, we don't want to record or leak it anywhere.
Doing this lets us run --dump-yaml in normal execution so we can
artifact the result, as well as bringing us into line with bare-metal.
Signed-off-by: Daniel Stone <daniels@collabora.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11309 >
2021-06-11 12:13:00 +00:00
Daniel Stone
5793cefff8
ci/lava: Move LAVA files to lava/
...
Signed-off-by: Daniel Stone <daniels@collabora.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11309 >
2021-06-11 12:13:00 +00:00
Daniel Stone
34bb4412a3
ci/bare-metal: Don't leak JWT into logs
...
The JWT is sensitive - as it can be used to access e.g. private traces -
so we don't want it anywhere in our logs.
Signed-off-by: Daniel Stone <daniels@collabora.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11309 >
2021-06-11 12:13:00 +00:00
Daniel Stone
a86449cb96
ci/bare-metal: Factor out environment to a separate script
...
This will let us reuse the same environment generation for both
bare-metal and LAVA.
Signed-off-by: Daniel Stone <daniels@collabora.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11309 >
2021-06-11 12:13:00 +00:00
Erico Nunes
479bda7848
meson: kmsro: require dri3 for X11
...
The current implementation in kmsro relies on buffer sharing using
WINSYS_HANDLE_TYPE_FD, which in x11 is only used by default when dri3
is enabled.
Since the current implementation will not work without it, we can
prevent user error by checking that it is not disabled at configuration
time.
Closes #4861
Signed-off-by: Erico Nunes <nunes.erico@gmail.com >
Reviewed-by: Adam Jackson <ajax@redhat.com >
Reviewed-by: Eric Engestrom <eric@engestrom.ch >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11305 >
2021-06-11 11:12:43 +00:00
Daniel Schürmann
bb1c06343d
aco/ra: refactor register assignment for vector operands
...
No functional changes.
Reviewed-by: Tony Wasserka <tony.wasserka@gmx.de >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/8764 >
2021-06-11 12:35:46 +02:00
Daniel Schürmann
09b99f1b7c
aco/ra: refactor affinity coalescing
...
Also adds v_interp_p2_f32 to the list of
affinity-related instructions.
Totals from 68 (0.05% of 149839) affected shaders (GFX10.3):
CodeSize: 792928 -> 792056 (-0.11%)
Instrs: 152843 -> 152625 (-0.14%)
Latency: 1235353 -> 1235278 (-0.01%)
InvThroughput: 224087 -> 224049 (-0.02%)
Copies: 9218 -> 9000 (-2.36%)
Reviewed-by: Tony Wasserka <tony.wasserka@gmx.de >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/8764 >
2021-06-11 12:35:31 +02:00
Daniel Schürmann
3a98f484d1
aco/ra: only create phi-affinities for killed operands
...
If a phi-operand is not killed, it must be copied anyway.
The additional affinity would only overwrite any potential
better affinity that was already created
Totals from 1067 (0.71% of 149839) affected shaders (GFX10.3):
VGPRs: 68072 -> 68064 (-0.01%)
CodeSize: 8252588 -> 8245220 (-0.09%); split: -0.12%, +0.03%
Instrs: 1596146 -> 1593941 (-0.14%); split: -0.16%, +0.02%
Latency: 18828176 -> 18823914 (-0.02%); split: -0.08%, +0.06%
InvThroughput: 3575063 -> 3574787 (-0.01%); split: -0.05%, +0.04%
VClause: 24345 -> 24325 (-0.08%); split: -0.16%, +0.07%
Copies: 88712 -> 87398 (-1.48%); split: -1.77%, +0.29%
Branches: 52067 -> 51364 (-1.35%); split: -1.38%, +0.03%
Reviewed-by: Tony Wasserka <tony.wasserka@gmx.de >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/8764 >
2021-06-11 12:35:12 +02:00
Erik Faye-Lund
6e2d8ab808
zink: limit non-extension version feature to spirv 1.5
...
In order to use the Vulkan 1.2 core viewport and layer shader outputs,
we need to use SPIR-V 1.5. But we've recently added some preliminary
support to compute the SPIR-V version we're using, with the intention of
adding a SPIR-V version override to work around bugs in tools like
RenderDoc. We haven't implemented the latter yet.
But just to be safe, let's limit this to SPIR-V 1.5. This isn't going to
matter right now, but it might avoid a problem if we decide to finish up
the SPIR-V version overriding.
Reviewed-by: Hoe Hao Cheng <haochengho12907@gmail.com >
Reviewed-By: Mike Blumenkrantz <michael.blumenkrantz@gmail.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11259 >
2021-06-11 09:52:32 +00:00
Erik Faye-Lund
96c2036e11
zink: reject more illegal blits
...
Vulkan has some additional restrictions for vkCmdBlitImage that we
weren't testing for. Quting the Vulkan 1.2 spec, section 20.5 "Image
Copies with Scaling", "Valid Usage" subsection:
- If either of srcImage or dstImage was created with a signed integer
VkFormat, the other must also have been created with a signed integer
VkFormat
- If either of srcImage or dstImage was created with an unsigned integer
VkFormat, the other must also have been created with an unsigned
integer VkFormat.
So let's make sure we reject these illegal blits.
Reviewed-By: Mike Blumenkrantz <michael.blumenkrantz@gmail.com >
Reviewed-by: Hoe Hao Cheng <haochengho12907@gmail.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11217 >
2021-06-11 09:40:53 +00:00
Erik Faye-Lund
b16c12b0a0
zink/ci: re-enable test
...
Since f34ff03702 ("zink/ci: increase piglit and deqp-runner timeouts"),
we're no longer dangerously close to timing out this test, so it should
be safe to re-enable this.
Acked-by: Mike Blumenkrantz <michael.blumenkrantz@gmail.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11288 >
2021-06-11 09:27:24 +00:00
Erik Faye-Lund
f530e72ea0
llvmpipe: do not always use pixel-rounded coordinates for points
...
LLVMpipe always used the bounding-box to rasterize-points, rather than
the actual rasterization-planes. This happened because the primitive was
expanded by one unit outside the bounding box. While this kinda work for
non-multisampled cases, it's not really quite *correct*.
Rasterization of non-legacy points in OpenGL is defined as the
intersection of a the pixel centers with a rectangle of size width and
height, centered around the point in viewport coordinates. This applies
both to multi-sampled and non-multisampled cases.
So let's fix the rasterizer to use the correct definition in both cases.
We leave the legacy case as-is, and just do the inverse adjustment
there so the end result should be the same.
This fixes the following dEQP test-cases:
- dEQP-GLES3.functional.rasterization.fbo.rbo_multisample_4.primitives.points
- dEQP-GLES3.functional.rasterization.fbo.rbo_multisample_max.primitives.points
...as well as this one for Lavapipe:
- dEQP-VK.rasterization.primitives_multisample_4_bit.no_stipple.points
Reviewed-by: Roland Scheidegger <sroland@vmware.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11183 >
2021-06-11 09:57:58 +02:00
Erik Faye-Lund
cef08f0557
llvmpipe: fix multisample lines again
...
This does a little bit better than what we did in 2c0a078fdb
("llvmpipe: fix multisample lines."), where parts of the diamond-exit
rule stuff was bypassed. But we should actually bypass *all* of the
diamond-exit rule stuff here instead.
The reason is that multisampled lines have a completely differently
specified set of rasterization rules, as per the OpenGL 4.6 core spec,
section 14.5.4 ("Line Multisample Rasterization").
So let's give multisampled lines their own geometry-generation codepath
instead.
This fixes the following dEQP tests:
- dEQP-GLES3.functional.rasterization.fbo.rbo_multisample_4.primitives.lines
- dEQP-GLES3.functional.rasterization.fbo.rbo_multisample_max.primitives.lines
Reviewed-by: Roland Scheidegger <sroland@vmware.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11183 >
2021-06-11 09:57:58 +02:00
Erik Faye-Lund
9fa53d1f50
llvmpipe: consistently deal with post-rast state
...
There's no good reason why we peek into the rasterization state when
dealing with the point_quad_rasterization state, rather than set it
through lp_setup_set_point_state like other point-state.
Let's fix this up, and get rid of a needless NULL-check per primitive.
This makes the code a bit easier to read as well, and will help once
these conditions gets more complicated later on.
Reviewed-by: Roland Scheidegger <sroland@vmware.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11183 >
2021-06-11 09:57:58 +02:00
Erik Faye-Lund
2812f030f1
llvmpipe: fix edge-rule logic for lines
...
In 2737abb44e , the handling of pixel-offsets and edge rules were
untangled, but one case was missed.
This fixes the following dEQP test-cases on VirGL + LLVMpipe
- dEQP-GLES2.functional.draw.random.10
- dEQP-GLES2.functional.draw.random.42
- dEQP-GLES3.functional.draw.random.105
- dEQP-GLES3.functional.draw.random.114
- dEQP-GLES3.functional.draw.random.135
- dEQP-GLES3.functional.draw.random.144
- dEQP-GLES3.functional.draw.random.155
- dEQP-GLES3.functional.draw.random.174
- dEQP-GLES3.functional.draw.random.206
- dEQP-GLES3.functional.draw.random.31
- dEQP-GLES3.functional.draw.random.43
- dEQP-GLES3.functional.draw.random.84
- dEQP-GLES31.functional.draw_indirect.random.20
...as well as these on Zink + Lavapipe:
- spec@nv_primitive_restart@primitive-restart-disable_vbo
- spec@nv_primitive_restart@primitive-restart-vbo_combined_vertex_and_index
- spec@nv_primitive_restart@primitive-restart-vbo_index_only
- spec@nv_primitive_restart@primitive-restart-vbo_separate_vertex_and_index
- spec@nv_primitive_restart@primitive-restart-vbo_vertex_only
Fixes: 2737abb44e ("gallium: Replace gl_rasterization_rules with lower_left_origin and half_pixel_center.")
Reviewed-by: Roland Scheidegger <sroland@vmware.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11183 >
2021-06-11 09:57:56 +02:00
Yiwei Zhang
d0d1b66d8e
virgl: forward the host renderer hardware info
...
Some game engines rely on the real hardware info to adjust default
graphics quality and other attributes.
Prepend "virgl" to avoid app compat issues and to distinguish from
native platforms while giving engines/apps a chance to adjust graphics
defaults.
Signed-off-by: Yiwei Zhang <zzyiwei@chromium.org >
Reviewed-by: Erik Faye-Lund <erik.faye-lund@collabora.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11179 >
2021-06-11 06:47:02 +00:00
Georg Lehmann
d3f735a249
ac: Enable 32bit predication on gfx9 with fw feature version 52.
...
Amdvlk does this as well and it passes the vulkan CTS on renoir.
Signed-off-by: Georg Lehmann <dadschoorse@gmail.com >
Reviewed-by: Samuel Pitoiset <samuel.pitoiset@gmail.com >
Reviewed-by: Marek Olšák <marek.olsak@amd.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11297 >
2021-06-11 06:07:10 +00:00
Georg Lehmann
fc437ef944
ac: Enable 32bit predication on gfx10.
...
Signed-off-by: Georg Lehmann <dadschoorse@gmail.com >
Reviewed-by: Samuel Pitoiset <samuel.pitoiset@gmail.com >
Reviewed-by: Marek Olšák <marek.olsak@amd.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11297 >
2021-06-11 06:07:10 +00:00
Georg Lehmann
a41ba20cbd
ac: Check me_fw_feature for 32bit predication on gfx10.3
...
Signed-off-by: Georg Lehmann <dadschoorse@gmail.com >
Reviewed-by: Samuel Pitoiset <samuel.pitoiset@gmail.com >
Reviewed-by: Marek Olšák <marek.olsak@amd.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11297 >
2021-06-11 06:07:10 +00:00
Samuel Pitoiset
4026a07e74
radv: fix aligning the image offset by using align64()
...
This doesn't fix anything known. Found by inspection.
Cc: 21.1 mesa-stable
Signed-off-by: Samuel Pitoiset <samuel.pitoiset@gmail.com >
Reviewed-by: Bas Nieuwenhuizen <bas@basnieuwenhuizen.nl >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11302 >
2021-06-11 07:35:32 +02:00
Mike Blumenkrantz
9fdb6f56e1
util/disk_cache: add nocopy variant of disk cache store function
...
this is a bit more convenient in some cases
Reviewed-by: Timothy Arceri <tarceri@itsqueeze.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11304 >
2021-06-11 03:09:22 +00:00
Yiwei Zhang
1b74a12ea0
egl/android: add aosp_nougat system/window.h back for back compat
...
Also layer ANativeWindow_* APIs on top of legacy APIs for api level less
than 26 in a new platform_android.h header.
v2: persist frozen system/window.h header
Signed-off-by: Yiwei Zhang <zzyiwei@chromium.org >
Reviewed-by: Rob Clark <robdclark@chromium.org > (v1)
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11286 >
2021-06-11 02:33:57 +00:00
Rob Clark
1a716f5f06
docs: Update freedreno features
...
Bring features.txt a bit more up to date.
Signed-off-by: Rob Clark <robdclark@chromium.org >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11311 >
2021-06-11 01:47:22 +00:00
Rob Clark
5a32976a1d
freedreno: Add missing valid range tracking for SSBOs/images
...
Normally TC takes care of this for us. But we might as well not get it
wrong in cases where TC is disabled.
Reported-by: Alyssa Rosenzweig <alyssa@collabora.com >
Signed-off-by: Rob Clark <robdclark@chromium.org >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11311 >
2021-06-11 01:47:22 +00:00
Rob Clark
476f86fcb2
freedreno/registers: add A5XX_RBBM_STATUS3 bit
...
Same bit as a6xx.
Signed-off-by: Rob Clark <robdclark@chromium.org >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11311 >
2021-06-11 01:47:22 +00:00
Emma Anholt
71c59aa413
ci/piglit: Skip WGL on all the Linux runs.
...
We don't build the tests, since we don't have WGL.
Reviewed-by: Juan A. Suarez <jasuarez@igalia.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11283 >
2021-06-10 23:45:36 +00:00
Emma Anholt
ea25090aab
ci/freedreno: Enable running all of piglit_gl for a530's manual test.
...
Otherwise the xfails will end up stale after piglit uprevs that change the
test set.
Reviewed-by: Juan A. Suarez <jasuarez@igalia.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11283 >
2021-06-10 23:45:36 +00:00
Emma Anholt
53826932db
ci: Update piglit and deqp/piglit-runner.
...
This brings in some major new features in the runner:
- piglit tests now include subtest reporting
- "-t" support for quick include-filtering of tests.
- piglit tests that crash after their result report are considered crashes.
- throws a nice error if you try to annotate the same failure twice
(e.g. lvp's dEQP-VK.glsl.builtin.precision.pow.highp.vec2,Fail)
Since the runner catches piglit test bugs where the same subtest is run
twice, we also uprev piglit to pull in the fixes for those.
Reviewed-by: Juan A. Suarez <jasuarez@igalia.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11283 >
2021-06-10 23:45:36 +00:00
Tomeu Vizoso
e210ed60be
ci/lava: Don't overwrite PIGLIT_REPLAY_EXTRA_ARGS
...
Other Piglit jobs will want different values for this env var.
Signed-off-by: Tomeu Vizoso <tomeu.vizoso@collabora.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11293 >
2021-06-10 21:05:48 +00:00
Daniel Stone
2745fec6b9
ci/lava: Add --dump-yaml option to submitter
...
Also useful for local development and testing.
Signed-off-by: Daniel Stone <daniels@collabora.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11293 >
2021-06-10 21:05:48 +00:00
Daniel Stone
d5673dacd6
ci/lava: Add validate-only mode to job submitter
...
Useful for development.
Signed-off-by: Daniel Stone <daniels@collabora.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11293 >
2021-06-10 21:05:48 +00:00
Tomeu Vizoso
eddd2d332c
ci/lava: Improve error reporting in lava_job_submitter.py
...
I'm having trouble figuring out why this is breaking.
Signed-off-by: Tomeu Vizoso <tomeu.vizoso@collabora.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11293 >
2021-06-10 21:05:48 +00:00
Emma Anholt
d5204e0657
ci/lava: Finish garbage-collecting the TEST_SUITE variable
...
We no longer name the template by the test suite being run.
Fixes: 93ec399b28 ("ci: Use a single template for LAVA jobs")
Acked-by: Alyssa Rosenzweig <alyssa.rosenzweig@collabora.com >
Acked-by: Daniel Stone <daniels@collabora.com >
Reviewed-by: Tomeu Vizoso <tomeu.vizoso@collabora.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11293 >
2021-06-10 21:05:48 +00:00
Paulo Zanoni
7e96ea1294
iris: don't munmap NULL pointers
...
This is a regression, the previous commit had this check which was
removed in the patch mentioned below. What happens is that when we
have a buffer that's not mmapped and we try to bo_free it we get some
very funny backtraces. Easily reproducible with fullscreen
gputest.triangle.
Fixes: f62724ccac ("iris: Pick a single mmap mode (WB/WC) at BO allocation time")
Closes: https://gitlab.freedesktop.org/mesa/mesa/-/issues/4890
Tested-by: Michel Dänzer <mdaenzer@redhat.com >
Reviewed-by: Lionel Landwerlin <lionel.g.landwerlin@intel.com >
Reviewed-by: Kenneth Graunke <kenneth@whitecape.org >
Signed-off-by: Paulo Zanoni <paulo.r.zanoni@intel.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11284 >
2021-06-10 20:49:59 +00:00
Dave Airlie
e8956abe16
iris: drop unused function declaration
...
Reviewed-by: Jason Ekstrand <jason@jlekstrand.net >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11306 >
2021-06-10 20:33:49 +00:00
Hoe Hao Cheng
8343cb923d
zink/codegen: clean the constructor of Extension up
...
the `functions` parameter is now unused, also rewrote some comments
since they are now outdated
Reviewed-By: Mike Blumenkrantz <michael.blumenkrantz@gmail.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11036 >
2021-06-10 20:24:40 +00:00
Hoe Hao Cheng
bec1e8d3fd
zink/codegen: allow conditional enabling of instance extensions
...
Reviewed-By: Mike Blumenkrantz <michael.blumenkrantz@gmail.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11036 >
2021-06-10 20:24:40 +00:00
Hoe Hao Cheng
5574868103
zink: use the dispatch tables
...
- removed all usage of GET_PROC_ADDR
- find-and-replaced all instances of `screen->vk_` to `screen->vk.`
Reviewed-By: Mike Blumenkrantz <michael.blumenkrantz@gmail.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11036 >
2021-06-10 20:24:40 +00:00
Hoe Hao Cheng
039078fe97
zink: slight refactor of load_device_extensions()
...
Reviewed-By: Mike Blumenkrantz <michael.blumenkrantz@gmail.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11036 >
2021-06-10 20:24:40 +00:00
Hoe Hao Cheng
c3608e6ac0
zink/codegen: add zink_verify_*_extensions()
...
those are meant to be used with the dispatch tables, by checking whether
the functions added by the enabled extensions are actually loaded
Reviewed-By: Mike Blumenkrantz <michael.blumenkrantz@gmail.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11036 >
2021-06-10 20:24:40 +00:00
Hoe Hao Cheng
94fba09432
zink/codegen: split commands into three groups
...
Reviewed-By: Mike Blumenkrantz <michael.blumenkrantz@gmail.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11036 >
2021-06-10 20:24:40 +00:00
Hoe Hao Cheng
ed2fb8099e
zink: introduce vk_dispatch_table
...
Reviewed-By: Mike Blumenkrantz <michael.blumenkrantz@gmail.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11036 >
2021-06-10 20:24:40 +00:00
Connor Abbott
c88eb66814
ir3: Copy propagate immed/const to meta instructions
...
This is allowed with the new RA, and makes a huge difference in
preventing extra moves when preferential coloring doesn't work.
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/9842 >
2021-06-10 12:24:06 -07:00
Connor Abbott
a61a9cd65d
ir3: Insert output collects in the main shader
...
We were inserting them in what was NIR's end block with the "end"
instruction, which meant that the moves they generated couldn't be
scheduled with the rest of the last block as part of post-RA scheduling.
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/9842 >
2021-06-10 12:24:06 -07:00
Connor Abbott
fa17295ebd
ir3: Add simple CSE pass
...
RA currently can't handle a live value that's part of a vector and
introduces extra copies. This was espeically a problem for bary.f, where
the bary coords were being split and repeatedly re-collected. But this
could be a problem in other situations as well.
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/9842 >
2021-06-10 12:24:06 -07:00
Connor Abbott
b1a1de76e8
ir3/sched: Consider unused destinations when computing live effect
...
If an instruction's destination is unused, then we shouldn't penalize
it. For example, this helps us schedule atomic operations whose results
aren't read. This works around RA failures when CSE is enabled in some
robustness2 tests.
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/9842 >
2021-06-10 12:24:06 -07:00
Connor Abbott
ba8efeb7fa
ir3/sched: Make collects count against tex/sfu limits
...
In a scenario where there are a lot of texture fetches with constant
coordinates, this prevents the scheduler from scheduling all the setup
instructions after the first group of textures has been scheduled
because they are the only non-syncing thing and scheduling them didn't
decrease tex_delay. Collects with immed/const sources will turn into
moves of those sources, so we should treat them the same.
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/9842 >
2021-06-10 12:24:06 -07:00
Connor Abbott
8b15c2f30c
ir3/sched: Don't schedule collect early
...
I don't think there was ever a good reason to do this, but when we start
folding constants/immediates into collect, this can become actively
harmful.
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/9842 >
2021-06-10 12:24:06 -07:00
Connor Abbott
27593cb241
ir3: Remove right and left copy prop restrictions
...
This is leftover from the old RA, and inhibits copy propagation
unnecessarily with the new RA.
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/9842 >
2021-06-10 12:24:06 -07:00
Connor Abbott
2f51379d03
ir3/ra: Add a validation pass
...
This helps catch tricky-to-debug bugs in RA, or helps rule them out.
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/9842 >
2021-06-10 12:24:06 -07:00
Connor Abbott
0ffcb19b9d
ir3: Rewrite register allocation
...
Switch to the new SSA-based register allocator.
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/9842 >
2021-06-10 12:24:06 -07:00
Connor Abbott
df9f41cc02
ir3: Expose occupancy calculation functions
...
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/9842 >
2021-06-10 12:24:06 -07:00
Connor Abbott
3ac743c333
ir3: Add pass to lower arrays to SSA
...
This will be run right after nir->ir3. Even though we have SSA coming
out of NIR, we still need it for NIR registers, even though we keep the
original array around to insert false dependencies.
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/9842 >
2021-06-10 12:24:04 -07:00
Connor Abbott
d4b5a550ed
ir3: Add dominance infrastructure
...
Mostly lifted from nir.
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/9842 >
2021-06-10 12:20:38 -07:00
Connor Abbott
1f3546c9e2
ir3: Remove unused check_src_cond()
...
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/9842 >
2021-06-10 12:20:38 -07:00
Connor Abbott
c0789395e0
ir3/postsched: Don't use SSA source information
...
This was only used for calculating if a source is a tex or SFU
instruction, which is easily replacable. It's going away with the new
RA.
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/9842 >
2021-06-10 12:20:38 -07:00
Connor Abbott
c947475533
ir3/delay: Delete pre-RA repeat handling
...
It looks likely that any implementation of (rptN) in ir3 will have to
actually create (rptN) instructions after RA, which means that this can
be dropped.
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/9842 >
2021-06-10 12:20:38 -07:00
Connor Abbott
58d82add87
ir3: Rewrite delay calculation
...
The old delay calculation relied on the SSA information staying around,
and wouldn't work once we start introducing phi nodes and making
"normal" values defined in multiple blocks not array regs anymore.
What's worse is that properly inserting phi nodes when splitting live
ranges would make that code even more complicated, and this was the last
place post-RA that actually needed that information.
The new version only compares the physical registers of sources and
destinations. It works by going backwards up to a maximum number of
cycles, so it might be slightly slower when the definition is closer but
should be faster when it is farther away.
To avoid complicating the new method, the old method is kept around, but
only for pre-RA scheduling and it can therefore be drastically
simplified as the array case can be dropped.
ir3_delay_calc() is split into a few variants to avoid an explosion of
boolean arguments in users, especially now that merged_regs now has to
be passed to it.
The new method is a little more complicated when it comes to handling
(rptN), because both the assigner and consumer may be (rptN). This adds
some unit tests for those cases, in addition to dropping the to-SSA code
in the test harness since it's no longer needed.
Finally, ir3_legalize has to be switched to using physical registers for
the branch condition. This was the one place where IR3_REG_SSA remained
after RA.
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/9842 >
2021-06-10 12:20:38 -07:00
Connor Abbott
c0823a2d31
ir3: Make branch conditions non-SSA
...
In particular, make sure they have a physreg assigned. This was the last
place after RA where SSA registers were created, which won't work with
the new post-RA delay calculation that relies on the physreg.
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/9842 >
2021-06-10 12:20:38 -07:00
Connor Abbott
fc7402b4cf
ir3: Add reg_elems(), reg_elem_size(), and reg_size()
...
For working with registers in units of half-regs in the new RA.
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/9842 >
2021-06-10 12:20:38 -07:00
Connor Abbott
890de1a436
ir3/delay: Fix full->half and half->full delay
...
The current compiler never does this, but the new compiler will start to
in mergeregs mode. There is an extra penalty for this.
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/9842 >
2021-06-10 12:20:38 -07:00
Connor Abbott
9ad83f51eb
ir3: Add ir3_register::array.base
...
There were two different approaches I saw in the post-RA code for
figuring out what regiser range a relative access touched:
1. Use reg->array.offset and reg->array.size. This is wrong in case
reg->array.offset was non-zero before RA, because array.size is
the size of the whole array and array.offset has the const offset
within the array baked in.
2. Lookup the array from the array ID and use the base + range there.
This is correct, but won't work with the new RA, where an array might
not always be assigned to the same register.
This replaces both methods with a new ir3_register::array.base field,
and switches all the users I could find to it.
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/9842 >
2021-06-10 12:20:38 -07:00
Connor Abbott
939ee6966f
ir3: Improve register printing for SSA
...
Print the ssa name for array destinations, and handle printing undef SSA
sources.
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/9842 >
2021-06-10 12:20:38 -07:00
Connor Abbott
edf23e15eb
ir3: Prepare for instructions with multiple destinations
...
To simplify the pre-RA merge set code and express the result live-range
splitting in RA, we need to add support for parallel copy instructions,
and for the merge set code these parallel copies need to be in SSA form.
Parallel copies have multiple destinations by necessity, but there was
no way to express this in the existing IR. In particular there was no
support for marking a register as being a destination, and no support
for indicating which destination register out of several an SSA source
refers to. This replaces ir3_register::instr with ir3_register::def and
re-purposes ir3_register::instr. I haven't propagated this into common
helpers, like ssa(), because that would vastly increase the amount of
churn and the number of places that produce such instructions should be
limited -- only RA will create parallel copies and they will be
destroyed right after RA. In the future swz will have multiple
destinations too, but it will only be created after RA via parallel copy
lowering.
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/9842 >
2021-06-10 12:20:38 -07:00
Connor Abbott
e1d7240576
ir3: Readd support for translating NIR phi nodes
...
This is roughly based on the support removed a while ago, but it handles
sources better by associating each source with a predecessor block.
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/9842 >
2021-06-10 12:20:38 -07:00
Connor Abbott
0ef021be4a
ir3: Add ir3_start_block()
...
Name based on nir_start_block(). A number of places were already
open-coding this, convert them.
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/9842 >
2021-06-10 12:20:38 -07:00
Connor Abbott
ef4e07a1a2
ir3: Introduce phi and parallelcopy instructions
...
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/9842 >
2021-06-10 12:20:38 -07:00
Alyssa Rosenzweig
e380229bde
docs/panfrost: Update API versions
...
Signed-off-by: Alyssa Rosenzweig <alyssa@collabora.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11123 >
2021-06-10 18:06:11 +00:00
Alyssa Rosenzweig
a9f3295f67
docs/features: Mark GLES3.1 as done on Panfrost
...
Signed-off-by: Alyssa Rosenzweig <alyssa@collabora.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11123 >
2021-06-10 18:06:11 +00:00
Alyssa Rosenzweig
b338654b19
panfrost/ci: Do fractional dEQP-GLES31 run on Midgard
...
Drop the skip list and correspondingly populate the fails list.
Signed-off-by: Alyssa Rosenzweig <alyssa@collabora.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11123 >
2021-06-10 18:06:11 +00:00
Alyssa Rosenzweig
eabb86c224
panfrost/ci: Don't skip SSBO tests on G52
...
These were blocked on failing RA, but that's been resolved now.
Signed-off-by: Alyssa Rosenzweig <alyssa@collabora.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11123 >
2021-06-10 18:06:11 +00:00
Alyssa Rosenzweig
140f9222bc
panfrost/ci: Blank G52 flakes file
...
Haven't seen these tests flake, and we don't even run dEQP-GLES2 on G52
in CI anymore. (I still do local runs, and I don't see them flake
there.)
Signed-off-by: Alyssa Rosenzweig <alyssa@collabora.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11123 >
2021-06-10 18:06:11 +00:00
Alyssa Rosenzweig
a88fa74d8e
pan/decode: Handle cache flush jobs
...
Signed-off-by: Alyssa Rosenzweig <alyssa@collabora.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11123 >
2021-06-10 18:06:11 +00:00
Alyssa Rosenzweig
866c22bff5
pan/decode: Fix image attribute counting
...
Signed-off-by: Alyssa Rosenzweig <alyssa@collabora.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11123 >
2021-06-10 18:06:11 +00:00
Alyssa Rosenzweig
1cc3f8cb64
panfrost: Advertise GLES3.1
...
We have CI, we're just a few tests away from conformance on v7, and
Midgard is just a few hundred tests behind. Given the branch point isn't
for another month, I think this is a good time to flip the switch.
Signed-off-by: Alyssa Rosenzweig <alyssa@collabora.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11123 >
2021-06-10 18:06:11 +00:00
Alyssa Rosenzweig
9b3b1561fd
panfrost: Add "Cache Flush" job XML
...
Likely useful for efficient memory_barrier and texture_barrier
operations.
Signed-off-by: Alyssa Rosenzweig <alyssa@collabora.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11123 >
2021-06-10 18:06:11 +00:00
Alyssa Rosenzweig
cee3181ceb
panfrost: Set vertex job_barrier
...
Fixes KHR-GLES31.core.vertex_attrib_binding.advanced-iterations which
pingpongs XFB/attributes
Signed-off-by: Alyssa Rosenzweig <alyssa@collabora.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11123 >
2021-06-10 18:06:11 +00:00
Alyssa Rosenzweig
3b9f1f39d1
panfrost: Flush before compute jobs
...
Suboptimal but fixes KHR-GLES31.core.compute_shader.pipeline-post-xfb,
which is stubbornly still broken with memory barriers implemented and
cache flush jobs inserted. More investigation needed but probably not
right now.
Signed-off-by: Alyssa Rosenzweig <alyssa@collabora.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11123 >
2021-06-10 18:06:11 +00:00
Alyssa Rosenzweig
293ea1959c
panfrost: Flush everything for glMemoryBarrier
...
This is inefficient but so far I see the DDK doing the same thing. Fixes
KHR-GLES31.core.shader_storage_buffer_object.advanced-usage-sync-vsfs
In the future we should look into cache flush jobs.
Signed-off-by: Alyssa Rosenzweig <alyssa@collabora.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11123 >
2021-06-10 18:06:11 +00:00
Alyssa Rosenzweig
29012d96b8
panfrost: Clean up vertex/instance ID on Midgard
...
Use the proper XML.
Signed-off-by: Alyssa Rosenzweig <alyssa@collabora.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11123 >
2021-06-10 18:06:11 +00:00
Alyssa Rosenzweig
f58e08fbab
panfrost: Add XML for vertex/instance ID records
...
Signed-off-by: Alyssa Rosenzweig <alyssa@collabora.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11123 >
2021-06-10 18:06:11 +00:00
Alyssa Rosenzweig
851587f281
panfrost: Set valid_buffer_range for GPU writes
...
Transform feedback, SSBO writes, and image writes in particular can
affect this and have bad interactions. Fixes
KHR-GLES31.core.shader_atomic_counters.basic-usage-vs
Signed-off-by: Alyssa Rosenzweig <alyssa@collabora.com >
Cc: mesa-stable
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11123 >
2021-06-10 18:06:11 +00:00
Alyssa Rosenzweig
a9a8d74d1f
panfrost: Remove pan_image_state
...
Instead just group the fields about validity into a simpler structure in
panfrost_resource. Panvk can do the same. Common code shouldn't be
thinking in terms of this 'larger' structure anyway.
Signed-off-by: Alyssa Rosenzweig <alyssa@collabora.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11123 >
2021-06-10 18:06:11 +00:00
Alyssa Rosenzweig
6f0e1c27d9
panfrost: Make data_valid a bitset
...
More compact and will allow simpler code.
Signed-off-by: Alyssa Rosenzweig <alyssa@collabora.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11123 >
2021-06-10 18:06:11 +00:00
Alyssa Rosenzweig
77aff51090
panfrost: Don't clobber indirect dispatch fields
...
These should be kept as zero so they can be packed correctly. Fixes a
number of KHR-GLES31 fails.
Signed-off-by: Alyssa Rosenzweig <alyssa@collabora.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11123 >
2021-06-10 18:06:11 +00:00
Alyssa Rosenzweig
fd7b44882c
panfrost: Use direct dispatch with shared memory
...
This would require memory allocations we don't handle.
Signed-off-by: Alyssa Rosenzweig <alyssa@collabora.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11123 >
2021-06-10 18:06:11 +00:00
Alyssa Rosenzweig
d4f25a9588
pan/indirect_dispatch: Use extracted values
...
Signed-off-by: Alyssa Rosenzweig <alyssa@collabora.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11123 >
2021-06-10 18:06:11 +00:00
Alyssa Rosenzweig
fdfc8b9806
pan/indirect_dispatch: Expand split expressions
...
Careful algebraic transforms makes these much simpler.
Signed-off-by: Alyssa Rosenzweig <alyssa@collabora.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11123 >
2021-06-10 18:06:11 +00:00
Alyssa Rosenzweig
989caacc32
pan/indirect_dispatch: Distinguish minus-1 defs
...
This makes the logic clearer and allows the original values to be
accessed.
Signed-off-by: Alyssa Rosenzweig <alyssa@collabora.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11123 >
2021-06-10 18:06:11 +00:00
Alyssa Rosenzweig
a90345d4c8
pan/indirect_dispatch: Simplify empty command case
...
Job type is alone with bitsize in the bottom byte of the addressed
worse, so if we use an 8-bit store we avoid the RMW complexity.
Signed-off-by: Alyssa Rosenzweig <alyssa@collabora.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11123 >
2021-06-10 18:06:11 +00:00
Alyssa Rosenzweig
52991aad7f
pan/indirect_dispatch: Indent NIR blocks
...
Easier to visualize the control flow this way.
Signed-off-by: Alyssa Rosenzweig <alyssa@collabora.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11123 >
2021-06-10 18:06:11 +00:00
Alyssa Rosenzweig
f652c61283
panfrost: Reduce pan_image_state indirection
...
In actuality, this just shadows the crc_valid for pan_cs... the
data_valid checks are contained in the caller and just add noise.
Signed-off-by: Alyssa Rosenzweig <alyssa@collabora.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11123 >
2021-06-10 18:06:11 +00:00
Alyssa Rosenzweig
d181218238
panfrost: Don't CRC mipmapped textures
...
CRC is intended for final render targets and especially for UI, not the
kind of things you'd mipmap. Meanwhile CRC only works for a single
level, meaning at any given point, half the CRC buffer would be wasted
for a full miptree.
"Arm Mali Best Practices Guide" tells developers that the DDK only
enables CRC for non-mipmapped resources (at least the Vulkan DDK), so
let's do the same, save some memory, and simplify our code.
Signed-off-by: Alyssa Rosenzweig <alyssa@collabora.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11123 >
2021-06-10 18:06:10 +00:00
Alyssa Rosenzweig
eb82863f8a
panfrost: Drop todo on PIPE_COMPUTE_CAP_IMAGES_SUPPORTED
...
They work fine.
Signed-off-by: Alyssa Rosenzweig <alyssa@collabora.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11123 >
2021-06-10 18:06:10 +00:00
Alyssa Rosenzweig
b919ad7d97
panfrost: Set PIPE_COMPUTE_CAP_MAX_THREADS_PER_BLOCK
...
Fixes KHR-GLES31.core.gpu_shader5.images_array_indexing
Signed-off-by: Alyssa Rosenzweig <alyssa@collabora.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11123 >
2021-06-10 18:06:10 +00:00
Alyssa Rosenzweig
a3b4d2241e
panfrost: Set PIPE_COMPUTE_CAP_SUBGROUP_SIZE
...
Signed-off-by: Alyssa Rosenzweig <alyssa@collabora.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11123 >
2021-06-10 18:06:10 +00:00
Alyssa Rosenzweig
05755d858b
panfrost: Lower max compute size
...
Match the DDK's limit (Mali G52), I think there's undocumented errata
here. Fixes
KHR-GLES31.core.texture_buffer.texture_buffer_operations_image_store
Signed-off-by: Alyssa Rosenzweig <alyssa@collabora.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11123 >
2021-06-10 18:06:10 +00:00
Alyssa Rosenzweig
c9a0045705
panfrost: Make image buffers robust
...
Signed-off-by: Alyssa Rosenzweig <alyssa@collabora.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11123 >
2021-06-10 18:06:10 +00:00
Alyssa Rosenzweig
f30aab4004
panfrost: Fix BUFFER image handling
...
Fixes:
KHR-GLES31.core.shader_image_load_store.advanced-allMips-cs
KHR-GLES31.core.shader_image_load_store.advanced-allMips-fs
Signed-off-by: Alyssa Rosenzweig <alyssa@collabora.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11123 >
2021-06-10 18:06:10 +00:00
Alyssa Rosenzweig
7e25b20d3f
panfrost: Allocate XFB buffers per-instance
...
Somehow XFB gets so little use we never noticed. Fixes:
KHR-GLES31.core.vertex_attrib_binding.basic-input-case9
KHR-GLES31.core.vertex_attrib_binding.basic-input-case11
KHR-GLES31.core.vertex_attrib_binding.basic-inputI-case2
Signed-off-by: Alyssa Rosenzweig <alyssa@collabora.com >
Cc: mesa-stable
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11123 >
2021-06-10 18:06:10 +00:00
Alyssa Rosenzweig
9985c5bb88
panfrost: Don't set a blend shader for no_colour
...
It's pointless and confuses the hardware. Fixes (on Bifrost)
KHR-GLES31.core.draw_buffers_indexed.color_masks
Yes, this is a silly edge case. Yes, we still have to handle it
correctly.
Signed-off-by: Alyssa Rosenzweig <alyssa@collabora.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11123 >
2021-06-10 18:06:10 +00:00
Alyssa Rosenzweig
8d687cb65e
panfrost: Remove scissor_culls_everything
...
Based on a misunderstanding of how the scissor test works, and in
particular breaks transform feedback and SSBO writes from vertex
shaders.
Replace it with a moral equivalent to rasterizer_discard so vertex
shaders still run.
Signed-off-by: Alyssa Rosenzweig <alyssa@collabora.com >
Cc: mesa-stable
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11123 >
2021-06-10 18:06:10 +00:00
Alyssa Rosenzweig
0186367dc7
panfrost: Add some missing BGRA formats
...
Fixes:
KHR-GLES3.copy_tex_image_conversions.forbidden.*
KHR-GLES3.packed_pixels.pbo_rectangle.rgb5_a1
KHR-GLES3.packed_pixels.pbo_rectangle.rgba
KHR-GLES3.packed_pixels.pbo_rectangle.rgba4
KHR-GLES3.packed_pixels.pbo_rectangle.rgba8
KHR-GLES3.packed_pixels.rectangle.rgb5_a1
KHR-GLES3.packed_pixels.rectangle.rgba
KHR-GLES3.packed_pixels.rectangle.rgba4
KHR-GLES3.packed_pixels.rectangle.rgba8
KHR-GLES3.packed_pixels.varied_rectangle.rgb5_a1
KHR-GLES3.packed_pixels.varied_rectangle.rgba
KHR-GLES3.packed_pixels.varied_rectangle.rgba4
KHR-GLES3.packed_pixels.varied_rectangle.rgba8
Signed-off-by: Alyssa Rosenzweig <alyssa@collabora.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11123 >
2021-06-10 18:06:10 +00:00
Alyssa Rosenzweig
d7788252e6
panfrost: Emulate indirect draws on Midgard
...
I can't really justify spending time on this right now, even to myself.
So take the perf hit and get out checkbox.
Signed-off-by: Alyssa Rosenzweig <alyssa@collabora.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11123 >
2021-06-10 18:06:10 +00:00
Alyssa Rosenzweig
bc48df001c
panfrost: Fix dirty state emission
...
If we have per-draw state (vertex ID stuff), there's an ordering
mismatch. Fixes
dEQP-GLES31.functional.draw_base_vertex.draw_elements_instanced_base_vertex.builtin_variable.vertex_id
on Midgard, and I'm not sure why it was passing on Bifrost before. Also
should fix (on both architectures) DRAWID issues.
Signed-off-by: Alyssa Rosenzweig <alyssa@collabora.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11123 >
2021-06-10 18:06:10 +00:00
Alyssa Rosenzweig
43cff98dff
pan/mdg: Insert moves to load/store registers
...
Ensures a valid schedule/regalloc is possible when vectors are used in
funny ways, as occurs in dEQP-GLES31 resulting in a scheduler hang (or
with prior patches, an RA failure).
Signed-off-by: Alyssa Rosenzweig <alyssa@collabora.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11123 >
2021-06-10 18:06:10 +00:00
Alyssa Rosenzweig
5f37474403
pan/mdg: Assert scheduled instructions are reasonable
...
Would've got a scheduler hang.
Signed-off-by: Alyssa Rosenzweig <alyssa@collabora.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11123 >
2021-06-10 18:06:10 +00:00
Alyssa Rosenzweig
fa20037895
pan/mdg: Don't skip unit-based checks in choose_instruction
...
If an explicit unit isn't specified, we still should check.
Signed-off-by: Alyssa Rosenzweig <alyssa@collabora.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11123 >
2021-06-10 18:06:10 +00:00
Alyssa Rosenzweig
edbdf4f4e7
pan/mdg: Use more accurate ld/st reg estimates
...
And assert that we got them right.
Signed-off-by: Alyssa Rosenzweig <alyssa@collabora.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11123 >
2021-06-10 18:06:10 +00:00
Alyssa Rosenzweig
68846ba4a8
pan/mdg: Lower away gl_VertexID offset
...
Technically we can stick the offset in the vertex ID attribute record,
but this is a faster way to get the test passing and Midgard perf?
what's that?
Signed-off-by: Alyssa Rosenzweig <alyssa@collabora.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11123 >
2021-06-10 18:06:10 +00:00
Alyssa Rosenzweig
26baad41f1
pan/mdg: Wire in PAN_SYSVAL_VERTEX_INSTANCE_OFFSETS
...
If we're going to advertise the CAP, better not crash..
Signed-off-by: Alyssa Rosenzweig <alyssa@collabora.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11123 >
2021-06-10 18:06:10 +00:00
Alyssa Rosenzweig
8066131158
panfrost: Don't allocate WLS when not needed
...
Signed-off-by: Alyssa Rosenzweig <alyssa@collabora.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11123 >
2021-06-10 18:06:10 +00:00
Alyssa Rosenzweig
5dd6030876
panfrost: Mark 16/32_UNORM as non-renderable (v5)
...
You'd just get a blend shader anyway, and since they're not spec
requirements, let's not worry about backporting the Midgard lowerings.
Takes dEQP-GLES31.functional.fbo.color.tex2d.* on Midgard from crashing
to not supported.
Signed-off-by: Alyssa Rosenzweig <alyssa@collabora.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11123 >
2021-06-10 18:06:10 +00:00
Alyssa Rosenzweig
6936298d75
pan/mdg: Fix incorrect rewrite in Midgard scheduler
...
Fixes on Midgard
dEQP-GLES31.functional.shaders.builtin_functions.uniform.findLSBMinusOne.highp_fragment
Signed-off-by: Alyssa Rosenzweig <alyssa@collabora.com >
Cc: mesa-stable
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11123 >
2021-06-10 18:06:10 +00:00
Alyssa Rosenzweig
def3d52a15
pan/mdg: Update r1.w comment
...
Signed-off-by: Alyssa Rosenzweig <alyssa@collabora.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11123 >
2021-06-10 18:06:10 +00:00
Alyssa Rosenzweig
1369d5e43a
pan/mdg: Handle {i,u}{add,sub}_sat
...
As SATADD with different modifiers.
Signed-off-by: Alyssa Rosenzweig <alyssa@collabora.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11123 >
2021-06-10 18:06:10 +00:00
Alyssa Rosenzweig
bdb32eec9a
pan/mdg: Fix units for SUBSAT
...
Signed-off-by: Alyssa Rosenzweig <alyssa@collabora.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11123 >
2021-06-10 18:06:10 +00:00
Alyssa Rosenzweig
07856d155b
panfrost: Respect early-Z force on Midgard
...
Fixes dEQP-GLES31.functional.image_load_store.early_fragment_tests.* on
Midgard.
Signed-off-by: Alyssa Rosenzweig <alyssa@collabora.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11123 >
2021-06-10 18:06:10 +00:00
Alyssa Rosenzweig
0d4368b22a
panfrost: Don't force early-z with occlusion query
...
..even if there is no z/s enabled. Fixes
dEQP-GLES31.functional.fbo.no_attachments.* on Midgard.
Signed-off-by: Alyssa Rosenzweig <alyssa@collabora.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11123 >
2021-06-10 18:06:10 +00:00
Alyssa Rosenzweig
e4592d5651
panfrost: Simplify Midgard blend disable
...
Probably a bit faster too.
Signed-off-by: Alyssa Rosenzweig <alyssa@collabora.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11123 >
2021-06-10 18:06:10 +00:00
Alyssa Rosenzweig
2af0c02ffa
panfrost: Clarify how fs_sidefx works with oq
...
Signed-off-by: Alyssa Rosenzweig <alyssa@collabora.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11123 >
2021-06-10 18:06:10 +00:00
Alyssa Rosenzweig
22a973601b
pan/mdg: Stub memory_barrier{_image}
...
Same as we do for Bifrost.
Signed-off-by: Alyssa Rosenzweig <alyssa@collabora.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11123 >
2021-06-10 18:06:10 +00:00
Alyssa Rosenzweig
21d06a41f7
pan/mdg: Make -Wswitch happy
...
Signed-off-by: Alyssa Rosenzweig <alyssa@collabora.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11123 >
2021-06-10 18:06:10 +00:00
Alyssa Rosenzweig
34c6d105f6
pan/mdg: Use consistent casing in midgard_print
...
Signed-off-by: Alyssa Rosenzweig <alyssa@collabora.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11123 >
2021-06-10 18:06:10 +00:00
Alyssa Rosenzweig
c88c5b1218
panfrost: Assert alignment of indirect records
...
Continuation records need alignment, this shows they already have it.
Signed-off-by: Alyssa Rosenzweig <alyssa@collabora.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11123 >
2021-06-10 18:06:10 +00:00
Alyssa Rosenzweig
4b52b0841f
panfrost: Make instancing code more obvious
...
Signed-off-by: Alyssa Rosenzweig <alyssa@collabora.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11123 >
2021-06-10 18:06:10 +00:00
Alyssa Rosenzweig
552fdc7ea4
panfrost: Fix src_offset data type
...
We treat it as signed but had it marked as unsigned. It can be negative
in obscure cases.
Signed-off-by: Alyssa Rosenzweig <alyssa@collabora.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11123 >
2021-06-10 18:06:10 +00:00
Alyssa Rosenzweig
afc4ebdcc0
panfrost: Align NPOT divisor records
...
Signed-off-by: Alyssa Rosenzweig <alyssa@collabora.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11123 >
2021-06-10 18:06:10 +00:00
Alyssa Rosenzweig
1760511e02
panfrost: Add util_draw_indirect() debug path
...
Useful for finding problems with the GPU indirect path.
Signed-off-by: Alyssa Rosenzweig <alyssa@collabora.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11123 >
2021-06-10 18:06:10 +00:00
Alyssa Rosenzweig
d61162af50
panfrost: Zero r_dimension for buffer textures
...
Instead of reading wrong side of the union (undefined behaviour). Fixes
a GenXML assertion failure in
KHR-GLES31.core.texture_buffer.texture_buffer_texture_buffer_range
Signed-off-by: Alyssa Rosenzweig <alyssa@collabora.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11123 >
2021-06-10 18:06:10 +00:00
Alyssa Rosenzweig
a78487f795
panfrost: Fix crc_valid condition
...
Fixes fails in dEQP-GLES31.functional.texture.border_clamp.* when run in
parallel with certain other tests.
Signed-off-by: Alyssa Rosenzweig <alyssa@collabora.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11123 >
2021-06-10 18:06:10 +00:00
Alyssa Rosenzweig
729b8c55f4
panfrost: Simplify compute_checksum_size formula
...
Signed-off-by: Alyssa Rosenzweig <alyssa@collabora.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11123 >
2021-06-10 18:06:10 +00:00
Alyssa Rosenzweig
3525ad7c45
panfrost: Fix vertex image attribute overrun
...
Images take a continuation record, don't scribble zeroes over.
Signed-off-by: Alyssa Rosenzweig <alyssa@collabora.com >
Fixes: dc85f65e05 ("panfrost: emit shader image attribute descriptors")
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11123 >
2021-06-10 18:06:10 +00:00
Alyssa Rosenzweig
a5ec1e7f75
pan/bi: Force u32 for flat varyings
...
Since the GLSL compilers will pack together flat varyings with no regard
to type, under the assumption the backend can deal with it. I guess we
can deal with it then... Fixes fails in
dEQP-GLES31.functional.separate_shader.random.*
Signed-off-by: Alyssa Rosenzweig <alyssa@collabora.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11123 >
2021-06-10 18:06:10 +00:00
Alyssa Rosenzweig
b9127ecbb1
panfrost: Use varying format from frag shader
...
Needed to fix up flat varyings to u32 due to TGSI brokenness. If we wack
TGSI, we can drop this.
Signed-off-by: Alyssa Rosenzweig <alyssa@collabora.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11123 >
2021-06-10 18:06:10 +00:00
Alyssa Rosenzweig
58cbf10cdb
panfrost: Correctly size varyings
...
The same slot could be specified multiple times with different
location_frac out of order, so we use two passes.
Signed-off-by: Alyssa Rosenzweig <alyssa@collabora.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11123 >
2021-06-10 18:06:10 +00:00
Alyssa Rosenzweig
16e6657132
pan/indirect_draw: Fix 1 instance, nonzero divisor
...
Instead of doing a complicated hack with the POT divisor, just zero the
stride of the linear attribute buffer like we do on the CPU.
Signed-off-by: Alyssa Rosenzweig <alyssa@collabora.com >
Reviewed-by: Boris Brezillon <boris.brezillon@collabora.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11123 >
2021-06-10 18:06:10 +00:00
Alyssa Rosenzweig
14da452598
pan/indirect_draw: Use unsigned comparisons
...
Instead of signed -- get the types right.
Signed-off-by: Alyssa Rosenzweig <alyssa@collabora.com >
Reviewed-by: Boris Brezillon <boris.brezillon@collabora.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11123 >
2021-06-10 18:06:10 +00:00
Alyssa Rosenzweig
5ea73dbed9
pan/indirect: Factor out is_power_of_two_or_zero
...
The function is complicated enough as it is -- hide the bit twiddling
behind a helper function.
Signed-off-by: Alyssa Rosenzweig <alyssa@collabora.com >
Reviewed-by: Boris Brezillon <boris.brezillon@collabora.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11123 >
2021-06-10 18:06:10 +00:00
Alyssa Rosenzweig
c25a40d535
panfrost: Default indirect attributes to 1D type
...
Avoids some complexity in the indirect draw happy path.
Signed-off-by: Alyssa Rosenzweig <alyssa@collabora.com >
Reviewed-by: Boris Brezillon <boris.brezillon@collabora.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11123 >
2021-06-10 18:06:10 +00:00
Alyssa Rosenzweig
0566fa2db4
panfrost: Use util_last_bit for images
...
Probbaly more correct for hols in image_mask.
Signed-off-by: Alyssa Rosenzweig <alyssa@collabora.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11123 >
2021-06-10 18:06:10 +00:00
Alyssa Rosenzweig
619b1bc23b
panfrost: Be explicit in image modifier handling
...
Signed-off-by: Alyssa Rosenzweig <alyssa@collabora.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11123 >
2021-06-10 18:06:10 +00:00
Alyssa Rosenzweig
5ed37ebfee
panfrost: Separate image attribute and buffer emit
...
Trying to disentangle attributes and attribute buffers, so here's
a leaf node for that change.
Signed-off-by: Alyssa Rosenzweig <alyssa@collabora.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11123 >
2021-06-10 18:06:10 +00:00
Alyssa Rosenzweig
f14dbc02fb
panfrost: Don't duplicate attribute buffers
...
If the (vbi, divisor) tuple matches, we can save an attribute buffer
descriptor. We do the linking at CSO create time. This should be a bit
more cache friendly.
Signed-off-by: Alyssa Rosenzweig <alyssa@collabora.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11123 >
2021-06-10 18:06:10 +00:00
Alyssa Rosenzweig
61b83fba27
panfrost: Disable AFBC on v7
...
Broken in several ways. Hide it until we can get this sorted, and have a
test plan to keep it sorted.
Signed-off-by: Alyssa Rosenzweig <alyssa@collabora.com >
Cc: mesa-stable
Acked-by: Boris Brezillon <boris.brezillon@collabora.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11123 >
2021-06-10 18:06:10 +00:00
Alyssa Rosenzweig
655983d328
panfrost: Add missing 'Reverse issue order flag'
...
Should fix an issue I'm seeing. Spoiler alert, it does not.
Signed-off-by: Alyssa Rosenzweig <alyssa@collabora.com >
Acked-by: Boris Brezillon <boris.brezillon@collabora.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11123 >
2021-06-10 18:06:10 +00:00
Alyssa Rosenzweig
317dd5b327
panfrost: Remove AFBC format fixups
...
It's too complicated and probably for no actual benefit. The main reason
we have BGR formats is for display, but that's export and doesn't get
hit by this path. Internal BGRA textures are possible with a Mesa
extension but sufficiently rare that I regret suggesting this as a
possible optimization. My apologies, and thanks for the fish.
Signed-off-by: Alyssa Rosenzweig <alyssa@collabora.com >
Acked-by: Boris Brezillon <boris.brezillon@collabora.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11123 >
2021-06-10 18:06:10 +00:00
Alyssa Rosenzweig
e111464bfc
pan/bi: Don't allocate past the end of the reg file
...
Signed-off-by: Alyssa Rosenzweig <alyssa@collabora.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11123 >
2021-06-10 18:06:10 +00:00
Alyssa Rosenzweig
47e0cce820
pan/bi: Track words instead of bytes in RA
...
Reduces RA memory footprint by 4x, fixing an OOM in the following dEQP
test that otherwise would allocate 8GB of memory...
dEQP-GLES31.functional.ssbo.layout.random.all_shared_buffer.36
Signed-off-by: Alyssa Rosenzweig <alyssa@collabora.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11123 >
2021-06-10 18:06:10 +00:00
Alyssa Rosenzweig
dbc346d659
pan/bi: Simplify spill code
...
Now allow spilling all nodes. Fixes failed spilling in
dEQP-GLES31.functional.ssbo.layout.random.all_shared_buffer.21
Signed-off-by: Alyssa Rosenzweig <alyssa@collabora.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11123 >
2021-06-10 18:06:10 +00:00
Alyssa Rosenzweig
6dbaae77d9
pan/bi: Emit a dummy ATEST if needed
...
Match what the blob does, since Bifrost has so many random errata we'd
be fools not to.
Signed-off-by: Alyssa Rosenzweig <alyssa@collabora.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11123 >
2021-06-10 18:06:10 +00:00
Alyssa Rosenzweig
b947ab8b10
pan/bi: Lower 64-bit ints again
...
Signed-off-by: Alyssa Rosenzweig <alyssa@collabora.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11123 >
2021-06-10 18:06:10 +00:00
Alyssa Rosenzweig
95458c4033
pan/bi: Lower stores with component != 0
...
If the shader packs multiple varyings into the same location with
different location_frac, we'll need to lower to a single varying store
that collects all of the channels together. This is not trivial during
code gen, but it is trivial to do in NIR right before codegen by relying
on nir_lower_io_to_temporaries. Since we're guaranteed all varyings will
be written exactly once, in the exit block, we can scan the shader
linearly and collect stores together in a single pass.
Signed-off-by: Alyssa Rosenzweig <alyssa@collabora.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11123 >
2021-06-10 18:06:10 +00:00
Alyssa Rosenzweig
de42707101
pan/bi: Lower loads with component > 0
...
We have no native way to swizzle out a nonzero component in a load, but
we can simply load extra components and do the swizzle in shader
instructions. This is inefficient, since it loads data to discard
immediately, but it's required for conformance in some edge cases.
Signed-off-by: Alyssa Rosenzweig <alyssa@collabora.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11123 >
2021-06-10 18:06:10 +00:00
Alyssa Rosenzweig
5c0e5d4d2d
pan/bi: Handle images in vertex shaders
...
We need to offset by the number of attributes, since the primary
attribute table is shared for images and vertex attributes.
Signed-off-by: Alyssa Rosenzweig <alyssa@collabora.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11123 >
2021-06-10 18:06:10 +00:00
Alyssa Rosenzweig
071165e082
pan/bi: Model +BLEND clobbering of r48
...
Signed-off-by: Alyssa Rosenzweig <alyssa@collabora.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11123 >
2021-06-10 18:06:10 +00:00
Alyssa Rosenzweig
4663afd8ab
pan/bi: Don't restrict the register file in non-blend shaders
...
Now that preloading is handled correctly, there's nothing 'special'
about R59 and up, so this gets us a few more registers to work with.
Signed-off-by: Alyssa Rosenzweig <alyssa@collabora.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11123 >
2021-06-10 18:06:10 +00:00
Alyssa Rosenzweig
35c7fefc8f
pan/bi: Allow move/sink in blend shaders
...
Now that we handle precolouring we don't need to workaround anything.
Signed-off-by: Alyssa Rosenzweig <alyssa@collabora.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11123 >
2021-06-10 18:06:10 +00:00
Alyssa Rosenzweig
3d851f3b8e
pan/bi: Model interference with preloaded regs
...
Now that we have affinity masks in RA, we can handle this as an easy
case of register liveness analysis, rather than creating pseudo-nodes
and trying hard to coalesce the resulting moves.
Signed-off-by: Alyssa Rosenzweig <alyssa@collabora.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11123 >
2021-06-10 18:06:10 +00:00
Alyssa Rosenzweig
8d4ce240be
pan/bi: Explicit zero reg_live_{in, out} when needed
...
I want to use these fields for a similar purpose in the register
allocator, so they won't be zero anymore for scheduling.
Signed-off-by: Alyssa Rosenzweig <alyssa@collabora.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11123 >
2021-06-10 18:06:10 +00:00
Alyssa Rosenzweig
98f072e21b
pan/bi: Inline spilling in RA
...
Should be faster for both spill and not spill cases.
Signed-off-by: Alyssa Rosenzweig <alyssa@collabora.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11123 >
2021-06-10 18:06:10 +00:00
Alyssa Rosenzweig
80a58dc2e6
pan/bi: Use explicit affinities in RA
...
Inline LCRA to allow us to make the change without disrupting Midgard,
and get some nice cleanup from doing so.
Signed-off-by: Alyssa Rosenzweig <alyssa@collabora.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11123 >
2021-06-10 18:06:10 +00:00
Alyssa Rosenzweig
9d7e25a9a9
pan/bi: Allow IADD.u32 on FMA as *IADDC
...
There's a common special case, slight boost in scheduler freedom.
total nops in shared programs: 101130 -> 101048 (-0.08%)
nops in affected programs: 1677 -> 1595 (-4.89%)
helped: 13
HURT: 0
helped stats (abs) min: 6 max: 8 x̄: 6.31 x̃: 6
helped stats (rel) min: 3.24% max: 25.00% x̄: 7.42% x̃: 4.48%
95% mean confidence interval for nops value: -6.76 -5.85
95% mean confidence interval for nops %-change: -12.02% -2.81%
Nops are helped.
total clauses in shared programs: 27076 -> 27075 (<.01%)
clauses in affected programs: 8 -> 7 (-12.50%)
helped: 1
HURT: 0
total quadwords in shared programs: 113142 -> 113113 (-0.03%)
quadwords in affected programs: 1935 -> 1906 (-1.50%)
helped: 13
HURT: 0
helped stats (abs) min: 2 max: 4 x̄: 2.23 x̃: 2
helped stats (rel) min: 0.95% max: 7.50% x̄: 2.16% x̃: 1.26%
95% mean confidence interval for quadwords value: -2.59 -1.87
95% mean confidence interval for quadwords %-change: -3.45% -0.88%
Quadwords are helped.
Signed-off-by: Alyssa Rosenzweig <alyssa@collabora.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11123 >
2021-06-10 18:06:10 +00:00
Alyssa Rosenzweig
7aefd6c1ba
pan/bi: Track liveness while scheduling
...
If we know that a value is killed in the next tuple, there is no need to
write it out to the register file. We already handled this as a packing
fixup. However, avoiding this write also frees up an extra slot in the
register block, which offers additional scheduling freedom. To take
advantage of this, we extend liveness analysis to work while scheduling,
and modify the schedulable predicate accordingly.
Signed-off-by: Alyssa Rosenzweig <alyssa.rosenzweig@collabora.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11123 >
2021-06-10 18:06:10 +00:00
Alyssa Rosenzweig
20809daa9a
pan/bi: Add post-RA optimizer
...
Delete coalesced moves. Now this is trivial! See e.g shaders/tesseract/118.shader_test
Signed-off-by: Alyssa Rosenzweig <alyssa@collabora.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11123 >
2021-06-10 18:06:10 +00:00
Alyssa Rosenzweig
4ed000cf3f
pan/bi: Bundle after RA
...
Flag day change to swap the order of the "scheduler" with the register
allocator. This gives RA much more freedom without significantly
hndering bundling.
It also opens up the door to Adult-level Scheduling which would occur
prior to bundling.
Signed-off-by: Alyssa Rosenzweig <alyssa@collabora.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11123 >
2021-06-10 18:06:10 +00:00
Alyssa Rosenzweig
afa4a1d496
pan/bi: Fix bi_rewrite_passthrough ordering
...
The ordering is irrelevant for SSA form input, but is very relevant for
register input.
Signed-off-by: Alyssa Rosenzweig <alyssa@rosenzweig.io >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11123 >
2021-06-10 18:06:10 +00:00
Alyssa Rosenzweig
246beb15cf
pan/bi: Simplify TEXC codegen for sr_count=0
...
Obscure case.
Signed-off-by: Alyssa Rosenzweig <alyssa@rosenzweig.io >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11123 >
2021-06-10 18:06:09 +00:00
Alyssa Rosenzweig
de8fe8c0b1
pan/bi: Use TEXS_2D for rect textures
...
Signed-off-by: Alyssa Rosenzweig <alyssa@collabora.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11123 >
2021-06-10 18:06:09 +00:00
Alyssa Rosenzweig
6f51bd99f2
pan/bi: Pull out bi_count_write_registers
...
Signed-off-by: Alyssa Rosenzweig <alyssa@collabora.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11123 >
2021-06-10 18:06:09 +00:00
Yiwei Zhang
02832f9d03
vulkan: fix back compat with Android Oreo and below
...
buffer_handle_t definition was previously inside the deprecated
system/core/include/system/window.h.
Signed-off-by: Yiwei Zhang <zzyiwei@chromium.org >
Acked-by: Chia-I Wu <olvaffe@gmail.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11301 >
2021-06-10 17:41:34 +00:00
Neha Bhende
8a3fa2c4d5
svga: Initialize pipe_shader_state for transform shaders
...
This fixes crashes for opengl apps. Issue is found in vmware
internal testing
Fixes: f01c0565bb ("draw: free the NIR IR.")
Reviewed-by: Charmaine Lee <charmainel@vmware.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11274 >
2021-06-10 17:28:41 +00:00
Mike Blumenkrantz
e39b6951cc
util/blitter: remove duplicated set_sample_mask calls
...
it doesn't make sense to have both, so just keep the simpler one
no functional changes because this was redundant
Reviewed-by: Marek Olšák <marek.olsak@amd.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11294 >
2021-06-10 16:58:14 +00:00
Adam Jackson
f535ab59e2
swrast: Fix a warning from gcc 11
...
gcc 11 dixit:
In function ‘sample_2d_ewa’,
inlined from ‘sample_lambda_2d_aniso’ at ../src/mesa/swrast/s_texfilter.c:1995:10:
../src/mesa/swrast/s_texfilter.c:1729:13: warning: ‘sample_2d_nearest’ reading 16 bytes from a region of size 8 [-Wstringop-overread]
1729 | sample_2d_nearest(ctx, samp, img, newCoord, rgba);
| ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
../src/mesa/swrast/s_texfilter.c: In function ‘sample_lambda_2d_aniso’:
../src/mesa/swrast/s_texfilter.c:1729:13: note: referencing argument 4 of type ‘const GLfloat *’ {aka ‘const float *’}
Indeed, newCoord is GLfloat[2] but the argument is typed GLfloat[4],
even though only the first two (s and t) are ever read. Fix the array
size in the function signature to reflect the maximum element actually
addressed.
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11273 >
2021-06-10 16:20:09 +00:00
Roman Stratiienko
5987f71cb1
nouveau: Don't require RTTI and use it only when enabled
...
The only case RTTI is used in nouveau is type assertion at:
File src/gallium/drivers/nouveau/codegen/nv50_ir.cpp:
assert(typeid(*i) == typeid(*this));
This assertion is used 'to be on the safe side' only and not mandatory.
In Android we do not have rtti for libLLVM therefore this assertion
has to be skipped.
Signed-off-by: Roman Stratiienko <r.stratiienko@gmail.com >
Reviewed-by: Ilia Mirkin <imirkin@alum.mit.edu >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11069 >
2021-06-10 15:10:04 +00:00
Charlie
f389676173
v3dv: enable KHR_uniform_buffer_standard_layout
...
We already support this memory layout. All relevant CTS tests seem to
pass
Reviewed-by: Alejandro Piñeiro <apinheiro@igalia.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11276 >
2021-06-10 15:04:23 +01:00
Charlie
c8dffda633
v3dv: enable KHR_incremental_present
...
All bits should already be provided by wsi/common.
Reviewed-by: Alejandro Piñeiro <apinheiro@igalia.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11276 >
2021-06-10 15:04:12 +01:00
Charlie
1c97d06a68
v3dv: enable KHR_sampler_mirror_clamp_to_edge
...
This is already implemented
Reviewed-by: Alejandro Piñeiro <apinheiro@igalia.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11276 >
2021-06-10 15:03:04 +01:00
Charlie
be2b11003a
v3dv: enable KHR_image_format_list
...
There's nothing checking for mutable formats, so this needs no changes
Reviewed-by: Alejandro Piñeiro <apinheiro@igalia.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11276 >
2021-06-10 15:03:03 +01:00
Rhys Perry
7c63ec70ef
nir: document that ACCESS_RESTRICT is not set at intrinsics
...
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/7295 >
2021-06-10 13:17:22 +00:00
Rhys Perry
938098c98d
nir/opt_load_store_vectorize: only require one variable to be restrict
...
No fossil-db changes.
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/7295 >
2021-06-10 13:17:22 +00:00
Rhys Perry
865ca3af2b
nir/opt_load_store_vectorize: check for restrict at the variable
...
SPIR-V -> NIR doesn't set ACCESS_RESTRICT at the intrinsic.
fossil-db (GFX10.3):
Totals from 3 (0.00% of 139391) affected shaders:
CodeSize: 12364 -> 12356 (-0.06%)
Instrs: 2493 -> 2494 (+0.04%); split: -0.04%, +0.08%
Cycles: 15279372 -> 15295756 (+0.11%); split: -0.11%, +0.21%
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/7295 >
2021-06-10 13:17:22 +00:00
Rhys Perry
2e7bceb220
nir/load_store_vectorizer: fix check_for_robustness() with indirect loads
...
fossil-db (GFX10.3, robustness2 enabled):
Totals from 13958 (9.54% of 146267) affected shaders:
VGPRs: 609168 -> 624304 (+2.48%); split: -0.05%, +2.53%
CodeSize: 48229504 -> 48488392 (+0.54%); split: -0.02%, +0.56%
MaxWaves: 354426 -> 349448 (-1.40%); split: +0.00%, -1.41%
Instrs: 9332093 -> 9375053 (+0.46%); split: -0.03%, +0.49%
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/7295 >
2021-06-10 13:17:22 +00:00
Charlie Birks
674b0af3b3
v3dv: document two supported extensions
...
Reviewed-by: Alejandro Piñeiro <apinheiro@igalia.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11268 >
2021-06-10 13:13:03 +00:00
Rhys Perry
6204e17b44
radv: increase maxComputeSharedMemorySize
...
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/11262 >
2021-06-10 12:55:53 +00:00
Rhys Perry
9162963f0a
aco: fix emit_mbcnt() with a VGPR mask
...
Found by inspection. Should be possible with nir_intrinsic_mbcnt_amd.
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/11295 >
2021-06-10 11:21:47 +00:00
Iago Toral Quiroga
f884c2e3be
v3dv: implement VK_KHR_get_display_properties2
...
This is entirely implemented in the common WSI code, we just need to
implement the API entry points.
Reviewed-by: Alejandro Piñeiro <apinheiro@igalia.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11287 >
2021-06-10 11:01:28 +00:00
Michel Zou
30115d0038
glapi: fix Warray-parameter
...
Fixes these new gcc11 warnings:
In file included from ../src/mapi/glapi/glapi_dispatch.c:174:
src/mapi/glapi/gen/glapitemp.h:3191:68: warning: argument 1 of type 'const GLdouble *' {aka 'const double *'} declared as a pointer [-Warray-parameter=]
3191 | KEYWORD1 void KEYWORD2 NAME(LoadTransposeMatrixd)(const GLdouble * m)
| ~~~~~~~~~~~~~~~~~^
In file included from ../src/mapi/glapi/glapi_priv.h:31,
from ../src/mapi/glapi/glapi_dispatch.c:40:
../include/GL/gl.h:1901:62: note: previously declared as an array 'const GLdouble[16]' {aka 'const double[16]'}
1901 | GLAPI void GLAPIENTRY glLoadTransposeMatrixd( const GLdouble m[16] );
Reviewed-by: Jose Fonseca <jfonseca@vmware.com >
Reviewed-by: Ian Romanick <ian.d.romanick@intel.com >
Reviewed-by: Eric Engestrom <eric@engestrom.ch >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11198 >
2021-06-10 10:31:55 +00:00
Timur Kristóf
18337fbcf2
aco: Use as_vgpr for the second source of mbcnt_amd.
...
Fixes: 1e49018ced
Signed-off-by: Timur Kristóf <timur.kristof@gmail.com >
Reviewed-by: Samuel Pitoiset <samuel.pitoiset@gmail.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11292 >
2021-06-10 10:13:02 +00:00
Samuel Pitoiset
3a643a9ce1
ci: add expected list of failures for Bonaire (RADV)
...
Signed-off-by: Samuel Pitoiset <samuel.pitoiset@gmail.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11239 >
2021-06-10 09:36:55 +00:00
Mike Blumenkrantz
eb12f7f11e
zink: fix caching of shader variants with inlined uniforms
...
attempting to read the inlined uniforms directly after the variant key
using the size of the variant is not going to work since the variant union
is (sometimes) much larger than the size of the actual struct being used,
meaning that this would just copy a bunch of zeroes instead of the actual
inlined uniforms
Fixes: 7f28775edc ("zink: implement uniform inlining")
Reviewed-by: Dave Airlie <airlied@redhat.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11003 >
2021-06-10 09:24:24 +00:00
Samuel Pitoiset
cfe7e81214
radv/winsys: add a small comment explaining the CHAIN bit
...
Without it the hardware launches an IB2 which might hang in some
rare situations.
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/11214 >
2021-06-10 08:31:11 +02:00
Samuel Pitoiset
a234840e60
radv: do not launch an IB2 for secondary cmdbuf with INDIRECT_MULTI on GFX7
...
It's illegal to emit DRAW_{INDEX}_INDIRECT_MULTI from an IB2 on GFX7.
PAL applies this workaround for indirect dispatches and also on
GFX8-9 but it doesn't seem needed.
This fixes various GPU hangs on Bonaire (GFX7).
Cc: 21.1 mesa-stable
Signed-off-by: Samuel Pitoiset <samuel.pitoiset@gmail.com >
Reviewed-by: Bas Nieuwenhuizen <bas@basnieuwenhuizen.nl >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11214 >
2021-06-10 08:31:08 +02:00
Tomeu Vizoso
0208cadc2a
panfrost/ci: Add some failures that crept in
...
For a few days the CI wasn't reporting failures, and these crept in.
Signed-off-by: Tomeu Vizoso <tomeu.vizoso@collabora.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11218 >
2021-06-10 06:04:57 +00:00
Tomeu Vizoso
2f3785253c
iris/ci: Update the checksums for the pixmark-piano trace
...
The rendering changed while the CI was down. The rendering still looks
good, only some pixels in the edges have changed, probably due to
blending?
Signed-off-by: Tomeu Vizoso <tomeu.vizoso@collabora.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11218 >
2021-06-10 06:04:57 +00:00
Daniel Stone
b902c901f4
ci/lava: Handle proxy download failures
...
LAVA doesn't consider failure to download a kernel/initramfs as an
infrastructure error, rather just a user error for supplying a broken
URL. We know our URLs aren't broken (because we're perfect), so assume
that failures in download validation are network issues and retry when
we hit them.
LAVA itself has been fixed to retry internally, so we'll get that when
upgrade in a couple of weeks, but gloss over it for now.
Signed-off-by: Daniel Stone <daniels@collabora.com >
Reviewed-by: Gustavo Padovan <gustavo.padovan@collabora.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11218 >
2021-06-10 06:04:56 +00:00
Daniel Stone
f8c4f32558
ci/lava: Iterate all job results, not just the first
...
Each step in a LAVA job returns separate results; a successfully-retired
job can have about 12 entries. Make sure we iterate through all of them
when we're looking for infrastructure errors.
Signed-off-by: Daniel Stone <daniels@collabora.com >
Reviewed-by: Gustavo Padovan <gustavo.padovan@collabora.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11218 >
2021-06-10 06:04:56 +00:00
Gustavo Padovan
08600ef40c
ci/lava: do not save lava.yaml in the artifacts
...
We want to avoid leaking private data used in merge process.
Signed-off-by: Gustavo Padovan <gustavo.padovan@collabora.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11218 >
2021-06-10 06:04:56 +00:00
Gustavo Padovan
a477dcf56a
ci/lava: propely report test failure through sys.exit()
...
We added lava_job_submitter.py to improve our robusteness, but
the final result reporting was not handled correctly by the script.
This change fix it by properly calling sys.exit() on failures.
Signed-off-by: Gustavo Padovan <gustavo.padovan@collabora.com >
Reviewed-by: Tomeu Vizoso <tomeu.vizoso@collabora.com >
Reviewed-by: Emma Anholt <emma@anholt.net >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11218 >
2021-06-10 06:04:56 +00:00
Iago Toral Quiroga
21b0a4c80c
v3dv: don't lower vulkan resource index result to scalar
...
The intrinsic produces a vec2, so let's honor that and avoid the weird
lowering to scalar and later reconstruction to vec2 when we find
load vulkan descriptor intrinsics.
It fixes tests like this (which require that we expose KHR_spirv_1_4):
dEQP-VK.spirv_assembly.instruction.spirv1p4.opptrequal.null_comparisons_ssbo_equal
that otherwise produce bad code that tries to access a vec2 from the result of
that intrinsic, leading to NIR validation errors.
Reviewed-by: Alejandro Piñeiro <apinheiro@igalia.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11257 >
2021-06-10 05:47:29 +00:00
Iago Toral Quiroga
d84cd611eb
v3dv: expose KHR_variable_pointers
...
We only support the VariablePointersStorageBuffer feature for now,
which is the only one that is mandatory, and for which we seem to
be passing all the relevant tests already.
Exposing the optional VariablePointers feature would require that
we support non-constant indexing on UBO/SSBO first.
Relevant CTS tests:
dEQP-VK.*pointer*
Reviewed-by: Alejandro Piñeiro <apinheiro@igalia.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11257 >
2021-06-10 05:47:29 +00:00
Dave Airlie
f05dfddeb1
u_blitter: fix stencil blit fallback for crocus.
...
crocus needs the sampler view decl to know it's a uint return value.
Reviewed-by: Emma Anholt <emma@anholt.net >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11280 >
2021-06-10 02:37:19 +00:00
Dave Airlie
7e07f7f900
u_blitter: fix fs used when no color emitted
...
Reviewed-by: Emma Anholt <emma@anholt.net >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11280 >
2021-06-10 02:37:19 +00:00
Rob Clark
38dd2e6e41
freedreno: Remove assert
...
In multi-context scenarios, one context writing to a resource can race
with a pctx->flush_resource() on another context/thread. Which means
that by the end of flush_resource() we can have a new write_batch.
Signed-off-by: Rob Clark <robdclark@chromium.org >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11200 >
2021-06-09 19:09:09 -07:00
Rob Clark
cbb5280a00
freedreno: Add tid to DBG() msgs
...
I keep hacking this up locally when debugging TC sort of issues. Which
is maybe a sign that we should just add this upstream.
Signed-off-by: Rob Clark <robdclark@chromium.org >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11200 >
2021-06-09 19:09:06 -07:00
Rob Clark
97222bcd36
freedreno: Move assert
...
The batch can be flushed immediately after unlocking, so this assert
needs to move.
Signed-off-by: Rob Clark <robdclark@chromium.org >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11200 >
2021-06-09 19:09:03 -07:00
Rob Clark
93b540c72e
freedreno: Add string-marker debug trace
...
This is useful in combination with --markers arg to apitrace.
Signed-off-by: Rob Clark <robdclark@chromium.org >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11200 >
2021-06-09 19:08:58 -07:00
Rob Clark
256938e2a1
gallium/u_threaded: Missing driver-thread marking
...
Signed-off-by: Rob Clark <robdclark@chromium.org >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11200 >
2021-06-09 19:08:53 -07:00
Rob Clark
3f758afe6a
freedreno: Fix fdperf flush
...
We created and initialized the fence, but forgot to pass it to
fd_submit_flush().
Fixes: aafcd8aacb ("freedreno: Re-work fd_submit fence interface")
Signed-off-by: Rob Clark <robdclark@chromium.org >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11200 >
2021-06-09 19:08:53 -07:00
Rob Clark
507f701d9e
freedreno: Fix batch flush race condition
...
We need to remove the batch cache entry before marking as flushed.
Note that we are already holding the batch lock, to prevent flushing
something that another context is emitting cmdstream to, but there is
a window between batch cache lookup (under screen lock) and acquiring
the batch lock that could previously result in batch cache lookup
returning a flushed batch.
Signed-off-by: Rob Clark <robdclark@chromium.org >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11200 >
2021-06-09 19:08:53 -07:00
Jason Ekstrand
36414fb4db
iris: Move target_to_isl_surf_dim to iris_resource.c
...
It's only remaining caller lives there.
Reviewed-by: Nanley Chery <nanley.g.chery@intel.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11235 >
2021-06-09 23:26:04 +00:00
Jason Ekstrand
2ccdd639c2
iris: Use isl_surf_get_image_surf instead of hand-rolling it
...
For the 3D RT read case on BDW, we can use the ISL helper. For the 1D
array case, we don't actually need to flatten; we can just smash it to a
2D array surface because the layout for 1D and 2D is the same on BDW.
Reviewed-by: Nanley Chery <nanley.g.chery@intel.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11235 >
2021-06-09 23:26:04 +00:00
Rob Clark
5066839ffd
Revert "st/mesa: execute glFlush asynchronously if no image has been imported/exported"
...
A number of the piglit glx tests use multiple contexts on a single
thread, and previously the flush in MakeCurrent() was enforcing the
ordering between draws on those different contexts. When that flush
made ASYNC, now there is nothing ordering the draws because we have
two (or more) driver threads for a single frontend thread which is
using nothing more than glxMakeCurrent() to enforce the ordering.
This reverts commit 057a702a3f .
Fixes: https://gitlab.freedesktop.org/mesa/mesa/-/issues/4903
Acked-by: Mike Blumenkrantz <michael.blumenkrantz@gmail.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11278 >
2021-06-09 22:18:35 +00:00
Mike Blumenkrantz
3c5b7dca30
util/vbuf: fix buffer overrun in attribute conversions
...
using the stride to calculate the buffer map size here is not correct, as
the stride is not necessarily equal to the attribute size, it's only the distance
between elements. for the case of overlapping elements (cts does this), the result
is that the attribute conversion will read past the end of the mapped src region
this is usually fine for drivers when they directly map the vertex buffer, as the memory
past the requested region is usually made available, but in the case where the readback
occurs using a staging resource sized exactly to the map region, this overflows and fails
silently, not even triggering a valgrind error because gpu memory lol
instead, add the size of the largest possible element, which will automatically be clamped
and ensure any staging buffers are correctly sized
Cc: mesa-stable@lists.freedesktop.org
Reviewed-by: Marek Olšák <marek.olsak@amd.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10963 >
2021-06-09 21:52:12 +00:00
John Bates
df1a4e749f
add execmem build option
...
The execmem option can be set to false to disable the dynamic
dispatch patching that requires mmap(PROT_WRITE | PROT_EXEC),
which is undesirable on some platforms.
Signed-off-by: John Bates <jbates@chromium.org >
Reviewed-by: Chia-I Wu <olvaffe@gmail.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10987 >
2021-06-09 21:28:17 +00:00
Yiwei Zhang
8b7ff78443
egl/android: refactor to use the legit vndk/window.h header
...
Using the system/window.h header can potentially cause AHB breakage
because the system header is reserved for platform internal use.
Signed-off-by: Yiwei Zhang <zzyiwei@chromium.org >
Reviewed-by: Rob Clark <robdclark@chromium.org >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11206 >
2021-06-09 21:07:54 +00:00
Yiwei Zhang
1ea949429c
egl/android: fix cached buffer slots for EGL Android winsys
...
Android WSI api contract requires to allocate min_undequeued_buffers + 2
to achieve "triple buffering" effect, which is when the composer backend
acquired the allowed max numbder of buffers, the producer still has 2
buffers to rotate.
ANativeWindow either belongs to SurfaceView which presents directly to
SurfaceFlinger or belongs to other surfaces from the UI framework. For
the former, SurfaceFlinger hardcodes triple buffering for EGL. For the
latter, the surface caps decide the buffer limits or HWUI intercepts and
adjusts the min_undequeued_buffers to hint the EGL implementation to
prepare enough buffer cache slots while HWUI sets the max dequeued
buffer count accordingly.
Signed-off-by: Yiwei Zhang <zzyiwei@chromium.org >
Reviewed-by: Rob Clark <robdclark@chromium.org >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11206 >
2021-06-09 21:07:53 +00:00
Adam Jackson
a4dc2021b8
classic/xlib: Fix the build after !9817
...
This commit mostly exists to be backported to 21.1.x, because the
classic binding to xlib is soon to be retired.
Fixes: 4daef7ffe3 mesa: Remove redundant gl_config::sampleBuffers
Closes : mesa/mesa#4900
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11270 >
2021-06-09 20:57:24 +00:00
Erik Faye-Lund
f34ff03702
zink/ci: increase piglit and deqp-runner timeouts
...
A bunch of tests are currently taking ~60 seconds, dangerously close to
the current 60 seconds timeout. Add some congesion or just bad luck to
a runner, or some other background-task, and we can very easily be
pushed above that.
Since we're rendering on LLVMpipe rather than HW, this isn't as
unreasonable as it might sound at first. So let's copy a trick from
VirGL's CI playbook, and bump the timeout to 180 seconds, three times
of what we currently use.
That might seem a bit excessive, but it's better to make it *very*
unlikely to cause trouble than a little bit unlikely.
Acked-by: Mike Blumenkrantz <michael.blumenkrantz@gmail.com >
Acked-by: Daniel Stone <daniels@collabora.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11272 >
2021-06-09 20:20:06 +00:00
Daniel Stone
890f96c0e6
ci: Add Piglit gl-1.0-blend-func to everyone's skips
...
I've seen this timing out on Zink, v3d, radeonsi, and Panfrost
periodically, but more and more lately. Try to minimise the damage by
just universally skipping it until someone comes up with a better idea.
Signed-off-by: Daniel Stone <daniels@collabora.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11267 >
2021-06-09 19:46:30 +00:00
Tomeu Vizoso
f1b952fa73
ci: Run tests inside Crosvm
...
Allow running tests within Crosvm for testing the virtio-gpu winsys in
Virgl, tested with Piglit only for now.
Signed-off-by: Tomeu Vizoso <tomeu.vizoso@collabora.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10862 >
2021-06-09 19:14:00 +00:00
Tomeu Vizoso
4d5ef807da
ci: Store the credentials in /tmp
...
Signed-off-by: Tomeu Vizoso <tomeu.vizoso@collabora.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10862 >
2021-06-09 19:14:00 +00:00
Tomeu Vizoso
d08e2e5a96
ci: Move Kernel build tasks into its own file
...
Allows to reuse the Kernel build tasks everywhere it is needed.
The x86_test-gl container now need a kernel image to use for the crosvm environment,
Reuse this task there.
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10862 >
2021-06-09 19:14:00 +00:00
Tomeu Vizoso
dc9cd18f52
ci: Build Crosvm in our container
...
And also add the required bits to the x86_64 kernel.
syslogd is needed by Crosvm.
iptables is needed to route packets in and out the VM.
Signed-off-by: Tomeu Vizoso <tomeu.vizoso@collabora.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10862 >
2021-06-09 19:14:00 +00:00
Daniel Stone
f4531bd11e
ci/windows: Re-enable Windows build
...
The GStreamer-provided Windows build machine is back now.
Signed-off-by: Daniel Stone <daniels@collabora.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11261 >
2021-06-09 18:33:23 +00:00
Daniel Stone
b0fca984d0
ci/windows: Artifact Meson build and test logs
...
These are useful, especially when tests fail. The other jobs do this, so
fall into line.
Signed-off-by: Daniel Stone <daniels@collabora.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11261 >
2021-06-09 18:33:23 +00:00
Ilia Mirkin
738f4d8158
mesa: also flush after compute dispatch when debug flag enabled
...
This makes MESA_DEBUG=flush also flush after compute dispatches.
Signed-off-by: Ilia Mirkin <imirkin@alum.mit.edu >
Acked-by: Emma Anholt <emma@anholt.net >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11205 >
2021-06-09 17:59:17 +00:00
Daniel Stone
056719fb3d
ci/radeonsi: Skip flaky glx-swap-copy test
...
This seems to be failing a bunch lately, so let's just skip it for now.
Signed-off-by: Daniel Stone <daniels@collabora.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11265 >
2021-06-09 17:41:49 +00:00
Mike Blumenkrantz
02293316b3
zink: export PIPE_CAP_PROGRAMMABLE_SAMPLE_LOCATIONS
...
dynamic state required because pipeline hashing for this would be too pita
Reviewed-by: Erik Faye-Lund <erik.faye-lund@collabora.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11189 >
2021-06-09 17:26:52 +00:00
Mike Blumenkrantz
1ea682ed5a
zink: use dynamic state to apply sample locations during draw
...
not even going to attempt to figure out how to efficiently hash this
Reviewed-by: Erik Faye-Lund <erik.faye-lund@collabora.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11189 >
2021-06-09 17:26:52 +00:00
Mike Blumenkrantz
bc2acc87d7
zink: add a pipe_context::evaluate_depth_buffer hook
...
this works by flagging the next barrier to use the current sample locations
so that everything works as expected during decompression
Reviewed-by: Erik Faye-Lund <erik.faye-lund@collabora.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11189 >
2021-06-09 17:26:52 +00:00
Mike Blumenkrantz
7353d1d26b
zink: update vk sample location info during framebuffer setup
...
this needs to be stored as a persistent thing on the ctx so it can be
reused without needing to be recalculated
Reviewed-by: Erik Faye-Lund <erik.faye-lund@collabora.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11189 >
2021-06-09 17:26:52 +00:00
Mike Blumenkrantz
0901d362c7
zink: add a util function for populating VkSampleLocationsInfoEXT
...
this will be reused
Reviewed-by: Erik Faye-Lund <erik.faye-lund@collabora.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11189 >
2021-06-09 17:26:52 +00:00
Mike Blumenkrantz
dcbb77566e
zink: also flag sample_locations_changed if framebuffer samples changes
...
Reviewed-by: Erik Faye-Lund <erik.faye-lund@collabora.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11189 >
2021-06-09 17:26:52 +00:00
Mike Blumenkrantz
60e98d0f47
zink: add a pipe_context::set_sample_locations hook
...
Reviewed-by: Erik Faye-Lund <erik.faye-lund@collabora.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11189 >
2021-06-09 17:26:52 +00:00
Mike Blumenkrantz
9075f623a4
zink; add a pipe_screen::get_sample_pixel_grid hook
...
Reviewed-by: Erik Faye-Lund <erik.faye-lund@collabora.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11189 >
2021-06-09 17:26:52 +00:00
Mike Blumenkrantz
d364faa322
zink: set VK_IMAGE_CREATE_SAMPLE_LOCATIONS_COMPATIBLE_DEPTH_BIT_EXT on zs rts
...
Reviewed-by: Erik Faye-Lund <erik.faye-lund@collabora.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11189 >
2021-06-09 17:26:52 +00:00
Mike Blumenkrantz
652db34f8a
zink: populate maxSampleLocationGridSize for all available sample sizes on init
...
Reviewed-by: Erik Faye-Lund <erik.faye-lund@collabora.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11189 >
2021-06-09 17:26:52 +00:00
Timur Kristóf
1e49018ced
amd: Add extra source to the mbcnt_amd NIR intrinsic.
...
The v_mbcnt instructions can take an extra source that they add to
the result. This is not exposed in SPIR-V but we now expose it in NIR.
Signed-off-by: Timur Kristóf <timur.kristof@gmail.com >
Reviewed-by: Tony Wasserka <tony.wasserka@gmx.de >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11072 >
2021-06-09 16:48:51 +00:00
Timur Kristóf
f6b2db298f
ac/nir: Refactor and optimize the repacking sequence.
...
According to feedback, the terminology with "exclusive scan"
and "reduction" is difficult. Change it to use "repack" instead,
which better fits what this sequence is actually used for.
The new sequence stores only 1 byte / wave to LDS, and uses packed
instructions to produce the results. This has lower latency and
fewer instructions than what we previously had.
Signed-off-by: Timur Kristóf <timur.kristof@gmail.com >
Reviewed-by: Tony Wasserka <tony.wasserka@gmx.de >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11072 >
2021-06-09 16:48:51 +00:00
Timur Kristóf
b4e22eb482
aco: Keep VGPR destinations for uniform shared loads when beneficial.
...
When the result of these loads is only used by cross-lane instructions,
it is beneficial to use a VGPR destination. This is because this allows
to put the s_waitcnt further down, which decreases latency.
Signed-off-by: Timur Kristóf <timur.kristof@gmail.com >
Reviewed-by: Tony Wasserka <tony.wasserka@gmx.de >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11072 >
2021-06-09 16:48:51 +00:00
Timur Kristóf
ce141e4c5f
aco: Implement byte and lane permute intrinsics.
...
Signed-off-by: Timur Kristóf <timur.kristof@gmail.com >
Reviewed-by: Tony Wasserka <tony.wasserka@gmx.de >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11072 >
2021-06-09 16:48:51 +00:00
Timur Kristóf
43ce80a58f
nir: Add AMD-specific byte and lane permute intrinsics.
...
These map directly to v_perm_b32 and v_permlane_b32.
Unfortunately there is no corresponding NIR opcode or
intrinsics, and it's too tedious to puzzle these things
together from the existing NIR instructions.
Signed-off-by: Timur Kristóf <timur.kristof@gmail.com >
Reviewed-by: Tony Wasserka <tony.wasserka@gmx.de >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11072 >
2021-06-09 16:48:51 +00:00
Timur Kristóf
5713e059ea
aco: Add validation for v_permlane instructions.
...
Previously there hasn't been any validation for these instructions,
but after shooting myself in the leg with it a few times, I decided
to add the validation now.
Signed-off-by: Timur Kristóf <timur.kristof@gmail.com >
Reviewed-by: Tony Wasserka <tony.wasserka@gmx.de >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11072 >
2021-06-09 16:48:51 +00:00
Timur Kristóf
fd6605367d
aco: Implement nir_op_sad_u8x4.
...
Fix up the operand size for v_sad instructions, and implement
the new NIR horizontal add. There is no viable way to do this
in SALU, so let's always use a VGPR destination.
Signed-off-by: Timur Kristóf <timur.kristof@gmail.com >
Reviewed-by: Tony Wasserka <tony.wasserka@gmx.de >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11072 >
2021-06-09 16:48:51 +00:00
Timur Kristóf
c92dab8e2b
nir: Add nir_op_sad_u8x4 which corresponds to AMD's v_sad_u8.
...
NIR currently doesn't have any intrinsics for a horizontal packed add,
so this one is modeled after AMD's v_sad_u8.
Signed-off-by: Timur Kristóf <timur.kristof@gmail.com >
Reviewed-by: Tony Wasserka <tony.wasserka@gmx.de >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11072 >
2021-06-09 16:48:51 +00:00
Timur Kristóf
228169c87c
aco: Add note about v_alignbyte in the ISA README.
...
We tried to use this instruction for a more optimal sequence,
but it turned out that it doesn't exactly work as it was
supposed to. This note is to help others who want to use it.
Signed-off-by: Timur Kristóf <timur.kristof@gmail.com >
Reviewed-by: Tony Wasserka <tony.wasserka@gmx.de >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11072 >
2021-06-09 16:48:51 +00:00
Michel Zou
fe625241f7
llvmpipe: restrict optim bug workaround to gcc 10.x
...
seems fixed in 11.x, see https://gitlab.freedesktop.org/mesa/mesa/-/issues/3906
Reviewed-by: Jose Fonseca <jfonseca@vmware.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11209 >
2021-06-09 16:19:16 +00:00
Ilia Mirkin
cabafa5ed8
mesa: always expose NV_image_formats and OES_shader_image_atomic
...
As a result of some previous changes, it is now possible to expose ES
3.1 without having the ARB_shader_image_load_store enable set. However
we still want those other extensions. When there's a driver that's
capable of exposing ES 3.1 but not these extensions, more caps can be
added.
Signed-off-by: Ilia Mirkin <imirkin@alum.mit.edu >
Reviewed-by: Emma Anholt <emma@anholt.net >
Reviewed-by: Marek Olšák <marek.olsak@amd.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11204 >
2021-06-09 15:50:55 +00:00
Hoe Hao Cheng
e51097b938
zink: remove variable length arrays in ntv
...
Reviewed-by: Erik Faye-Lund <erik.faye-lund@collabora.com >
Reviewed-by: Mike Blumenkrantz <michael.blumenkrantz@gmail.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11171 >
2021-06-09 15:08:38 +00:00
Mike Blumenkrantz
fa8eca1605
util/prim_restart: simplify util_draw_vbo_without_prim_restart a bit
...
by initilizing variables up front and using actual draw structs for the
rewrite, a multidraw can be passed to the driver
Reviewed-by: Erik Faye-Lund <erik.faye-lund@collabora.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10966 >
2021-06-09 14:17:38 +00:00
Mike Blumenkrantz
aa78326e12
util/prim_restart: update index bounds before draws in util_draw_vbo_without_prim_restart
...
Reviewed-by: Erik Faye-Lund <erik.faye-lund@collabora.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10966 >
2021-06-09 14:17:38 +00:00
Mike Blumenkrantz
1627476079
util/prim_restart: store the total index count when rewriting draws
...
Reviewed-by: Erik Faye-Lund <erik.faye-lund@collabora.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10966 >
2021-06-09 14:17:38 +00:00
Mike Blumenkrantz
aee78a3504
util/prim_restart: store index bounds while rewriting draws
...
may as well
Reviewed-by: Erik Faye-Lund <erik.faye-lund@collabora.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10966 >
2021-06-09 14:17:38 +00:00
Mike Blumenkrantz
69d47fdd7a
util/prim_restart: pre-trim degenerate primitives during draw rewrite
...
these will be eliminated by drivers anyway
Reviewed-by: Erik Faye-Lund <erik.faye-lund@collabora.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10966 >
2021-06-09 14:17:38 +00:00
Mike Blumenkrantz
5d54b64e6d
util/prim_restart: assert the index size at the start of the function
...
this lets it be removed from the macro loop
Reviewed-by: Erik Faye-Lund <erik.faye-lund@collabora.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10966 >
2021-06-09 14:17:38 +00:00
Rhys Perry
c129ede523
aco: use ds_read_{u8,u16}_d16
...
This allows partial writes and writes to the upper half of the destination.
fossil-db (Sienna Cichlid):
Totals from 135 (0.09% of 149839) affected shaders:
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/11113 >
2021-06-09 12:06:50 +00:00
Rhys Perry
6334d73fc9
aco: don't ever widen 8/16-bit sgpr load_shared
...
Doesn't seem to create incorrect code, but it is suboptimal.
No fossil-db changes.
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/11113 >
2021-06-09 12:06:50 +00:00
Rhys Perry
d2b9c7e982
radv: improve LDS alignment check for load/store vectorization
...
Previously, this could vectorize two scalar 16-bit loads into a u8vec4
load.
No fossil-db changes.
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/11113 >
2021-06-09 12:06:50 +00:00
Rhys Perry
4870d7d829
aco: use v1b/v2b for ds_read_u8/ds_read_u16
...
The p_extract_vector isn't necessary.
For ds_read_u8 and ds_read_u16, we used a 32-bit regclass, but did't load
32 bits, and used dst_hint for vector loads when we shouldn't have.
Signed-off-by: Rhys Perry <pendingchaos02@gmail.com >
Reviewed-by: Daniel Schürmann <daniel@schuermann.dev >
Closes: https://gitlab.freedesktop.org/mesa/mesa/-/issues/4863
Cc: mesa-stable
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11113 >
2021-06-09 12:06:50 +00:00
Samuel Pitoiset
2fb436e92a
ci: update list of expected failures for Pitcairn/Oland (RADV)
...
The robustness2 failures were a mistake because they are actually
not supported (no VK_EXT_scalar_block_layout on GFX6).
The sparse related failures are no longer supported since sparse
is only enabled for Polaris10+.
Signed-off-by: Samuel Pitoiset <samuel.pitoiset@gmail.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11243 >
2021-06-09 11:27:44 +00:00
Samuel Pitoiset
d169dad393
aco: fix emitting literal offsets with SMEM on GFX7
...
When the offset is negative, reg() isn't 255. Fix this by splitting
SGPR and literal emission. While we are at it, adjust a comment
saying that literals are also accepted on GFX6 which is wrong.
Fixes another batch of robustness tests.
Cc: 21.1 mesa-stable
Signed-off-by: Samuel Pitoiset <samuel.pitoiset@gmail.com >
Reviewed-by: Daniel Schürmann <daniel@schuermann.dev >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11247 >
2021-06-09 11:10:38 +00:00
Daniel Stone
6c6674d72c
ci/zink: Skip flaky GLX test
...
!11218 definitely didn't change anything about Zink that should make it
read black back from GLX. Assuming it's a race somewhere, just add it to
skips and move on.
Signed-off-by: Daniel Stone <daniels@collabora.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11256 >
2021-06-09 10:24:56 +00:00
Samuel Pitoiset
13efad3086
radv: dump SPIR-V instead of using spirv-dis when generating a hang report
...
Useful when spirv-dis isn't found.
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/11034 >
2021-06-09 10:07:17 +00:00
Georg Lehmann
3149eccc1c
radv: Implement VK_EXT_global_priority_query.
...
Signed-off-by: Georg Lehmann <dadschoorse@gmail.com >
Reviewed-by: Bas Nieuwenhuizen <bas@basnieuwenhuizen.nl >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11215 >
2021-06-09 08:25:25 +00:00
Georg Lehmann
00084669ae
vulkan: Update the XML and headers to 1.2.180
...
Signed-off-by: Georg Lehmann <dadschoorse@gmail.com >
Reviewed-by: Bas Nieuwenhuizen <bas@basnieuwenhuizen.nl >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11215 >
2021-06-09 08:25:25 +00:00
Paulo Zanoni
697804ba49
iris: finish converting from drmIoctl to intel_ioctl
...
Only 3 remaining users. The implementations are exactly the same.
Reviewed-by: Kenneth Graunke <kenneth@whitecape.org >
Signed-off-by: Paulo Zanoni <paulo.r.zanoni@intel.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11194 >
2021-06-09 08:00:55 +00:00
Caio Marcelo de Oliveira Filho
e94c99513a
nir/gather_info: Rename per_vertex to is_arrayed
...
Reviewed-by: Kenneth Graunke <kenneth@whitecape.org >
Reviewed-by: Timur Kristóf <timur.kristof@gmail.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11252 >
2021-06-09 07:35:57 +00:00
Caio Marcelo de Oliveira Filho
a59f1d628a
nir/lower_io: Rename vertex_index to array_index in helpers
...
The helpers will be reused for per-primitive variables that are also
arrayed, so use a more general name.
Reviewed-by: Kenneth Graunke <kenneth@whitecape.org >
Reviewed-by: Timur Kristóf <timur.kristof@gmail.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11252 >
2021-06-09 07:35:57 +00:00
Samuel Pitoiset
3761d994f6
aco: fix range checking for SSBO loads/stores with SGPR offset on GFX6-7
...
GFX6-7 are affected by a hw bug that prevents address clamping to work
correctly when the SGPR offset is used. Use the VGPR offset to fix it.
Fixes various hangs with dEQP-VK.robustness.robustness2.* on Bonaire.
Cc: 21.1 mesa-stable
Signed-off-by: Samuel Pitoiset <samuel.pitoiset@gmail.com >
Reviewed-by: Daniel Schürmann <daniel@schuermann.dev >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11238 >
2021-06-09 06:40:16 +00:00
Tomeu Vizoso
d523126bd0
ci: Disable windows builds due to runner not being available
...
Warning from Gitlab:
This job is stuck because you don't have any active runners online or
available with any of these tags assigned to them: windows shell 1809
mesa
Signed-off-by: Tomeu Vizoso <tomeu.vizoso@collabora.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11255 >
2021-06-09 07:37:45 +02:00
Alyssa Rosenzweig
95bd6e915f
nir/lower_fragcolor: Avoid redundant load_output
...
At best, this is an extra instruction for NIR to optimize out. At worst,
depending on pass ordering nir_load_output could sneak into the final
NIR, even on drivers that don't support fbfetch.
Signed-off-by: Alyssa Rosenzweig <alyssa@collabora.com >
Reviewed-by: Mike Blumenkrantz <michael.blumenkrantz@gmail.com >
Reviewed-by: Jason Ekstrand <jason@jlekstrand.net >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11255 >
2021-06-09 02:58:08 +00:00
Alyssa Rosenzweig
209c829775
ci: Disable the iris APL jobs
...
Someone's cat is chewing on the Ethernet adaptor.
Signed-off-by: Alyssa Rosenzweig <alyssa@collabora.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11255 >
2021-06-09 02:58:08 +00:00
Rob Clark
09f64f74db
freedreno/ir3: Fix use after free
...
If the tex/sfu ssa src is from a different block than the one currently
being scheduled, we do not have a valid sched-node. So fallback to
previous behavior rather than dereference an invalid ptr.
Fixes: 7821e5a3f8 ("ir3/sched: Don't penalize uses of already-waited tex/SFU")
Signed-off-by: Rob Clark <robdclark@chromium.org >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10306 >
2021-06-09 00:37:15 +00:00
Jason Ekstrand
ddf970af88
anv/blorp: Optimize addresses/relocations when ANV_ALWAYS_SOFTPIN
...
Reviewed-by: Lionel Landwerlin <lionel.g.landwerlin@intel.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11236 >
2021-06-08 22:53:22 +00:00
Jason Ekstrand
c7e1488037
anv: Optimize anv_address_physical when ANV_ALWAYS_SOFTPIN
...
Reviewed-by: Lionel Landwerlin <lionel.g.landwerlin@intel.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11236 >
2021-06-08 22:53:22 +00:00
Jason Ekstrand
921bd2d1c7
anv: Fast-path surface relocs when we have softpin
...
Reviewed-by: Lionel Landwerlin <lionel.g.landwerlin@intel.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11236 >
2021-06-08 22:53:22 +00:00
Jason Ekstrand
6afc3f97b6
anv: Make anv_batch_emit_reloc inline and optimize SKL+
...
This should drop the CPU overhead of processing buffers on SKL+ by
dropping some of the logic contained in anv_reloc_list_add() whenever we
have enough compile-time information to know we have softpin.
Reviewed-by: Lionel Landwerlin <lionel.g.landwerlin@intel.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11236 >
2021-06-08 22:53:22 +00:00
Jason Ekstrand
9802a0d7ca
anv: Add a helper to add a BO to the batch list without a reloc
...
The relocation list currently serves two purposes. One is for
relocations on older non-softpin platforms. The second is to keep track
of driver-managed BOs which are used by the given command buffer. We
going to need a mechanism to add BOs to the command buffer without doing
a relocation into the batch.
Reviewed-by: Lionel Landwerlin <lionel.g.landwerlin@intel.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11236 >
2021-06-08 22:53:22 +00:00
Jason Ekstrand
7e8c28383c
anv: Handle OOM in the pinned path in anv_reloc_list_add
...
Fixes: b3c0b1b218 "anv: Use a bitset for tracking residency"
Reviewed-by: Lionel Landwerlin <lionel.g.landwerlin@intel.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11236 >
2021-06-08 22:53:22 +00:00
Jason Ekstrand
a63e97e09a
anv: Make use_softpin compile-time in genX code
...
Whenever we have the GFX_VERx10 macro available, we can make use_softpin
a compile-time thing for everything but Broadwell and Cherryview. This
should save us some CPU cycles especially on SKL+.
Reviewed-by: Lionel Landwerlin <lionel.g.landwerlin@intel.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11236 >
2021-06-08 22:53:22 +00:00
Jason Ekstrand
04ccfeae98
anv: Require softpin on Gen8+
...
Softpin was added to i915 in
commit 506a8e87d8d2746b9e9d2433503fe237c54e4750
Author: Chris Wilson <chris@chris-wilson.co.uk >
Date: Tue Dec 8 11:55:07 2015 +0000
drm/i915: Add soft-pinning API for execbuffer
which was included in Linux 4.5. It's been over 5 years so it's
probably reasonable to make it a hard requirement.
Reviewed-by: Jordan Justen <jordan.l.justen@intel.com >
Acked-by: Emma Anholt <emma@anholt.net >
Acked-by: Kenneth Graunke <kenneth@whitecape.org >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11236 >
2021-06-08 22:53:22 +00:00
Caio Marcelo de Oliveira Filho
7c1c9e935e
anv: Support workgroup memory in other shaders
...
Mesh and Task shaders can use workgroup memory, so generalize its
handling in anv by moving it from anv_pipeline_compile_cs() to
anv_pipeline_lower_nir().
Update Pipeline Statistics accordingly.
Reviewed-by: Marcin Ślusarz <marcin.slusarz@intel.com >
Reviewed-by: Lionel Landwerlin <lionel.g.landwerlin@intel.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11230 >
2021-06-08 11:30:39 -07:00
Caio Marcelo de Oliveira Filho
8af6766062
nir: Move workgroup_size and workgroup_variable_size into common shader_info
...
Move it out the "cs" sub-struct, since these will be used for other
shader stages in the future.
Reviewed-by: Kenneth Graunke <kenneth@whitecape.org >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11225 >
2021-06-08 09:23:55 -07:00
Caio Marcelo de Oliveira Filho
b5f6fc442c
nir: Move zero_initialize_shared_memory into common shader_info
...
Move it out the "cs" sub-struct, since the bit will be used for other
shader stages in the future.
Reviewed-by: Kenneth Graunke <kenneth@whitecape.org >
Reviewed-by: Timur Kristóf <timur.kristof@gmail.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11225 >
2021-06-08 09:23:55 -07:00
Mike Blumenkrantz
7b13c1461d
zink: more accurately handle shader layer/viewport caps
...
the spirv extension is required for spirv < 1.5, but the core cap should
be used for spirv >= 1.5
Reviewed-by: Jason Ekstrand <jason@jlekstrand.net >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11244 >
2021-06-08 15:40:22 +00:00
Tony Wasserka
3b81f53e34
aco/ra: Split print_regs by lines of 64 registers
...
Reviewed-by: Daniel Schürmann <daniel@schuermann.dev >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10517 >
2021-06-08 17:03:08 +02:00
Tony Wasserka
69584478c9
aco/ra: Clean up print_regs output and support byte-allocated variables
...
Example output:
00 03 06 09 12 15 18 21 24 27 30 33 36 39 42
sgprs: ·▉█▉███▉▉█··████···········▉████············
00 03 06 09 12 15 18 21 24 27 30 33 36 39 42
vgprs: ▉▉··▉▉▉▉▘▀▉▉▉···▉▘▘▉▉▉▉···▉▉▉▀▀▉············
Reviewed-by: Daniel Schürmann <daniel@schuermann.dev >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10517 >
2021-06-08 17:03:08 +02:00
Tony Wasserka
5bfef2de66
aco/ra: Fix off-by-one-error in print_regs
...
Reviewed-by: Daniel Schürmann <daniel@schuermann.dev >
Fixes: 3675aefa84 ("aco/ra: Fix build with print_regs enabled")
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10517 >
2021-06-08 17:03:08 +02:00
Boyuan Zhang
a4472e90eb
frontends/omx: use pipe buffer map instead of texture map
...
Fixes: eb74f9776 ("gallium: split transfer_(un)map into buffer_(un)map and texture_(un)map")
Signed-off-by: Boyuan Zhang <boyuan.zhang@amd.com >
Reviewed-by: Marek Olšák <marek.olsak@amd.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11233 >
2021-06-08 14:18:11 +00:00
Leo Liu
b8574cdaa8
frontends/va: use the entrypoint from context instead of the hard-coded one
...
It could fail the case where this is only encode available.
Signed-off-by: Leo Liu <leo.liu@amd.com >
Reviewed-by: James Zhu <James.Zhu@amd.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11201 >
2021-06-08 09:32:48 -04:00
Leo Liu
4c0420d44e
frontends/va: include the profile queries for encoder as well
...
Signed-off-by: Leo Liu <leo.liu@amd.com >
Reviewed-by: James Zhu <James.Zhu@amd.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11201 >
2021-06-08 09:32:48 -04:00
Leo Liu
b4d185b44b
frontends/va: use the correct entrypoint to get config attributes
...
PIPE_VIDEO_ENTRYPOINT_ENCODE should be used in this case.
Signed-off-by: Leo Liu <leo.liu@amd.com >
Reviewed-by: James Zhu <James.Zhu@amd.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11201 >
2021-06-08 09:32:48 -04:00
Leo Liu
43c04ab2b4
radeonsi: separate video hw info based on HW engine individually
...
This removes previous "has_hw_decode" and "uvd_enc_supported" and
makes information more accuate for cases where HW decode, HW encode,
and HW JPEG decode might partially available.
Signed-off-by: Leo Liu <leo.liu@amd.com >
Reviewed-by: James Zhu <James.Zhu@amd.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11201 >
2021-06-08 09:32:48 -04:00
Leo Liu
8ddba3b5ea
radeonsi: add PIPE_FORMAT_P010 for HEVC Main10 profile to encode param
...
The format can be queried through the encode entrypoint
Signed-off-by: Leo Liu <leo.liu@amd.com >
Reviewed-by: James Zhu <James.Zhu@amd.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11201 >
2021-06-08 09:32:48 -04:00
Bas Nieuwenhuizen
6b7ff241f4
nir/lower_returns: Deal with single-arg phis after if.
...
if we have
if ... {
return;
} else {
// block X
}
// block Y
phi(X: ...)
then nir_lower_returns tries to move block Y into the else body,
except nir_cf_extract doesn't move the phi. As the return is removed
in the then-body the phi suddenly has the wrong number of arguments
(and the phi doesn't dominate its uses anymore).
In this case we know that the phi has to be single arg, so we can just
rewrite the users of the phis and drop them.
Hit this in my RT adventures, not sure if this is actually reachable
right now, as single arg phis tend to be kind of exceptional outside
of CSSA and we typically call nir_lower_returns pretty early.
Reviewed-by: Jason Ekstrand <jason@jlekstrand.net >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11207 >
2021-06-08 11:29:53 +00:00
Hubert Jasudowicz
9d772a545a
docs/egl: Add missing backticks
...
Signed-off-by: Hubert Jasudowicz <hubert.jasudowicz@gmail.com >
Reviewed-by: Marcin Ślusarz <marcin.slusarz@intel.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11240 >
2021-06-08 10:54:20 +00:00
Juan A. Suarez Romero
abd3421525
broadcom/ci: Report flakes on IRC
...
Report flakes in #videocore-ci channel.
v2 (Emma):
- Add glx@glx_arb_sync_control@timing.* as flakes.
Reviewed-by: Emma Anholt <emma@anholt.net >
Signed-off-by: Juan A. Suarez Romero <jasuarez@igalia.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11220 >
2021-06-08 09:52:32 +00:00
Juan A. Suarez Romero
1eca809680
ci/v3dv: test v3dv in arm64 environment
...
As most of the development is done in arm64, execute the v3dv related
tests in this environment.
Reviewed-by: Emma Anholt <emma@anholt.net >
Signed-off-by: Juan A. Suarez Romero <jasuarez@igalia.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11220 >
2021-06-08 09:52:32 +00:00
Juan A. Suarez Romero
ef9789f067
ci/broadcom: unset manual jobs
...
Make some of the jobs for vc4 and v3d to run automatically, in order to
identify more regressions.
Reviewed-by: Emma Anholt <emma@anholt.net >
Signed-off-by: Juan A. Suarez Romero <jasuarez@igalia.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11220 >
2021-06-08 09:52:32 +00:00
Samuel Pitoiset
9f7e63e12a
ac/debug: fix color printing PKT3 when count in header is too low
...
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/11211 >
2021-06-08 11:19:00 +02:00
Rhys Perry
c768d7d8f2
aco/tests: add SDWA 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/3151 >
2021-06-08 08:57:43 +00:00
Rhys Perry
24418304b0
aco/tests: add tests for p_extract/p_insert lowering
...
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/3151 >
2021-06-08 08:57:43 +00:00
Rhys Perry
8e0c6e196e
aco: disallow literals with some instruction formats
...
Because isVOPn() is true for many VOP3, SDWA and DPP instructions, this
would often not complain.
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/3151 >
2021-06-08 08:57:43 +00:00
Rhys Perry
cf22eabc68
aco: make validate_ir() output usable in 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/3151 >
2021-06-08 08:57:43 +00:00
Rhys Perry
54292e99c7
aco: optimize 32-bit extracts and inserts using SDWA
...
Still need to use dst_u=preserve field to optimize packs
fossil-db (Sienna Cichlid):
Totals from 15974 (10.66% of 149839) affected shaders:
VGPRs: 1009064 -> 1008968 (-0.01%); split: -0.03%, +0.02%
SpillSGPRs: 7959 -> 7964 (+0.06%)
CodeSize: 101716436 -> 101159568 (-0.55%); split: -0.55%, +0.01%
MaxWaves: 284464 -> 284490 (+0.01%); split: +0.02%, -0.01%
Instrs: 19334216 -> 19224241 (-0.57%); split: -0.57%, +0.00%
Latency: 375465295 -> 375230478 (-0.06%); split: -0.14%, +0.08%
InvThroughput: 79006105 -> 78860705 (-0.18%); split: -0.25%, +0.07%
fossil-db (Polaris):
Totals from 11369 (7.51% of 151365) affected shaders:
SGPRs: 787920 -> 787680 (-0.03%); split: -0.04%, +0.01%
VGPRs: 681056 -> 681040 (-0.00%); split: -0.01%, +0.00%
CodeSize: 68127288 -> 67664120 (-0.68%); split: -0.69%, +0.01%
MaxWaves: 54370 -> 54371 (+0.00%)
Instrs: 13294638 -> 13214109 (-0.61%); split: -0.62%, +0.01%
Latency: 373515759 -> 373214571 (-0.08%); split: -0.11%, +0.03%
InvThroughput: 166529524 -> 166275291 (-0.15%); split: -0.20%, +0.05%
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/3151 >
2021-06-08 08:57:43 +00:00
Rhys Perry
63659fc15c
radv: use byte/word extract/insert instructions
...
ACO doesn't yet combine extract/insert into instructions, but it seems to
already generate less instructions because NIR optimizes shift+and to
these instructions. Code size is worse in some cases though because we
have to always use a literal when masking.
fossil-db (Sienna Cichlid):
Totals from 14361 (9.58% of 149839) affected shaders:
VGPRs: 850152 -> 850304 (+0.02%); split: -0.02%, +0.04%
SpillSGPRs: 7979 -> 7989 (+0.13%); split: -0.03%, +0.15%
CodeSize: 88031216 -> 88162520 (+0.15%); split: -0.01%, +0.16%
MaxWaves: 269414 -> 269426 (+0.00%)
Instrs: 16695182 -> 16662852 (-0.19%); split: -0.21%, +0.01%
Latency: 375592693 -> 375544364 (-0.01%); split: -0.04%, +0.03%
InvThroughput: 75627700 -> 75607720 (-0.03%); split: -0.07%, +0.04%
fossil-db (Polaris):
Totals from 13816 (9.13% of 151365) affected shaders:
SGPRs: 984896 -> 982512 (-0.24%); split: -0.29%, +0.05%
VGPRs: 809220 -> 809112 (-0.01%); split: -0.02%, +0.01%
SpillSGPRs: 9181 -> 9185 (+0.04%); split: -0.04%, +0.09%
CodeSize: 82017952 -> 82123484 (+0.13%); split: -0.01%, +0.14%
MaxWaves: 65721 -> 65723 (+0.00%)
Instrs: 16008744 -> 15988007 (-0.13%); split: -0.18%, +0.05%
Latency: 439911623 -> 439869622 (-0.01%); split: -0.04%, +0.03%
InvThroughput: 185898770 -> 185841742 (-0.03%); split: -0.08%, +0.05%
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/3151 >
2021-06-08 08:57:43 +00:00
Rhys Perry
7d76b07d6b
ac/llvm: implement byte/word extract/insert instructions
...
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/3151 >
2021-06-08 08:57:43 +00:00
Rhys Perry
daa329f664
aco: use byte/word extract pseudo-instructions
...
fossil-db (Sienna Cichild):
Totals from 1890 (1.26% of 149839) affected shaders:
CodeSize: 5104196 -> 5104300 (+0.00%); split: -0.00%, +0.01%
Latency: 11572943 -> 11572880 (-0.00%); split: -0.00%, +0.00%
InvThroughput: 4876941 -> 4876982 (+0.00%); split: -0.00%, +0.00%
SClause: 26774 -> 26775 (+0.00%)
Copies: 125778 -> 125813 (+0.03%)
PreSGPRs: 56452 -> 56451 (-0.00%)
fossil-db (Polaris):
Totals from 1884 (1.24% of 151365) affected shaders:
CodeSize: 3849340 -> 3849312 (-0.00%); split: -0.00%, +0.00%
Instrs: 741391 -> 741382 (-0.00%)
Latency: 13533815 -> 13533439 (-0.00%)
InvThroughput: 12058777 -> 12058500 (-0.00%)
Copies: 120890 -> 120891 (+0.00%)
PreSGPRs: 48940 -> 48939 (-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/3151 >
2021-06-08 08:57:43 +00:00
Rhys Perry
1f2518ef9f
aco: implement nir_op_extract/nir_op_insert
...
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/3151 >
2021-06-08 08:57:43 +00:00
Rhys Perry
2f94353735
aco: add p_extract/p_insert
...
These will let us make the SDWA optimizer much simpler than if we were to
recognize combinations of shift/and/bfe.
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/3151 >
2021-06-08 08:57:42 +00:00
Rhys Perry
e9d1643288
aco: disallow SDWA for instructions with 64-bit definitions/operands
...
For example, v_cvt_f64_i32. LLVM doesn't seem to allow this either and it
doesn't seem to work correctly.
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/3151 >
2021-06-08 08:57:42 +00:00
Rhys Perry
1cbcfb8b38
nir, nir/algebraic: add byte/word insertion instructions
...
Signed-off-by: Rhys Perry <pendingchaos02@gmail.com >
Reviewed-by: Timur Kristóf <timur.kristof@gmail.com >
Reviewed-by: Ian Romanick <ian.d.romanick@intel.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/3151 >
2021-06-08 08:57:42 +00:00
Rhys Perry
edae3e5623
nir/algebraic: optimize extract of extract
...
Found in some sottr shaders (originally iand(ishr(a, 16), 0xffff))
Signed-off-by: Rhys Perry <pendingchaos02@gmail.com >
Reviewed-by: Timur Kristóf <timur.kristof@gmail.com >
Reviewed-by: Ian Romanick <ian.d.romanick@intel.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/3151 >
2021-06-08 08:57:42 +00:00
Samuel Pitoiset
736893060f
radv: emit PA_SC_CONSERVATIVE_RASTERIZATION_CNTL only on GFX9+
...
This context register doesn't exist on older generations.
Cc: 21.1 mesa-stable
Signed-off-by: Samuel Pitoiset <samuel.pitoiset@gmail.com >
Reviewed-by: Bas Nieuwenhuizen <bas@basnieuwenhuizen.nl >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11210 >
2021-06-08 05:58:01 +00:00
Dave Airlie
c04f20e7e0
intel/isl: add blend enable flag to gen4/5
...
Reviewed-by: Jason Ekstrand <jason@jlekstrand.net >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10655 >
2021-06-08 12:35:52 +10:00
Dave Airlie
c25a5a832a
intel/isl: add levels and minimum array element to null fill
...
gen4/5 needs these to avoid gpu hangs around matching depth/null
surfaces
Reviewed-by: Jason Ekstrand <jason@jlekstrand.net >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10655 >
2021-06-08 12:35:43 +10:00
Dave Airlie
cb152e79f2
intel/isl: convert null surface fill to a struct.
...
Suggested by Jason, pre-convert this to a struct so it can
be expanded for gen4/5 crocus support
Reviewed-by: Jason Ekstrand <jason@jlekstrand.net >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10655 >
2021-06-08 12:35:40 +10:00
Dave Airlie
6989afea58
intel/isl: decrease isl_format_layouts size by 36k
...
This drops
-0000000000011e90 R isl_format_layouts
+0000000000008f48 R isl_format_layouts
I think that's about 36k.
Thanks to Jason for suggesting PACKED
Reviewed-by: Jason Ekstrand <jason@jlekstrand.net >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11232 >
2021-06-08 11:52:25 +10:00
Yiwei Zhang
93f67055c4
venus: forward the host renderer hardware info
...
Some game engines rely on the real hardware info to adjust default
graphics quality and other attributes.
Signed-off-by: Yiwei Zhang <zzyiwei@chromium.org >
Reviewed-by: Chia-I Wu <olvaffe@gmail.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11175 >
2021-06-07 23:54:52 +00:00
Caio Marcelo de Oliveira Filho
c8a7bd0dc8
nir: Rename WORK_GROUP (and similar) to WORKGROUP
...
Be consistent with other usages in Vulkan and SPIR-V, and the recently
added workgroup_size field.
Acked-by: Emma Anholt <emma@anholt.net >
Acked-by: Alyssa Rosenzweig <alyssa.rosenzweig@collabora.com >
Reviewed-by: Jason Ekstrand <jason@jlekstrand.net >
Acked-by: Timur Kristóf <timur.kristof@gmail.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11190 >
2021-06-07 22:34:42 +00:00
Caio Marcelo de Oliveira Filho
a71a780598
nir: Rename nir_intrinsic_load_local_group_size to nir_intrinsic_load_workgroup_size
...
Acked-by: Emma Anholt <emma@anholt.net >
Acked-by: Alyssa Rosenzweig <alyssa.rosenzweig@collabora.com >
Reviewed-by: Jason Ekstrand <jason@jlekstrand.net >
Acked-by: Timur Kristóf <timur.kristof@gmail.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11190 >
2021-06-07 22:34:42 +00:00
Caio Marcelo de Oliveira Filho
43a6a2151b
compiler: Rename SYSTEM_VALUE_LOCAL_GROUP_SIZE to SYSTEM_VALUE_WORKGROUP_SIZE
...
Acked-by: Emma Anholt <emma@anholt.net >
Acked-by: Alyssa Rosenzweig <alyssa.rosenzweig@collabora.com >
Reviewed-by: Jason Ekstrand <jason@jlekstrand.net >
Acked-by: Timur Kristóf <timur.kristof@gmail.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11190 >
2021-06-07 22:34:42 +00:00
Caio Marcelo de Oliveira Filho
430d2206da
compiler: Rename local_size to workgroup_size
...
Acked-by: Emma Anholt <emma@anholt.net >
Acked-by: Alyssa Rosenzweig <alyssa.rosenzweig@collabora.com >
Reviewed-by: Jason Ekstrand <jason@jlekstrand.net >
Acked-by: Timur Kristóf <timur.kristof@gmail.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11190 >
2021-06-07 22:34:42 +00:00
Emma Anholt
4b9e52e818
i915g: Make sure we don't try to texture from the const file.
...
It's an invalid value for the texture coordinate source, and this becomes
more common if we enable nir-to-tgsi.
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11227 >
2021-06-07 22:24:11 +00:00
Emma Anholt
1945c1f526
ci/i915g: Fix incorrect expectation.
...
I think this was an edit failure on my part when fixing up the
expectations for merge.
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11227 >
2021-06-07 22:24:11 +00:00
Timur Kristóf
18d48c01c2
radv: Assert that there is no GS copy shader when the pipeline has NGG.
...
Signed-off-by: Timur Kristóf <timur.kristof@gmail.com >
Reviewed-by: Samuel Pitoiset <samuel.pitoiset@gmail.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11092 >
2021-06-07 22:05:42 +00:00
Timur Kristóf
7e664a5383
radv: Don't generate GS copy shader when the pipeline has NGG.
...
Previously the code used radv_pipeline_has_ngg but that always
returned false because the pipeline->shaders was all NULL at the
time when the GS copy shader was created.
Fixes: ca783612e7
Signed-off-by: Timur Kristóf <timur.kristof@gmail.com >
Reviewed-by: Samuel Pitoiset <samuel.pitoiset@gmail.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11092 >
2021-06-07 22:05:42 +00:00
Timur Kristóf
93b1089d19
radv: Remove duplicate code for getting GS info.
...
This was my mistake for forgetting to delete this code.
Signed-off-by: Timur Kristóf <timur.kristof@gmail.com >
Reviewed-by: Samuel Pitoiset <samuel.pitoiset@gmail.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11092 >
2021-06-07 22:05:42 +00:00
Alejandro Piñeiro
50907105f9
v3d/simulator: get rid of has_gca wrapper
...
We can assume that it is always present on 3.3 and below. In fact,
recent updates of the simulator will remove it, so this change would
be needed soon.
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11040 >
2021-06-07 21:52:20 +00:00
Alejandro Piñeiro
646a8338b1
v3d/simulator: hw mem is now an v3d_size_t, typedef to uint32_t
...
It would be really awesome to be able to write this so it would work
with old and new versions of the simulator, but I was not able to do
that.
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11040 >
2021-06-07 21:52:20 +00:00
Jason Ekstrand
c9bbf75195
ttn: Stop manually managing system_values_read
...
There's no point in duplicating all the ops here. The caller should run
nir_gather_info if they want system_values_read. Hand-rolling it all in
tgsi_to_nir is just asking for bugs.
Reviewed-by: Emma Anholt <emma@anholt.net >
Reviewed-by: Timur Kristóf <timur.kristof@gmail.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11222 >
2021-06-07 21:04:35 +00:00
Andres Gomez
996a6564cf
ci: update some radv trace checksums
...
After 7d23ea20a0 ("radv: don't allocate DCC predicate if the image doesn't use DCC")
some checksums for the radv driver remained to be updated.
Signed-off-by: Andres Gomez <agomez@igalia.com >
Reviewed-by: Martin Peres <martin.peres@mupuf.org >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11223 >
2021-06-07 20:45:55 +00:00
Rob Clark
da4bd551a3
frontend/dri: Fix fence-fd logic
...
We can't ask for a fence fd if we don't pass PIPE_FLUSH_FENCE_FD. Also
don't leak fences.
Fixes: abec42c9a3 ("gallium/dri: implement EGL_KHR_mutable_render_buffer")
Signed-off-by: Rob Clark <robdclark@chromium.org >
Reviewed-by: Yiwei Zhang <zzyiwei@chromium.org >
Reviewed-by: Emma Anholt <emma@anholt.net >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11202 >
2021-06-07 20:14:25 +00:00
Rob Clark
964efdfba9
egl+libsync: Add check for valid fence-fd
...
Debugging fd mix-ups (ie. where, possibly via close()ing the original
fd, etc, you end up with something that is a valid fd but not a valid
*fence* fd) can be difficult. Fortunately we can use the FILE_INFO
ioctl, which will return an error if the fd is not a fence fd.
For android, we instead use the libsync API, which does a similar thing
on modern kernels, but has a fallback path for older android kernels.
Note that the FILE_INFO ioctl has existed upstream since at least prior
to destaging of sync_file.
Signed-off-by: Rob Clark <robdclark@chromium.org >
Reviewed-by: Emma Anholt <emma@anholt.net >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11202 >
2021-06-07 20:14:25 +00:00
Rob Clark
bfeff2c687
egl: zero is a valid fd
...
We shouldn't be using RETURN_EGL_EVAL() for eglDupNativeFenceFDANDROID()
return, as (while perhaps unlikely) zero is a valid fd. The error case
for EGL_NO_NATIVE_FENCE_FD_ANDROID is already handled in egl_dri2.c
(dri2_dup_native_fence_fd()) so just use RETURN_EGL_SUCCESS() instead.
Also fix ret type.
Fixes: 0201f01dc4 ("egl: add EGL_ANDROID_native_fence_sync")
Signed-off-by: Rob Clark <robdclark@chromium.org >
Reviewed-by: Emma Anholt <emma@anholt.net >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11202 >
2021-06-07 20:14:25 +00:00
Kenneth Graunke
a588cda75a
iris: Add a BO_ALLOC_SMEM flag for allocating from system memory
...
Most allocations will want to be in device local memory (if it exists),
so we default to LMEM in the absence of a flag. However, some buffers
are expected to be read/written from the CPU multiple times, and we may
want to explicitly place those buffers in system memory.
This patch adds the infrastructure for deciding on the allocation,
and sets the flags, but does not actually hook up the flag to do
anything, as the kernel infrastructure for LMEM support hasn't landed.
Reviewed-by: Tapani Pälli <tapani.palli@intel.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11169 >
2021-06-07 10:35:25 -07:00
Kenneth Graunke
ab49063f44
iris: Only use SET/GET_TILING when exporting/importing BOs
...
In the past, we tracked bo->tiling_mode and bo->stride, and used
GEM_{GET,SET}_TILING on all buffers we allocated. This made more sense
in the old days (long before iris even existed) when we used GTT maps to
detile resources. However, that support is now gone, and we never used
it in iris anyway. We don't need to do this in most cases anymore.
We are trying to deprecate these kernel APIs. They have many issues.
One is having a global tiling mode for a buffer when userspace may
want to suballocate multiple resources with different tiling modes
from the same object. Another is...what if processes want to interpret
the data differently, and hot-swap the tiling mode out from under
another process? Another is the fundamental race conditions. There
are many reasons not to use these APIs.
Unfortunately, there is still one case where it's used: when importing
and exporting DMABUFs, we have to communicate the tiling somehow. The
right way to do that is using modifiers, but those didn't always exist,
and aren't always enabled (maybe aren't even commonly enabled). So we
use GET/SET_TILING as a poor-man's IPC mechanism of sorts.
This patch stops calling those APIs in general but continues doing so
for imported/exported objects when we don't have modifiers.
We eliminate iris_bo_alloc_tiled entirely. There is now only one!
One small behavioral change snuck in: iris_memobj_create_from_handle
now aligns the virtual address to 64K rather than 1B when modifiers
aren't present. This should be harmless, and lets us delete a whole
bunch of code.
Reviewed-by: Tapani Pälli <tapani.palli@intel.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11169 >
2021-06-07 10:35:25 -07:00
Kenneth Graunke
32c5d6d1dc
iris: Add an alignment parameter to iris_bo_alloc()
...
This is rarely useful, but after the next patch removes tiling tracking,
this would literally be the only difference between iris_bo_alloc and
iris_bo_alloc_tiled, so we may as well add it.
Reviewed-by: Tapani Pälli <tapani.palli@intel.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11169 >
2021-06-07 10:35:25 -07:00
Kenneth Graunke
539494e767
iris: Add a flags argument to iris_bo_alloc()
...
Based on a patch by Rafael Antognolli.
We already had a flags parameter, but omitted it from the simple alloc
interface because most callers were passing 0. However, we'll want to
use it for selecting between device local memory and system memory, and
possibly mmap cacheability modes, in the future. At that point, many
more callers will want to specify, so I think we should include flags
in iris_bo_alloc() as well.
A few places used the iris_bo_alloc_tiled() function simply to pass
flags, so this patch converts them to use iris_bo_alloc() instead now
it does everything they want.
Reviewed-by: Tapani Pälli <tapani.palli@intel.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11169 >
2021-06-07 10:35:25 -07:00
Jason Ekstrand
9e0fd49858
intel/fs/ra: Fix payload node setup for SIMD16 on Gen4-5
...
Since 40e1d798c6 , we are now using physical register numbers for
everything which makes it all simpler. In particular, we no longer need
the special case for setting up the payload for SIMD16 on Gen4-5. This
fixes a pile of piglit tests on ILK and similar.
Fixes: 40e1d798c6 "intel/fs: Use ra_alloc_contig_reg_class()..."
Reviewed-by: Emma Anholt <emma@anholt.net >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11221 >
2021-06-07 16:52:19 +00:00
Roman Stratiienko
8621bd8d5e
android: Add scripts to build using meson
...
How to use:
- For GALLIUM drivers:
1. Add gallium drivers into your board.mk file:
board.mk:
BOARD_MESA3D_USES_MESON_BUILD := true
BOARD_MESA3D_GALLIUM_DRIVERS := lima panfrost v3d
2. Add the following packages into your device.mk file:
device.mk:
PRODUCT_PACKAGES += \
libEGL_mesa \
libGLESv1_CM_mesa \
libGLESv2_mesa \
libgallium_dri \
libglapi
- For VULKAN drivers:
1. Add single vulkan driver into your board.mk file:
board.mk:
BOARD_MESA3D_USES_MESON_BUILD := true
BOARD_MESA3D_VULKAN_DRIVERS := freedreno broadcom
2. Add the following package configuration into your device.mk file:
device.mk:
PRODUCT_PACKAGES += \
vulkan.freedreno
PRODUCT_PROPERTY_OVERRIDES += \
ro.hardware.vulkan=freedreno
- To build 'libgbm' set definition in the board.mk:
BOARD_MESA3D_BUILD_LIBGBM := true
And add a package to the device.mk:
PRODUCT_PACKAGES += libgbm
Signed-off-by: Roman Stratiienko <r.stratiienko@gmail.com >
Acked-by: Alyssa Rosenzweig <alyssa.rosenzweig@collabora.com >
Tested-by: Mauro Rossi <issor.oruam@gmail.com >
Reviewed-by: Emma Anholt <emma@anholt.net >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10183 >
2021-06-07 16:04:15 +00:00
Roman Stratiienko
016e932cda
meson: egl: Do not build platform_drm for Android
...
'platform_android' wasn't designed to coexist with 'platform_drm' within
single build, therefore a lot of conflicts appears during compile-time.
Signed-off-by: Roman Stratiienko <r.stratiienko@gmail.com >
Reviewed-by: Eric Engestrom <eric@engestrom.ch >
Acked-by: Alyssa Rosenzweig <alyssa.rosenzweig@collabora.com >
Tested-by: Mauro Rossi <issor.oruam@gmail.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10183 >
2021-06-07 16:04:15 +00:00
Erik Faye-Lund
45814b58c1
docs: update master -> main in edit-links
...
Since the move from master to main, our "Edit on GitLab" links on
docs.mesa3d.org has been pointing to the wrong branch.
Let's fix this, so we don't confuse users who want to contribute
changes.
Acked-by: Adam Jackson <ajax@redhat.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11160 >
2021-06-07 14:45:39 +00:00
Erik Faye-Lund
eea4c98f6d
st/pbo: use correct type for images and textures
...
Not all hardware can treat float, uint and sint samplers and images the
same way, so we need to respect the format-types here.
This has the added benefit of making sure sint and uint data doesn't
get copied through a float, which might mess with signaling nan
encodings.
Reviewed-by: Marek Olšák <marek.olsak@amd.com >
Reviewed-By: Mike Blumenkrantz <michael.blumenkrantz@gmail.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11164 >
2021-06-07 12:13:32 +00:00
Erik Faye-Lund
baf4b05aad
zink: use a macro for spir-v versions
...
Instead of repeating constants over and over, let's use a macro for the
SPIR-V version definition instead.
Reviewed-by: Hoe Hao Cheng <haochengho12907@gmail.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11044 >
2021-06-07 12:00:15 +00:00
Erik Faye-Lund
263ec2fd2a
zink: only enable vote if we can support it
...
We can only support subgroup vote if we have support for SPIR-V 1.3 or
later.
Reviewed-By: Mike Blumenkrantz <michael.blumenkrantz@gmail.com >
Reviewed-by: Hoe Hao Cheng <haochengho12907@gmail.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11044 >
2021-06-07 12:00:15 +00:00
Erik Faye-Lund
990ed280d0
zink: calculate spir-v version based on vk version
...
This moves the previous check up to the screen-creation, making it
possible to enable features based on the SPIR-V version.
The reason we want to be able to do this, is so we can force specific
SPIR-V versions, in order to work around bugs in tools.
Reviewed-By: Mike Blumenkrantz <michael.blumenkrantz@gmail.com >
Reviewed-by: Hoe Hao Cheng <haochengho12907@gmail.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11044 >
2021-06-07 12:00:15 +00:00
Erik Faye-Lund
cae50a52e2
zink: allow to specify any spir-v version to nir_to_spirv
...
This will hopefully helps making it easier to override the SPIR-V
version we emit, in case some drivers or tools have issues with too
recent SPIR-V versions.
Reviewed-By: Mike Blumenkrantz <michael.blumenkrantz@gmail.com >
Reviewed-by: Hoe Hao Cheng <haochengho12907@gmail.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11044 >
2021-06-07 12:00:15 +00:00
Erik Faye-Lund
fb83477a58
zink: rename spirv_15 bool to spirv_1_4_interfaces
...
To make it a bit easier to follow what's going on here, rename the
"spirv_15" boolean to "spirv_1_4_interfaces", and add a comment about
what it's all about.
Reviewed-By: Mike Blumenkrantz <michael.blumenkrantz@gmail.com >
Reviewed-by: Hoe Hao Cheng <haochengho12907@gmail.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11044 >
2021-06-07 12:00:15 +00:00
Erik Faye-Lund
28c842e4b7
zink: limit images we mark as cube-compatible
...
The Vulkan spec says the following:
> If imageType is VK_IMAGE_TYPE_2D and flags contains
> VK_IMAGE_CREATE_CUBE_COMPATIBLE_BIT, extent.width and extent.height
> must be equal and arrayLayers must be greater than or equal to 6
This makes a lot of sense, as these are also requirements for being able
to create cubemaps from them in the first place.
Let's thread a bit more careful, and only set this bit in these cases.
This matters in the new case of setting this flag on 2D array textures.
In the other cases, this should already be the case.
I haven't seen this trigger any issues, I just realized this while
reading the Vulkan-spec.
Fixes: 1887ff2ebb ("zink: mark 2d-arrays as cube-compatible")
Reviewed-by: Hoe Hao Cheng <haochengho12907@gmail.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11081 >
2021-06-07 11:47:17 +00:00
Iago Toral Quiroga
6f504b5fc6
v3dv: fix incorrect render area setup
...
Closes: https://gitlab.freedesktop.org/mesa/mesa/-/issues/4875
Reviewed-by: Alejandro Piñeiro <apinheiro@igalia.com
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11158 >
2021-06-07 11:25:22 +00:00
Iago Toral Quiroga
4886773fc0
v3dv: implement VK_KHR_descriptor_update_template
...
Relevant tests:
dEQP-VK.binding_model.*.with_template.*
Reviewed-by: Alejandro Piñeiro <apinheiro@igalia.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11213 >
2021-06-07 11:10:49 +00:00
Iago Toral Quiroga
a48cb7534d
v3dv: refactor descriptor updates
...
Make helper functions for all descriptor types and have them handle
all of the descriptor update so we can reuse them later to implement
template updates.
Reviewed-by: Alejandro Piñeiro <apinheiro@igalia.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11213 >
2021-06-07 11:10:49 +00:00
Tony Wasserka
3c390e2eb6
aco/scheduler: Move cursor handling state to dedicated interfaces
...
This clarifies the semantics of the index variables compared to the previous
version, which used the same variables in a slightly different way depending
on whether they were used for downwards moves or upwards ones.
Reviewed-by: Daniel Schürmann <daniel@schuermann.dev >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10885 >
2021-06-07 12:09:39 +02:00
Tony Wasserka
81761a311e
aco/scheduler: Clean up register demand tracking
...
Refactoring total_demand and total_demand_clause to cover non-overlapping
instruction intervals makes the code easier to follow and allows the register
demand to be updated more efficiently in some cases.
Reviewed-by: Daniel Schürmann <daniel@schuermann.dev >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10885 >
2021-06-07 12:09:39 +02:00
Marcin Ślusarz
2ebf4e984b
intel/disasm: remove useless space after "("
...
Signed-off-by: Marcin Ślusarz <marcin.slusarz@intel.com >
Reviewed-by: Lionel Landwerlin <lionel.g.landwerlin@intel.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11070 >
2021-06-07 08:46:11 +00:00
Marcin Ślusarz
daba2894ff
intel/disasm: decode/describe more send messages
...
Signed-off-by: Marcin Ślusarz <marcin.slusarz@intel.com >
Reviewed-by: Lionel Landwerlin <lionel.g.landwerlin@intel.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11070 >
2021-06-07 08:46:11 +00:00
Pierre-Eric Pelloux-Prayer
a57e90bfea
winsys/amdgpu: use int16 for buffer_indices_hashlist
...
int16 allows to correctly store the indices of 32k buffers; this
seems sufficient and is twice smaller than regular int.
Reviewed-by: Marek Olšák <marek.olsak@amd.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11010 >
2021-06-07 07:38:35 +00:00
Pierre-Eric Pelloux-Prayer
a981105d90
winsys/amdgpu: reduce amdgpu_cs size
...
buffer_indices_hashlist is only used by the current
amdgpu_cs_context (= amdgpu_cs.csc).
So store a single 16k int array instead of 2, and switch
the owner when flushing the cs.
Reviewed-by: Marek Olšák <marek.olsak@amd.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11010 >
2021-06-07 07:38:35 +00:00
Pierre-Eric Pelloux-Prayer
74c67f2b72
amdgpu/winsys: remove amdgpu_cs_has_chaining
...
Store this property in admgpu_cs instead of using a function.
Reviewed-by: Marek Olšák <marek.olsak@amd.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11010 >
2021-06-07 07:38:35 +00:00
Pierre-Eric Pelloux-Prayer
1bd64d8cfb
winsys/amdgpu: don't read bo->u.slab.entry after pb_slab_free
...
Otherwise the pb_slabs might be freed by another thread in between.
Valgrind example:
==676841== Invalid read of size 1
==676841== at 0x6B0A8B3: get_slab_wasted_size (amdgpu_bo.c:659)
==676841== by 0x6B0AD7D: amdgpu_bo_slab_destroy (amdgpu_bo.c:684)
==676841== by 0x6ACF94F: pb_destroy (pb_buffer.h:259)
==676841== by 0x6ACF94F: pb_reference_with_winsys (pb_buffer.h:282)
==676841== by 0x6ACF94F: radeon_bo_reference (radeon_winsys.h:754)
==676841== by 0x6ACF94F: si_replace_buffer_storage (si_buffer.c:274)
==676841== by 0x6957036: tc_call_replace_buffer_storage (u_threaded_context.c:1554)
[...]
==676841== by 0x4ECCDEE: clone (clone.S:95)
==676841== Address 0x27879945 is 5 bytes inside a block of size 208 free'd
==676841== at 0x48399AB: free (vg_replace_malloc.c:538)
==676841== by 0x6B0E8BD: amdgpu_bo_slab_free (amdgpu_bo.c:863)
==676841== by 0x6B89D4A: pb_slabs_reclaim_locked (pb_slab.c:84)
==676841== by 0x6B89D4A: pb_slab_alloc (pb_slab.c:130)
==676841== by 0x6B0EE7F: amdgpu_bo_create (amdgpu_bo.c:1429)
Closes: https://gitlab.freedesktop.org/mesa/mesa/-/issues/4736
Fixes: 965c6445ad ("winsys/amdgpu,radeonsi: add HUD counters for how much memory is wasted by slabs")
Reviewed-by: Marek Olšák <marek.olsak@amd.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11010 >
2021-06-07 07:38:35 +00:00
Pierre-Eric Pelloux-Prayer
cd9be8741f
radeonsi: dirty msaa_config on rs->multisample_enable change
...
si_emit_msaa_config uses si_get_num_coverage_samples, and
si_get_num_coverage_samples depends on old_rs->multisample_enable.
Closes: https://gitlab.freedesktop.org/mesa/mesa/-/issues/4613
Cc: mesa-stable
Reviewed-by: Marek Olšák <marek.olsak@amd.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11182 >
2021-06-07 09:21:45 +02:00
Iago Toral Quiroga
017a150984
v3dv: expose VK_KHR_storage_buffer_storage_class
...
This extension is basically only wrapping SPV_KHR_storage_buffer_storage_class
which is entirely implemented in the SPIR-V frontend.
Relevant CTS tests:
dEQP-VK.glsl.opaque_type_indexing.ssbo_storage_buffer_decoration.*
dEQP-VK.spirv_assembly.*
Reviewed-by: Alejandro Piñeiro <apinheiro@igalia.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11184 >
2021-06-07 06:09:01 +00:00
Iago Toral Quiroga
71b2ae66c2
v3dv: document VK_KHR_relaxed_block_layout as implemented
...
Reviewed-by: Alejandro Piñeiro <apinheiro@igalia.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11184 >
2021-06-07 06:09:01 +00:00
Steve Pronovost
29e3a11d78
d3d12: Add mechanism for D3D12 Adapter Selection
...
This add a simple mechanism to select which GPU adapter the d3d12
driver should be using. A new environment variable is introduced.
MESA_D3D12_DEFAULT_ADAPTER_NAME
This represent a substring to search for in the GPU descrition,
for example "NVIDIA" or "INTEL", or "NVIDIA GeForce RTX 3090",
etc...
GPU are searched in order and the first one to include the substring
becomes a match. If no match is found, we default to the first
enumerated GPU.
Reviewed-by: Jesse Natalie <jenatali@microsoft.com >
Reviewed-by: Erik Faye-Lund <erik.faye-lund@collabora.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10710 >
2021-06-07 02:22:34 +00:00
Ilia Mirkin
108f34a165
nv50: expose GL ES 3.1 for nva3+ hardware
...
This hardware supports all of the points of ES 3.1 with the minor
exception of non-red gather operations.
Signed-off-by: Ilia Mirkin <imirkin@alum.mit.edu >
Reviewed-by: Pierre Moreau <dev@pmoreau.org >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10569 >
2021-06-06 15:58:38 -04:00
Ilia Mirkin
73a49c84d7
nv50: expose images/buffers/compute
...
This is not enough for desktop GL, since that requires support for
images/buffers in fragment shaders. However this is sufficient for ES
3.1's compute needs, where images/buffers need only be supported in
compute shaders.
Signed-off-by: Ilia Mirkin <imirkin@alum.mit.edu >
Reviewed-by: Pierre Moreau <dev@pmoreau.org >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10569 >
2021-06-06 15:58:38 -04:00
Ilia Mirkin
503d97445a
st/mesa: allow hardware to claim ES 3.1 without hw indirect draws
...
Such a driver will be expected to handle indirect draws via emulation.
As such we don't want to expose the ext in desktop GL contexts. However
for ES 3.1 it's a required feature, so makes sense to allow fallbacks.
Signed-off-by: Ilia Mirkin <imirkin@alum.mit.edu >
Reviewed-by: Eric Anholt <eric@anholt.net >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10569 >
2021-06-06 15:58:38 -04:00
Ilia Mirkin
08fe7d72d1
mesa/get: allow image/buffer/atomic variables to be fetched in es3.1
...
Right now these rely on the desktop extension enables being set. However
some drivers may not be able to support that full functionality. Allow
presence of ES 3.1 to be sufficient.
Signed-off-by: Ilia Mirkin <imirkin@alum.mit.edu >
Reviewed-by: Eric Anholt <eric@anholt.net >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10569 >
2021-06-06 15:58:38 -04:00
Ilia Mirkin
a5379ef4a7
st/mesa: properly encode OES_geometry_shader requirement
...
Since the extension was added, we grew a cap to expose the number of
invocations. Use it to prevent geometry shaders from being spuriously
exposed.
Signed-off-by: Ilia Mirkin <imirkin@alum.mit.edu >
Reviewed-by: Eric Anholt <eric@anholt.net >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10569 >
2021-06-06 15:43:06 -04:00
Ilia Mirkin
584799d6a3
mesa: relax ES 3.1 compute shader requirements
...
The desktop extensions require more than what's needed for ES 3.1.
Reduce this to allow implementations to expose ES 3.1 without supporting
desktop functionality.
Signed-off-by: Ilia Mirkin <imirkin@alum.mit.edu >
Reviewed-by: Eric Anholt <eric@anholt.net >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10569 >
2021-06-06 15:43:02 -04:00
Ilia Mirkin
00c46fec43
st/mesa: avoid enabling image/buffer/compute extensions for weak hardware
...
The requirements for ES 3.1 are lower than the requirements for desktop
GL. The thread block size can be smaller, and images/buffers/atomics
need not be supported in the fragment stage. Allow a driver to expose
ES 3.1 without flipping on the desktop GL extensions.
Signed-off-by: Ilia Mirkin <imirkin@alum.mit.edu >
Reviewed-by: Eric Anholt <eric@anholt.net >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10569 >
2021-06-06 15:42:55 -04:00
Ilia Mirkin
7d49a6f23c
nouveau: improve video limit reporting
...
This corrects max width/height/macroblocks reporting, in line with what
the nvidia driver docs suggest is supported.
Signed-off-by: Ilia Mirkin <imirkin@alum.mit.edu >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10677 >
2021-06-06 19:09:44 +00:00
Ilia Mirkin
d50e43c8a1
vdpau: allow state tracker to report a lower number of macroblocks
...
NVIDIA hardware can process tall or wide videos, but not both at the
same time (for some gens). This limit is provided in units of
macroblocks.
Signed-off-by: Ilia Mirkin <imirkin@alum.mit.edu >
Reviewed-by: Leo Liu <leo.liu@amd.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10677 >
2021-06-06 19:09:44 +00:00
Ilia Mirkin
c7e877b0bf
nvc0: fix 3d images
...
The hardware has no support for 3d image loads/stores. So present the
image as a larger 2d image and fudge the coordinates. Note that a 2d
image (in the shader) may be backed by a slice of a 3d image, so we
always have to do the coordinate adjustments for 2d as well.
This is largely copied from the nv50 support, which has the same
restriction, with extra care taken to differentiate loads (which
specifies the X coordinate in bytes) and stores, which specifies it in
(formatted) pixels.
Signed-off-by: Ilia Mirkin <imirkin@alum.mit.edu >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10820 >
2021-06-06 18:26:26 +00:00
Ilia Mirkin
729020c7e0
nv50: fix streamout queries
...
Prior to an earlier commit, xfb queries were not being marked as 64-bit.
The end result of this is that they would never appear to be "ready",
which in turn led to there always being a wait happening.
Once these got marked as 64-bit, we started checking the attached fence
for being signalled. However the screen fence does not seem to be enough
to wait for the streamout query data to actually be written out. So
instead we add a bit of extra "data" which emulates the 32-bit query way
of doing things (with the payload in front) which is emitted from the
same "unit" as the other streamout data. This seems to be sufficient.
Note that it does not seem to be required to actually emit the final
32-bit query from the streamout unit, but that seems logical and perhaps
there are edge cases where it is required.
While at it, also make the sequence management/initialization more
similar to the nvc0 driver.
Fixes dEQP-GLES3.functional.transform_feedback.*
Fixes: 58d47ca324 ("nv50: add compute invocations counter")
Signed-off-by: Ilia Mirkin <imirkin@alum.mit.edu >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10867 >
2021-06-06 18:11:54 +00:00
Vinson Lee
c51bdac742
v3dv: Fix assert.
...
Fix defect reported by Coverity Scan.
Side effect in assertion (ASSERT_SIDE_EFFECT)
assignment_where_comparison_intended: Assignment deviceMask = 1U
has a side effect. This code will work differently in a non-debug
build.
Fixes: 234e1b7356 ("v3dv: implement VK_KHR_device_group")
Signed-off-by: Vinson Lee <vlee@freedesktop.org >
Reviewed-by: Alejandro Piñeiro <apinheiro@igalia.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11197 >
2021-06-05 23:04:14 -07:00
Yiwei Zhang
5bc47c9cc2
venus: unify VkNativeBufferANDROID and AHardwareBuffer image create info
...
Signed-off-by: Yiwei Zhang <zzyiwei@chromium.org >
Reviewed-by: Chia-I Wu <olvaffe@gmail.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11195 >
2021-06-05 22:50:23 +00:00
Yiwei Zhang
3a894d00bc
venus: refactor gralloc buffer and drm modifier properties query
...
1. Code clean up
2. Fixed a misused allocator
3. Add error logs for external memory interop
Signed-off-by: Yiwei Zhang <zzyiwei@chromium.org >
Reviewed-by: Chia-I Wu <olvaffe@gmail.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11195 >
2021-06-05 22:50:23 +00:00
Alyssa Rosenzweig
0e2293a52b
agx: Handle load_back_face_agx
...
Signed-off-by: Alyssa Rosenzweig <alyssa@rosenzweig.io >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11199 >
2021-06-05 20:38:22 +00:00
Alyssa Rosenzweig
c21168a26c
agx: Lower front face to back face
...
Signed-off-by: Alyssa Rosenzweig <alyssa@rosenzweig.io >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11199 >
2021-06-05 20:38:22 +00:00
Alyssa Rosenzweig
75cafd8472
agx: Pack SR immediate
...
Signed-off-by: Alyssa Rosenzweig <alyssa@rosenzweig.io >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11199 >
2021-06-05 20:38:22 +00:00
Alyssa Rosenzweig
307b8f1b2f
agx: List sr enum in Python
...
Signed-off-by: Alyssa Rosenzweig <alyssa@rosenzweig.io >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11199 >
2021-06-05 20:38:22 +00:00
Alyssa Rosenzweig
cc8fec8b74
agx: Generate enums from Python
...
Signed-off-by: Alyssa Rosenzweig <alyssa@rosenzweig.io >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11199 >
2021-06-05 20:38:22 +00:00
Alyssa Rosenzweig
223476aff3
agx: Model get_sr
...
Signed-off-by: Alyssa Rosenzweig <alyssa@rosenzweig.io >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11199 >
2021-06-05 20:38:22 +00:00
Alyssa Rosenzweig
f70068583c
asahi: Mark special fragment inputs as sysvals
...
Signed-off-by: Alyssa Rosenzweig <alyssa@rosenzweig.io >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11199 >
2021-06-05 20:38:22 +00:00
Alyssa Rosenzweig
c509878971
nir: Add nir_intrinsic_load_back_face_agx
...
On AGX, the special register for front facing is inverted from its meaning in
APIs. We need to lower load_front_face to inot(load_back_face). Doing this in
the backend is trivial, but then we would miss out on algebraic optimizations
for the inot.
Signed-off-by: Alyssa Rosenzweig <alyssa@rosenzweig.io >
Acked-by: Jason Ekstrand <jason@jlekstrand.net >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11199 >
2021-06-05 20:38:22 +00:00
Dmitry Baryshkov
cac88b5f06
freedreno/regs: split old/not used phy registers to separate DB
...
In order to simplify main DSI host database, split away phy register
definitions used on DSI v2 hosts to the separate database file.
Signed-off-by: Dmitry Baryshkov <dbaryshkov@gmail.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11075 >
2021-06-05 19:20:50 +00:00
Rob Clark
80b1e042e4
freedreno: Don't return a flushed batch
...
Somehow fairly recently the traces CI job started hitting timeouts, not
all the time but enough to be inconvenient for CI. I tracked it down to
getting into a situation where `ctx->batch->flush == true`, which causes
an infinite loop in the draw_vbo and clear paths (because
fd_batch_lock_submit() checks for flushed batch but fd_context_batch()
does not). I'm not entirely sure how we get into that state, or what
triggered this (seems possibly triggered by !10937 ). But it is easy
enough to recover.
Signed-off-by: Rob Clark <robdclark@chromium.org >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11196 >
2021-06-05 18:51:41 +00:00
Rob Clark
ad375d0579
freedreno: Fix typo
...
Signed-off-by: Rob Clark <robdclark@chromium.org >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11196 >
2021-06-05 18:51:41 +00:00
Ville Syrjälä
db83dc619c
i915: Implement __DRI2_FLUSH version 4
...
DRI3 needs version 4 of __DRI2_FLUSH.
Straight up port of i965 commit 313f2bc32b ("intel: Add
support for the new flush_with_flags extension.").
Signed-off-by: Ville Syrjälä <ville.syrjala@linux.intel.com >
Reviewed-by: Adam Jackson <ajax@redhat.com >
Reviewed-by: Emil Velikov <emil.l.velikov@gmail.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/9734 >
2021-06-05 00:22:22 +00:00
Ville Syrjälä
1c312bfc41
i915: Implement __DRI_IMAGE_ATTRIB_OFFSET query
...
DRI3 needs __DRI_IMAGE_ATTRIB_OFFSET so implement it.
Signed-off-by: Ville Syrjälä <ville.syrjala@linux.intel.com >
Reviewed-by: Adam Jackson <ajax@redhat.com >
Reviewed-by: Emil Velikov <emil.l.velikov@gmail.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/9734 >
2021-06-05 00:22:22 +00:00
Jason Ekstrand
b742f73913
intel/isl: Fix isl_format_is_valid
...
The format enum space isn't necessarily contiguous so we can't assume
that if it's in the table it's valid. We need to check something.
Fixes: ed6e586562 "intel: properly constify isl_format_layouts"
Reviewed-by: Adam Jackson <ajax@redhat.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11191 >
2021-06-04 16:16:44 -05:00
Hoe Hao Cheng
90a5fef85c
nir: define NIR_ALU_MAX_INPUTS
...
Reviewed-by: Alyssa Rosenzweig <alyssa@collabora.com >
Reviewed-by: Jason Ekstrand <jason@jlekstrand.net >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11172 >
2021-06-04 19:33:13 +00:00
Emma Anholt
d6d7421e98
util/ra: Use the conflicting neighbor to skip unavailable registers.
...
Now that we have an idea of how many regs the conflicting allocation uses,
we can just skip to the next one and save repeated tests to find the same
conflicting neighbor again.
shadowrun-returns shader-db time on skl -1.62821% +/- 1.58079% (n=679),
now there's no statistically significant change from the start of the series
(n=420)
Reviewed-by: Jason Ekstrand <jason@jlekstrand.net >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/9437 >
2021-06-04 19:08:57 +00:00
Eric Anholt
23df5dba92
lima: Use ra_alloc_contig_reg_class().
...
This greatly simplifies our register allocation code and reduces the
number of registers RA has to walk over.
Reviewed-by: Erico Nunes <nunes.erico@gmail.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/9437 >
2021-06-04 19:08:57 +00:00
Eric Anholt
cf33316ec0
intel/vec4: Use ra_alloc_contig_reg_class() to reduce RA overhead.
...
We go from 1672 RA regs to the real 128 HW regs.
Reviewed-by: Jason Ekstrand <jason@jlekstrand.net >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/9437 >
2021-06-04 19:08:57 +00:00
Eric Anholt
40e1d798c6
intel/fs: Use ra_alloc_contig_reg_class() to speed up RA.
...
By using the new class type, we don't need to make 1928 different
registers to represent each contigous reg size starting from the actual
128 HW register, or have a mapping between RA regs and HW base regs. With
the number of regs reduced, and the fast q computation when using the new
classes, we no longer need to compute our own q.
This drops the FS RA initialization time on my CFL system from about 1ms to
50us.
Reviewed-by: Jason Ekstrand <jason@jlekstrand.net >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/9437 >
2021-06-04 19:08:57 +00:00
Eric Anholt
ec3bc5da74
v3d: Use the ra_alloc_contig_reg_class() function to speed up RA.
...
It means we don't need to do the n^2 loop over the regs to set up the pq
values, nor do we need the register conflicts lists.
Acked-by: Erico Nunes <nunes.erico@gmail.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/9437 >
2021-06-04 19:08:57 +00:00
Eric Anholt
15aa8e9189
vc4: Use the ra_alloc_contig_reg_class() function to speed up RA.
...
It means we don't need to do the n^2 loop over the regs to set up the pq
values, nor do we need to allocate conflicts lists.
Acked-by: Erico Nunes <nunes.erico@gmail.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/9437 >
2021-06-04 19:08:57 +00:00
Eric Anholt
2d7bcdaf6b
ra: Add fast-path support for register classes of contiguous regs.
...
In the fully general case of register classes, to expose an allocation
class of unaligned 2-contiguous-regs allocations, for example, you'd have
your base individual regs (128 on intel), and another set of 127 regs that
each conflicted with the corresponding pair of the base regs. Single-reg
nodes would allocate in the 128, and double-reg nodes would allocate in
the 127 and the user would remap from the 127 down to the base regs with
some irritating table.
If you need many different contiguous allocation sizes (16 is a pretty
common number across drivers), your number of regs explodes, wasting
memory and making the q computation expensive at startup.
If all the user has is contiguous-reg classes, we can easily compute the q
value up front (as found in the intel driver and nouveau, for example),
and we only have to change a couple of places in the conflict-checking
logic so the contiguous-reg classes can use the base registers.
Reviewed-by: Jason Ekstrand <jason@jlekstrand.net >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/9437 >
2021-06-04 19:08:57 +00:00
Eric Anholt
95d41a3525
ra: Use struct ra_class in the public API.
...
All these unsigned ints are awful to keep track of. Use pointers so we
get some type checking.
Reviewed-by: Jason Ekstrand <jason@jlekstrand.net >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/9437 >
2021-06-04 19:08:57 +00:00
Eric Anholt
7e0127fb3e
ra: Document that class index is allocated in order, use that in r300.
...
etnaviv also relies on this being the case, just drop the remapping.
Acked-by: Jason Ekstrand <jason@jlekstrand.net >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/9437 >
2021-06-04 19:08:57 +00:00
Eric Anholt
3072318ab8
ra: Add a unit test.
...
This is mostly checking that we agree with a bit of the table from the
paper. It proved quite useful as I was refactoring.
Acked-by: Jason Ekstrand <jason@jlekstrand.net >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/9437 >
2021-06-04 19:08:57 +00:00
Adam Jackson
ed6e586562
intel: properly constify isl_format_layouts
...
Putting a const char * in the struct means it's a pointer that has to be
resolved at rtld time, which means it can be in .data.rel.ro but not
.rodata like you'd hope. Fix this with the usual string table trick.
Cuts about 20k (-80k read-write +60k read-only) and ~280 relocations
from the gallium driver.
Reviewed-by: Jason Ekstrand <jason@jlekstrand.net >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11168 >
2021-06-04 18:32:33 +00:00
Mike Blumenkrantz
8fb1300333
zink: explicitly advertise index buffer format support
...
Reviewed-by: Erik Faye-Lund <erik.faye-lund@collabora.com >
Reviewed-by: Marek Olšák <marek.olsak@amd.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11132 >
2021-06-04 17:57:03 +00:00
Mike Blumenkrantz
c011e6061d
d3d12: explicitly advertise index buffer format support
...
Reviewed-by: Erik Faye-Lund <erik.faye-lund@collabora.com >
Reviewed-by: Jesse Natalie <jenatali@microsoft.com >
Reviewed-by: Marek Olšák <marek.olsak@amd.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11132 >
2021-06-04 17:57:03 +00:00
Erik Faye-Lund
aea35a5ac2
r600: explicitly advertise index buffer format support
...
Reviewed-by: Erik Faye-Lund <erik.faye-lund@collabora.com >
Reviewed-by: Marek Olšák <marek.olsak@amd.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11132 >
2021-06-04 17:57:03 +00:00
Mike Blumenkrantz
de9c66d749
r300: explicitly advertise index buffer format support
...
Reviewed-by: Erik Faye-Lund <erik.faye-lund@collabora.com >
Reviewed-by: Marek Olšák <marek.olsak@amd.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11132 >
2021-06-04 17:57:03 +00:00
Mike Blumenkrantz
cc99c1c762
nouveau: explicitly advertise index buffer format support
...
Reviewed-by: Erik Faye-Lund <erik.faye-lund@collabora.com >
Reviewed-by: Ilia Mirkin <imirkin@alum.mit.edu >
Reviewed-by: Marek Olšák <marek.olsak@amd.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11132 >
2021-06-04 17:57:03 +00:00
Emma Anholt
842c514303
llvmpipe: Don't call util_init_math().
...
Nothing in llvmpipe uses util_fast_log2().
Reviewed-by: Erik Faye-Lund <erik.faye-lund@collabora.com >
Reviewed-by: Adam Jackson <ajax@redhat.com >
Reviewed-by: Alyssa Rosenzweig <alyssa.rosenzweig@collabora.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11173 >
2021-06-04 17:26:28 +00:00
Emma Anholt
9cd4b8b73c
u_math: Reduce fast-log2 table size from 65k entries back to 256.
...
This was bumped in 7e584a70c4 ("gallium: increase table size for fast
log/pow functions") presumably to fix conformance of tgsi_exec, but we
don't need that much accuracy in the only place it's used in the tree any
more: softpipe texture sampling.
softpipe glmark2 -b texture:texture-filter=linear FPS +0.335748% +/-
0.220111% (n=20)
Reviewed-by: Erik Faye-Lund <erik.faye-lund@collabora.com >
Reviewed-by: Adam Jackson <ajax@redhat.com >
Reviewed-by: Alyssa Rosenzweig <alyssa.rosenzweig@collabora.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11173 >
2021-06-04 17:26:28 +00:00
Emma Anholt
fd3f9eedbe
tgsi_exec: Garbage-collect the FAST_MATH path.
...
It's disabled due to non-conformance with no configuration knob to turn it
on, and if you care about swrast performance you're on llvmpipe anyway.
Reviewed-by: Erik Faye-Lund <erik.faye-lund@collabora.com >
Reviewed-by: Adam Jackson <ajax@redhat.com >
Reviewed-by: Alyssa Rosenzweig <alyssa.rosenzweig@collabora.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11173 >
2021-06-04 17:26:28 +00:00
Mike Blumenkrantz
2ee030e45c
Revert "Revert "zink: call tc_driver_internal_flush_notify() on flush""
...
This reverts commit 9ff54d408b .
this is fine now that tc unbinds are fixed
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11187 >
2021-06-04 17:05:47 +00:00
Mike Blumenkrantz
535a5a9dfe
aux/tc: fix ubo unbinding
...
unsetting a ubo requires an unbind
Reviewed-by: Marek Olšák <marek.olsak@amd.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11187 >
2021-06-04 17:05:47 +00:00
Daniel Schürmann
d4662e38c4
aco: simplify Phi RegClass selection
...
Also adds moves validation rules to aco_validate.
Reviewed-by: Rhys Perry <pendingchaos02@gmail.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11181 >
2021-06-04 16:47:01 +00:00
Daniel Schürmann
dc807dff3e
radv,aco: scalarize all phis via nir_lower_phis_to_scalar()
...
This allows to remove some ACO code which did so previously.
Totals from 93 (0.06% of 149839) affected shaders (Navi2):
CodeSize: 582424 -> 582348 (-0.01%); split: -0.10%, +0.08%
Instrs: 107083 -> 107011 (-0.07%); split: -0.08%, +0.01%
Latency: 483338 -> 484881 (+0.32%); split: -0.09%, +0.40%
InvThroughput: 101129 -> 101532 (+0.40%); split: -0.03%, +0.42%
Copies: 9893 -> 9774 (-1.20%); split: -1.28%, +0.08%
Branches: 2862 -> 2858 (-0.14%)
PreSGPRs: 3342 -> 3339 (-0.09%)
PreVGPRs: 4567 -> 4565 (-0.04%)
Reviewed-by: Rhys Perry <pendingchaos02@gmail.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11181 >
2021-06-04 16:47:01 +00:00
Marek Olšák
057a702a3f
st/mesa: execute glFlush asynchronously if no image has been imported/exported
...
This improves viewperf performance and it shouldn't break synchronization
with external clients when it's indirectly implied by glFlush.
Reviewed-by: Emma Anholt <emma@anholt.net >
Reviewed-by: Adam Jackson <ajax@redhat.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10937 >
2021-06-04 15:58:25 +00:00
Mike Blumenkrantz
4304a7adc7
zink: use VK_IMAGE_LAYOUT_DEPTH_STENCIL_READ_ONLY_OPTIMAL when possible
...
this is allowed for fb attachments, so we can use it to avoid needing to
change layouts for zs textures if we know that it isn't going to be written
to during a given subpass
Reviewed-by: Dave Airlie <airlied@redhat.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11130 >
2021-06-04 15:10:11 +00:00
Mike Blumenkrantz
3f332b16d5
zink: track number of fb attachment binds on resources
...
this will be useful for applying layouts
Reviewed-by: Dave Airlie <airlied@redhat.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11130 >
2021-06-04 15:10:11 +00:00
Mike Blumenkrantz
9a1c833841
zink: emit fb attachment barriers inline during renderpass start
...
we don't need a separate function for this
Reviewed-by: Dave Airlie <airlied@redhat.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11130 >
2021-06-04 15:10:11 +00:00
Samuel Pitoiset
b786c16365
radv/winsys: allow to reserve a VMID
...
This will be used by SPM and also for configuring the trap handler.
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/11128 >
2021-06-04 14:53:25 +00:00
Danylo Piliaiev
20d8324a1b
turnip: implement VK_EXT_provoking_vertex
...
Passes: dEQP-VK.rasterization.provoking_vertex.*
Signed-off-by: Danylo Piliaiev <dpiliaiev@igalia.com >
Reviewed-by: Samuel Iglesias Gonsálvez <siglesias@igalia.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11112 >
2021-06-04 14:37:01 +00:00
Rhys Perry
49add985ff
nir/unsigned_upper_bound: don't require dominance metadata
...
Instead, determine if it's a merge or loop exit phi.
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/9808 >
2021-06-04 14:14:00 +00:00
Rhys Perry
aebffc241d
aco: don't use nir_block_is_unreachable()
...
nir_cf_reinsert() can re-create the block, invalidating dominance
metadata.
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/9808 >
2021-06-04 14:14:00 +00:00
Mike Blumenkrantz
ef2e29f3b5
zink: no-op read access buffer barriers if existing access exists for earlier stage
...
only the earliest stage should be applied for these barriers, so we can skip
ones where the existing access is earlier
Reviewed-by: Dave Airlie <airlied@redhat.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11131 >
2021-06-04 13:52:33 +00:00
Tapani Pälli
cbaba3f1b9
docs: add VK_EXT_extended_dynamic_state2 features.txt entry
...
Signed-off-by: Tapani Pälli <tapani.palli@intel.com >
Reviewed-by: Lionel Landwerlin <lionel.g.landwerlin@intel.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10366 >
2021-06-04 12:58:34 +00:00
Tapani Pälli
0d031d1da3
anv: toggle on VK_EXT_extended_dynamic_state2
...
Signed-off-by: Tapani Pälli <tapani.palli@intel.com >
Reviewed-by: Lionel Landwerlin <lionel.g.landwerlin@intel.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10366 >
2021-06-04 12:58:34 +00:00
Tapani Pälli
75ad0e4b08
anv: support blending logic op dynamic state
...
Signed-off-by: Tapani Pälli <tapani.palli@intel.com >
Reviewed-by: Lionel Landwerlin <lionel.g.landwerlin@intel.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10366 >
2021-06-04 12:58:34 +00:00
Tapani Pälli
e0c6055351
anv: centralize vk_to_intel_logic_op array
...
This avoids multiple copies as we will need this in multiple places.
Signed-off-by: Tapani Pälli <tapani.palli@intel.com >
Reviewed-by: Lionel Landwerlin <lionel.g.landwerlin@intel.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10366 >
2021-06-04 12:58:34 +00:00
Tapani Pälli
1c718952c8
anv: support primitive restart enable dynamic state
...
Signed-off-by: Tapani Pälli <tapani.palli@intel.com >
Reviewed-by: Lionel Landwerlin <lionel.g.landwerlin@intel.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10366 >
2021-06-04 12:58:34 +00:00
Tapani Pälli
496b508403
anv: support depth bias enable dynamic state
...
Signed-off-by: Tapani Pälli <tapani.palli@intel.com >
Reviewed-by: Lionel Landwerlin <lionel.g.landwerlin@intel.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10366 >
2021-06-04 12:58:34 +00:00
Tapani Pälli
4d531c67df
anv: support rasterizer discard dynamic state
...
Implemented by emitting 3DSTATE_STREAMOUT packet.
v2: logic fixes + merge and emit properly all contents (Lionel)
Signed-off-by: Tapani Pälli <tapani.palli@intel.com >
Reviewed-by: Lionel Landwerlin <lionel.g.landwerlin@intel.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10366 >
2021-06-04 12:58:34 +00:00
Tapani Pälli
284290a876
anv: introduce new dynamic states
...
These will be used for VK_EXT_extended_dynamic_state2.
Signed-off-by: Tapani Pälli <tapani.palli@intel.com >
Reviewed-by: Lionel Landwerlin <lionel.g.landwerlin@intel.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10366 >
2021-06-04 12:58:34 +00:00
Leo Liu
56714238ba
radeon/vcn/enc: use surface swizzle mode instead of linear
...
It will be capable to have encoder tiling supported via modifier
Signed-off-by: Leo Liu <leo.liu@amd.com >
Reviewed-by: Thong Thai <thong.thai@amd.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11165 >
2021-06-04 12:46:03 +00:00
SureshGuttula
700d4ce68f
frontends/va: Derive image from interlaced buffers for h26[4/5]encode
...
Add h26[4/5]encode application to allowlist to make an exception when
deriving images from interlaced buffers
This test is part of libva-utils,
find test code @ https://github.com/intel/libva-utils/blob/master/encode/h264encode.c
Signed-off-by: SureshGuttula <suresh.guttula@amd.corp-partner.google.com >
Reviewed-by: Leo Liu <leo.liu@amd.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11054 >
2021-06-04 12:38:38 +00:00
Alejandro Piñeiro
d198e26a1e
broadcom/common: move v3d_tiling to common
...
We initially just copied on v3dv, just in case we needed to modify
it. One year later the code is exactly the same, so let's move it to
common.
This fix an additional issue, as we were not using NEON when building
v3d_tiling.c for v3dv.
v2:
* Add "#include util/u_box.h" at v3d_tiling.h, so we can't avoid
the need to include it on other places. (Juan and Iago)
Reviewed-by: Iago Toral Quiroga <itoral@igalia.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11121 >
2021-06-04 13:00:40 +02:00
Duncan Hopkins
a2d6a5f885
zink: Fix MacOS compiling issues
...
Add a moltenvk-dir build option to supply the MacOS Vulkan SDK MoltenVK location.
Force compiler, for zink only, into object-c mode when MoltenVK is used to allow for the MacOS ioSurface and CAMetalLayer types that the headers expose.
Reviewed-by: Erik Faye-Lund <erik.faye-lund@collabora.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11129 >
2021-06-04 08:58:16 +00:00
Duncan Hopkins
3102892fb8
gallium/dri: Guard DRI driver global variables on MacOS if Zink is enabled.
...
Protect the DRI galliumdrm_driver_api and galliumdrm_driver_extensions variables from __APPLE__ builds, as DRI2 cannot be enabled.
Reviewed-by: Erik Faye-Lund <erik.faye-lund@collabora.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11129 >
2021-06-04 08:58:16 +00:00
Duncan Hopkins
18e8ec5f37
zink: Correct compiler issue with have_moltenvk member having been moved.
...
have_moltenvk was moved to a different location but code being protected in platform specific guard, so was unnoticed.
Fixes: 598dc3dca4 ("zink: use cached memory for all resources when possible")
Reviewed-by: Erik Faye-Lund <erik.faye-lund@collabora.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11129 >
2021-06-04 08:58:16 +00:00
Iago Toral Quiroga
6add9b2753
v3dv: expose KHR_relaxed_block_layout
...
It seems our compiler already meets the requirements and we pass
all the relevant tests for this as far as I can see.
Relevant CTS tests:
dEQP-VK.ssbo.*relaxed*
Reviewed-by: Alejandro Piñeiro <apinheiro@igalia.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11159 >
2021-06-04 08:44:41 +00:00
Iago Toral Quiroga
a9b51a4a3a
v3dv: increase number of supported SSBOs
...
Some CTS tests use more than what we expose and other drivers
also seem to be exposing many more than us (in the order of thousands).
I don't think we want to expose a very large number since we use this
limit to size some arrays in the driver, but bumping it a bit over the
minimum of 4 required by the spec might be reasonable.
Reviewed-by: Alejandro Piñeiro <apinheiro@igalia.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11159 >
2021-06-04 08:44:41 +00:00
Mauro Rossi
e4e4b6bc16
android: aco: add aco_optimizer_postRA.cpp to Makefile.sources
...
Fixes the following building error:
external/mesa/src/amd/compiler/aco_interface.cpp:155: error: undefined reference to 'aco::optimize_postRA(aco::Program*)'
Fixes: 0e4747d3fb ("aco: Introduce a new, post-RA optimizer.")
Reviewed-by: Timur Kristóf <timur.kristof@gmail.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11177 >
2021-06-04 09:31:41 +02:00
Mauro Rossi
60e134e83e
android: ac: add include src/util path
...
Fixes the following building error:
external/mesa/src/amd/common/ac_nir_lower_ngg.c:27:10: fatal error: 'u_math.h' file not found
^~~~~~~~~~
1 error generated.
Fixes: 3d589b8b46 ("ac: Add new NIR pass to lower NGG VS/TES.")
Reviewed-by: Timur Kristóf <timur.kristof@gmail.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11177 >
2021-06-04 09:31:36 +02:00
Mauro Rossi
2dea82fc07
android: ac: add ac_nir_lower_ngg.c to Makefile.sources
...
Fixes the following building errors:
external/mesa/src/amd/vulkan/radv_shader.c:868: error: undefined reference to 'ac_nir_lower_ngg_gs'
external/mesa/src/amd/vulkan/radv_shader.c:851: error: undefined reference to 'ac_nir_lower_ngg_nogs'
external/mesa/src/amd/compiler/aco_interface.cpp:155: error: undefined reference to 'aco::optimize_postRA(aco::Program*)'
Fixes: 3d589b8b46 ("ac: Add new NIR pass to lower NGG VS/TES.")
Reviewed-by: Timur Kristóf <timur.kristof@gmail.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11177 >
2021-06-04 09:31:28 +02:00
Anuj Phogat
8e10d54804
intel: Rename GFX 12.5 to XE_HP
...
git grep -l "GFX 12\.5" | xargs sed -ie "s/GFX 12\.5/XE_HP/g"
Signed-off-by: Anuj Phogat <anuj.phogat@gmail.com >
Reviewed-by: Lionel Landwerlin <lionel.g.landwerlin@intel.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10877 >
2021-06-03 15:51:40 -07:00
Petr Vaněk
0e94b17dd1
docs/install: remove one extra when
...
Fixes: 0fa854aea5 ("docs: rework/update install.html")
Reviewed-by: Erik Faye-Lund <erik.faye-lund@collabora.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11161 >
2021-06-03 23:41:22 +02:00
Michel Zou
b5bcc49087
swr: fix uninitialized variable warnings
...
Reviewed-by: Hoe Hao Cheng <haochengho12907@gmail.com >
Reviewed-by: Erik Faye-Lund <erik.faye-lund@collabora.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11170 >
2021-06-03 20:58:46 +00:00
Michel Zou
10a3e388a4
zink: fix win32 build
...
Reviewed-by: Hoe Hao Cheng <haochengho12907@gmail.com >
Reviewed-by: Erik Faye-Lund <erik.faye-lund@collabora.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11170 >
2021-06-03 20:58:46 +00:00
Chia-I Wu
ae4ef6491d
venus: query experimental features in one call
...
It is simpler. But I mainly want to work around
../src/virtio/vulkan/vn_cs.h:173:4: error: argument 1 null where non-null expected [-Werror=nonnull]
173 | memcpy(val, dec->cur, val_size);
We trust virglrenderer and it never instructs the decoder to memcpy to
pData when it is NULL. The compiler does not know however. A proper
fix will be to generate
if (!pData)
unreachable();
to help the compiler.
Signed-off-by: Chia-I Wu <olvaffe@gmail.com >
Reviewed-by: Yiwei Zhang <zzyiwei@chromium.org >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11174 >
2021-06-03 13:39:27 -07:00
Yiwei Zhang
d08930f2fa
venus: support AHB prop query with host dma_buf size
...
Upon instance creation, venus experimental features are cached in the
vn_instance. If memoryResourceAllocationSize feature is supported, chain
VkMemoryResourceAllocationSizeProperties100000MESA to the pNext of
VkMemoryResourcePropertiesMESA to get the host allocation size of the
dma_buf fd.
Signed-off-by: Yiwei Zhang <zzyiwei@chromium.org >
Reviewed-by: Chia-I Wu <olvaffe@gmail.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11048 >
2021-06-03 19:23:04 +00:00
Yiwei Zhang
d10d09e7ad
venus: update to the latest venus protocol
...
We introduce vkGetVenusExperimentalFeatureData100000MESA to negotiate
experimental venus features under development between the guest and the
host, which can help avoid breaking existing clients of venus. All the
experimental features will be cleaned up and merged into core upon
finalizing venus protocol.
Signed-off-by: Yiwei Zhang <zzyiwei@chromium.org >
Reviewed-by: Chia-I Wu <olvaffe@gmail.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11048 >
2021-06-03 19:22:44 +00:00
Gustavo Padovan
34e4c1d2be
gitlab-ci: enable testing on Intel Kaby Lake as experimental
...
We now have nami/sona Chromebooks available at the Collabora lab,
so we can start the process of stabilizing them for MesaCI.
Signed-off-by: Gustavo Padovan <gustavo.padovan@collabora.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11162 >
2021-06-03 18:04:29 +00:00
Chia-I Wu
551d7032df
venus: silence compiler warnings
...
Silence warnings in release builds.
Signed-off-by: Chia-I Wu <olvaffe@gmail.com >
Reviewed-by: Yiwei Zhang <zzyiwei@chromium.org >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11166 >
2021-06-03 17:48:30 +00:00
Lepton Wu
a8e75bb73c
Revert "virgl: Cache depth and stencil buffers"
...
This reverts commit d245d7b6b8 .
It broke various dEQP EGL tests because the reused resource
at host side could have a different sample_count with what we want.
The example of tests get broken:
dEQP-EGL.functional.color_clears.single_context.gles2.rgba8888_window
Signed-off-by: Lepton Wu <lepton@chromium.org >
Reviewed-by: Rohan Garg <rohan.garg@collabora.com >
Reviewed-by: Chia-I Wu <olvaffe@gmail.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11152 >
2021-06-03 17:00:28 +00:00
Samuel Pitoiset
aff92f50c6
ac: add ac_thread_trace::data
...
Instead of passing two different structs to ac_dump_rgp_capture().
Signed-off-by: Samuel Pitoiset <samuel.pitoiset@gmail.com >
Reviewed-by: Pierre-Eric Pelloux-Prayer <pierre-eric.pelloux-prayer@amd.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11156 >
2021-06-03 15:39:34 +00:00
Samuel Pitoiset
416496a0c4
ac/rgp: fix ac_fill_sqtt_asic_info() name
...
Signed-off-by: Samuel Pitoiset <samuel.pitoiset@gmail.com >
Reviewed-by: Pierre-Eric Pelloux-Prayer <pierre-eric.pelloux-prayer@amd.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11156 >
2021-06-03 15:39:34 +00:00
Samuel Pitoiset
ea3f72c9d9
ac: rename ac_dump_thread_trace() to ac_dump_rgp_capture()
...
RGP captures can contain both SQTT and SPM data. While we are at it,
move it to ac_rgp.h and adjust a message.
Signed-off-by: Samuel Pitoiset <samuel.pitoiset@gmail.com >
Reviewed-by: Pierre-Eric Pelloux-Prayer <pierre-eric.pelloux-prayer@amd.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11156 >
2021-06-03 15:39:34 +00:00
Leo Liu
b3225be1e9
frontends/va: use pipe buffer map instead of texture map
...
Fixes: eb74f9776 ("gallium: split transfer_(un)map into buffer_(un)map and texture_(un)map")
Signed-off-by: Leo Liu <leo.liu@amd.com >
Reviewed-by: James Zhu <James.Zhu@amd.com >
Reviewed-by: Pierre-Eric Pelloux-Prayer <pierre-eric.pelloux-prayer@amd.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11141 >
2021-06-03 09:52:48 -04:00
Erik Faye-Lund
e64e5e82ed
docs: add links to documented drivers
...
There's a few more drivers that we have docs for that we didn't link to
from the systems article yet. Let's fix that.
Reviewed-by: Alyssa Rosenzweig <alyssa.rosenzweig@collabora.com >
Reviewed-by: Chia-I Wu <olvaffe@gmail.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11109 >
2021-06-03 09:34:43 +00:00
Erik Faye-Lund
db8b1b788d
docs: clean up freedreno links
...
Instead of linking directly to the Freedreno wiki, let's link to the
driver docs, and then put a link to the Freedreno wiki there.
Reviewed-by: Alyssa Rosenzweig <alyssa.rosenzweig@collabora.com >
Reviewed-by: Chia-I Wu <olvaffe@gmail.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11109 >
2021-06-03 09:34:43 +00:00
Erik Faye-Lund
2c9bf33737
docs: split out layered driver to its own list
...
This mirrors what we're doing for the front-page at mesa3d.org.
Reviewed-by: Alyssa Rosenzweig <alyssa.rosenzweig@collabora.com >
Reviewed-by: Chia-I Wu <olvaffe@gmail.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11109 >
2021-06-03 09:34:43 +00:00
Erik Faye-Lund
b17d504baa
docs: clean up openswr links
...
Instead of linking directly to openswr.org, let's link to the driver
docs, and have the driver-docs link to the project-webiste.
Reviewed-by: Alyssa Rosenzweig <alyssa.rosenzweig@collabora.com >
Reviewed-by: Chia-I Wu <olvaffe@gmail.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11109 >
2021-06-03 09:34:43 +00:00
Erik Faye-Lund
8cc0b75e71
docs: clean up software-drivers list
...
This capitalizes driver names, and spells out OpenSWR (like the docs
does).
Reviewed-by: Alyssa Rosenzweig <alyssa.rosenzweig@collabora.com >
Reviewed-by: Chia-I Wu <olvaffe@gmail.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11109 >
2021-06-03 09:34:43 +00:00
Erik Faye-Lund
65258457cb
docs: move swrast to deprecated drivers list
...
This driver was removed in 435de835cd ("swrast: Remove the classic
swrast DRI driver"), but we forgot to update the documentation to
reflect that.
Better late than never!
Reviewed-by: Alyssa Rosenzweig <alyssa.rosenzweig@collabora.com >
Reviewed-by: Chia-I Wu <olvaffe@gmail.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11109 >
2021-06-03 09:34:43 +00:00
Erik Faye-Lund
6d2a3e6da2
docs: clean up list of deprecated systems
...
This mostly spells out brand-names, and sorts the list.
Reviewed-by: Alyssa Rosenzweig <alyssa.rosenzweig@collabora.com >
Reviewed-by: Chia-I Wu <olvaffe@gmail.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11109 >
2021-06-03 09:34:43 +00:00
Erik Faye-Lund
601a7bd2b2
docs: rename vmware-guest article
...
No other drivers use the vendor in the title or path, so it seems better
to not do this for the vmware-guest driver as well. So let's rename it
to SVGA instead. The actual text itself makes it clear enough what it is
about.
This makes it stand out less in the toctree.
I chose the name "WMware SVGA3D", because that's less ambigious than the
"SVGA"-alternative, and was requested by VMware people.t
Reviewed-by: Alyssa Rosenzweig <alyssa.rosenzweig@collabora.com >
Reviewed-by: Chia-I Wu <olvaffe@gmail.com >
Acked-by: Jose Fonseca <jfonseca@vmware.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11109 >
2021-06-03 09:34:43 +00:00
Erik Faye-Lund
54e7353fa6
docs: update llvm requirement
...
Our build-scripts no longer support LLVM versions prior to 3.9, so let's
remove mentions of older versions.
Reviewed-by: Alyssa Rosenzweig <alyssa.rosenzweig@collabora.com >
Reviewed-by: Chia-I Wu <olvaffe@gmail.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11109 >
2021-06-03 09:34:43 +00:00
Erik Faye-Lund
d8c46655af
docs: update list of apis to match website
...
This adds a few missing APIs (like Vulkan), and reorders the list to
match the order we're listing them on the frontpage of mesa3d.org.
Reviewed-by: Alyssa Rosenzweig <alyssa.rosenzweig@collabora.com >
Reviewed-by: Chia-I Wu <olvaffe@gmail.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11109 >
2021-06-03 09:34:43 +00:00
Erik Faye-Lund
bd68ea3702
docs: do not list all gles major versions
...
We support all versions of OpenGL ES, no need to point out each version.
Reviewed-by: Alyssa Rosenzweig <alyssa.rosenzweig@collabora.com >
Reviewed-by: Chia-I Wu <olvaffe@gmail.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11109 >
2021-06-03 09:34:43 +00:00
Yogesh Mohanmarimuthu
0e856b95c5
loader: allocate VRAM in display GPU in case of prime
...
Allocates VRAM in display GPU in case of prime. Then the dma_buf is imported
into prime GPU.
v2: add comments to make code more readable (Pierre-Eric)
removed if check limiting p2p only for matching driver name
v3: keep old path for non mesa driver (Michel Dänzer)
v4: destroy linear_buffer_display_gpu after import (Michel Dänzer)
fall back if linear_buffer_display_gpu alloc fail (Michel Dänzer)
Signed-off-by: Yogesh Mohanmarimuthu <yogesh.mohanmarimuthu@amd.com >
Acked-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/10595 >
2021-06-03 09:12:32 +00:00
Yogesh Mohanmarimuthu
55d1b8f929
glx: create DRI screen for display GPU incase of prime
...
The created DRI screen can be used to allocate VRAM memory from
display GPU in case of prime.
v2: add comments to make code readable (Pierre-Eric)
remove driver name match check
v3: keep old path for non-mesa driver (Michel Dänzer)
v4: fallback if driver not found for display GPU (Michel Dänzer)
fallback if create screen fail for display gpu (Michel Dänzer)
Signed-off-by: Yogesh Mohanmarimuthu <yogesh.mohanmarimuthu@amd.com >
Acked-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/10595 >
2021-06-03 09:12:32 +00:00
Yogesh Mohanmarimuthu
dac2c210d6
glx: Keep display fd open for prime
...
Keep the display fd open for creating DRI screen on display gpu in
case of prime.
v2: initialize psc->fd_display_gpu early (Michel Dänzer)
fix display gpu fd leakage (Michel Dänzer)
v3: fix more display gpu fd leakage (Michel Dänzer)
Signed-off-by: Yogesh Mohanmarimuthu <yogesh.mohanmarimuthu@amd.com >
Acked-by: Pierre-Eric Pelloux-Prayer <pierre-eric.pelloux-prayer@amd.com >
Reviewed-by: Michel Dänzer <mdaenzer@redhat.com >
Reviewed-by: Marek Olšák <marek.olsak@amd.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10595 >
2021-06-03 09:12:32 +00:00
Hyunjun Ko
41eaa07823
turnip/kgsl: Fix to build on android.
...
Fixes: 3f229e34 ("turnip: Implement VK_KHR_timeline_semaphore.")
Signed-off-by: Hyunjun Ko <zzoon@igalia.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11153 >
2021-06-03 08:55:06 +00:00
Pierre-Eric Pelloux-Prayer
8baa77c813
radeonsi: fix encryption check for buffers
...
The writable bit means read-write, not just write.
Reviewed-by: Marek Olšák <marek.olsak@amd.com >
Fixes: 8873ea0e25 ("radeonsi: determine secure flag must be set for gfx IB")
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11107 >
2021-06-03 08:33:52 +00:00
Pierre-Eric Pelloux-Prayer
b377da9122
radeonsi: allow write-only mapping of encrypted textures
...
Reviewed-by: Marek Olšák <marek.olsak@amd.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11107 >
2021-06-03 08:33:52 +00:00
Pierre-Eric Pelloux-Prayer
fcdfe91efa
frontend/dri: fix bool/int comparison
...
Cast tex->bind & PIPE_BIND_PROTECTED to a bool before doing the
comparison, otherwise it'll incorrectly fail.
Reviewed-by: Marek Olšák <marek.olsak@amd.com >
Fixes: 18b7cafc70 ("driconf: add disable_protected_content_check option")
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11107 >
2021-06-03 08:33:52 +00:00
Pierre-Eric Pelloux-Prayer
5e6f92f82c
frontend/dri: set PIPE_BIND_PROTECTED later
...
NV12, YUV, YUYV and UYVY handling checks !tex_usage so set
PIPE_BIND_PROTECTED after.
This fixes encrypted nv12 textures handling.
Reviewed-by: Marek Olšák <marek.olsak@amd.com >
Cc: mesa-stable
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11107 >
2021-06-03 08:33:52 +00:00
Chia-I Wu
736e24bdce
venus: use vk_default_allocator
...
Closes: https://gitlab.freedesktop.org/mesa/mesa/-/issues/4870
Signed-off-by: Chia-I Wu <olvaffe@gmail.com >
Acked-by: Jason Ekstrand <jason@jlekstrand.net >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11117 >
2021-06-03 08:13:27 +00:00
Chia-I Wu
567a18dade
anv: use vk_default_allocator
...
Signed-off-by: Chia-I Wu <olvaffe@gmail.com >
Reviewed-by: Lionel Landwerlin <lionel.g.landwerlin@intel.com >
Acked-by: Jason Ekstrand <jason@jlekstrand.net >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11117 >
2021-06-03 08:13:27 +00:00
Chia-I Wu
3ba3681b58
tu: use vk_default_allocator
...
Signed-off-by: Chia-I Wu <olvaffe@gmail.com >
Reviewed-by: Samuel Iglesias Gonsálvez <siglesias@igalia.com >
Acked-by: Jason Ekstrand <jason@jlekstrand.net >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11117 >
2021-06-03 08:13:26 +00:00
Chia-I Wu
8615653c0e
v3dv: use vk_default_allocator
...
This also fixes the allocator used in v3dv_DestroyDevice.
v2: fix two more occurences of default_alloc (Roman Stratiienko)
Signed-off-by: Chia-I Wu <olvaffe@gmail.com >
Acked-by: Jason Ekstrand <jason@jlekstrand.net >
Reviewed-by: Iago Toral Quiroga <itoral@igalia.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11117 >
2021-06-03 08:13:26 +00:00
Chia-I Wu
7ebd658e28
radv: use vk_default_allocator
...
Signed-off-by: Chia-I Wu <olvaffe@gmail.com >
Acked-by: Jason Ekstrand <jason@jlekstrand.net >
Reviewed-by: Samuel Pitoiset <samuel.pitoiset@gmail.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11117 >
2021-06-03 08:13:26 +00:00
Chia-I Wu
d3acc73455
vulkan/util: add vk_default_allocator
...
We cannot use os_{malloc,free,realloc}_aligned because
os_realloc_aligned needs the old size (for memcpy).
v2: no max_align_t on MSVC
Signed-off-by: Chia-I Wu <olvaffe@gmail.com >
Acked-by: Jason Ekstrand <jason@jlekstrand.net >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11117 >
2021-06-03 08:13:26 +00:00
Yiwei Zhang
5054f74ce1
venus: initial AHB support for multi-planar format
...
Signed-off-by: Yiwei Zhang <zzyiwei@chromium.org >
Reviewed-by: Chia-I Wu <olvaffe@gmail.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11150 >
2021-06-03 07:36:09 +00:00
Samuel Pitoiset
380ac28891
ac: import performance counters from RadeonSI
...
Performance counters will be used by RADV for VK_KHR_performance_query
and also for adding SPM support.
Signed-off-by: Samuel Pitoiset <samuel.pitoiset@gmail.com >
Reviewed-by: Marek Olšák <marek.olsak@amd.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11140 >
2021-06-03 07:15:21 +00:00
Samuel Pitoiset
7af915b4a0
radv: enable RADV_DEBUG=invariantgeom for SotTR DX11/DX12 versions
...
DXVK 1.8.1 marks position as always invariant but it's disabled for
SotTR because it introduces rendering issues on NV. The DX12 version
also likely needs that.
Fixes a similar foliage issue initially found with the native version.
Cc: 21.1 mesa-stable
Signed-off-by: Samuel Pitoiset <samuel.pitoiset@gmail.com >
Reviewed-by: Bas Nieuwenhuizen <bas@basnieuwenhuizen.nl >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11006 >
2021-06-03 06:32:35 +00:00
Jason Ekstrand
06ae2723d1
intel/vec4: Also use MOV_FOR_SCRATCH for swizzle resolves
...
In 2db8867943 , we introduced a new meta-op MOV_FOR_SCRATCH which is
identical to MOV except it lets us identify MOVs emitted during spilling
so we know not to re-spill those instructions. We emit them from
shuffle_for_64bit_data whenever the new for_scratch parameter is true.
Unfortunately, we missed the one used for resolving swizzles.
Fixes: 2db8867943 "intel/vec4: Don't spill fp64 registers more..."
Tested-by: Dave Airlie <airlied@redhat.com >
Reviewed-by: Dave Airlie <airlied@redhat.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11155 >
2021-06-03 06:14:17 +00:00
Chia-I Wu
889a8df5bd
venus: enable wsi image ownership transfer for common wsi
...
v2: this is split out from the last commit
Signed-off-by: Chia-I Wu <olvaffe@gmail.com >
Reviewed-by: Yiwei Zhang <zzyiwei@chromium.org > (v1)
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10709 >
2021-06-03 06:03:31 +00:00
Chia-I Wu
676abf12dc
venus: reland wsi image ownership transfer for Android
...
This takes a different approach. It turns out we can patch
vkCmd{Begin,End}RenderPass, vkCmdWaitEvents, and vkCmdPipelineBarrier to
do queue family ownership transfers without tracking image ownerships.
v2: check the value of VN_PRESENT_SRC_INTERNAL_LAYOUT and keep this
Android-only
Signed-off-by: Chia-I Wu <olvaffe@gmail.com >
Reviewed-by: Yiwei Zhang <zzyiwei@chromium.org > (v1)
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10709 >
2021-06-03 06:03:31 +00:00
Chia-I Wu
a52f6b20b9
venus: undo wsi iamge ownership transfer for Android
...
This reverts most of commit 96ec6b3d8f .
It keeps vn_image::sharing_mode.
Signed-off-by: Chia-I Wu <olvaffe@gmail.com >
Reviewed-by: Yiwei Zhang <zzyiwei@chromium.org >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10709 >
2021-06-03 06:03:31 +00:00
Chia-I Wu
93abaf6fe8
venus: clean up vn_get_intercepted_barriers
...
Add vn_cmd_{wait_events,pipeline_barrier}_fix_image_memory_barries to
replace vn_get_intercepted_barriers. The two new functions are
identical currently, but that will change soon.
Signed-off-by: Chia-I Wu <olvaffe@gmail.com >
Reviewed-by: Yiwei Zhang <zzyiwei@chromium.org >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10709 >
2021-06-03 06:03:31 +00:00
Chia-I Wu
7ec6cb61ad
venus: add vn_cmd_get_image_memory_barriers
...
And call it regardless of ANDROID or not.
Signed-off-by: Chia-I Wu <olvaffe@gmail.com >
Reviewed-by: Yiwei Zhang <zzyiwei@chromium.org >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10709 >
2021-06-03 06:03:31 +00:00
Chia-I Wu
142e452e9a
venus: add vn_image_memory_barrier_has_present_src
...
And call it regardless of ANDROID or not.
Signed-off-by: Chia-I Wu <olvaffe@gmail.com >
Reviewed-by: Yiwei Zhang <zzyiwei@chromium.org >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10709 >
2021-06-03 06:03:31 +00:00
Chia-I Wu
fb6fc24771
venus: remember cmd buffer fb attachments
...
We need them for wsi queue ownership transfer.
Signed-off-by: Chia-I Wu <olvaffe@gmail.com >
Reviewed-by: Yiwei Zhang <zzyiwei@chromium.org >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10709 >
2021-06-03 06:03:31 +00:00
Chia-I Wu
ccf85f6604
venus: remember cmd buffer render pass and framebuffer
...
We need them for wsi queue ownership transfer.
Signed-off-by: Chia-I Wu <olvaffe@gmail.com >
Reviewed-by: Yiwei Zhang <zzyiwei@chromium.org >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10709 >
2021-06-03 06:03:31 +00:00
Chia-I Wu
c85aa41046
venus: remember framebuffer attachments
...
We need them for wsi queue ownership transfer.
Signed-off-by: Chia-I Wu <olvaffe@gmail.com >
Reviewed-by: Yiwei Zhang <zzyiwei@chromium.org >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10709 >
2021-06-03 06:03:31 +00:00
Chia-I Wu
65e4bfe7ab
venus: remember image view image
...
We need that for wsi queue ownership transfer.
Signed-off-by: Chia-I Wu <olvaffe@gmail.com >
Reviewed-by: Yiwei Zhang <zzyiwei@chromium.org >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10709 >
2021-06-03 06:03:31 +00:00
Chia-I Wu
cef50d08e9
venus: remember render pass PRESENT_SRC barriers
...
We need them for wsi queue ownership transfer.
Signed-off-by: Chia-I Wu <olvaffe@gmail.com >
Reviewed-by: Yiwei Zhang <zzyiwei@chromium.org >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10709 >
2021-06-03 06:03:31 +00:00
Chia-I Wu
9fe833dfd9
venus: remember render pass PRESENT_SRC attachments
...
We need them for wsi queue ownership transfer.
v2: make VN_PRESENT_SRC_INTERNAL_LAYOUT public
Signed-off-by: Chia-I Wu <olvaffe@gmail.com >
Reviewed-by: Yiwei Zhang <zzyiwei@chromium.org > (v1)
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10709 >
2021-06-03 06:03:31 +00:00
Chia-I Wu
6661e47b59
venus: handle VN_COMMAND_BUFFER_STATE_INVALID
...
If the state was set to VN_COMMAND_BUFFER_STATE_INVALID, return
VK_ERROR_OUT_OF_HOST_MEMORY in vn_EndCommandBuffer.
Signed-off-by: Chia-I Wu <olvaffe@gmail.com >
Reviewed-by: Yiwei Zhang <zzyiwei@chromium.org >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10709 >
2021-06-03 06:03:31 +00:00
Chia-I Wu
eed11c2778
venus: remember image wsi states
...
Signed-off-by: Chia-I Wu <olvaffe@gmail.com >
Reviewed-by: Yiwei Zhang <zzyiwei@chromium.org >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10709 >
2021-06-03 06:03:31 +00:00
Chia-I Wu
f42f3ac1f7
venus: move wsi_image_create_info parsing
...
Move it from vn_CreateImage to vn_wsi_create_image.
Signed-off-by: Chia-I Wu <olvaffe@gmail.com >
Reviewed-by: Yiwei Zhang <zzyiwei@chromium.org >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10709 >
2021-06-03 06:03:31 +00:00
Chia-I Wu
9814cd8153
venus: fix opaque fd re-import
...
dEQP-VK.api.external.memory.opaque_fd.* re-imports and fails because
external_handles was VK_EXTERNAL_MEMORY_HANDLE_TYPE_OPAQUE_FD_BIT on
allocation and is VK_EXTERNAL_MEMORY_HANDLE_TYPE_DMA_BUF_BIT_EXT on
re-import.
Fixes: ccefcb0baf ("venus: fix misaligned bo_flags between import and query")
Signed-off-by: Chia-I Wu <olvaffe@gmail.com >
Reviewed-by: Yiwei Zhang <zzyiwei@chromium.org >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11154 >
2021-06-03 05:53:24 +00:00
Chia-I Wu
4bd7a3829e
venus: fix asserts on mem bo
...
They failed to check the result before asserting.
Signed-off-by: Chia-I Wu <olvaffe@gmail.com >
Reviewed-by: Yiwei Zhang <zzyiwei@chromium.org >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11154 >
2021-06-03 05:53:24 +00:00
Chia-I Wu
67ad9f7580
venus: add vn_device_memory_alloc as a helper
...
It is used for the most common case (non-ahb, non-import, and
non-suballocate).
Signed-off-by: Chia-I Wu <olvaffe@gmail.com >
Reviewed-by: Yiwei Zhang <zzyiwei@chromium.org >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11154 >
2021-06-03 05:53:24 +00:00
Jason Ekstrand
f63410eee6
intel/nir,i965: Move HW generation check for UBO pushing to i965
...
Iris only runs on BDW+ and ANV already handles this by not even trying
on anything older than HSW. The only driver benefiting from this common
check is i965. Moving it out makes the pass more generic and if some
driver comes along which can push UBOs on IVB, it should work for that.
Reviewed-by: Dave Airlie <airlied@redhat.com >
Reviewed-by: Kenneth Graunke <kenneth@whitecape.org >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11145 >
2021-06-03 05:12:33 +00:00
Sergii Melikhov
8251bd216e
util/format: Change the pointer offset.
...
Changed the pointer offset to 2 to account for the second structure variable.
Fixes: 90f98b56f8 ("mesa: Deduplicate _mesa_pack_uint_z_row().")
Closes: https://gitlab.freedesktop.org/mesa/mesa/-/issues/4685
Signed-off-by: Sergii Melikhov <sergii.v.melikhov@globallogic.com >
Cc: mesa-stable@lists.freedesktop.org
Reviewed-by: Emma Anholt <emma@anholt.net >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11060 >
2021-06-03 04:44:24 +00:00
Chia-I Wu
447e80ac9b
vulkan/wsi: provide more info in wsi_image_create_info
...
Always chain wsi_image_create_info to VkImageCreateInfo, which indicates
that the image is a wsi image and can be transitioned to/from
VK_IMAGE_LAYOUT_PRESENT_SRC_KHR.
Add prime_blit_buffer to the struct as well. When set, it indicates the
prime blit destination and implies that the image is a prime blit
source.
Signed-off-by: Chia-I Wu <olvaffe@gmail.com >
Reviewed-by: Yiwei Zhang <zzyiwei@chromium.org >
Reviewed-by: Jason Ekstrand <jason@jlekstrand.net >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10789 >
2021-06-03 04:24:55 +00:00
Dave Airlie
64fa67dd2f
intel/gfx6: move xfb_setup outside the gs compiler into the driver.
...
This remove the use of a GL thing from the backend compiler
Reviewed-by: Jason Ekstrand <jason@jlekstrand.net >
Reviewed-by: Emma Anholt <emma@anholt.net >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11097 >
2021-06-03 04:05:07 +00:00
Rhys Perry
903f814b78
aco: don't create 4 and 5 dword NSA instructions on GFX10
...
"stability issues", apparently: https://reviews.llvm.org/D103348
fossil-db (Navi10):
Totals from 4512 (3.01% of 149839) affected shaders:
VGPRs: 221516 -> 223308 (+0.81%); split: -0.07%, +0.88%
CodeSize: 23000080 -> 23070672 (+0.31%); split: -0.08%, +0.39%
MaxWaves: 107718 -> 107496 (-0.21%); split: +0.11%, -0.32%
Instrs: 4321890 -> 4362822 (+0.95%); split: -0.00%, +0.95%
Latency: 71495710 -> 71581476 (+0.12%); split: -0.07%, +0.19%
InvThroughput: 11858568 -> 11938960 (+0.68%); split: -0.00%, +0.68%
VClause: 76575 -> 76585 (+0.01%); split: -0.05%, +0.07%
SClause: 168771 -> 168709 (-0.04%); split: -0.06%, +0.02%
Copies: 182305 -> 221948 (+21.75%); split: -0.00%, +21.75%
PreVGPRs: 194657 -> 195635 (+0.50%); split: -0.00%, +0.50%
Signed-off-by: Rhys Perry <pendingchaos02@gmail.com >
Reviewed-by: Timur Kristóf <timur.kristof@gmail.com >
Fixes: c353895c92 ("aco: use non-sequential addressing")
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10898 >
2021-06-03 03:49:07 +00:00
Rhys Perry
bb52484df5
aco/tests: improve reporting of failed code checks
...
Instead of just reporting the failed statements, print where they
originated. This is useful for tests which have a number of similar
checks.
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/10898 >
2021-06-03 03:49:07 +00:00
Rhys Perry
9bf30c4a5c
aco/tests: add tests for form_hard_clauses()
...
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/10898 >
2021-06-03 03:49:07 +00:00
Rhys Perry
81162265b1
aco: do not clause NSA instructions
...
According to LLVM, this has "unpredictable results on GFX10.1".
https://reviews.llvm.org/D102211
fossil-db (Navi10):
Totals from 26690 (17.81% of 149839) affected shaders:
CodeSize: 167935160 -> 167706280 (-0.14%); split: -0.14%, +0.00%
Instrs: 31801427 -> 31744142 (-0.18%); split: -0.18%, +0.00%
Latency: 732672435 -> 732622463 (-0.01%)
InvThroughput: 163361435 -> 163357838 (-0.00%); split: -0.00%, +0.00%
VClause: 546131 -> 546903 (+0.14%); split: -0.00%, +0.14%
Signed-off-by: Rhys Perry <pendingchaos02@gmail.com >
Reviewed-by: Timur Kristóf <timur.kristof@gmail.com >
Fixes: c353895c92 ("aco: use non-sequential addressing")
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10898 >
2021-06-03 03:49:07 +00:00
Rob Clark
e04885353e
freedreno/a6xx: Fix mh31 intermittent faults
...
It appears that CP can over-fetch push constants slightly. While it
otherwise has no problem fetching from an alignment of 32 bytes, if that
32 bytes is at the end of a mapped bo, this can trigger fetching up to
32 bytes beyond the patch, triggering an iova fault. While otherwise
"harmless", it is probably better to not have random intermittent
faults.
Signed-off-by: Rob Clark <robdclark@chromium.org >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11142 >
2021-06-03 03:29:04 +00:00
Emma Anholt
3b19545966
docs/freedreno: Rewrite the section on array access.
...
We don't use collect/split for array access these days, instead use
ir3_array structs that the ir3_register can point to.
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11147 >
2021-06-03 03:25:11 +00:00
Emma Anholt
95cffbcdb0
docs/freedreno: Update for the fanin/fanout -> collect/split rename.
...
See 611258d578 ("freedreno/ir3: rename fanin/fanout to collect/split")
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11147 >
2021-06-03 03:25:11 +00:00
Emma Anholt
d3e419f9d8
ci/freedreno: Add some more known flakes from recent marge runs.
...
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11144 >
2021-06-03 03:07:35 +00:00
Eric Engestrom
7949ff5657
docs: update calendar and link releases notes for 21.1.2
...
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11148 >
2021-06-03 02:56:12 +00:00
Eric Engestrom
e0ad9f43b6
docs: add release notes for 21.1.2
...
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11148 >
2021-06-03 02:56:12 +00:00
Jason Ekstrand
f5e58838c2
intel/fs: Handle non-perspective-correct interpolation on gen4-5
...
Reviewed-by: Dave Airlie <airlied@redhat.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11125 >
2021-06-03 02:36:17 +00:00
Dave Airlie
1956ff08ad
st/nir: always revectorise if scalarising happens.
...
This fixes arb_gpu_shader_fp64-vs-non-uniform-control-flow-ssbo
on crocus.
Reviewed-by: Connor Abbott <cwabbott0@gmail.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11098 >
2021-06-03 02:10:00 +00:00
Georg Lehmann
1fe0bb53fe
zink: Add a missing VKAPI_ATTR.
...
Closes #4868
Signed-off-by: Georg Lehmann <dadschoorse@gmail.com >
Reported-by: Roman Stratiienko <r.stratiienko@gmail.com >
Tested-by: Roman Stratiienko <r.stratiienko@gmail.com >
Reviewed-by: Erik Faye-Lund <erik.faye-lund@collabora.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11115 >
2021-06-03 01:59:16 +00:00
Dave Airlie
9520b70f75
llvmpipe: add the interesting bit of cpu detection to the cache.
...
This should detect if someone changes CPU configuration that matters like in a VM
Reviewed-by: Emma Anholt <emma@anholt.net >
Fixes: 6c0c61cb48 ("llvmpipe: add infrastructure for disk cache support")
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10946 >
2021-06-03 01:46:36 +00:00
Eric Anholt
7403463508
u_format: Use the computed BE channels/swizzles for bitmask formats.
...
No more error-prone encoding of swizzles in the .csv for non-planar
formats!
No change to generated u_format_table.c
Acked-by: Adam Jackson <ajax@redhat.com >
Acked-by: Ilia Mirkin <imirkin@alum.mit.edu >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10505 >
2021-06-03 00:12:39 +00:00
Eric Anholt
1c1997267f
u_format: Sanity check that BE swizzles are appropriately mapped from LE.
...
Once you read enough of them, there's an obvious pattern that we can just
write a little code for instead of making every dev write it out each time.
Acked-by: Adam Jackson <ajax@redhat.com >
Acked-by: Ilia Mirkin <imirkin@alum.mit.edu >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10505 >
2021-06-03 00:12:39 +00:00
Eric Anholt
36569b9f8c
u_format: Sanity check the BE channels for all bitmask formats.
...
Just check against the CSV (which has its codegen now tested with
u_format_test in CI) for now, so we know that our computed channels are
correct.
Acked-by: Adam Jackson <ajax@redhat.com >
Acked-by: Ilia Mirkin <imirkin@alum.mit.edu >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10505 >
2021-06-03 00:12:39 +00:00
Eric Anholt
9d77cecf88
u_format: Fix the BE channel ordering for R5G5B5A1_UINT.
...
It notably didn't fit the pattern of RGB5_A1_UNORM, and violated the
general pattern for bitmask format BE channels (channels are ordered
right-to-left in the BE columns in the CSV due to the parser walking them
in that order for historical reasons).
Acked-by: Adam Jackson <ajax@redhat.com >
Acked-by: Ilia Mirkin <imirkin@alum.mit.edu >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10505 >
2021-06-03 00:12:39 +00:00
Eric Anholt
4dac360d5a
u_format: Define tests for r3g3b2 formats and fix BE swizzles for them.
...
These tests passed for LE, and the BE channel ordering specified obviously
didn't fit the pattern of the other BE formats (channels are listed
right-to-left in the BE columns for historical reasons).
Note that we can't write pure-integer format tests in u_format_tests.c
currently.
Acked-by: Adam Jackson <ajax@redhat.com >
Acked-by: Ilia Mirkin <imirkin@alum.mit.edu >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10505 >
2021-06-03 00:12:39 +00:00
Eric Anholt
c144f988e1
u_format: Assert that array formats don't include BE swizzles.
...
Z32_FLOAT_S8X24_UINT and X32_S8X24_UINT are in fact the only non-bitmask
formats that have BE swizzles specified, but sorting out those two is
harder.
Acked-by: Adam Jackson <ajax@redhat.com >
Acked-by: Ilia Mirkin <imirkin@alum.mit.edu >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10505 >
2021-06-03 00:12:39 +00:00
Emma Anholt
397e80762e
u_format: Use the nice helper for reversing an array.
...
Acked-by: Adam Jackson <ajax@redhat.com >
Acked-by: Ilia Mirkin <imirkin@alum.mit.edu >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10505 >
2021-06-03 00:12:39 +00:00
Eric Anholt
c8ef4f3615
u_format: Move the BE swizzle computation into Format init.
...
I wanted to do the next set BE changes here where I have Format's helper
functions available.
No changes in generated u_format_table.c.
Acked-by: Adam Jackson <ajax@redhat.com >
Acked-by: Ilia Mirkin <imirkin@alum.mit.edu >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10505 >
2021-06-03 00:12:39 +00:00
Eric Anholt
8a40780466
u_format: Drop redundant .name init.
...
It's the first member that's set.
Acked-by: Adam Jackson <ajax@redhat.com >
Acked-by: Ilia Mirkin <imirkin@alum.mit.edu >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10505 >
2021-06-03 00:12:39 +00:00
Eric Anholt
a7fdddb133
u_format: Fix some pep8 in u_format_parse.py.
...
My editor likes to enforce pep8, here's some low hanging fruit so I don't
have to do too much add -p.
Acked-by: Adam Jackson <ajax@redhat.com >
Acked-by: Ilia Mirkin <imirkin@alum.mit.edu >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10505 >
2021-06-03 00:12:39 +00:00
Danylo Piliaiev
b71e27ea84
turnip: fix register_index calculations of xfb outputs
...
nir_assign_io_var_locations() does not use outputs_written when
assigning driver locations. Use driver_location to avoid incorrectly
guessing what locations it assigned.
Copied from lavapipe 8731a1beb7
Will fix provoking vertex tf tests when VK_EXT_provoking_vertex
would be enabled:
dEQP-VK.rasterization.provoking_vertex.transform_feedback.*
Signed-off-by: Danylo Piliaiev <dpiliaiev@igalia.com >
Reviewed-by: Samuel Iglesias Gonsálvez <siglesias@igalia.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11111 >
2021-06-02 23:55:00 +00:00
Danylo Piliaiev
551d7fddfb
turnip: emit vb stride dynamic state when it is dirty
...
Due to incorrect condition we never emitted vb stride
if state was dynamically set.
Fixes vertex explosion with Zink.
See https://gitlab.freedesktop.org/mesa/mesa/-/issues/4738
Signed-off-by: Danylo Piliaiev <dpiliaiev@igalia.com >
Reviewed-by: Samuel Iglesias Gonsálvez <siglesias@igalia.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11133 >
2021-06-02 21:38:19 +00:00
Kenneth Graunke
ccfde5089e
iris: Use bo->mmap_mode in transfer map read check
...
The scenario we want to avoid is reading from WC or UC mappings,
so this is an easier to follow check.
Acked-by: Lionel Landwerlin <lionel.g.landwerlin@intel.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10941 >
2021-06-02 21:18:00 +00:00
Kenneth Graunke
f62724ccac
iris: Pick a single mmap mode (WB/WC) at BO allocation time
...
Previously, iris_bufmgr had the ability to maintain multiple
simultaneous memory mappings for a BO, one in WB mode (with CPU caches),
and another in WC (streaming) mode. Depending on the flags passed to
iris_bo_map(), we would select one mode or the other.
The rules for deciding which to use were:
- Systems with LLC always use WB mode because it's basically free
- Non-LLC systems used...
- WB maps for all BOs where snooping is enabled (which translates to
when BO_ALLOC_COHERENT is set at allocation time)
- WB maps for reads unless persistent, coherent, async, or raw.
- WC maps for everything else.
This patch simplifies the system by selecting a single mmap mode at
BO allocation time, and always using that. Each BO now has at most one
map at a time, rather than up to two (or three before we deleted GTT
map support in recent patches).
In practical terms, this eliminates the capability to use WB maps for
reads of non-snooped BOs on non-LLC systems. Such reads would now be
slow, uncached reads. However, iris_transfer_map recently began using
staging blits for such reads - so the GPU copies the data to a snooped
buffer which will be mapped WB. So, rather than incurring slow UC
reads, we really just take the hit of a blit, and retain fast reads.
The rest of the rules remain the same.
There are a few reasons for this:
1. TTM doesn't support mapping an object as both WB and WC. The
cacheability is treated as a property of the object, not the map.
The kernel is moving to use TTM as part of adding discrete local
memory support. So it makes sense to centralize on that model.
2. Mapping the same BO as both WB and WC is impossible to support on
some CPUs. It works on x86/x86_64, which was fine for integrated
GPUs, but it may become an issue for discrete graphics paired with
other CPUs (should that ever be a thing we need to support).
3. It's overall much simpler. We only have one bo->map field, and
manage to drop a significant amount of boilerplate.
One issue that arises is the interaction with the BO cache: BOs with
WB maps and WC maps will be lumped together into the same cache. This
means that a cached BO may have the wrong mmap mode. We check that,
and if it doesn't match, we unmap it, waiting until iris_bo_map is
called to restore one with the desired mode. This may underutilize
cache mappings slightly on non-LLC systems, but I don't expect it to
have a large impact.
Closes: https://gitlab.freedesktop.org/mesa/mesa/-/issues/4747
Acked-by: Lionel Landwerlin <lionel.g.landwerlin@intel.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10941 >
2021-06-02 21:18:00 +00:00
Kenneth Graunke
22bfb5355f
iris: Delete GTT mapping support
...
In the bad old days, i965 used GTT mapping for detiling maps. iris
never has, however. The only reason it used GTT maps was in weird
fallback cases for dealing with BO imports from foreign memory. We
now do staging blits for those, and never mmap them.
There are no more users of GTT mapping, so we can delete it.
Acked-by: Lionel Landwerlin <lionel.g.landwerlin@intel.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10941 >
2021-06-02 21:18:00 +00:00
Kenneth Graunke
2f30cf4ac9
iris: Drop fallback GEM_MMAP_GTT if GEM_MMAP with I915_MMAP_WC fails
...
XXX: This is actually wrong. The dmabuf imported case can be mapped via
GEM_MMAP_GTT if the iommu is working, according to Joonas, but GEM_MMAP
would fall over and fail. So we would need this fallback.
ALTERNATIVELY...we would need to flag such imported dmabufs as
unmappable, and then make iris_transfer_map/unmap always do blits
instead of direct mappings. That seems like the saner approach
We never want to use GEM_MMAP_GTT, as it does detiling maps, and iris
always wants direct maps. There were originally two cases that this
fallback path was attempting to handle:
1. The BO was allocated from stolen memory that we can't GEM_MMAP.
At one point, kernel patches were being proposed to use stolen
memory for userspace buffers, but these never landed. The kernel
has never given us stolen memory, so we cannot hit this case.
2. Imported objects may be from memory we can't GEM_MMAP.
For example, a DMABUF from a discrete AMD/NVIDIA GPU in a PRIME
setup would be backed by memory that we can't GEM_MMAP. We could
try and mmap these directly with GEM_MMAP_GTT, but that relies on
the IOMMU working. We could mmap the DMABUF fd directly (but have
never tried to do so), but there are complex rules there. Instead,
we now flag those imports, however, and rely on the iris_transfer_map
code to perform staging blits on the GPU, so we never even try to
map them directly. So this case won't reach us here any longer.
With both of those out of the way, there is no need for a fallback.
Acked-by: Lionel Landwerlin <lionel.g.landwerlin@intel.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10941 >
2021-06-02 21:18:00 +00:00
Kenneth Graunke
05a43d426f
iris: Assert on mapping a tiled buffer without MAP_RAW
...
iris has never relied on detiled maps using hardware fences.
This code is a remnant of i965, where that was actually used.
We can just assert that callers don't do such a thing.
Acked-by: Lionel Landwerlin <lionel.g.landwerlin@intel.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10941 >
2021-06-02 21:18:00 +00:00
Kenneth Graunke
3319ab0db9
iris: Use staging blits for transfers involving imported BOs
...
Direct mappings of imported DMABUFs can be tricky. If they're allocated
from our own device, then we can probably mmap them and it'd be fine.
But they may come from a different device (such as a discrete GPU), in
which case I915_GEM_MMAP wouldn't work, I915_GEM_MMAP_GTT would require
a working IOMMU, and directly mmap'ing the DMABUF fd would come with a
bunch of rules and restrictions which are hard to get right.
CPU mapping an imported DMABUF image for writes seems very uncommon,
solidly in the "what are you even doing?" realm. Mapping an imported
DMABUF for reading might be a thing, in case someone wanted to do
glReadPixels on it. But in that case, the cost of doing a staging
blit is probably acceptable.
Acked-by: Lionel Landwerlin <lionel.g.landwerlin@intel.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10941 >
2021-06-02 21:18:00 +00:00
Kenneth Graunke
643c4ade4c
iris: Use staging blits for reads from uncached buffers.
...
If we're doing CPU reads of a resource that doesn't have CPU caches
enabled for the mapping (say, in device local memory, or WC mapped),
then blit it to a temporary that does have those caches enabled.
Acked-by: Lionel Landwerlin <lionel.g.landwerlin@intel.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10941 >
2021-06-02 21:18:00 +00:00
Kenneth Graunke
49070038f4
iris: Track imported vs. exported status separately
...
Not all external objects are the same. Imported buffers may be from
other devices (say a dmabuf from an AMD or NVIDIA discrete card) which
are backed by memory that we can't use with I915_GEM_MMAP. However,
exported buffers are ones that we know we allocated ourselves from our
own device. We may not know what other clients are doing with them,
but we can assume a bit more about where they came from.
Acked-by: Lionel Landwerlin <lionel.g.landwerlin@intel.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10941 >
2021-06-02 21:18:00 +00:00
Kenneth Graunke
1a395e1058
iris: Make an iris_bo_is_external() helper and use it in a few places
...
I'd like to start tracking "imported" vs. "exported" for objects,
rather than a blanket "external" flag. Instead of directly checking
bo->external, use a new helper that will eventually be "imported or
exported".
Acked-by: Lionel Landwerlin <lionel.g.landwerlin@intel.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10941 >
2021-06-02 21:18:00 +00:00
Kenneth Graunke
1c73445d22
iris: Delete a comment suggesting we use tiled staging buffers
...
We basically tried this, and it performed worse, so delete the
suggestion in the comments that we may want to do it someday.
Acked-by: Lionel Landwerlin <lionel.g.landwerlin@intel.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10941 >
2021-06-02 21:18:00 +00:00
Kenneth Graunke
dfe7ff5846
iris: Promote to MAP_DIRECTLY when required before NULL return
...
In some cases, we have to map directly (e.g. coherent/persistent maps).
In other cases (e.g. tiled), we /cannot/ map directly. We should put
the code which adds the PIPE_MAP_DIRECTLY flag in mandatory cases before
the "bail and return NULL" check for cases where we can't do that.
We leave the "we would prefer to direct map this" cases after the error
check, since we -can- use blits for those, we'd just rather not. ASTC
also stays because even though it's tiled, our tiled memcpy paths work.
Acked-by: Lionel Landwerlin <lionel.g.landwerlin@intel.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10941 >
2021-06-02 21:18:00 +00:00
Kenneth Graunke
ed55f52b39
iris: Replace no_gpu flag with PIPE_MAP_DIRECTLY
...
Here, we're deciding when to map the buffer directly, rather than using
the GPU to blit to/from a temporary. There is already a flag for that,
PIPE_MAP_DIRECTLY, which has the added benefit of not being a negative
(such as "no_gpu").
Currently, we intend to map directly if:
1. Direct mappings were requested explicitly
2. Persistent or coherent mappings were requested (and so we must)
3. ASTC textures (we currently can't blit those correctly)
4. There is no need for a temporary (there's no image compression that
the CPU wouldn't understand, and we don't need to avoid stalls due
to the buffer being busy on the GPU)
Expressing "please memory map this directly" is easier to follow than
"please don't use the GPU as part of mapping this".
Acked-by: Lionel Landwerlin <lionel.g.landwerlin@intel.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10941 >
2021-06-02 21:18:00 +00:00
Mike Blumenkrantz
3a3eb63d6f
zink: ci updates
...
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11122 >
2021-06-02 16:53:57 +00:00
Mike Blumenkrantz
b666268cb8
zink: handle null bufferview/imageview descriptors when robustness2 is missing
...
Reviewed-by: Erik Faye-Lund <erik.faye-lund@collabora.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11122 >
2021-06-02 16:53:57 +00:00
Mike Blumenkrantz
7ed9919e95
zink: create dummy surface/bufferview for null descriptor use
...
Reviewed-by: Erik Faye-Lund <erik.faye-lund@collabora.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11122 >
2021-06-02 16:53:57 +00:00
Mike Blumenkrantz
b897012054
zink: replace context-based null framebuffer surfaces with internal ones
...
this is a bit cleaner and avoids accessing the context
Reviewed-by: Erik Faye-Lund <erik.faye-lund@collabora.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11122 >
2021-06-02 16:53:57 +00:00
Mike Blumenkrantz
83afe211ec
zink: add a util function to create a null surface
...
Reviewed-by: Erik Faye-Lund <erik.faye-lund@collabora.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11122 >
2021-06-02 16:53:57 +00:00
Andres Gomez
b090ad574d
ci: build the hang-detection tool into x86_test-vk
...
hang-detection is a vulkan-based lightweight wrapper from
parallel-deqp-runner that periodically submits empty command buffers
and waits for their completions. If the completion never happens, the
GPU is considered hung, the wrapped script is killed, and the job
should get aborted.
This should have no negative impact on the runtime of dEQP/traces/...,
but will allow saving time when the GPU gets hung as we can abort the
job immediately rather than waiting for the timeout.
In the case of B2C, we are using this tool's error message as a way to
trigger the reboot of the test machine and start again.
v2:
- Use hang-detection already with some jobs (Martin).
Signed-off-by: Andres Gomez <agomez@igalia.com >
Reviewed-by: Martin Peres <martin.peres@mupuf.org >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11087 >
2021-06-02 16:30:57 +00:00
Andres Gomez
15e41b576b
ci: fix the vkd3d-proton runner
...
Signed-off-by: Andres Gomez <agomez@igalia.com >
Reviewed-by: Martin Peres <martin.peres@mupuf.org >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11087 >
2021-06-02 16:30:57 +00:00
Danylo Piliaiev
74aa09b22c
turnip: reset push descriptor set on command buffer reset
...
Otherwise it will store a pointer to already unmapped memory which
could lead to a crash in tu_CmdPushDescriptorSetWithTemplateKHR since
it tries to copy data from the old memory.
Fixes a crash with Zink's new lazy descriptor manager instroduced
in bfdd1d8d
Signed-off-by: Danylo Piliaiev <dpiliaiev@igalia.com >
Reviewed-by: Samuel Iglesias Gonsálvez <siglesias@igalia.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11137 >
2021-06-02 16:01:40 +00:00
Mike Blumenkrantz
89bac36f09
radv: explicitly load a desc set layout struct member during set allocate
...
accessing this variable repeatedly like this is a contended hotpath somehow,
so instead just create a const for reference
Reviewed-by: Bas Nieuwenhuizen <bas@basnieuwenhuizen.nl >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11124 >
2021-06-02 13:31:43 +00:00
Mike Blumenkrantz
79742d41c0
radv: declare index_va in a single call for indexed draw packet emit
...
this is an extreme hotpath, so having a single calculation in a const
variable is slightly better for compiler microoptimizing
Reviewed-by: Bas Nieuwenhuizen <bas@basnieuwenhuizen.nl >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11124 >
2021-06-02 13:31:43 +00:00
Erik Faye-Lund
4fd9c6d9f3
docs: add the doc-comment for fse-vars
...
This just copies the comment that's in the code where this state is
stored. It seems better than nothing.
Reviewed-by: Chia-I Wu <olvaffe@gmail.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11106 >
2021-06-02 12:56:05 +00:00
Erik Faye-Lund
d4397c0048
docs: use envvar role for envvars
...
Reviewed-by: Chia-I Wu <olvaffe@gmail.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11106 >
2021-06-02 12:56:05 +00:00
Erik Faye-Lund
7268a429ce
docs: use file-role for paths
...
Reviewed-by: Chia-I Wu <olvaffe@gmail.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11106 >
2021-06-02 12:56:05 +00:00
Erik Faye-Lund
c13f8bc5ac
docs: fix header-levels in envvars.rst
...
It seems something went wrong during conversion of this article (or
maybe even before in the HTML version), where every header after the
"Gallium environment variables" header was nested below it.
That's clearly not what's meant here, so let's fix that.
This makes the toctree make a bit more sense for this article.
Reviewed-by: Chia-I Wu <olvaffe@gmail.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11106 >
2021-06-02 12:56:05 +00:00
Erik Faye-Lund
aba4e7f5bd
docs: quote a few defines
...
Reviewed-by: Chia-I Wu <olvaffe@gmail.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11106 >
2021-06-02 12:56:05 +00:00
Mike Blumenkrantz
bd893bfdf8
aux/draw: fix aalines and aapoints for shaders with explicit FragData outputs
...
all color outputs need to be rewritten with coverage, not just FragColor
Reviewed-by: Erik Faye-Lund <erik.faye-lund@collabora.com >
Reviewed-by: Dave Airlie <airlied@redhat.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11065 >
2021-06-02 10:13:34 +00:00
Iago Toral Quiroga
1f7d2b4994
v3dv: implement external semaphore/fence extensions
...
This provides most of the implementation, but there are some
things we cannot enable until we improve of kernel submit
interface, namely:
We don't expose capacity to export SYNC_FD, although we do
have the implementation in place. This requires that we
improve our kernel interface and event wait implementation
first so we can cover the corner case where the application
submits a command buffer that includes a VkCmdWaitForEvents
and tries to export a SYNC_FD from its signal semaphores or
fence before it the event is signaled and the command buffer
is sent to the kernel for execution in full.
Likewise, we can't currently import semaphores. This is because
our current kernel submit interface can only take one syncobj.
We have been working around this so far by waiting on the last
syncobj produced from the device whenever we had to wait on any
semaphores (which is obviously suboptimal already), but this
won't work as soon as we allow importing external semaphores,
as those could (and would typically) be produced from a
different device.
Once we address the kernel bits, we should come back and enable
SYNC_FD exports as well as semaphore imports.
Relevant CTS tests:
dEQP-VK.api.external.fence.*
dEQP-VK.api.external.semaphore.*
dEQP-VK.synchronization.cross_instance.*
Reviewed-by: Alejandro Piñeiro <apinheiro@igalia.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11105 >
2021-06-02 09:58:47 +00:00
Iago Toral Quiroga
cfb4d109a7
v3dv: don't keep an open file descriptor for imported fences/semaphores
...
We can (and should) close the descriptor immediately after the import.
Gets the following CTS test to pass without requiring to increase limits
for open file descriptors:
dEQP-VK.synchronization.basic.binary_semaphore.chain
Reviewed-by: Alejandro Piñeiro <apinheiro@igalia.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11105 >
2021-06-02 09:58:47 +00:00
Mauro Rossi
1f7ab837b8
android: i965: remove brw_ff_gs_emit.c from Makefile.sources
...
Fixes the following building error:
clang: error: no such file or directory: 'external/mesa/src/mesa/drivers/dri/i965/brw_ff_gs_emit.c'
clang: error: no input files
Fixes: 897bcc1e6b ("i965: drop old brw ff gs code.")
Reviewed-by: Emil Velikov <emil.l.velikov@gmail.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10718 >
2021-06-02 09:28:04 +00:00
Mauro Rossi
076736222e
android: intel/compiler: add brw_compile_ff_gs.c to Makefile.sources
...
Fixes the following building error:
FAILED: out/target/product/x86_64/obj_x86/SHARED_LIBRARIES/i965_dri_intermediates/LINKED/i965_dri.so
...
ld.lld: error: undefined symbol: brw_compile_ff_gs_prog
>>> referenced by brw_ff_gs.c:56 (external/mesa/src/mesa/drivers/dri/i965/brw_ff_gs.c:56)
Fixes: 52e426fd8b ("intel/compiler: add support for compiling fixed function gs")
Reviewed-by: Emil Velikov <emil.l.velikov@gmail.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10718 >
2021-06-02 09:28:04 +00:00
Daniel Stone
d58c76035b
CI: Fix path confusion in OpenCL Piglit execution
...
When we remove the contents of the results directory, we `cd` into it.
The script expects that $PWD is /piglit, and $OLDPWD is the Mesa build
directory, however the cd into the results directory will make $OLDPWD
be $BUILDDIR/results.
This means that Piglit emits into results/results/ which looks weird,
but more importantly also fails OpenCL Piglit execution, because we
can't find our baseline result expectations.
Fix it by using an explicit variable rather than relying on history.
Fixes: 683ddf19dc ("ci: remove results directory content only with piglit runners")
Ref: https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10856
Signed-off-by: Daniel Stone <daniels@collabora.com >
Reviewed-by: Martin Peres <martin.peres@mupuf.org >
Reviewed-by: Andres Gomez <agomez@igalia.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11126 >
2021-06-02 09:04:14 +00:00
Daniel Stone
fce726451b
Revert "CI: Disable rk3399-gru-kevin jobs for now"
...
We've got 7/10 devices back now, that'll do.
This reverts commit 79a7f33710 .
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11127 >
2021-06-02 08:20:39 +00:00
Matt Turner
c460f3806d
sparc: Avoid some redefinition warnings
...
These definitions are provided by m_vector_asm.h now.
Fixes: 67ffb853f0 ("sparc: Reuse m_vector_asm.h.")
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11119 >
2021-06-02 07:56:32 +00:00
Tomeu Vizoso
67af3b6bba
ci/lava: Switch LAVA jobs to x86 runners
...
So we don't need to provision aarch64 servers, which are these days
rarer than x8_64.
In the switch to the new runner tags, switch to one which contains the
device type, so we can dimension the runner jobs taking into account the
number of DUTs available.
Signed-off-by: Tomeu Vizoso <tomeu.vizoso@collabora.com >
Acked-by: Daniel Stone <daniels@collabora.com >
Reviewed-by: Emma Anholt <emma@anholt.net >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11108 >
2021-06-02 08:14:51 +02:00
Matt Turner
09935c0dde
freedreno/afuc: Print uintptr_t with PRIxPTR
...
Fixes a compilation error on 32-bit.
Fixes: bba61cef38 ("freedreno/afuc: Add emulator mode to afuc-disasm")
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11118 >
2021-06-02 03:57:20 +00:00
Eric Anholt
148723ce64
ci/android: Update to building for SDK 29 by default.
...
This will get us build coverage of a bunch of Vulkan features, plus the
ELF TLS support.
Reviewed-by: Roman Stratiienko <r.stratiienko@gmail.com >
Reviewed-by: Emil Velikov <emil.l.velikov@gmail.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10389 >
2021-06-02 03:10:49 +00:00
Eric Anholt
0d8e431871
android: Fix ELF TLS support.
...
Android 29 introduced general-dynamic TLS variable support ("quick
function call to look up the location of the dynamically allocated
storage"), while Mesa on normal Linux has used initial-exec ("use some of
the startup-time fixed slots, hope for the best!"). Both would be better
options than falling all the way back to pthread_getspecific(), which is
the alternative we have pre-29.
Reviewed-by: Roman Stratiienko <r.stratiienko@gmail.com >
Reviewed-by: Emil Velikov <emil.l.velikov@gmail.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10389 >
2021-06-02 03:10:49 +00:00
Emma Anholt
75a9cb1033
util: Add a helper macro for defining initial-exec variables.
...
I'm going to add another case for Android shortly, and then we can keep
the logic all in one spot.
Reviewed-by: Roman Stratiienko <r.stratiienko@gmail.com >
Reviewed-by: Emil Velikov <emil.l.velikov@gmail.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10389 >
2021-06-02 03:10:49 +00:00
Mike Blumenkrantz
4a68b16a52
aux/draw: if pipe_draw_info::index_bias_varies is not set, ignore index_bias for N>1
...
this enables some optimizations in lavapipe
Reviewed-by: Alyssa Rosenzweig <alyssa.rosenzweig@collabora.com >
Reviewed-by: Dave Airlie <airlied@redhat.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10995 >
2021-06-02 01:56:58 +00:00
Mike Blumenkrantz
2ee0912273
aux/trace: dump resource for samplerview and surface
...
this is the most important member
Reviewed-by: Alyssa Rosenzweig <alyssa.rosenzweig@collabora.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10974 >
2021-06-02 00:11:28 +00:00
Alyssa Rosenzweig
d058ce7e88
docs/gallium: Document the index buffer format convention
...
Signed-off-by: Alyssa Rosenzweig <alyssa@collabora.com >
Reviewed-by: Emma Anholt <emma@anholt.net >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10990 >
2021-06-01 23:40:47 +00:00
Alyssa Rosenzweig
a86deb1e72
si: Use Rn_UINT instead of In_UINT for index buffers
...
Signed-off-by: Alyssa Rosenzweig <alyssa@collabora.com >
Reviewed-by: Emma Anholt <emma@anholt.net >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10990 >
2021-06-01 23:40:47 +00:00
Alyssa Rosenzweig
0790bc41ed
lima: Use Rn_UINT instead of In_UINT for index buffers
...
Signed-off-by: Alyssa Rosenzweig <alyssa@collabora.com >
Reviewed-by: Emma Anholt <emma@anholt.net >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10990 >
2021-06-01 23:40:47 +00:00
Alyssa Rosenzweig
3058545d94
freedreno: Use Rn_UINT instead of In_UINT for index buffers
...
Signed-off-by: Alyssa Rosenzweig <alyssa@collabora.com >
Reviewed-by: Emma Anholt <emma@anholt.net >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10990 >
2021-06-01 23:40:47 +00:00
Alyssa Rosenzweig
b92a6edf82
etnaviv: Use Rn_UINT instead of In_UINT for index buffers
...
Signed-off-by: Alyssa Rosenzweig <alyssa@collabora.com >
Reviewed-by: Emma Anholt <emma@anholt.net >
Reviewed-by: Lucas Stach <l.stach@pengutronix.de >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10990 >
2021-06-01 23:40:47 +00:00
Alyssa Rosenzweig
1560f24da5
v3d: Use Rn_UINT instead of In_UINT for index buffers
...
Signed-off-by: Alyssa Rosenzweig <alyssa@collabora.com >
Reviewed-by: Emma Anholt <emma@anholt.net >
Reviewed-by: Juan A. Suarez <jasuarez@igalia.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10990 >
2021-06-01 23:40:47 +00:00
Alyssa Rosenzweig
a0b74bad62
vc4: Use Rn_UINT instead of In_UINT for index buffers
...
Signed-off-by: Alyssa Rosenzweig <alyssa@collabora.com >
Reviewed-by: Emma Anholt <emma@anholt.net >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10990 >
2021-06-01 23:40:47 +00:00
Mike Blumenkrantz
24b03aeecc
zink: ci updates
...
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11093 >
2021-06-01 23:29:19 +00:00
Mike Blumenkrantz
e3192367ac
zink: optimize buffer rebinds
...
by using the bind counts, the common cases of rebinds can be immediately
handled without unnecessary iteration, and following this each rebind can
be evaluated to ensure that every necessary descriptor was rebound in order
to catch any remaining corner cases that may not be handled in the optimized
rebind path
Reviewed-by: Dave Airlie <airlied@redhat.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11093 >
2021-06-01 23:29:19 +00:00
Mike Blumenkrantz
3108344403
zink: unify more resource bind count tracking code
...
we want to avoid updating these values when possible in order to reduce
overhead, which means that if a descriptor is being replaced, it should
be updated only if the replacement is not the same resource
Reviewed-by: Dave Airlie <airlied@redhat.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11093 >
2021-06-01 23:29:19 +00:00
Mike Blumenkrantz
91d2fc191f
zink: unify code for updating res->bind_count values
...
Reviewed-by: Dave Airlie <airlied@redhat.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11093 >
2021-06-01 23:29:19 +00:00
Mike Blumenkrantz
bfdd1d8d89
zink: add a second descriptor manager
...
this is the "lazy" descriptor manager, which aims to perform the least
amount of work calculating updates while ignoring the overhead that an
update may incur: effectively the inverse of the caching manager
in this initial implementation, divergence exists between the descriptor
layouts of the cached manager and the lazy manager in order to avoid
incurring regressions in the existing descriptor architecture; this will
be reconciled in a followup MR that refactors and unifies descriptor layouts
during this interim period and until such reconciliation occurs,
the default descriptor manager is now the lazy manager for testing purposes as
there are no changes here which can affect the existing infrastructure
the caching descriptor manager can be selected with the ZINK_CACHE_DESCRIPTORS
env var and will be automatically used for vulkan drivers which don't support
the features required for lazy mode (templates)
Reviewed-by: Dave Airlie <airlied@redhat.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11093 >
2021-06-01 23:29:19 +00:00
Alyssa Rosenzweig
80bf7bdcef
panfrost/ci: Report flakes on IRC
...
Signed-off-by: Alyssa Rosenzweig <alyssa@collabora.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11022 >
2021-06-01 22:26:21 +00:00
Emma Anholt
9283875f93
ci: Move the flakes channels to OFTC
...
Following the rest of our channels, move CI reporting over. Seems to
still work fine. This affects freedreno and iris.
Reviewed-by: Alyssa Rosenzweig <alyssa.rosenzweig@collabora.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11020 >
2021-06-01 20:31:00 +00:00
Emma Anholt
e414718aef
ci: Add known-flake handling for the IRC flake reports
...
Now, flakes that aren't in the *-flakes.txt get a "NEW" in their report so
I can watch for them.
The bash was unwieldy and made debugging hard, so I switched to python.
Reviewed-by: Alyssa Rosenzweig <alyssa.rosenzweig@collabora.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11020 >
2021-06-01 20:31:00 +00:00
Mike Blumenkrantz
5515d3aec5
anv: fix availability for copying timestamp query results
...
idx here is the index of the value being written, so if it isn't used/incremented
when the query result is written, the availability result will clobber it and
be written to the same buffer offset
Cc: mesa-stable@lists.freedesktop.org
Reviewed-by: Lionel Landwerlin <lionel.g.landwerlin@intel.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11116 >
2021-06-01 19:52:24 +00:00
Alyssa Rosenzweig
478ae974a1
panfrost: Eliminate reserve_* functions
...
We always want to reserve _something_, so reserve what we need at batch
creation time and stop trying to re-reserve in a zillion places after.
This has a neglible (<128 bytes per batch) increase in memory usage for
compute-only workloads, but given the amount of simplication, that's a
fair tradeoff.
Signed-off-by: Alyssa Rosenzweig <alyssa@collabora.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11074 >
2021-06-01 19:10:28 +00:00
Alyssa Rosenzweig
ae93796cc0
panfrost: Elucidate thread group split field
...
Last unknown field in the XML :-)
Signed-off-by: Alyssa Rosenzweig <alyssa@collabora.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11074 >
2021-06-01 19:10:28 +00:00
Alyssa Rosenzweig
71f069bd7a
panfrost: Bubble up errors
...
Instead of punting to PAN_MESA_DEBUG=msgs, which we can now remove.
Signed-off-by: Alyssa Rosenzweig <alyssa@collabora.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11074 >
2021-06-01 19:10:28 +00:00
Alyssa Rosenzweig
ff3e54b432
panfrost: Minor changes to draw_vbo
...
Signed-off-by: Alyssa Rosenzweig <alyssa@collabora.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11074 >
2021-06-01 19:10:28 +00:00
Alyssa Rosenzweig
8b305ce32a
panfrost: Write translate_index_size better
...
Encodings line up with Gallium except for uint32.
Signed-off-by: Alyssa Rosenzweig <alyssa@collabora.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11074 >
2021-06-01 19:10:28 +00:00
Alyssa Rosenzweig
8f13eb812d
panfrost: Dirty track stack sizes
...
Signed-off-by: Alyssa Rosenzweig <alyssa@collabora.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11074 >
2021-06-01 19:10:28 +00:00
Alyssa Rosenzweig
e95abff4de
panfrost: Don't allocate empty varying buffer
...
If the FS doesn't actually read any varyings, there's no point.
Signed-off-by: Alyssa Rosenzweig <alyssa@collabora.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11074 >
2021-06-01 19:10:28 +00:00
Alyssa Rosenzweig
c34b760b9f
panfrost: Dirty track constant buffers
...
Signed-off-by: Alyssa Rosenzweig <alyssa@collabora.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11074 >
2021-06-01 19:10:28 +00:00
Alyssa Rosenzweig
6e61c54d30
panfrost: Analyze sysval dirty flags
...
We want dirty tracking for constant buffer uploads, but which dirty
flags are needed depend on what the sysvals are. So for each sysval,
record a corresponding dirty flag at compile time, so at draw-time the
check is easy.
Signed-off-by: Alyssa Rosenzweig <alyssa@collabora.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11074 >
2021-06-01 19:10:28 +00:00
Alyssa Rosenzweig
8e9c043d5e
panfrost: Add draw parameters dirty flags
...
Needed to track some new sysvals.
Signed-off-by: Alyssa Rosenzweig <alyssa@collabora.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11074 >
2021-06-01 19:10:28 +00:00
Alyssa Rosenzweig
344db85bd5
panfrost: Shrink pan_draw_mode return type
...
Let gcc emit ldrb instead of ldr for the table. Found by perf, but total
waste of time >_>
Signed-off-by: Alyssa Rosenzweig <alyssa@collabora.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11074 >
2021-06-01 19:10:28 +00:00
Alyssa Rosenzweig
3a443daed0
panfrost: Update comment
...
Signed-off-by: Alyssa Rosenzweig <alyssa@collabora.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11074 >
2021-06-01 19:10:28 +00:00
Juan A. Suarez Romero
1341e2a547
ci/v3dv: update expected results
...
Reviewed-by: Jose Maria Casanova Crespo <jmcasanova@igalia.com >
Signed-off-by: Juan A. Suarez Romero <jasuarez@igalia.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11103 >
2021-06-01 18:21:21 +00:00
Antonio Caggiano
bb1cd03fcc
panfrost: Fix pan_pool_ref construction
...
Fix designator order for `pan_pool_ref` fields by matching declaration
order and avoid an error by the C++ compiler.
Signed-off-by: Antonio Caggiano <antonio.caggiano@collabora.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11064 >
2021-06-01 17:34:59 +00:00
Chia-I Wu
978d465986
docs: add basic documentation for venus
...
It probably lacks some details but is a start at least.
Signed-off-by: Chia-I Wu <olvaffe@gmail.com >
Reviewed-by: Erik Faye-Lund <erik.faye-lund@collabora.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10988 >
2021-06-01 09:02:07 -07:00
Tapani Pälli
2114f9e51d
gitlab-ci: enable building of Vulkan tests in Piglit
...
This is part of tackling a Piglit issue:
https://gitlab.freedesktop.org/mesa/piglit/-/issues/53
Signed-off-by: Tapani Pälli <tapani.palli@intel.com >
Reviewed-by: Erik Faye-Lund <erik.faye-lund@collabora.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10971 >
2021-06-01 13:51:36 +00:00
Icecream95
956d961339
panfrost: Use first_tiler to check if tiling is needed
...
If there is a preload job needing tiling, but no other jobs, then
first_tiler will be set but not tiler_dep.
Fixes faults when two depth-only (stencil is reloaded) clears are done
in a row.
panfrost ffa30000.gpu: Unhandled Page fault in AS1 at VA 0x0000000044870000
Reason: TODO
raw fault status: 0x49002C1
decoded fault status: SLAVE FAULT
exception type 0xC1: TRANSLATION_FAULT_LEVEL1
access type 0x2: READ
source id 0x490
panfrost ffa30000.gpu: gpu sched timeout, js=0, config=0x3301, status=0x8, head=0x608a300, tail=0x608a300, sched_job=f5b0862d
Cc: mesa-stable
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11104 >
2021-06-01 13:27:54 +00:00
Icecream95
08a6608467
panfrost: Call abort() when aborting on fault
...
The existing exit(EIO) wasn't getting trapped by debuggers.
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11104 >
2021-06-01 13:27:54 +00:00
Icecream95
5109f4e507
pan/decode: Flush the dump stream after decoding
...
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11104 >
2021-06-01 13:27:54 +00:00
Gustavo Padovan
08dba3a76b
gitlab-ci: add python script to submit lava jobs
...
Covert the job submission process to a python script for more
robustness and control. allowing easier manipulation of job data.
As a result, it adds retry logic to deal with Infrastructure Errors in LAVA.
_call_proxy() is equipped with a robust retry logic, which I have been
using already in the past few weeks in stress testing to run hundreds
of jobs.
Signed-off-by: Gustavo Padovan <gustavo.padovan@collabora.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11079 >
2021-06-01 09:31:46 -03:00
Alejandro Piñeiro
53d937c2e8
v3d/simulator: use BFC/RFC registers to wait for bin/render to complete
...
We were using the CT0CA (Control List Executor Current Address) and
CT0EA (Control List Executor End Address) registers, but that would
only wait for the CLE to reach the end of the list, but there could
still be things in the rest of the pipeline.
Even if that seems to work with the current simulator, the correct way
to do that is using the BFC (Binning Mode Flush Count) and RFC
(Rendering Mode Frame Count) registers instead.
In fact, this would be needed with a newer simulator snapshot, in
order to get the followint CTS tests working:
dEQP-VK.api.copy_and_blit.core.resolve_image.whole_array_image.4_bit
dEQP-VK.api.copy_and_blit.core.resolve_image.whole_array_image_one_region.4_bit
dEQP-VK.api.copy_and_blit.core.resolve_image.whole_copy_before_resolving.4_bit
dEQP-VK.api.device_init.create_instance_device_intentional_alloc_fail
dEQP-VK.api.image_clearing.core.clear_color_image.1d.optimal.multiple_layers.r32g32_uint
dEQP-VK.api.image_clearing.core.clear_color_image.1d.optimal.remaining_array_layers_twostep.r16_sint
Reviewed-by: Juan A. Suarez <jasuarez@igalia.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11039 >
2021-06-01 12:22:28 +02:00
Alejandro Piñeiro
ec85862d76
v3d/simulator: use the proper register when waiting on a CSD submit
...
Until now we were waiting until having a dispatch current and/or
queued. But that would only wait for all shaders to have started, it
won't wait for them to have finished.
With this commit we wait until the NUM_COMPLETED_JOBS (that in spite
of that name, it is about dispatches) field got increased.
This is in general safest, and it is needed after the latest simulator
update to get CTS tests like the following ones working:
dEQP-VK.compute.basic.copy_ssbo_multiple_invocations
dEQP-VK.compute.basic.copy_ssbo_single_invocation
dEQP-VK.compute.basic.ssbo_rw_single_invocation
dEQP-VK.compute.basic.ssbo_unsized_arr_single_invocation
dEQP-VK.compute.basic.ubo_to_ssbo_multiple_invocations
dEQP-VK.compute.basic.ubo_to_ssbo_single_invocation
v2 (from Juan feedback):
* Clarify JOBS vs DISPATCHES
Reviewed-by: Juan A. Suarez <jasuarez@igalia.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11039 >
2021-06-01 12:22:28 +02:00
Alejandro Piñeiro
7f3e34bcb4
v3d/simulator: wait for cache flushes
...
Current code just assumes that flushes are instant, as simulator
doesn't really model the caches. So right now we have just an assert
that the flush has been done.
But that can change on the future, so let's change the assert for a
wait.
Note that for the l1t case we are writing on the field TMUWCF. So I
understand that then we need to wait for TMUWCF_SET, even if the
previous code was using L2TFLS_SET.
This also happpens on the kernel side. We need to check if this was a
typo on the kernel side.
v2 (from Juan feedback)
* Add comment about the TMUWCF vs L2TFLS difference between this
commit and the kernel.
Reviewed-by: Juan A. Suarez <jasuarez@igalia.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11039 >
2021-06-01 12:22:28 +02:00
Alejandro Piñeiro
9bd8d26969
v3d/simulator: add a cache flush mode enum
...
Makes the write to the l2t cache control more readable (without magic
numbers).
Reviewed-by: Juan A. Suarez <jasuarez@igalia.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11039 >
2021-06-01 12:22:28 +02:00
Alejandro Piñeiro
123c7d7277
v3d/simulator: capture hub interrupts
...
So far we were not capturing any HUB interrupt, just core. This could
be a problem if any is fired, as we could enter on an infinite
loop. With this commit we start to capture them. So we split v3d_isr
into core and hub interrupt handling.
As reference we capture the same HUB interrupts that we capture on the
v3d kernel support.
It is worth to note that all those are mostly untested. Now with both
opengl/vulkan driver being stable we were not able to raise those
interrupts.
v2 (Juan feedback):
* Just one V3D_VERSION >= 41 block, more readable
* Assert that the core is 0 at v3d_isr_core (we don't handle
multi-core right now).
Reviewed-by: Juan A. Suarez <jasuarez@igalia.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11039 >
2021-06-01 12:22:28 +02:00
Alejandro Piñeiro
4e9f1261ee
broadcom/compiler: use proper type field for atomic operations
...
We were using the num_components to infer it, but in the end it is
VEC2 for CMPXCHG and 32BIT for anything else.
This doesn't affect any test with the real hw, but fixes an assert
with the last version of the simulator.
Reviewed-by: Juan A. Suarez <jasuarez@igalia.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11039 >
2021-06-01 12:22:22 +02:00
Tomeu Vizoso
69bc8105f1
ci/lava: Disable CPU frequency scaling
...
Lock CPU frequency scaling to max to speed up test execution and lower
the variation of frame times from performance replay jobs.
Signed-off-by: Tomeu Vizoso <tomeu.vizoso@collabora.com >
Reviewed-by: Corentin Noël <corentin.noel@collabora.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11101 >
2021-06-01 07:10:29 +00:00
Tomeu Vizoso
bc50a16103
Revert "ci/freedreno: Skip Portal 2 trace on a630, due to flakiness"
...
This reverts commit e381bc0e67 .
Signed-off-by: Tomeu Vizoso <tomeu.vizoso@collabora.com >
Reviewed-by: Corentin Noël <corentin.noel@collabora.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11058 >
2021-06-01 08:50:45 +02:00
Samuel Pitoiset
a70c3e5c8a
ac/rgp: bump the SQTT file minor version to 5
...
To match latest RGP spec. Captures generated by RADV still work
with latest RGP (v1.10).
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/11063 >
2021-06-01 06:09:49 +00:00
Samuel Pitoiset
c3a4ca2908
ac/rgp: mark SQTT_FILE_CHUNK_TYPE_ISA_DATABASE as deprecated
...
This is now deprecated and reserved for future uses.
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/11063 >
2021-06-01 06:09:49 +00:00
Alyssa Rosenzweig
bd79c8992d
asahi: Allocate slices for mipmapping
...
Signed-off-by: Alyssa Rosenzweig <alyssa@rosenzweig.io >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11086 >
2021-06-01 01:31:02 +00:00
Alyssa Rosenzweig
c4ae53334f
asahi: Set levels in texture descriptor
...
Signed-off-by: Alyssa Rosenzweig <alyssa@rosenzweig.io >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11086 >
2021-06-01 01:31:02 +00:00
Alyssa Rosenzweig
6899f002fa
asahi: Add mipmapping state to the XML
...
Signed-off-by: Alyssa Rosenzweig <alyssa@rosenzweig.io >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11086 >
2021-06-01 01:31:02 +00:00
Alyssa Rosenzweig
15efc05019
asahi: Abort on blit()
...
Unimplemented.
Signed-off-by: Alyssa Rosenzweig <alyssa@rosenzweig.io >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11086 >
2021-06-01 01:31:02 +00:00
Alyssa Rosenzweig
1a3e780aa6
asahi: Make data_valid a bitset to save memory
...
Signed-off-by: Alyssa Rosenzweig <alyssa@rosenzweig.io >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11086 >
2021-06-01 01:31:02 +00:00
Alyssa Rosenzweig
6bbf72cec0
asahi: Allow half-float vertex buffers
...
Signed-off-by: Alyssa Rosenzweig <alyssa@rosenzweig.io >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11086 >
2021-06-01 01:31:02 +00:00
Alyssa Rosenzweig
bf42d17a16
asahi: Flesh out the formats table
...
Signed-off-by: Alyssa Rosenzweig <alyssa@rosenzweig.io >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11086 >
2021-06-01 01:31:02 +00:00
Alyssa Rosenzweig
52f8d8ad64
asahi: Fake CAPs for ES3 with AGX_MESA_DEBUG=deqp
...
Signed-off-by: Alyssa Rosenzweig <alyssa@rosenzweig.io >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11086 >
2021-06-01 01:31:02 +00:00
Alyssa Rosenzweig
a917ad58e7
asahi: Lift streamout scaffolding from Panfrost
...
Trying to fake ES3 for dEQP-GLES3.
Signed-off-by: Alyssa Rosenzweig <alyssa@rosenzweig.io >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11086 >
2021-06-01 01:31:02 +00:00
Alyssa Rosenzweig
1b24a3e9e9
asahi: Add "hacks for dEQP" flag
...
Signed-off-by: Alyssa Rosenzweig <alyssa@rosenzweig.io >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11086 >
2021-06-01 01:31:02 +00:00
Alyssa Rosenzweig
e2e1d8160f
asahi: Add ETC2 formats to table
...
Signed-off-by: Alyssa Rosenzweig <alyssa@rosenzweig.io >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11086 >
2021-06-01 01:31:02 +00:00
Alyssa Rosenzweig
cd09a61887
asahi: Respect render target format swizzle
...
Signed-off-by: Alyssa Rosenzweig <alyssa@rosenzweig.io >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11086 >
2021-06-01 01:31:02 +00:00
Alyssa Rosenzweig
f690d1f7ab
asahi: Use pixel table in is_format_supported
...
Signed-off-by: Alyssa Rosenzweig <alyssa@rosenzweig.io >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11086 >
2021-06-01 01:31:02 +00:00
Alyssa Rosenzweig
8b1e273cb5
asahi: Scaffold format table
...
Signed-off-by: Alyssa Rosenzweig <alyssa@rosenzweig.io >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11086 >
2021-06-01 01:31:02 +00:00
Alyssa Rosenzweig
6bb7172622
asahi: Hide pixel formats behind an opaque type
...
Convenient for mapping a format table.
Signed-off-by: Alyssa Rosenzweig <alyssa@rosenzweig.io >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11086 >
2021-06-01 01:31:02 +00:00
Alyssa Rosenzweig
022e482eaa
asahi: Add format enums
...
Split it up into the underlying parts. Now we can decode every format
accessible in Metal.
Signed-off-by: Alyssa Rosenzweig <alyssa@rosenzweig.io >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11086 >
2021-06-01 01:31:02 +00:00
Alyssa Rosenzweig
eb5983b48e
asahi: Print unknown enum values
...
Signed-off-by: Alyssa Rosenzweig <alyssa@rosenzweig.io >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11086 >
2021-06-01 01:31:02 +00:00
Alyssa Rosenzweig
963f07cb6e
asahi: Align strides to 16 bytes
...
Apparently required for texturing.
Signed-off-by: Alyssa Rosenzweig <alyssa@rosenzweig.io >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11086 >
2021-06-01 01:31:02 +00:00
Alyssa Rosenzweig
bfd5e52f16
asahi: Note that "render target" lacks an sRGB bit
...
sRGB is handled through other mechanisms.
Signed-off-by: Alyssa Rosenzweig <alyssa@rosenzweig.io >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11086 >
2021-06-01 01:31:02 +00:00
Alyssa Rosenzweig
62ac4adecb
asahi: Handle linear display targets as well as tiled
...
Signed-off-by: Alyssa Rosenzweig <alyssa@rosenzweig.io >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11086 >
2021-06-01 01:31:02 +00:00
Alyssa Rosenzweig
e90d167d3d
asahi: Respect linear strides
...
Signed-off-by: Alyssa Rosenzweig <alyssa@rosenzweig.io >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11086 >
2021-06-01 01:31:02 +00:00
Alyssa Rosenzweig
118682dd83
asahi: Identify line stride in texture/RT XML
...
The off-by-four is concerning.
Signed-off-by: Alyssa Rosenzweig <alyssa@rosenzweig.io >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11086 >
2021-06-01 01:31:02 +00:00
Alyssa Rosenzweig
bacff07018
asahi: Translate layouts for texture and RTs
...
Signed-off-by: Alyssa Rosenzweig <alyssa@rosenzweig.io >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11086 >
2021-06-01 01:31:02 +00:00
Alyssa Rosenzweig
9c0ef01c68
asahi: Add layout enum to XML
...
Used for textures and render targets. There are more values here, probably for
other tiling schemes and compression.
Signed-off-by: Alyssa Rosenzweig <alyssa@rosenzweig.io >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11086 >
2021-06-01 01:31:02 +00:00
Alyssa Rosenzweig
46bc37a8d0
asahi: Use dt_stride for line_stride where needed
...
Signed-off-by: Alyssa Rosenzweig <alyssa@rosenzweig.io >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11086 >
2021-06-01 01:31:02 +00:00
Alyssa Rosenzweig
bf3c42fd11
asahi: Determine tiling vs linear for internal textures
...
Logic lifted from Panfrost.
Signed-off-by: Alyssa Rosenzweig <alyssa@rosenzweig.io >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11086 >
2021-06-01 01:31:02 +00:00
Alyssa Rosenzweig
5c97d1c837
asahi: Implement wide lines
...
Identify line width field and route through the Gallium line width.
Signed-off-by: Alyssa Rosenzweig <alyssa@rosenzweig.io >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11086 >
2021-06-01 01:31:02 +00:00
Alyssa Rosenzweig
f5f759cff8
asahi: Fix off-by-one in viewport scissoring
...
As discovered during the stream. Typo pointed out by someone in the Twitch chat.
Fixes: f285a1220e ("asahi: Implement scissors and scissor to viewport")
Signed-off-by: Alyssa Rosenzweig <alyssa@rosenzweig.io >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11086 >
2021-06-01 01:31:02 +00:00
Rob Clark
3dff0c30cf
freedreno/headergen2: Fix compile warnings with CP_DRAW_INDIRECT_MULTI
...
Using stripes to deal with the different packet layout variants resulted
in redefining "register" offsets with different values, so use "prefix"
to add a suffix to disambiguate.
drivers/gpu/drm/msm/adreno/adreno_pm4.xml.h:1066: warning: "REG_A6XX_CP_DRAW_INDIRECT_MULTI_INDIRECT" redefined
1066 | #define REG_A6XX_CP_DRAW_INDIRECT_MULTI_INDIRECT 0x00000006
|
drivers/gpu/drm/msm/adreno/adreno_pm4.xml.h:1057: note: this is the location of the previous definition
1057 | #define REG_A6XX_CP_DRAW_INDIRECT_MULTI_INDIRECT 0x00000003
|
(Admittedly it isn't really a "prefix" but that was the field in the
schema available to use, and REG_INDEXED_CP_DRAW_INDIRECT_MULTI_STRIDE
sounds somewhat more funny.)
Signed-off-by: Rob Clark <robdclark@chromium.org >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10944 >
2021-05-31 23:34:43 +00:00
Rob Clark
ff5e17f1f8
freedreno/afuc: Use emulator to extract jmptbl
...
This runs through the SQE bootstrap code to extract the packet-table,
rather than relying on heuristics. As a bonus, it can detect the start
of the LPAC fw in a660+ fw so that we can properly decode the LPAC fw
and packet-table.
Note that this decodes the jmptable as normal instructions, which is a
change in behavior from the previous heuristic based jmptbl extraction.
Not sure if that is a good or bad thing.
For a5xx, for now the legacy heuristic based jmptable decoding is
preserved, at least until enough control regs are figured out.
Signed-off-by: Rob Clark <robdclark@chromium.org >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10944 >
2021-05-31 23:34:43 +00:00
Rob Clark
2beb5b015a
freedreno/ci: Add real packet-table loading for afuc test
...
When we start running the bootstrap code thru the emulator we will need
the packet-table loading to actually happen. So add this.
Signed-off-by: Rob Clark <robdclark@chromium.org >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10944 >
2021-05-31 23:34:43 +00:00
Rob Clark
df14af6480
freedreno/afuc: Add emulator support to run bootstrap
...
Run until the packet-table is populated, so the disassembler can use
this to know the offsets of various pm4 packet handlers without having
to rely on heuristics.
Signed-off-by: Rob Clark <robdclark@chromium.org >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10944 >
2021-05-31 23:34:43 +00:00
Rob Clark
ea2e244198
freedreno/afuc: Split out helpers to parse labels and packet-table
...
Signed-off-by: Rob Clark <robdclark@chromium.org >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10944 >
2021-05-31 23:34:43 +00:00
Rob Clark
9a4ca194e8
freedreno/afuc: Extract full gpu-id
...
Some of the a6xx gens will require some control reg initialization, and
go into an infinite loop if they don't see the values they expect, so
we'll need to extract the compute gpu-id.
Signed-off-by: Rob Clark <robdclark@chromium.org >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10944 >
2021-05-31 23:34:43 +00:00
Rob Clark
c2f8c98d56
freedreno/registers: Add a few a6xx regs and notes
...
A few things I noticed while playing with the emulator.
Signed-off-by: Rob Clark <robdclark@chromium.org >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10944 >
2021-05-31 23:34:43 +00:00
Rob Clark
bba61cef38
freedreno/afuc: Add emulator mode to afuc-disasm
...
This is an (at least somewhat complete) logical emulator of the a6xx SQE
that lets us step through firmware execution (bootstrap, cmdstream pkt
handling, etc). It lets us poke at various fw visible state and run
through pm4 packet(s) to better understand what the fw is doing when it
handles various packets.
Signed-off-by: Rob Clark <robdclark@chromium.org >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10944 >
2021-05-31 23:34:43 +00:00
Rob Clark
745dad0446
freedreno/afuc: Add pipe reg name decoding
...
Signed-off-by: Rob Clark <robdclark@chromium.org >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10944 >
2021-05-31 23:34:43 +00:00
Rob Clark
184f474574
freedreno/afuc: Clean up special regs
...
Allow for different mnemonics depending on whether they are used as
source or destination register, to better reflect what they do.
Signed-off-by: Rob Clark <robdclark@chromium.org >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10944 >
2021-05-31 23:34:43 +00:00
Rob Clark
2876253f28
freedreno/afuc: Split out utils
...
With disasm emulator mode, we'll start wanting some things that are
duplicationg what the assembler does, so just split out all the rnndb
bits into shared utils.
Signed-off-by: Rob Clark <robdclark@chromium.org >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10944 >
2021-05-31 23:34:43 +00:00
Rob Clark
d367d84d87
freedreno/afuc: Split out instruction decode helper
...
Split the giant switch/decode out into a helper function so that we can
re-use it for emulator mode.
Signed-off-by: Rob Clark <robdclark@chromium.org >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10944 >
2021-05-31 23:34:43 +00:00
Rob Clark
33b9445a68
freedreno: Move pkt parsing helpers to common
...
I'll be needing these in afuc as well.
Signed-off-by: Rob Clark <robdclark@chromium.org >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10944 >
2021-05-31 23:34:43 +00:00
Rob Clark
62c53d4361
freedreno/tu+drm: Extract out pm4 pkt header helpers
...
I'm going to need these in a 3rd place, so let's deduplicate first.
Signed-off-by: Rob Clark <robdclark@chromium.org >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10944 >
2021-05-31 23:34:43 +00:00
Andres Gomez
d71584aec3
ci: replace glslangValidator with glslang-tools
...
Signed-off-by: Andres Gomez <agomez@igalia.com >
Reviewed-by: Erik Faye-Lund <erik.faye-lund@collabora.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11096 >
2021-05-31 23:59:55 +03:00
Andres Gomez
5f102f7b02
ci: remove glslangValidator installation from the VK test container
...
We already include glslang-tools.
Signed-off-by: Andres Gomez <agomez@igalia.com >
Reviewed-by: Erik Faye-Lund <erik.faye-lund@collabora.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11095 >
2021-05-31 19:45:08 +00:00
Mike Blumenkrantz
1199d86b2c
compiler/spirv: expand_to_vec4 -> nir_pad_vec4
...
Reviewed-by: Jason Ekstrand <jason@jlekstrand.net >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10821 >
2021-05-31 18:45:24 +00:00
Rhys Perry
0f8fef1261
radv: make attrib_end variable in radv_flush_vertex_descriptors 32-bit
...
Signed-off-by: Rhys Perry <pendingchaos02@gmail.com >
Reviewed-by: Samuel Pitoiset <samuel.pitoiset@gmail.com >
Fixes: 1e9dc0474e ("radv: make radv_pipeline::attrib_ends 32bit")
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11089 >
2021-05-31 18:28:12 +00:00
Danylo Piliaiev
8d0c76b143
freedreno: reduce the upper bound of IB size by one
...
Going beyond 0x100000 results in hangs, however I found that the
last 0x100000 packet just doesn't get executed. Thus the real limit is
0x0FFFFF. At least this is true for a6xx.
This could be tested by appending nops to the cmdstream and placing
e.g. CP_INTERRUPT at the end, at any position other than being
0x100000 packet it results in a hang.
Signed-off-by: Danylo Piliaiev <dpiliaiev@igalia.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10786 >
2021-05-31 17:38:26 +00:00
Danylo Piliaiev
f38fd3c577
turnip: place a limit on the growth of BOs
...
There is a limit on IB size, which on freedreno is set to 0x100000.
Going beyond it results in hangs, however I found that the last
0x100000 packet just doesn't get executed. Thus the real limit is
0x0FFFFF.
This could be tested by appending nops to the cmdstream and placing
e.g. CP_INTERRUPT at the end, at any position other than being
0x100000 packet it results in a hang.
Fixes:
dEQP-VK.api.command_buffers.record_many_draws_secondary_2
dEQP-VK.api.command_buffers.record_many_draws_primary_2
However these tests could trigger hangcheck timeouts.
Also this fixes hangs when opening captures of games in RenderDoc.
Signed-off-by: Danylo Piliaiev <dpiliaiev@igalia.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10786 >
2021-05-31 17:38:26 +00:00
Georg Lehmann
9d66a2d986
v3dv: use VKAPI_ATTR and VKAPI_CALL.
...
Closes #4852
Signed-off-by: Georg Lehmann <dadschoorse@gmail.com >
Tested-by: Roman Stratiienko <r.stratiienko@gmail.com >
Acked-by: Jason Ekstrand <jason@jlekstrand.net >
Reviewed-by: Alejandro Piñeiro <apinheiro@igalia.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11062 >
2021-05-31 17:08:27 +00:00
Neil Roberts
5a4384c2bc
kmsro: Fix confusing comma expression
...
It looks like this was a copy-and-paste mistake in 827e0d6654 where
the initialiser was moved from being a struct initialiser to a
standalone statement. Some of them were fixed with an unrelated change
in 187218395d but not all of them. This shouldn’t make any practical
difference to the compiled code.
Reviewed-by: Emil Velikov <emil.velikov@collabora.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11090 >
2021-05-31 14:58:12 +00:00
Mike Blumenkrantz
9ff54d408b
Revert "zink: call tc_driver_internal_flush_notify() on flush"
...
This reverts commit 4d62fca087 .
this is broken beyond space and time but only reveals its true nature
when used outside of a unit test
Reviewed-by: Erik Faye-Lund <erik.faye-lund@collabora.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11080 >
2021-05-31 14:47:46 +00:00
Mike Blumenkrantz
6dd02a5139
zink: stop using util_set_vertex_buffers_mask()
...
we're already iterating this, so there's no point in double iterating
also no point in doing the extra refcounting
Reviewed-by: Dave Airlie <airlied@redhat.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10997 >
2021-05-31 14:39:57 +00:00
Mike Blumenkrantz
f4bae3fe5e
zink: ref vertex buffers during set_vertex_buffers
...
now we don't need to do it during bind
Reviewed-by: Dave Airlie <airlied@redhat.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10997 >
2021-05-31 14:39:57 +00:00
Mike Blumenkrantz
962b162766
zink: update scissor only when necessary
...
Reviewed-by: Dave Airlie <airlied@redhat.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10997 >
2021-05-31 14:39:57 +00:00
Mike Blumenkrantz
dbc59aedb9
zink: only update viewport state when necessary
...
Reviewed-by: Dave Airlie <airlied@redhat.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10997 >
2021-05-31 14:39:57 +00:00
Mike Blumenkrantz
59b6f5db36
zink: only rebind vertex buffers when necessary
...
Reviewed-by: Dave Airlie <airlied@redhat.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10997 >
2021-05-31 14:39:57 +00:00
Mike Blumenkrantz
906371153c
zink: handle rebinds for vertex buffers
...
now that the tracking info is there, it's easy to make this happen
Reviewed-by: Dave Airlie <airlied@redhat.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10997 >
2021-05-31 14:39:57 +00:00
Mike Blumenkrantz
6d6ef97035
zink: only rebind pipelines when necessary
...
Reviewed-by: Dave Airlie <airlied@redhat.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10997 >
2021-05-31 14:39:57 +00:00
Mike Blumenkrantz
1a7045acaf
zink: mark some draw functions inline
...
Reviewed-by: Dave Airlie <airlied@redhat.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10997 >
2021-05-31 14:39:57 +00:00
Mike Blumenkrantz
c2973213d7
zink: remove barriers/refs from descriptor cache
...
these are applied on bind now so there's no need to track them
Reviewed-by: Dave Airlie <airlied@redhat.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10997 >
2021-05-31 14:39:57 +00:00
Mike Blumenkrantz
62ad23239c
zink: reapply program refs automatically
...
Reviewed-by: Dave Airlie <airlied@redhat.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10997 >
2021-05-31 14:39:57 +00:00
Mike Blumenkrantz
a64ef1cd12
zink: reapply resource/surface refs after app flushes
...
instead of doing this during descriptor update, we can automatically handle
this rollover
Reviewed-by: Dave Airlie <airlied@redhat.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10997 >
2021-05-31 14:39:57 +00:00
Iago Toral Quiroga
234e1b7356
v3dv: implement VK_KHR_device_group
...
We only support one device group with a single device, so the
implementation is trivial.
Reviewed-by: Alejandro Piñeiro <apinheiro@igalia.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11037 >
2021-05-31 09:06:18 +00:00
Iago Toral Quiroga
c672b23857
v3dv: implement interactions of VK_KHR_device_group with VK_KHR_swapchain
...
There are some interactions between these two extensions that need to be
implemented when both are supported. Particularly:
1. Applications can create images that will be bound to swapchain memory
by passing a VkImageSwapchainCreateInfoKHR in the pNext chain
of VkImageCreateInfo. In this case we need to make sure that the
created image takes some of its parameters from the underlying
swapchain.
2. Applications can bind memory from a swapchain image to a VkImage
by passing a VkBindImageMemorySwapchainInfoKHR in the pNext chain
of VkBindImageMemoryInfo.
Reviewed-by: Alejandro Piñeiro <apinheiro@igalia.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11037 >
2021-05-31 09:06:18 +00:00
Iago Toral Quiroga
bf60ba6e7f
v3dv: create a helper for image creation
...
Reviewed-by: Alejandro Piñeiro <apinheiro@igalia.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11037 >
2021-05-31 09:06:18 +00:00
Iago Toral Quiroga
f07c797e93
v3dv: implement vkCmdDispatchBase
...
This was added with VK_KHR_device_group and allows users to specify
a base offset that will be automatically added to gl_WorkGroupID.
Unfortunately, V3D doesn't support this natively, so we need to add
the base to the workgroup id generated by hardware manually. For this,
we inject add instructions that source from a QUNIFORM that will
retrieve the actual dispatch base from the compute job when it is
dispatched.
Since a compute shader can be dispatched with CmdDispatch and/or
CmdDispatchBase, we always need to add these additional add
instructions and use a base of (0,0,0) for regular dispatches.
Since we don't support any version of OpenGL with this dispatch
base functionality we can avoid the extra instructions there.
Reviewed-by: Alejandro Piñeiro <apinheiro@igalia.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11037 >
2021-05-31 09:06:18 +00:00
Samuel Pitoiset
816be7d46f
radv: enable RADV_DEBUG=invariantgeom for Monster Hunter World
...
DXVK 1.8.1 marks position as always invariant but the DX12 version
of the game has the same issue and it's not yet fixed on the
vkd3d-proton side.
Fixes some Z-fighting on GFX10.3.
Cc: 21.1 mesa-stable
Signed-off-by: Samuel Pitoiset <samuel.pitoiset@gmail.com >
Reviewed-by: Timur Kristóf <timur.kristof@gmail.com >
Reviewed-by: Bas Nieuwenhuizen <bas@basnieuwenhuizen.nl >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11029 >
2021-05-31 08:28:59 +02:00
Alyssa Rosenzweig
f285a1220e
asahi: Implement scissors and scissor to viewport
...
Construct a scissor descriptor correpsonding to the intersection of the
framebuffer, the viewport, and the region selected for scissoring by the app.
Use the intersected scissor in the "clip tile" fields in the viewport. Select
this scissor descriptor from the command stream.
Signed-off-by: Alyssa Rosenzweig <alyssa@rosenzweig.io >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11084 >
2021-05-30 23:32:02 +00:00
Alyssa Rosenzweig
6fbc1cb52a
asahi: Update viewport descriptor depth fields
...
Acts like a translate/scale pair more generally, not specific to near/far
planes.
Signed-off-by: Alyssa Rosenzweig <alyssa@rosenzweig.io >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11084 >
2021-05-30 23:32:02 +00:00
Alyssa Rosenzweig
f43bb36cac
asahi: Enable depth culling
...
Signed-off-by: Alyssa Rosenzweig <alyssa@rosenzweig.io >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11084 >
2021-05-30 23:32:02 +00:00
Alyssa Rosenzweig
9392e2b275
asahi: Add unknown bits seen with the GL driver
...
Signed-off-by: Alyssa Rosenzweig <alyssa@rosenzweig.io >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11084 >
2021-05-30 23:32:02 +00:00
Alyssa Rosenzweig
5de49375ec
asahi: Expose PIPE_CAP_CLIP_HALFZ
...
Use the Zink lowering pass to handle the non-halfz case. Metal, like Vulkan,
uses half-z (and Metal is not configurable, making r/e tricky).
Signed-off-by: Alyssa Rosenzweig <alyssa@rosenzweig.io >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11084 >
2021-05-30 23:32:01 +00:00
Alyssa Rosenzweig
acfeba4010
agx: Add scissor upload BO
...
Not sure what the proper data structure for this is yet, but this will
hold over until we start optimizing for memory usage.
Signed-off-by: Alyssa Rosenzweig <alyssa@rosenzweig.io >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11084 >
2021-05-30 23:32:01 +00:00
Alyssa Rosenzweig
6d9242e109
asahi: Skip draws if the scissor culls everything
...
We can't pack the scissor descriptor for these, and there would be no rendering
anyway, so detect this condition and skip the draw.
Signed-off-by: Alyssa Rosenzweig <alyssa@rosenzweig.io >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11084 >
2021-05-30 23:32:01 +00:00
Alyssa Rosenzweig
861109e441
asahi: Mark scissor dirty if rast->scissor changes
...
Although there is a scissor enable bit in the hardware rasterizer state, we
cannot rely on it alone as we also "scissor" to the viewport.
Signed-off-by: Alyssa Rosenzweig <alyssa@rosenzweig.io >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11084 >
2021-05-30 23:32:01 +00:00
Alyssa Rosenzweig
be5ea29237
asahi: Track scissor states
...
Signed-off-by: Alyssa Rosenzweig <alyssa@rosenzweig.io >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11084 >
2021-05-30 23:32:01 +00:00
Alyssa Rosenzweig
38a9c59377
asahi: Dirty track viewport descriptor
...
Mitigates the extra CPU cost from packing in the previous commit, and
avoids the redundant memcpy.
Signed-off-by: Alyssa Rosenzweig <alyssa@rosenzweig.io >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11084 >
2021-05-30 23:32:01 +00:00
Alyssa Rosenzweig
b659c53f95
asahi: Defer viewport pack
...
Nontrivial interaction between viewport state and scissor state, so
defer until draw time to deal with it.
Signed-off-by: Alyssa Rosenzweig <alyssa@rosenzweig.io >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11084 >
2021-05-30 23:32:01 +00:00
Alyssa Rosenzweig
f99f7e70d7
asahi: Add scissor enable bit
...
Signed-off-by: Alyssa Rosenzweig <alyssa@rosenzweig.io >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11084 >
2021-05-30 23:32:01 +00:00
Alyssa Rosenzweig
d7cbfd4f6c
asahi: Add "set scissor" command
...
Signed-off-by: Alyssa Rosenzweig <alyssa@rosenzweig.io >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11084 >
2021-05-30 23:32:01 +00:00
Alyssa Rosenzweig
f170b8357b
asahi: Fix scissor descriptor definition
...
Signed-off-by: Alyssa Rosenzweig <alyssa@rosenzweig.io >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11084 >
2021-05-30 23:32:01 +00:00
Daniel Stone
5e3b293149
docs: Even more gratutious nitpicks
...
Signed-off-by: Daniel Stone <daniels@collabora.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11085 >
2021-05-30 23:04:34 +01:00
Alyssa Rosenzweig
e9483110d2
agx: Zero r0l before first use of control flow
...
Signed-off-by: Alyssa Rosenzweig <alyssa@rosenzweig.io >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11023 >
2021-05-31 01:23:35 +05:30
Alyssa Rosenzweig
839fff846a
agx: Add break/continue support
...
Following Dougall's notes closely.
Signed-off-by: Alyssa Rosenzweig <alyssa@collabora.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11023 >
2021-05-31 01:23:35 +05:30
Alyssa Rosenzweig
dd06e6af34
agx: Implement loops in the simplest way
...
Again, optimizations are possible, but for now go for conformance.
Signed-off-by: Alyssa Rosenzweig <alyssa@collabora.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11023 >
2021-05-31 01:23:35 +05:30
Alyssa Rosenzweig
11705488ed
agx: Optimize out empty else blocks
...
Signed-off-by: Alyssa Rosenzweig <alyssa@collabora.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11023 >
2021-05-31 01:23:35 +05:30
Alyssa Rosenzweig
cf43206e76
agx: Implement emit_if the simplest way
...
Lots of optimizations are possible from here.
Signed-off-by: Alyssa Rosenzweig <alyssa@collabora.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11023 >
2021-05-31 01:23:35 +05:30
Alyssa Rosenzweig
3def66e8aa
agx: Fix up branch offsets at pack time
...
Signed-off-by: Alyssa Rosenzweig <alyssa@rosenzweig.io >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11023 >
2021-05-31 01:23:35 +05:30
Alyssa Rosenzweig
4fb964ccb8
agx: Model jump instructions
...
Signed-off-by: Alyssa Rosenzweig <alyssa@collabora.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11023 >
2021-05-31 01:23:35 +05:30
Alyssa Rosenzweig
6efd00336b
agx: Pack control flow instructions
...
Nearly ALU.
Signed-off-by: Alyssa Rosenzweig <alyssa@collabora.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11023 >
2021-05-31 01:23:35 +05:30
Alyssa Rosenzweig
44dd5edae9
agx: Add push_exec alias
...
Use the same canonical form as Metal, so the disassembler can alias it
back.
Signed-off-by: Alyssa Rosenzweig <alyssa@rosenzweig.io >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11023 >
2021-05-31 01:23:35 +05:30
Alyssa Rosenzweig
4eb8fbf780
agx: Model pop_exec
...
Signed-off-by: Alyssa Rosenzweig <alyssa@collabora.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11023 >
2021-05-31 01:23:35 +05:30
Alyssa Rosenzweig
a270665a9e
agx: Model control flow instructions
...
Thankfully the encoding is regular, if a bit complicated.
Signed-off-by: Alyssa Rosenzweig <alyssa@collabora.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11023 >
2021-05-31 01:23:35 +05:30
Alyssa Rosenzweig
4fe03cf97c
agx: Add inner loop nesting count field
...
Needed for proper handling of break/continue with nested if-else.
Signed-off-by: Alyssa Rosenzweig <alyssa@collabora.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11023 >
2021-05-31 01:23:35 +05:30
Alyssa Rosenzweig
8454d08aa3
agx: Add branch target to IR
...
Signed-off-by: Alyssa Rosenzweig <alyssa@collabora.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11023 >
2021-05-31 01:23:35 +05:30
Alyssa Rosenzweig
ad4dfb3321
agx: Add invert_cond (ccn) to IR
...
Signed-off-by: Alyssa Rosenzweig <alyssa@collabora.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11023 >
2021-05-31 01:23:35 +05:30
Alyssa Rosenzweig
21cf528e76
agx: Add nest field to IR
...
Needed to model control flow instructions.
Signed-off-by: Alyssa Rosenzweig <alyssa@collabora.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11023 >
2021-05-31 01:23:35 +05:30
Alyssa Rosenzweig
6f54385b0a
agx: Track block offsets
...
For fixing branch offsets.
Signed-off-by: Alyssa Rosenzweig <alyssa@rosenzweig.io >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11023 >
2021-05-31 01:23:35 +05:30
Alyssa Rosenzweig
f7918ebc82
agx: Track current_block
...
Signed-off-by: Alyssa Rosenzweig <alyssa@collabora.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11023 >
2021-05-31 01:23:35 +05:30
Alyssa Rosenzweig
0a7a6f0558
agx: Implement boolean mov
...
Signed-off-by: Alyssa Rosenzweig <alyssa@collabora.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11023 >
2021-05-31 01:23:35 +05:30
Alyssa Rosenzweig
a1a8ee9b11
agx: Enable 1-bit load_const
...
Signed-off-by: Alyssa Rosenzweig <alyssa@collabora.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11023 >
2021-05-31 01:23:35 +05:30
Alyssa Rosenzweig
2d1390392f
agx: Pack ld_var Dx
...
In the expected place.
Signed-off-by: Alyssa Rosenzweig <alyssa@rosenzweig.io >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11023 >
2021-05-31 01:23:35 +05:30
Alyssa Rosenzweig
1f2d1423bb
agx: Drop cmdline version back to ES3.0
...
The patch needed for this to work was dropped. Fixes the standalone
compiler.
Fixes: 972409dacb ("asahi: Stub command-line compiler for AGX G13B")
Signed-off-by: Alyssa Rosenzweig <alyssa@collabora.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11023 >
2021-05-31 01:23:35 +05:30
Alyssa Rosenzweig
10e9a1bd32
asahi: Fix meson.build definition to depend on agx_pack.h
...
Signed-off-by: Alyssa Rosenzweig <alyssa@rosenzweig.io >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11023 >
2021-05-31 01:23:35 +05:30
Daniel Stone
53c84551f5
doc: Gratuituous promotion of Wayland
...
This is really just a dummy commit to get the docs regenerated so
we can stop 404ing.
Signed-off-by: Daniel Stone <daniels@collabora.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11083 >
2021-05-30 14:44:04 +01:00
Karol Herbst
4d5c57edca
gv100/ir: fix quadop/pop lowering
...
Fixes: texture_cube_map_array.sampling
Signed-off-by: Karol Herbst <kherbst@redhat.com >
Reviewed-by: Ilia Mirkin <imirkin@alum.mit.edu >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11061 >
2021-05-30 13:34:31 +00:00
Karol Herbst
f4847077c7
gm107/ir: emit barrier sources for quadon/pop
...
We drop them later on, but it's actually how that needs to be done on
Volta.
Signed-off-by: Karol Herbst <kherbst@redhat.com >
Reviewed-by: Ilia Mirkin <imirkin@alum.mit.edu >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11061 >
2021-05-30 13:34:31 +00:00
Karol Herbst
de666cc418
gv100/ir: add support for barrier thread state files for OP_CVT
...
Signed-off-by: Karol Herbst <kherbst@redhat.com >
Reviewed-by: Ilia Mirkin <imirkin@alum.mit.edu >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11061 >
2021-05-30 13:34:31 +00:00
Karol Herbst
f14ed4f077
nv50/ir: add barrier and thread_state files
...
Those are required on Turing+ to handle cross thread synchronization and
other goodies as the c/r stack is gone.
Signed-off-by: Karol Herbst <kherbst@redhat.com >
Reviewed-by: Ilia Mirkin <imirkin@alum.mit.edu >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11061 >
2021-05-30 13:34:31 +00:00
Karol Herbst
f4c6c89dec
nv50/ir/ra: fixes upcoming barrier file
...
Replaces some FILE_ADDRESS with LAST_REGISTER_FILE and makes RA not choke
on instructions using TS values.
Signed-off-by: Karol Herbst <kherbst@redhat.com >
Reviewed-by: Ilia Mirkin <imirkin@alum.mit.edu >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11061 >
2021-05-30 13:34:31 +00:00
Daniel Stone
79a7f33710
CI: Disable rk3399-gru-kevin jobs for now
...
We lost a few machines from the rota due to an infrastructure issue and
we don't have enough for good parallelism.
Signed-off-by: Daniel Stone <daniels@collabora.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11082 >
2021-05-30 12:40:43 +01:00
Hoe Hao Cheng
17d7b0bb8f
vulkan/util: generate vk_dispatch_table that combines all dispatch tables
...
Zink uses this, as it doesn't need to differentiate all the entrypoints.
Reviewed-by: Jason Ekstrand <jason@jlekstrand.net >
Acked-By: Mike Blumenkrantz <michael.blumenkrantz@gmail.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11045 >
2021-05-30 01:57:49 +00:00
Boyuan Zhang
c9baccb516
radeon/vcn: enable parsing support for st_rps_bits
...
Set st_rps_bits in hevc message buffer and set corresponding flag to indicate
that st_rps_bits will be used for parsing the short_term_ref_pic_set structure.
Signed-off-by: Boyuan Zhang <boyuan.zhang@amd.com >
Reviewed-by: Leo Liu <leo.liu@amd.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10889 >
2021-05-29 20:40:08 +00:00
Boyuan Zhang
9bd391bb64
frontends/vdpau: disable UseStRpsBits for vdpau hevc
...
vdpau interface doesn't provide st_rps_bits, it uses NumDeltaPocsOfRefRpsIdx
instead. So disabling the flag to indicate st_rps_bits will not be used.
Signed-off-by: Boyuan Zhang <boyuan.zhang@amd.com >
Reviewed-by: Leo Liu <leo.liu@amd.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10889 >
2021-05-29 20:40:08 +00:00
Boyuan Zhang
1285e0d2fc
frontends/va: get st_rps_bits from VA pic param hevc
...
Get st_rps_bits from VAPictureParameterBufferHEVC, and set the flag that
indicates st_rps_bits will be used for parsing the short_term_ref_pic_set
structure
Signed-off-by: Boyuan Zhang <boyuan.zhang@amd.com >
Reviewed-by: Leo Liu <leo.liu@amd.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10889 >
2021-05-29 20:40:08 +00:00
Boyuan Zhang
db0bf188d9
vl: add st_rps_bits for HEVC decode
...
st_rps_bits is used for accelorater to skip parsing the short_term_ref_pic_set
structure, which is needed for HEVC decode.
Signed-off-by: Boyuan Zhang <boyuan.zhang@amd.com >
Reviewed-by: Leo Liu <leo.liu@amd.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10889 >
2021-05-29 20:40:08 +00:00
Vinson Lee
fa1a1e7c80
travis: Download XQuartz from GitHub.
...
Bintray was sunsetted on May 1st, 2021.
Signed-off-by: Vinson Lee <vlee@freedesktop.org >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11026 >
2021-05-29 10:25:16 +00:00
Erik Faye-Lund
05bb449610
util/prim_restart: revert part of bad fix
...
When drawing using util_translate_prim_restart_ib, zink explicitly
ignores pipe_draw_start_count_bias::start, because
util_translate_prim_restart_ib used to create a new index-buffer without
padding at the start.
This makes a lot of sense, because creating a padded index buffer is
just wasteful.
So let's walk back on the choice of starting to pad the output buffer.
Fixes: 1272c2e052 ("util/prim_restart: fix util_translate_prim_restart_ib")
Closes: https://gitlab.freedesktop.org/mesa/mesa/-/issues/4851
Reviewed-By: Mike Blumenkrantz <michael.blumenkrantz@gmail.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11059 >
2021-05-29 09:13:03 +00:00
Erik Faye-Lund
1dfad514ea
zink: add support for string-markers
...
Reviewed-By: Mike Blumenkrantz <michael.blumenkrantz@gmail.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11004 >
2021-05-29 09:02:13 +00:00
Erik Faye-Lund
6c03a85094
zink: untangle have_EXT_debug_utils and ZINK_DEBUG_VALIDATION
...
EXT_debug_utils is useful for more than just validation, so let's
untangle these a bit.
Reviewed-By: Mike Blumenkrantz <michael.blumenkrantz@gmail.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11004 >
2021-05-29 09:02:13 +00:00
Erik Faye-Lund
ba392e9511
zink: implement half-float packing
...
This cap isn't really optional for drivers that implement GL SPIR-V
support, so let's just implement it.
Closes: https://gitlab.freedesktop.org/mesa/mesa/-/issues/4846
Reviewed-by: Hoe Hao Cheng <haochengho12907@gmail.com >
Reviewed-By: Mike Blumenkrantz <michael.blumenkrantz@gmail.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11057 >
2021-05-29 08:16:40 +00:00
Erik Faye-Lund
1887ff2ebb
zink: mark 2d-arrays as cube-compatible
...
OpenGL allows reinterpreting 2D array textures as cubemaps,
so we need to always set the cube-compatible flag for them.
This fixes a piglit test on Lavapipe.
Reviewed-By: Mike Blumenkrantz <michael.blumenkrantz@gmail.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10913 >
2021-05-29 07:32:34 +00:00
Erik Faye-Lund
71494c4874
zink: only mark resources as cube-compatible if supported
...
We need to check if the number of samples are valid for the image
first if we've going to set the cube-compatible bit.
Reviewed-By: Mike Blumenkrantz <michael.blumenkrantz@gmail.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10913 >
2021-05-29 07:32:34 +00:00
Erik Faye-Lund
b92c1a043a
lavapipe: do not interpret cube-compatible as cubemap
...
Now that we handle the cubemap-array views properly, we no longer need
to do this. It's allowed in Gallium to create cubemap views of 2d
arrays, so this should work fine.
Reviewed-By: Mike Blumenkrantz <michael.blumenkrantz@gmail.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10913 >
2021-05-29 07:32:34 +00:00
Erik Faye-Lund
a5f41925a6
lavapipe: handle cube-array image-views
...
It seems this was missed in the past.
Reviewed-By: Mike Blumenkrantz <michael.blumenkrantz@gmail.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10913 >
2021-05-29 07:32:34 +00:00
Yiwei Zhang
60f513279c
venus: fix mismatched bo mmap_size for export and multiple imports
...
Spec requires apps to use the size returned from
vkGetAndroidHardwareBufferPropertiesANDROID for AHB import, which
includes dedicated image/buffer import and non-dedicated buffer import.
Spec requires venus to use the size from image and buffer memory
requirement for dma_buf fd import if it's dedicated. If not dedicated,
the actual payload size should be used.
For AHB export allocation of VkImage, the app provided size will be 0,
and internally we must use the size from image memory requirement.
For AHB export allocation of VkBuffer, the app provided size comes from
buffer memory requirements and it can be smaller than the actual AHB
size due to page alignment. Internally that's the size we must use.
For AHB import, app must use the size from AHB prop query. Internally,
we have to override that with the size from memory requirement if the
import operation is dedicated to a VkImage or a VkBuffer. If not
dedicated, the actual payload size should be used.
The not working scenario is:
1. App creates an AHB backed VkBuffer, and the exported AHB size is
larger than the buffer memory requirement (very common).
2. App imports the AHB without a dedicated VkBuffer. Then the entire
AHB payload will be imported and the mmap_size might increase.
Test: dEQP-VK.api.external.memory.android_hardware_buffer.*
Signed-off-by: Yiwei Zhang <zzyiwei@chromium.org >
Reviewed-by: Chia-I Wu <olvaffe@gmail.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11055 >
2021-05-29 04:48:50 +00:00
Yiwei Zhang
beb80858d8
venus: refactor for property query of dma_buf fd
...
With a TODO to route host storage size instead of that from the guest.
Signed-off-by: Yiwei Zhang <zzyiwei@chromium.org >
Reviewed-by: Chia-I Wu <olvaffe@gmail.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11055 >
2021-05-29 04:48:50 +00:00
Yiwei Zhang
ccefcb0baf
venus: fix misaligned bo_flags between import and query
...
For importing an dma_buf fd, export info is not required. Leaving the
bo_flags missing VIRTGPU_BLOB_FLAG_USE_SHAREABLE bit as well as the
VIRTGPU_BLOB_FLAG_USE_CROSS_DEVICE bit. Upon querying fd properties,
DMA_BUF handle type will be specified which generates a new bo_flags
not matching the prior one.
This patch aligns the above 2 bits for the dma_buf import path.
Test: vkGetAndroidHardwareBufferPropertiesANDROID should succeed with
a valid AHB with AHARDWAREBUFFER_FORMAT_BLOB format.
Signed-off-by: Yiwei Zhang <zzyiwei@chromium.org >
Reviewed-by: Chia-I Wu <olvaffe@gmail.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11055 >
2021-05-29 04:48:50 +00:00
Yiwei Zhang
1df4c960c6
venus: rename dmabuf to dma_buf when it represents a type
...
Signed-off-by: Yiwei Zhang <zzyiwei@chromium.org >
Reviewed-by: Chia-I Wu <olvaffe@gmail.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11055 >
2021-05-29 04:48:50 +00:00
Charmaine Lee
fda4eaf5c4
svga: fix texture rectangle sampling when no sampler view declaration is defined
...
It is valid to not have a sampler view declaration for the corresponding
sampler in a TGSI shader, and hence we should not rely on the sampler view
declaration to determine if we need to adjust the unnormalized coordinates
for texture rectangle sampling.
This patch is to prep for tgsi shaders that are translated from nir which
in many cases do not issue sampler view declarations.
Fixes: 584b107037 ("st/mesa: Drop the TGSI paths for drawpixels and use nir-to-tgsi")
Reviewed-by: Neha Bhende <bhenden@vmware.com
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11011 >
2021-05-29 00:10:34 +00:00
Neha Bhende
fd98649091
svga: Use shader_key info to declare resources if TGSI shader is missing it
...
Sometimes, TGSI shader doesn't have SVIEW declaration if it is not
utilize in shader. In such cases, declare those resources with the
help of information stored in shader key.
Fixes: 584b107037 ("st/mesa: Drop the TGSI paths for drawpixels and use nir-to-tgsi")
Tested with piglit, gleretrace
Reviewed-by: Charmaine Lee <charmainel@vmware.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11011 >
2021-05-29 00:10:34 +00:00
Neha Bhende
4b958ac720
svga: Add target and sampler_return_type info into shader key
...
Fixes: 584b107037 ("st/mesa: Drop the TGSI paths for drawpixels and use nir-to-tgsi")
Reviewed-by: Charmaine Lee <charmainel@vmware.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11011 >
2021-05-29 00:10:34 +00:00
Roman Stratiienko
e91445464f
anv_android: Add missing type
...
Fixes: 2797c75426 ("anv: fix AHB leak upon exportable allocation")
Signed-off-by: Roman Stratiienko <r.stratiienko@gmail.com >
Reviewed-by: Yiwei Zhang <zzyiwei@chromium.org >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11068 >
2021-05-28 23:20:24 +00:00
Chia-I Wu
1d2a33c705
venus: ignore pInheritanceInfo when we should
...
pInheritanceInfo should be ignored when the command buffer is primary.
Closes: https://gitlab.freedesktop.org/mesa/mesa/-/issues/4850
Signed-off-by: Chia-I Wu <olvaffe@gmail.com >
Reviewed-by: Yiwei Zhang <zzyiwei@chromium.org >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11067 >
2021-05-28 23:09:22 +00:00
Chia-I Wu
f7001f7a2d
venus: remember cmd buffer level and queue family
...
We need them for wsi queue ownership transfer and others.
Signed-off-by: Chia-I Wu <olvaffe@gmail.com >
Reviewed-by: Yiwei Zhang <zzyiwei@chromium.org >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11067 >
2021-05-28 23:09:22 +00:00
Chia-I Wu
fb549d21d8
venus: add struct vn_command_buffer_builder
...
We are going to remember more states.
Signed-off-by: Chia-I Wu <olvaffe@gmail.com >
Reviewed-by: Yiwei Zhang <zzyiwei@chromium.org >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11067 >
2021-05-28 23:09:22 +00:00
Mike Blumenkrantz
67d2939e4a
lavapipe: add more format mappings for vertex buffer formats
...
Reviewed-by: Alyssa Rosenzweig <alyssa.rosenzweig@collabora.com >
Reviewed-by: Dave Airlie <airlied@redhat.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10957 >
2021-05-28 22:42:42 +00:00
Marek Olšák
264aaf99df
mesa: don't save/restore VAO NumUpdates and IsDynamic to fix update tracking
...
NumUpdates is used to indicate whether a VAO is static or dynamic, but if
we restored an older value, it could incorrectly indicate that it's not
dynamic.
This fixes a small performance issue with torcs.
Acked-by: Pierre-Eric Pelloux-Prayer <pierre-eric.pelloux-prayer@amd.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10994 >
2021-05-28 22:15:38 +00:00
Marek Olšák
d415df207a
mesa: don't call FLUSH_VERTICES in glPopClientAttrib
...
These states don't affect draws, so any enqueued Begin/End vertices don't
need flushing.
Acked-by: Pierre-Eric Pelloux-Prayer <pierre-eric.pelloux-prayer@amd.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10994 >
2021-05-28 22:15:38 +00:00
Marek Olšák
11f41ba2f9
mesa: optimize unreferencing VBOs in glPopClientAttrib
...
Acked-by: Pierre-Eric Pelloux-Prayer <pierre-eric.pelloux-prayer@amd.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10994 >
2021-05-28 22:15:38 +00:00
Marek Olšák
67ab6e8eb1
mesa: optimize glPush/PopClientAttrib for GL_CLIENT_VERTEX_ARRAY_BIT
...
This improves performance in torcs by 6%.
The idea is to skip saving and restoring vertex attribs and bindings that
have never been changed.
Acked-by: Pierre-Eric Pelloux-Prayer <pierre-eric.pelloux-prayer@amd.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10994 >
2021-05-28 22:15:38 +00:00
Marek Olšák
c1205a6b0f
mesa: don't call _mesa_set_draw_vao in glPushClientAttrib
...
Pushing states doesn't affect draws.
Acked-by: Pierre-Eric Pelloux-Prayer <pierre-eric.pelloux-prayer@amd.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10994 >
2021-05-28 22:15:38 +00:00
Marek Olšák
5195d848a0
mesa: move _mesa_copy_vertex_attrib/buffer functions to their only use
...
Reviewed-by: Pierre-Eric Pelloux-Prayer <pierre-eric.pelloux-prayer@amd.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10994 >
2021-05-28 22:15:38 +00:00
Mike Blumenkrantz
076a352f81
aux/indices: employ Delete The Code methodology
...
the util functions will assert for unknown prim types, so the switches
are redundant now
Reviewed-by: Alyssa Rosenzweig <alyssa.rosenzweig@collabora.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10965 >
2021-05-28 21:51:32 +00:00
Mike Blumenkrantz
0987c87445
aux/indices: break out index count conversion into separate function
...
Reviewed-by: Alyssa Rosenzweig <alyssa.rosenzweig@collabora.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10965 >
2021-05-28 21:51:32 +00:00
Mike Blumenkrantz
4ece3931bc
aux/indices: break out index size conversion to separate function
...
Reviewed-by: Alyssa Rosenzweig <alyssa.rosenzweig@collabora.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10965 >
2021-05-28 21:51:32 +00:00
Mike Blumenkrantz
cad2026b72
aux/indices: break out primitive type conversion to separate function
...
Reviewed-by: Alyssa Rosenzweig <alyssa.rosenzweig@collabora.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10965 >
2021-05-28 21:51:32 +00:00
Mike Blumenkrantz
9d13d3e9ad
llvmpipe: ci updates
...
Reviewed-by: Roland Scheidegger <sroland@vmware.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11049 >
2021-05-28 20:46:14 +00:00
Mike Blumenkrantz
5275ab1bf3
gallivm: fix oob imageLoad with formats that have <4 components
...
it's expected that these loads will have full alpha
fixes spec@arb_shader_image_load_store@invalid
Reviewed-by: Roland Scheidegger <sroland@vmware.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11049 >
2021-05-28 20:46:14 +00:00
Mike Blumenkrantz
35691edea0
aux/trace: avoid deadlock in screen::flush_frontbuffer hook
...
this hook usually requires mapping a resource, which will trigger a
trace dump internally, which requires locking the output mutex, so
finish the trace dump before calling it
Acked-by: Alyssa Rosenzweig <alyssa.rosenzweig@collabora.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11052 >
2021-05-28 19:43:31 +00:00
Timur Kristóf
aabe9d2f6e
aco: Eliminate SALU comparison when SCC can be used instead.
...
For example:
s0, scc = s_and_u32 ...
scc = s_cmp_eq_u32 s0, 0
p_cbranch_sccz
is turned into:
s0, scc = s_and_u32 ...
p_cbranch_sccnz
Fossil DB results on Sienna Cichlid:
Totals from 85267 (56.91% of 149839) affected shaders:
CodeSize: 202539256 -> 202237268 (-0.15%)
Instrs: 38964493 -> 38888996 (-0.19%)
Latency: 750062328 -> 749913450 (-0.02%); split: -0.02%, +0.00%
InvThroughput: 167408952 -> 167405157 (-0.00%)
Signed-off-by: Timur Kristóf <timur.kristof@gmail.com >
Reviewed-by: Daniel Schürmann <daniel@schuermann.dev >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/7779 >
2021-05-28 12:14:53 +00:00
Timur Kristóf
a93092d0ed
aco: Use s_cbranch_vccz/nz in post-RA optimization.
...
A simple post-RA optimization which takes advantage of the
s_cbranch_vccz and s_cbranch_vccnz instructions.
It works on the following pattern:
vcc = v_cmp ...
scc = s_and vcc, exec
p_cbranch scc
The result looks like this:
vcc = v_cmp ...
p_cbranch vcc
Fossil DB results on Sienna Cichlid:
Totals from 4814 (3.21% of 149839) affected shaders:
CodeSize: 15371176 -> 15345964 (-0.16%)
Instrs: 3028557 -> 3022254 (-0.21%)
Latency: 21872753 -> 21823476 (-0.23%); split: -0.23%, +0.00%
InvThroughput: 4470282 -> 4468691 (-0.04%); split: -0.04%, +0.00%
Signed-off-by: Timur Kristóf <timur.kristof@gmail.com >
Reviewed-by: Daniel Schürmann <daniel@schuermann.dev >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/7779 >
2021-05-28 12:14:53 +00:00
Timur Kristóf
0e4747d3fb
aco: Introduce a new, post-RA optimizer.
...
This commit adds the skeleton of a new ACO post-RA optimizer,
which is intended to be a simple pass called after RA, and
is meant to do code changes which can only be done
after RA.
It is currently empty, the actual optimizations will be added
in their own commits. It only has a DCE pass, which deletes
some dead code generated by the spiller.
Fossil DB results on Sienna Cichlid:
Totals from 375 (0.25% of 149839) affected shaders:
CodeSize: 2933056 -> 2907192 (-0.88%)
Instrs: 534154 -> 530706 (-0.65%)
Latency: 12088064 -> 12084907 (-0.03%); split: -0.03%, +0.00%
InvThroughput: 4433454 -> 4432421 (-0.02%); split: -0.02%, +0.00%
Copies: 81649 -> 78203 (-4.22%)
Signed-off-by: Timur Kristóf <timur.kristof@gmail.com >
Reviewed-by: Daniel Schürmann <daniel@schuermann.dev >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/7779 >
2021-05-28 12:14:53 +00:00
Timur Kristóf
6f3c472f2e
aco: New writeout overloads for the test framework.
...
These will be used by future tests.
Signed-off-by: Timur Kristóf <timur.kristof@gmail.com >
Reviewed-by: Daniel Schürmann <daniel@schuermann.dev >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/7779 >
2021-05-28 12:14:53 +00:00
Timur Kristóf
8d37aa91d6
aco: Add Operand(Temp, PhysReg) constructor.
...
Signed-off-by: Timur Kristóf <timur.kristof@gmail.com >
Reviewed-by: Daniel Schürmann <daniel@schuermann.dev >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/7779 >
2021-05-28 12:14:53 +00:00
Timur Kristóf
4491b94d58
aco: Don't DCE instructions that write non-temps, eg. exec.
...
No Fossil DB changes.
This commit makes DCE usable after RA.
Signed-off-by: Timur Kristóf <timur.kristof@gmail.com >
Reviewed-by: Daniel Schürmann <daniel@schuermann.dev >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/7779 >
2021-05-28 12:14:53 +00:00
Emma Anholt
3542afbdd0
Revert "ci: Configure DUTs for max performance"
...
This reverts commit eef5409df4 .
I suspect this has caused a lot of the CI instability today -- some flakes
were already added, but the a630-traces job is still flaking. Revert
until a fix makes it stable.
Reviewed-by: Tomeu Vizoso <tomeu.vizoso@collabora.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11024 >
2021-05-28 11:39:43 +00:00
Samuel Pitoiset
ea5f1fa279
radv: fix generating hang reports if mutable descriptors are 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/11031 >
2021-05-28 10:53:02 +00:00
Alejandro Piñeiro
0d2d26a68c
v3dv: remove unused v3dv_zs_buffer_from_vk_format
...
Reviewed-by: Iago Toral Quiroga <itoral@igalia.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11050 >
2021-05-28 09:00:35 +00:00
Tapani Pälli
586f84ce01
mesa: fix error set for glCompressedTexSubImage calls
...
Desktop and ES expect a different error code here when dealing with
generic compressed format tokens. This fixes failures with upcoming
new tests for compressed texture related API calls.
Signed-off-by: Tapani Pälli <tapani.palli@intel.com >
Reviewed-by: Matt Turner <mattst88@gmail.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11009 >
2021-05-28 08:56:41 +03:00
Ian Romanick
a4e1501770
mesa/st: Don't assert !unify_interfaces in the passthrough edge flags case
...
Technically, this is correct, and I think it's the right long-term
solution. However, Iris has code that undoes the damage caused by
nir_lower_passthrough_edgeflags (see iris_fix_edge_flags in
iris_program.c), so it should be safe to do the lowering here.
I'm not marking this as closing mesa#4838 because I think we should move
the Iris code up to here, make a different version of the NIR pass, or
something different... to properly fix this problem. In the mean time,
this gets a bunch of tests to stop crashing. :)
Fixes: a76ec17f12 ("mesa/st: Fix iris regression with clip distances.")
Acked-by: Emma Anholt <emma@anholt.net >
Reviewed-by: Kenneth Graunke <kenneth@whitecape.org >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11013 >
2021-05-27 14:22:36 -07:00
Emma Anholt
9d28bac9d0
turnip: Make sure that SNORM blits don't clamp ambiguous -1.0 values.
...
The CTS expects that some paths transfer SNORM data exactly, but the HW
will clamp 0x80 values to 0x81 in the process. We can treat snorm as
unorm, though, and get working compression without the clamping happening.
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10735 >
2021-05-27 19:27:40 +00:00
Emma Anholt
69df1e8650
turnip: Reorganize copy_format()'s switch statement.
...
Now that we need FALLTHROUGH macros we weren't saving much by falling
through, and things were weirdly ordered anyway with depth intermixed with
color formats and the default case tucked in the middle of the switch
statement. Replace with pretty obvious ordering of normal color, planar
color, depth, then default.
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10735 >
2021-05-27 19:27:40 +00:00
Karol Herbst
8169d709c4
nv50/ir: don't optimize shl(mul_hi, a) to mul_hi
...
Fixes shader_storage_buffer_object.advanced-unsizedArrayLength* CTS tests
Signed-off-by: Karol Herbst <kherbst@redhat.com >
Reviewed-by: Ilia Mirkin <imirkin@alum.mit.edu >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11021 >
2021-05-27 13:32:04 +00:00
Karol Herbst
e7485f1294
nv50/ir: when constant folding shl(mul, a) we need to copy muls type
...
Also clear subop while at it as we might convert a shl.wrap to mul.
Signed-off-by: Karol Herbst <kherbst@redhat.com >
Reviewed-by: Ilia Mirkin <imirkin@alum.mit.edu >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11021 >
2021-05-27 13:32:04 +00:00
Antonio Caggiano
5e88a1caca
panfrost: Performance configuration
...
Configure a panfrost performance structure with tables of categories and
counters for the current product id. An array for storing counter values
read from the GPU is also managed by this structure. A generic read
function can be used to retrieve the value of a counter from the conter
values array.
v2: Generate tables instead of calling register functions.
v3: Simplify counter read function and `pan_gen_perf.py` write method.
v4: Accumulate counter values from all cores.
v5: Wrap `STATIC_ASSERT`s within unused functions.
Signed-off-by: Antonio Caggiano <antonio.caggiano@collabora.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10844 >
2021-05-27 13:24:54 +00:00
Antonio Caggiano
fece367e9e
panfrost: Counter definitions
...
Add Mali events XML files generated with Panfrost HWC helper.
https://gitlab.freedesktop.org/fahien/panfrost-hwc-helper/
v2: Restore license headers.
v3: Fix shader core and memory system counter offsets.
Signed-off-by: Antonio Caggiano <antonio.caggiano@collabora.com >
Acked-by: Alyssa Rosenzweig <alyssa.rosenzweig@collabora.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10844 >
2021-05-27 13:24:54 +00:00
Pierre-Eric Pelloux-Prayer
ee669227ad
st/mesa: fix clearing of 1D array textures
...
st_gl_texture_dims_to_pipe_dims isn't usable in this case since its
API doesn't match the usage so fix up the dimensions manually.
Closes: https://gitlab.freedesktop.org/mesa/mesa/-/issues/3646
Reviewed-by: Ilia Mirkin <imirkin@alum.mit.edu >
Reviewed-by: Marek Olšák <marek.olsak@amd.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10523 >
2021-05-27 14:32:01 +02:00
Tomeu Vizoso
e381bc0e67
ci/freedreno: Skip Portal 2 trace on a630, due to flakiness
...
Sometimes the reticle is missing. Skip it for now to keep the number of
pipeline failures due to flakes low.
Signed-off-by: Tomeu Vizoso <tomeu.vizoso@collabora.com >
Acked-by: Pierre-Eric Pelloux-Prayer <pierre-eric.pelloux-prayer@amd.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11033 >
2021-05-27 14:07:44 +02:00
Samuel Pitoiset
380742b9f3
radv: fix missing default state for DB_DFSM_CONTROL
...
Fixes: 69ae02151d ("radv: remove DFSM")
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/11028 >
2021-05-27 11:48:29 +00:00
Mike Blumenkrantz
caa99c2064
zink: improve unsupported feature warning message
...
this should print the device name and the missing features in order to
be less opaque
Reviewed-by: Erik Faye-Lund <erik.faye-lund@collabora.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10959 >
2021-05-27 11:40:02 +00:00
Erik Faye-Lund
7613837206
zink: use actual const for const offset
...
When we emit constants, we don't know what type they'll be used as, so
we just emit them as uint, and then bitcast them to whatever we need.
But this isn't a good idea for ConstOffset, which needs to actually be a
const value, and not a const value bitcasted. So we sadly have to
open-code the const emitting here to avoid the problem.
Fixes: e963d35efe ("zink: use ConstOffset for nir_tex_src_offset")
Closes: https://gitlab.freedesktop.org/mesa/mesa/-/issues/4831
Reviewed-By: Mike Blumenkrantz <michael.blumenkrantz@gmail.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11032 >
2021-05-27 11:16:38 +00:00
Iago Toral Quiroga
3179daf613
v3dv: add v3dv_GetImageSparseMemoryRequirements back
...
This one is not implemented in the common dispatch handler in terms
of its KHR_get_memory_requirements2 version, so the driver needs
to implement it.
Fixes: d87afc1acc ('v3dv: implement VK_KHR_get_memory_requirements2')
Reviewed-by: Alejandro Piñeiro <apinheiro@igalia.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11038 >
2021-05-27 13:01:18 +02:00
Erik Faye-Lund
c289e88809
docs: drop clayton from intel-ci notice
...
As per his request.
Reviewed-by: Clayton Craft <clayton@craftyguy.net >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10975 >
2021-05-27 10:08:13 +00:00
Erik Faye-Lund
e710b9bd7b
docs: update another IRC reference
...
In the last round of IRC link updates, #freedesktop hadn't moved yet. Now
it has, so let's update the reference.
Reviewed-by: Adam Jackson <ajax@redhat.com >
Reviewed-by: Daniel Stone <daniels@collabora.com >
Reviewed-by: Clayton Craft <clayton@craftyguy.net >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10975 >
2021-05-27 10:08:13 +00:00
Erik Faye-Lund
bc1240ce94
docs: update another IRC reference
...
I didn't initially update this one because craftguy hadn't moved to OFTC
when I wrote the last patch. But now he has, so let's also update this
reference.
Reviewed-by: Adam Jackson <ajax@redhat.com >
Reviewed-by: Daniel Stone <daniels@collabora.com >
Reviewed-by: Clayton Craft <clayton@craftyguy.net >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10975 >
2021-05-27 10:08:13 +00:00
Tomeu Vizoso
6cd37e4bf0
Partial revert of "ci: Add a manual job for tracking the performance of Freedreno"
...
This reverts commit 8e470457de .
Drop that jobs, as it's sometimes causing a gitlab-ci.yml parse error
that isn't readily reproducible:
Found errors in your .gitlab-ci.yml:
'a630-profile-traces' job needs 'arm_test' job but it was not added to the pipeline
'a630-profile-traces' job needs 'meson-arm64' job but it was not added to the pipeline
Signed-off-by: Tomeu Vizoso <tomeu.vizoso@collabora.com >
Acked-by: Pierre-Eric Pelloux-Prayer <pierre-eric.pelloux-prayer@amd.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11030 >
2021-05-27 10:41:53 +02:00
Iago Toral Quiroga
e531755451
v3dv: trivially handle VK_STRUCTURE_TYPE_EXPORT_MEMORY_ALLOCATE_INFO_KHR
...
Reviewed-by: Alejandro Piñeiro <apinheiro@igalia.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11002 >
2021-05-27 08:23:55 +02:00
Iago Toral Quiroga
597b448967
v3dv: implement VK_KHR_dedicated_allocation
...
Reviewed-by: Alejandro Piñeiro <apinheiro@igalia.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11002 >
2021-05-27 08:23:55 +02:00
Iago Toral Quiroga
e60b009271
v3dv: keep track of whether an image may be backed by external memory
...
Such images will always require dedicated allocations.
Reviewed-by: Alejandro Piñeiro <apinheiro@igalia.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11002 >
2021-05-27 08:21:15 +02:00
Iago Toral Quiroga
d87afc1acc
v3dv: implement VK_KHR_get_memory_requirements2
...
Reviewed-by: Alejandro Piñeiro <apinheiro@igalia.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11002 >
2021-05-27 08:21:15 +02:00
Timothy Arceri
82bd970a0c
Revert "util: disable glthread in CSGO"
...
This reverts commit 40c93e2f45 .
The trust factor issue has now been resolved [1]
[1] https://github.com/ValveSoftware/csgo-osx-linux/issues/2630
Reviewed-by: Samuel Pitoiset <samuel.pitoiset@gmail.com >
Reviewed-by: Marek Olšák <marek.olsak@amd.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10948 >
2021-05-27 05:05:16 +00:00
cheyang
4a3c715bb4
virgl:Fix the leak of hw_res used as fence
...
Fence destroy hw_res not dec reference.Lead leak.
Call virgl_drm_resource_reference() to release hw_res
instead of calling virgl_hw_res_destroy() directly.
Fixes: c54fb6ef3d ("virgl: Don't destroy resource while it's in use.")
Signed-off-by: cheyang <cheyang@bytedance.com >
Reviewed-by: Chia-I Wu <olvaffe@gmail.com >
Reviewed-by: Lepton Wu <lepton@chromium.org >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11008 >
2021-05-27 04:30:13 +00:00
Marek Olšák
b8d59e68be
gallium/u_vbuf: add a fast path to skip refcounting for uploaded user buffers
...
This improves performance by 23% with radeonsi and Ryzen 3900X running
the game torcs.
All vertex buffers must be user buffers to get this.
Reviewed-By: Mike Blumenkrantz <michael.blumenkrantz@gmail.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10992 >
2021-05-27 01:52:13 +00:00
Mike Blumenkrantz
bbbcf14311
radeonsi: clamp clear_buffer values using new util helper
...
Reviewed-by: Marek Olšák <marek.olsak@amd.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10822 >
2021-05-27 00:23:04 +00:00
Mike Blumenkrantz
c4d3d21024
zink: clamp clear_buffer values
...
Reviewed-by: Marek Olšák <marek.olsak@amd.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10822 >
2021-05-27 00:23:04 +00:00
Mike Blumenkrantz
fb2fb0d4fe
gallium/aux: add helper for pre-clamping clear_buffer value to dword
...
copied from radeonsi
Reviewed-by: Marek Olšák <marek.olsak@amd.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10822 >
2021-05-27 00:23:04 +00:00
Mike Blumenkrantz
8418334efe
lavapipe: also ignore multiple pipeline barriers in succession
...
this just flushes repeatedly, which is pointless
Reviewed-by: Dave Airlie <airlied@redhat.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10762 >
2021-05-27 00:12:48 +00:00
Mike Blumenkrantz
df47ed074d
lavapipe: skip "pipeline barriers" if they're first or last in a cmdbuf
...
barriers just trigger a full flush, which is unnecessary if it's:
* the first cmd in a cmdbuf, as the previous cmdbuf will have already
flushed and so this is flushing nothing
* the last cmd in a cmdbuf, as there will be a flush immediately after
returning from this function
Reviewed-by: Dave Airlie <airlied@redhat.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10762 >
2021-05-27 00:12:48 +00:00
Mike Blumenkrantz
08a7cfce5e
llvmpipe: stop accessing pipe_resource::screen internally
...
this breaks driver tracing
Reviewed-by: Dave Airlie <airlied@redhat.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11017 >
2021-05-26 23:58:59 +00:00
Mike Blumenkrantz
09019fb456
llvmpipe: store a screen pointer in resource struct
...
directly accessing the pipe_resource::screen pointer crashes trace,
so it's necessary to have an unwrapped pointer available if such things
are needed
Reviewed-by: Dave Airlie <airlied@redhat.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11017 >
2021-05-26 23:58:59 +00:00
Mike Blumenkrantz
621b8788bb
llvmpipe: only dump tgsi shaders if they're actually tgsi shaders
...
this crashes otherwise
Reviewed-by: Dave Airlie <airlied@redhat.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11016 >
2021-05-26 23:44:10 +00:00
Mike Blumenkrantz
9f5e4ccdb9
llvmpipe: split out scene surface init into separate function
...
Reviewed-by: Dave Airlie <airlied@redhat.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11015 >
2021-05-26 23:32:12 +00:00
Mike Blumenkrantz
a2d1b6d14f
llvmpipe: split out scene surface info into separate struct
...
Reviewed-by: Dave Airlie <airlied@redhat.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11015 >
2021-05-26 23:32:12 +00:00
Mike Blumenkrantz
614fcdc8c7
lavapipe: moar @optimize
...
without enough nir optimizing, some shaders fail to reduce as they should,
resulting in the wrong output
fixes dEQP-VK.graphicsfuzz.spv-stable-mergesort-flatten-selection-dead-continues
Reviewed-by: Dave Airlie <airlied@redhat.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11019 >
2021-05-26 23:21:07 +00:00
Mike Blumenkrantz
5925f2ea39
llvmpipe: remove clamping to [0,1] for tri offset
...
this was added in 315f8daab1 without much detail, then refactored
a bunch of times, and there's even now been a comment added questioning
whether it's correct: it does not appear to be.
fixes lavapipe cts cases:
dEQP-VK.draw.inverted_depth_ranges.depthclamp_deltaone_bias_clamp_neg
dEQP-VK.draw.inverted_depth_ranges.nodepthclamp_deltaone_bias_clamp_neg
Reviewed-by: Dave Airlie <airlied@redhat.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11012 >
2021-05-26 23:06:48 +00:00
Emma Anholt
26677008b9
ci/freedreno: Turn off default a530 quick_gl testing, do full quick_shader.
...
The quick_gl set is too unstable -- even when I switched to a consistent
set of tests, and added lots of flakes, I keep getting new ones as some
test (unclear which, but it's like 7-8 minutes into the run) kills other
innocent ones. Until we get per process pagetables, disable this testing
by default.
However, now that we've freed up a board that was doing quick_gl, we have
time to do all of quick_shader so that piglit uprevs don't reshuffle the
test list and expose new failures.
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11018 >
2021-05-26 20:49:47 +00:00
Yiwei Zhang
7adb9c42e0
venus: advertise VK_ANDROID_external_memory_android_hardware_buffer
...
Besides advertising AHB support, for Android, we do not advertise
KHR_external_memory_fd, EXT_external_memory_dma_buf or
EXT_image_drm_format_modifier so that AHB remains the sole channel for
external resource sharing.
Signed-off-by: Yiwei Zhang <zzyiwei@chromium.org >
Reviewed-by: Chia-I Wu <olvaffe@gmail.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10960 >
2021-05-26 20:26:19 +00:00
Yiwei Zhang
47bf8be024
venus: support AHB external format for sampler YCbCr conversion
...
Signed-off-by: Yiwei Zhang <zzyiwei@chromium.org >
Reviewed-by: Chia-I Wu <olvaffe@gmail.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10960 >
2021-05-26 20:26:19 +00:00
Yiwei Zhang
78b30a0696
venus: implement vn_GetMemoryAndroidHardwareBufferANDROID
...
Signed-off-by: Yiwei Zhang <zzyiwei@chromium.org >
Reviewed-by: Chia-I Wu <olvaffe@gmail.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10960 >
2021-05-26 20:26:19 +00:00
Yiwei Zhang
7370f33953
venus: implement AHB allocation and import (part 2/2)
...
TODO left to fix plane count > 1 case for external memory.
Signed-off-by: Yiwei Zhang <zzyiwei@chromium.org >
Reviewed-by: Chia-I Wu <olvaffe@gmail.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10960 >
2021-05-26 20:26:19 +00:00
Yiwei Zhang
1743892f24
venus: implement AHB allocation and import (part 1/2)
...
This patch refactors the struct look up logic for memory allocation, and
it prepares the necessary info for ahb allocation and import.
Signed-off-by: Yiwei Zhang <zzyiwei@chromium.org >
Reviewed-by: Chia-I Wu <olvaffe@gmail.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10960 >
2021-05-26 20:26:19 +00:00
Yiwei Zhang
4958ce582c
venus: refactor device memory fd import
...
This patch wraps up fd import logic, which will be used later by ahb
import. This patch also removes a redundant check in need_bo.
Signed-off-by: Yiwei Zhang <zzyiwei@chromium.org >
Reviewed-by: Chia-I Wu <olvaffe@gmail.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10960 >
2021-05-26 20:26:19 +00:00
Yiwei Zhang
910c0602c4
venus: implement image creation for ahb handle type
...
Signed-off-by: Yiwei Zhang <zzyiwei@chromium.org >
Reviewed-by: Chia-I Wu <olvaffe@gmail.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10960 >
2021-05-26 20:26:18 +00:00
Yiwei Zhang
19b7b09885
venus: prepare image creation helpers for AHB
...
Store image create info for deferred creation of AHB image.
Signed-off-by: Yiwei Zhang <zzyiwei@chromium.org >
Reviewed-by: Chia-I Wu <olvaffe@gmail.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10960 >
2021-05-26 20:26:18 +00:00
Yiwei Zhang
53e35f716e
venus: fix AHB image format properties query
...
1. bail early if there's no compatiable AHB format
2. check against the corresponding drm format modifier
Signed-off-by: Yiwei Zhang <zzyiwei@chromium.org >
Reviewed-by: Chia-I Wu <olvaffe@gmail.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10960 >
2021-05-26 20:26:18 +00:00
Yiwei Zhang
7f52544f6f
venus: fix vn_GetAndroidHardwareBufferPropertiesANDROID
...
Append a VK_FORMAT_FEATURE_MIDPOINT_CHROMA_SAMPLES_BIT bit to pass cts.
Signed-off-by: Yiwei Zhang <zzyiwei@chromium.org >
Reviewed-by: Chia-I Wu <olvaffe@gmail.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10960 >
2021-05-26 20:26:18 +00:00
Yiwei Zhang
8c06f018a4
venus: complete the format conversion between AHB and Vulkan
...
Signed-off-by: Yiwei Zhang <zzyiwei@chromium.org >
Reviewed-by: Chia-I Wu <olvaffe@gmail.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10960 >
2021-05-26 20:26:18 +00:00
Yiwei Zhang
c82e836490
venus: tiny refactor of vn_android_get_gralloc_buffer_info
...
Return false if the queried drm format modifier is invalid.
Signed-off-by: Yiwei Zhang <zzyiwei@chromium.org >
Reviewed-by: Chia-I Wu <olvaffe@gmail.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10960 >
2021-05-26 20:26:18 +00:00
Samuel Pitoiset
b9ff51f750
radv: move all game workarounds to drirc
...
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/10978 >
2021-05-26 18:48:04 +00:00
Samuel Pitoiset
25a6c35bbc
util/drirc: use application_name_match for the SotTR RADV workaround
...
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/10978 >
2021-05-26 18:48:04 +00:00
Samuel Pitoiset
8aa735e856
radv: add few new drirc options
...
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/10978 >
2021-05-26 18:48:04 +00:00
Samuel Pitoiset
34f5407b8e
util/drirc: make engine_versions an optional field
...
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/10978 >
2021-05-26 18:48:04 +00:00
Tomeu Vizoso
81d132504b
ci/freedreno: Add spec@arb_copy_buffer@dlist flake on a530
...
Crashes occasionally, probably due to the same cause as
spec@arb_copy_buffer@intra-buffer-copy.
Signed-off-by: Tomeu Vizoso <tomeu.vizoso@collabora.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/7987 >
2021-05-26 18:20:19 +00:00
Tomeu Vizoso
412d279fbc
ci/freedreno: Add new flake after "ci: Configure DUTs for max performance"
...
Probably was made more probable since the cpufreq or devfreq changes. Or
maybe due to the lack of runtime PM?
Signed-off-by: Tomeu Vizoso <tomeu.vizoso@collabora.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/7987 >
2021-05-26 18:20:19 +00:00
Tomeu Vizoso
1ccc6e7ce4
ci/freedreno: Fix name of flake
...
Signed-off-by: Tomeu Vizoso <tomeu.vizoso@collabora.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/7987 >
2021-05-26 18:20:19 +00:00
Tomeu Vizoso
e1f75d17da
ci/zink: Add nearest_linear_mirror_l8_pot flake
...
Crashed once at https://gitlab.freedesktop.org/mesa/mesa/-/jobs/10116149
Signed-off-by: Tomeu Vizoso <tomeu.vizoso@collabora.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/7987 >
2021-05-26 18:20:19 +00:00
Tomeu Vizoso
26079868a7
ci/freedreno: Add depth32f_stencil8 flakes
...
Started happening after disabling cpufreq, devfreq and runtime PM.
At least one of these fail in each run, so it's blocking MRs.
Signed-off-by: Tomeu Vizoso <tomeu.vizoso@collabora.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/7987 >
2021-05-26 18:20:19 +00:00
Tomeu Vizoso
a15cf1ecab
radeonsi/ci: Add new Piglit failures
...
These appeared after the execution order of tests changed after a Piglit
upgrade.
Signed-off-by: Tomeu Vizoso <tomeu.vizoso@collabora.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/7987 >
2021-05-26 18:20:19 +00:00
Antonio Caggiano
8e470457de
ci: Add a manual job for tracking the performance of Freedreno
...
Use Piglit's replay profile to measure and store the time that frames
take to render in the GPU.
This job won't run automatically in regular pipelines, but will be
triggered automatically by a script for every successful pre-merge
pipeline.
This is because we want to generate performance data for every relevant
commit merged in main, but we don't want to keep a device busy during
the pre-merge run.
Signed-off-by: Antonio Caggiano <antonio.caggiano@collabora.com >
Signed-off-by: Tomeu Vizoso <tomeu.vizoso@collabora.com >
Reviewed-By: Rohan Garg <rohan.garg@collabora.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/7987 >
2021-05-26 18:20:19 +00:00
Tomeu Vizoso
93138ef122
ci: Uprev apitrace to 170424754bb4 "retrace: Get --loop to work without rewinding"
...
Needed to be able to replay traces for performance tracking.
Signed-off-by: Tomeu Vizoso <tomeu.vizoso@collabora.com >
Reviewed-By: Rohan Garg <rohan.garg@collabora.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/7987 >
2021-05-26 18:20:19 +00:00
Tomeu Vizoso
cea379549e
ci: Uprev piglit to eee7d89611cf "tests: Replay profile frame times"
...
So we can measure GPU times when replaying traces.
Signed-off-by: Tomeu Vizoso <tomeu.vizoso@collabora.com >
Reviewed-By: Rohan Garg <rohan.garg@collabora.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/7987 >
2021-05-26 18:20:19 +00:00
Tomeu Vizoso
eef5409df4
ci: Configure DUTs for max performance
...
Lock CPU and GPU frequency scaling on devices so to speed up test
execution and lower the variation of frame times from performance replay
jobs.
Also disable autosuspend of the GPU device.
Signed-off-by: Tomeu Vizoso <tomeu.vizoso@collabora.com >
Reviewed-By: Rohan Garg <rohan.garg@collabora.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/7987 >
2021-05-26 18:20:19 +00:00
Alyssa Rosenzweig
8fc913fde2
panfrost: Expose PIPE_CAP_SHAREABLE_SHADERS
...
Now that the compile entrypoints don't touch the context, it's clear
that we can support this. Note, even though the pools for shaders and
descriptors are referenced from particular contexts, they are unowned
pools -- once uploaded, any thread can use the results.
Signed-off-by: Alyssa Rosenzweig <alyssa@collabora.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10976 >
2021-05-26 18:05:47 +00:00
Alyssa Rosenzweig
4b984c494c
panfrost: Don't take ctx in panfrost_shader_compile
...
Complicates validation of PIPE_CAP_SHAREABLE_SHADERS.
Signed-off-by: Alyssa Rosenzweig <alyssa@collabora.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10976 >
2021-05-26 18:05:47 +00:00
Alyssa Rosenzweig
7b4a76f493
panfrost: Inline pan_prepare_shader_descriptor
...
Complicates the next patch.
Signed-off-by: Alyssa Rosenzweig <alyssa@collabora.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10976 >
2021-05-26 18:05:47 +00:00
Anuj Phogat
6bb66b78a9
intel/gfx12+: Add Wa_14013840143
...
Cc: mesa-stable
Signed-off-by: Anuj Phogat <anuj.phogat@gmail.com >
Reviewed-by: Lionel Landwerlin <lionel.g.landwerlin@intel.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10984 >
2021-05-26 17:42:21 +00:00
Samuel Pitoiset
69ae02151d
radv: remove DFSM
...
DFSM has never been enabled by default because it was slower.
RadeonSI is also dropping support for this because they discovered
that's actually not efficient in practice.
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/10968 >
2021-05-26 17:22:14 +00:00
Mike Blumenkrantz
f0f0a21f13
zink: ci updates
...
Reviewed-by: Erik Faye-Lund <erik.faye-lund@collabora.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11007 >
2021-05-26 16:39:34 +00:00
Mike Blumenkrantz
a9d3b00502
zink: remove weird lod hack for texturing
...
this breaks texturing in non-fragment stages and is unnecessary
due to using nir_lower_tex
Cc: mesa-stable@lists.freedesktop.org
Reviewed-by: Erik Faye-Lund <erik.faye-lund@collabora.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11007 >
2021-05-26 16:39:34 +00:00
Erik Faye-Lund
a545b6eda0
ci: downgrade sphinx to v3.x
...
Sphinx 4.0 was recently released, but sadly the theme we're using is not
yet compatible with Sphinx 4.0.
So let's limit the sphinx-version we're using to a version before Sphinx
4.0 for now.
Closes: https://gitlab.freedesktop.org/mesa/mesa/-/issues/4843
Reviewed-by: Hoe Hao Cheng <haochengho12907@gmail.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11005 >
2021-05-26 14:48:12 +00:00
Samuel Pitoiset
f8f963f800
radv: stop reporting ACO from the device name
...
ACO is the default compiler for almost a year from now, so it should
be fine to replace RADV/ACO by just RADV. LLVM is still added
when RADV_DEBUG=llvm is used for convenience.
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/10972 >
2021-05-26 15:58:54 +02:00
Rhys Perry
b5f2af86cf
radv: fix formatting of radv_dri_options
...
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/10980 >
2021-05-26 13:29:47 +00:00
Rhys Perry
4e4dd4f842
radv: workaround incorrect depthBiasConstantFactor by Path of Exile
...
Signed-off-by: Rhys Perry <pendingchaos02@gmail.com >
Reviewed-by: Samuel Pitoiset <samuel.pitoiset@gmail.com >
Closes: https://gitlab.freedesktop.org/mesa/mesa/-/issues/4677
Cc: mesa-stable
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10980 >
2021-05-26 13:29:47 +00:00
Rhys Perry
665f11e829
radv: add radv_absolute_depth_bias
...
Signed-off-by: Rhys Perry <pendingchaos02@gmail.com >
Reviewed-by: Samuel Pitoiset <samuel.pitoiset@gmail.com >
Cc: mesa-stable
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10980 >
2021-05-26 13:29:47 +00:00
Mike Blumenkrantz
ceb7225057
radv: set maxVertexInputAttributeOffset to UINT32_MAX
...
this is what amdvlk uses
Reviewed-by: Samuel Pitoiset <samuel.pitoiset@gmail.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10827 >
2021-05-26 12:24:39 +00:00
Mike Blumenkrantz
1e9dc0474e
radv: make radv_pipeline::attrib_ends 32bit
...
this is needed to support larger vertex attribute offsets
Reviewed-by: Samuel Pitoiset <samuel.pitoiset@gmail.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10827 >
2021-05-26 12:24:39 +00:00
Rhys Perry
7d23ea20a0
radv: don't allocate DCC predicate if the image doesn't use DCC
...
Fixes replay of RenderDoc captures created before a7c0cf500b .
Signed-off-by: Rhys Perry <pendingchaos02@gmail.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10983 >
2021-05-26 12:06:33 +00:00
Samuel Pitoiset
729ebe4b17
aco: fix emitting discard when the program just ends
...
For fragment shaders that only contain a discard, the exec mask has
to be zero'd and everything discarded.
It seems unnecessary to emit an export here because if the FS has no
exports, the compiler already emits a null export at the end.
Fixes incorrect hair rendering in Detroit: Become Human.
fossil-db (Sienna Cichlid):
Totals from 3 (0.00% of 149839) affected shaders:
CodeSize: 2896 -> 2872 (-0.83%)
Instrs: 556 -> 553 (-0.54%)
Latency: 29266 -> 29214 (-0.18%)
InvThroughput: 3374 -> 3372 (-0.06%)
Cc: 21.1 mesa-stable
Signed-off-by: Samuel Pitoiset <samuel.pitoiset@gmail.com >
Reviewed-by: Daniel Schürmann <daniel@schuermann.dev >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10955 >
2021-05-26 10:32:59 +00:00
Iago Toral Quiroga
5283c6d47b
v3dv: implement VK_KHR_bind_memory2
...
Reviewed-by: Alejandro Piñeiro <apinheiro@igalia.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11001 >
2021-05-26 10:17:53 +00:00
Erik Faye-Lund
ea003df98e
v3d: use helper to simplify things
...
We can use the util_prim_restart_index_from_size helper to avoid
open-coding the implicit index size here.
Reviewed-by: Alejandro Piñeiro <apinheiro@igalia.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10981 >
2021-05-26 09:43:40 +00:00
Iago Toral Quiroga
6a847cbe1d
v3dv: implement VK_KHR_maintenance3
...
We don't have any special restrictions associated with the number
of descriptors in a set other than maybe not exceeding what we can
put in a single memory allocation, so in practice, applications will
be limited by the per-stage contraints defined by other Vulkan limits.
Reviewed-by: Alejandro Piñeiro <apinheiro@igalia.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10970 >
2021-05-26 07:18:19 +00:00
Iago Toral Quiroga
f7ce44b6e5
v3dv: define V3D_MAX_BUFFER_RANGE
...
Reviewed-by: Alejandro Piñeiro <apinheiro@igalia.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10970 >
2021-05-26 07:18:19 +00:00
Samuel Pitoiset
9984ebf173
radv: use radv_dcc_enabled() for the FB mip flush workaround
...
This has no effects because radv_image_has_CB_metadata() still
accounts for DCC which is incorrect. This should be changed.
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/10667 >
2021-05-26 06:59:35 +00:00
Samuel Pitoiset
4631a52f8d
radv: do not decompress DCC for partial resolves if stores are supported
...
It seems unnecessary.
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/10667 >
2021-05-26 06:59:35 +00:00
Samuel Pitoiset
7af5a0c1b9
radv: only init DCC if compressed in the HW resolve path
...
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/10667 >
2021-05-26 06:59:35 +00:00
Samuel Pitoiset
ff38e3aadd
radv: only mark DCC as compressed when drawing if layout allows it
...
Just having DCC enabled on the base level doesn't mean we are
using compressed rendering.
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/10667 >
2021-05-26 06:59:35 +00:00
Samuel Pitoiset
75d7c752af
radv: remove redundant call to radv_dcc_enabled()
...
radv_layout_dcc_compressed() is now per level.
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/10667 >
2021-05-26 06:59:35 +00:00
Samuel Pitoiset
bdb9634151
radv: pass an image range to radv_layout_dcc_compressed()
...
With DCC and mipmaps, some mips can't be compressed and it makes
sense to check this here.
Signed-off-by: Samuel Pitoiset <samuel.pitoiset@gmail.com >
Reviewed-by: Bas Nieuwenhuizen <bas@basnieuwenhuizen.nl >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10667 >
2021-05-26 06:59:35 +00:00
Emma Anholt
9cb06fca73
ci/freedreno: Add another a630 piglit flake.
...
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10986 >
2021-05-26 05:32:48 +00:00
Andres Gomez
1be7d87770
ci: disentangle tags for containers and artifacts produced by them
...
In order to reduce the amount of building work and network traffic, we
use docker caching. For that, we use the MESA_IMAGE_TAG and
MESA_BASE_TAG env variables which build the MESA_IMAGE variable to
identify different containers.
We are also using these tags to identify the cached artifacts produced
by other containers when those are part of the underlying OS to run
directly in DUTs through the DISTRIBUTION_TAG env variable.
The undesirable collateral effect is that we cannot combine a test job
using a container which would like to make use of some of the cached
artifacts created by another container. In other words, we cannot have
a job using a DISTRIBUTION_TAG and a MESA_IMAGE using a different
MESA_[IMAGE|BASE]_TAG variables.
Now, we split the usage in the DISTRIBUTION_TAG through the definition
of MESA_ARTIFACTS_TAG AND MESA_ARTIFACTS_BASE_TAG.
Signed-off-by: Andres Gomez <agomez@igalia.com >
Reviewed-by: Martin Peres <martin.peres@mupuf.org >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10977 >
2021-05-26 08:03:21 +03:00
Mike Blumenkrantz
f9ecbb1e1d
nir/builder: add nir_mask
...
it's handy to have functions for generating masks
Reviewed-by: Jason Ekstrand <jason@jlekstrand.net >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10620 >
2021-05-26 04:06:27 +00:00
Mike Blumenkrantz
360f1032d2
zink: disable push descriptors on amd
...
I'm told this is bad for perf
Reviewed-by: Dave Airlie <airlied@redhat.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10998 >
2021-05-26 03:55:37 +00:00
Mike Blumenkrantz
7a5800af3d
zink: hook up push descriptor and descriptor template extensions
...
Reviewed-by: Dave Airlie <airlied@redhat.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10998 >
2021-05-26 03:55:37 +00:00
Mike Blumenkrantz
e4e20556d6
zink: switch to memory barriers instead of actual buffer barriers
...
drivers don't seem to actually use the buffer part of the info, so this is
just wasting cycles initializing the values
Reviewed-by: Dave Airlie <airlied@redhat.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10996 >
2021-05-26 03:37:50 +00:00
Mike Blumenkrantz
e46b0e87f2
zink: mark some buffer barrier functions inline/static
...
minor optimization
Reviewed-by: Dave Airlie <airlied@redhat.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10996 >
2021-05-26 03:37:50 +00:00
Mike Blumenkrantz
4d62fca087
zink: call tc_driver_internal_flush_notify() on flush
...
I think this is right?
Reviewed-by: Dave Airlie <airlied@redhat.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10882 >
2021-05-25 21:51:17 -04:00
Mike Blumenkrantz
0c1fe392e8
zink: implement a tc is_resource_busy hook
...
this is kinda gross for now, but it gets the job done
Reviewed-by: Dave Airlie <airlied@redhat.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10882 >
2021-05-25 21:51:17 -04:00
Mike Blumenkrantz
517484ea89
zink: force streamout rebind when mapping a streamout buffer for writing
...
if the contents of the buffer change between uses, trigger the rebind path
next time a draw happens for synchronization
Reviewed-by: Dave Airlie <airlied@redhat.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10882 >
2021-05-25 21:51:17 -04:00
Mike Blumenkrantz
a29688a0d1
zink: implement tc idalloc resource id stuff
...
Reviewed-by: Dave Airlie <airlied@redhat.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10882 >
2021-05-25 21:51:16 -04:00
Mike Blumenkrantz
6f5037c9de
zink: move timeline_wait() to screen function
...
Reviewed-by: Dave Airlie <airlied@redhat.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10882 >
2021-05-25 21:50:50 -04:00
Mike Blumenkrantz
6766c983f0
zink: make timeline_wait use only a screen param
...
Reviewed-by: Dave Airlie <airlied@redhat.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10882 >
2021-05-25 21:50:50 -04:00
Mike Blumenkrantz
b27e729c0d
zink: add vertex buffer barriers during bind
...
now we have tracking for vbo binds and can automatically reapply the correct
barrier just before draw if the resource is modified after bind
Reviewed-by: Dave Airlie <airlied@redhat.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10849 >
2021-05-25 21:16:44 -04:00
Mike Blumenkrantz
be40886521
zink: emit descriptor barriers and references during bind
...
there's not actually any reason to do these during draw other than wasting
cpu cycles, and it has the side benefit of providing a bunch more info for rebinds
image resources for gfx shaders need to have their barriers deferred until draw time,
however, as it's unknown what layout they'll require until that point due to potentially
being bound to multiple descriptor types
Reviewed-by: Dave Airlie <airlied@redhat.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10849 >
2021-05-25 21:16:43 -04:00
Mike Blumenkrantz
6eb290341b
zink: improve samplerview update flagging
...
we shouldn't actually need to use the hash value here now that the
surfaces and bufferviews have been deduplicated
Reviewed-by: Dave Airlie <airlied@redhat.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10849 >
2021-05-25 20:53:01 -04:00
Mike Blumenkrantz
425642bec1
zink: abstract descriptor functionality and make descriptor structs private
...
the first step to adding modular descriptor managers is to isolate the existing one
so that it can be easily swapped out
Reviewed-by: Dave Airlie <airlied@redhat.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10849 >
2021-05-25 20:53:00 -04:00
Mike Blumenkrantz
d54c21d279
zink: replace has_descriptors program member with a util function
...
Reviewed-by: Dave Airlie <airlied@redhat.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10849 >
2021-05-25 20:52:38 -04:00
Mike Blumenkrantz
9d128e6aed
zink: pass descriptor type to set layout create()
...
this will be useful in the future
Reviewed-by: Dave Airlie <airlied@redhat.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10849 >
2021-05-25 20:52:38 -04:00
Mike Blumenkrantz
6dcad430dd
zink: unify pipeline layout creation and move to descriptor_program_init
...
the descriptor layouts are the last component needed to create the pipeline
layout, so it makes sense to streamline setup by having the pipeline layout
created from a single place for both types of pipelines
Reviewed-by: Dave Airlie <airlied@redhat.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10849 >
2021-05-25 20:52:38 -04:00
Mike Blumenkrantz
a98e11ce21
zink: make a public util function for allocating descriptor sets
...
Reviewed-by: Dave Airlie <airlied@redhat.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10849 >
2021-05-25 20:52:38 -04:00
Mike Blumenkrantz
02f8e860e5
zink: make descriptor_layout_get a public util function
...
Reviewed-by: Dave Airlie <airlied@redhat.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10849 >
2021-05-25 20:52:38 -04:00
Mike Blumenkrantz
f20b3c5aa9
zink: rename ptr_add_usage -> batch_ptr_add_usage
...
Reviewed-by: Dave Airlie <airlied@redhat.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10849 >
2021-05-25 20:52:37 -04:00
Yiwei Zhang
f61337b549
egl/android: check front rendering support for cros gralloc
...
Enable EGL_KHR_mutable_render_buffer when below conditions are met:
1. Driver part implementation of this extension is available
2. Loader part implementation of this extension is available
3. ClientAPIs must be OpenGL ES bits (ES, ES2 or ES3)
4. Gralloc is cros gralloc and it supports front render usage query
(4) is optional as long as another gralloc supports similar query.
Upon window surface creation, if the surface type has mutable render
buffer, then append the cached front rendering usage to the existing
usage and properly set to the ANativeWindow.
Signed-off-by: Yiwei Zhang <zzyiwei@chromium.org >
Reviewed-by: Emma Anholt <emma@anholt.net >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10685 >
2021-05-26 00:05:33 +00:00
Yiwei Zhang
abec42c9a3
gallium/dri: implement EGL_KHR_mutable_render_buffer
...
Tested with low-lantency stylus apps with this extension enabled, no
regression on the cts.
Signed-off-by: Yiwei Zhang <zzyiwei@chromium.org >
Reviewed-by: Emma Anholt <emma@anholt.net >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10685 >
2021-05-26 00:05:33 +00:00
Yiwei Zhang
fca4b6877a
gallium/st: add a back buffer fallback for front rendering
...
Unlike front buffer used by big GL API for front rendering,
EGL_KHR_mutable_render_buffer together with ES redirects GL_BACK to the
front buffer.
This patch adds a fallback to use back buffer and ensures no behavior
change for unrelated frontends.
Signed-off-by: Yiwei Zhang <zzyiwei@chromium.org >
Reviewed-by: Emma Anholt <emma@anholt.net >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10685 >
2021-05-26 00:05:33 +00:00
Nanley Chery
19a8bd4c63
intel/isl: Fix HiZ+CCS comment about ambiguates
...
Note that CCS isn't ambiguated during a HiZ ambiguate. Dumping the CCS
surface after a HiZ ambiguate shows that the CCS is unchanged.
Fixes: 98dc7f56b7 ("intel/isl: Add a separate ISL_AUX_USAGE_HIZ_CCS_WT")
Reviewed-by: Sagar Ghuge <sagar.ghuge@intel.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/9112 >
2021-05-25 22:24:36 +00:00
Nanley Chery
34dbbfdd14
anv,iris: Port the D16 workaround stalls to BLORP
...
Commit cd40110420 added stalls before register writes that occur when
drivers emit depth stencil packets. However, it only did so for
non-BLORP draw calls. Since those packets are sometimes emitted during
BLORP calls, add stalls there too.
Closes: https://gitlab.freedesktop.org/mesa/mesa/-/issues/4574
Cc: mesa-stable
Reviewed-by: Lionel Landwerlin <lionel.g.landwerlin@intel.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10939 >
2021-05-25 20:55:27 +00:00
Nanley Chery
afe3f373a4
intel: Limit the D16 workarounds to Gfx12.0
...
The workarounds introduced in cd40110420 are no longer needed on
Gfx12.5.
Suggested-by: Lionel Landwerlin <lionel.g.landwerlin@intel.com >
Reviewed-by: Lionel Landwerlin <lionel.g.landwerlin@intel.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10939 >
2021-05-25 20:55:27 +00:00
Andres Gomez
07b86e64a5
ci: add VKD3D-Proton testsuite job for radv's Navy Flounder
...
Signed-off-by: Andres Gomez <agomez@igalia.com >
Reviewed-by: Martin Peres <martin.peres@mupuf.org >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10870 >
2021-05-25 17:03:25 +00:00
Andres Gomez
44b085375c
ci: add VKD3D-Proton testsuite runner
...
Signed-off-by: Andres Gomez <agomez@igalia.com >
Reviewed-by: Martin Peres <martin.peres@mupuf.org >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10870 >
2021-05-25 17:03:25 +00:00
Andres Gomez
fb8a4d89a2
ci: include VKD3D-Proton tests into the VK test container
...
Instead of installing the distribution package, build and install
locally, including the tests.
Signed-off-by: Andres Gomez <agomez@igalia.com >
Reviewed-by: Martin Peres <martin.peres@mupuf.org >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10870 >
2021-05-25 17:03:25 +00:00
Andres Gomez
537c9460fa
ci: add radv's trace job for Navy Flounder
...
Signed-off-by: Andres Gomez <agomez@igalia.com >
Reviewed-by: Martin Peres <martin.peres@mupuf.org >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10870 >
2021-05-25 17:03:25 +00:00
Andres Gomez
a71ffa4592
ci: uprev DXVK to 1.8.1
...
Signed-off-by: Andres Gomez <agomez@igalia.com >
Reviewed-by: Martin Peres <martin.peres@mupuf.org >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10870 >
2021-05-25 17:03:25 +00:00
Andres Gomez
d0e6863bf1
ci: uprev apitrace to 10.0
...
Signed-off-by: Andres Gomez <agomez@igalia.com >
Reviewed-by: Martin Peres <martin.peres@mupuf.org >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10870 >
2021-05-25 17:03:25 +00:00
Andres Gomez
fa8ca10e27
ci: remove radv's trace job for Polaris10
...
Signed-off-by: Andres Gomez <agomez@igalia.com >
Reviewed-by: Martin Peres <martin.peres@mupuf.org >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10870 >
2021-05-25 17:03:25 +00:00
Andres Gomez
f0f812dbe7
ci: update radv's trace job tag for Raven
...
Signed-off-by: Andres Gomez <agomez@igalia.com >
Reviewed-by: Martin Peres <martin.peres@mupuf.org >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10870 >
2021-05-25 17:03:25 +00:00
Chia-I Wu
62014aeccd
util/u_thread: fix u_thread_setname for long names
...
"WSI swapchain queue", set by vulkan/wsi/x11, is longer than 15
characters.
Signed-off-by: Chia-I Wu <olvaffe@gmail.com >
Reviewed-by: Marek Olšák <marek.olsak@amd.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10935 >
2021-05-25 16:39:02 +00:00
Marek Olšák
7844bdadac
radeonsi: remove DFSM after we discovered how bad it is
...
Reviewed-by: Pierre-Eric Pelloux-Prayer <pierre-eric.pelloux-prayer@amd.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10813 >
2021-05-25 16:15:44 +00:00
Marek Olšák
56a450e984
radeonsi: disable DFSM on gfx9 by default because it decreases performance a lot
...
Cc: mesa-stable@lists.freedesktop.org
Reviewed-by: Pierre-Eric Pelloux-Prayer <pierre-eric.pelloux-prayer@amd.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10813 >
2021-05-25 16:15:44 +00:00
Marek Olšák
2fad90dc4a
radeonsi: implement threaded context callbacks for resource busy checking
...
Reviewed-by: Pierre-Eric Pelloux-Prayer <pierre-eric.pelloux-prayer@amd.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10813 >
2021-05-25 16:15:44 +00:00
Marek Olšák
9ba17ec21a
radeonsi: generate buffer_id_unique for u_threaded_context
...
Reviewed-by: Pierre-Eric Pelloux-Prayer <pierre-eric.pelloux-prayer@amd.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10813 >
2021-05-25 16:15:44 +00:00
Marek Olšák
9dc7fff448
radeonsi: allow changing the NGG subgroup size to 256 but don't change it yet
...
Currently, 128 seems to have the best performance.
Acked-by: Pierre-Eric Pelloux-Prayer <pierre-eric.pelloux-prayer@amd.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10813 >
2021-05-25 16:15:44 +00:00
Marek Olšák
13acbaecd8
radeonsi: rewrite the prefix sum computation for shader culling
...
Instead of storing the vertex mask per wave into LDS and then computing
the prefix sum, store 8-bit bitcounts (vertex counts) of the vertex masks
into LDS. This allows us to compute the sum using v_sad_u8, which computes
a sum of 4 i8vec4 components in one instruction.
Each i8vec4 of vertex counts is loaded in parallel threads (one dword
per thread) instead of all being loaded in thread 0, and readlane copies
them to SGPRs instead of readfirstlane.
LDS is no longer initialized before culling. Instead, the counts for
inactive waves are masked with AND later.
Incorrect old comments are also fixed.
This change removes 80 bytes from the code size, and it allows increasing
the workgroup size from 128 to 256. (which is the main motivation for this)
Now changing the workgroup size with wave64 has no effect on the code size.
Switching to wave32 with 8 waves even generates slightly smaller code than
wave64 with 4 waves.
Reviewed-by: Timur Kristóf <timur.kristof@gmail.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10813 >
2021-05-25 16:15:44 +00:00
Marek Olšák
27c9e77c6a
radeonsi: add missing threaded_resource_deinit calls in fail paths
...
Reviewed-by: Pierre-Eric Pelloux-Prayer <pierre-eric.pelloux-prayer@amd.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10813 >
2021-05-25 16:15:44 +00:00
Marek Olšák
64b75cc12e
radeonsi: add a gfx10 hw bug workaround with the barrier before gs_alloc_req
...
Fixes: 8845a23698 - amd: add NAVI10 PCI IDs
Acked-by: Pierre-Eric Pelloux-Prayer <pierre-eric.pelloux-prayer@amd.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10813 >
2021-05-25 16:15:44 +00:00
Marek Olšák
712f74f590
radeonsi: remove 8 bytes from si_resource, turn other 4 bytes into padding
...
Reviewed-by: Pierre-Eric Pelloux-Prayer <pierre-eric.pelloux-prayer@amd.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10813 >
2021-05-25 16:15:44 +00:00
Marek Olšák
5af124c92c
radeonsi: change si_resource::alignment to alignment_log2 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/10813 >
2021-05-25 16:15:44 +00:00
Marek Olšák
0c8d65a39a
radeonsi: improve generated culling code by adding optimization barriers
...
This removes a lot of instructions and 16 bytes from the code size.
Acked-by: Pierre-Eric Pelloux-Prayer <pierre-eric.pelloux-prayer@amd.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10813 >
2021-05-25 16:15:44 +00:00
Marek Olšák
980a70573f
radeonsi: re-enable fast launch with indexed tri strips because it doesn't hang
...
I don't know which change fixed this, but I can't reproduce the hang anymore.
Acked-by: Timur Kristóf <timur.kristof@gmail.com >
Acked-by: Pierre-Eric Pelloux-Prayer <pierre-eric.pelloux-prayer@amd.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10813 >
2021-05-25 16:15:44 +00:00
Marek Olšák
a0fcd37731
radeonsi: remove a twice duplicated workaround for VERT_GRP_SIZE
...
This enables better lane occupancy.
Acked-by: Timur Kristóf <timur.kristof@gmail.com >
Acked-by: Pierre-Eric Pelloux-Prayer <pierre-eric.pelloux-prayer@amd.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10813 >
2021-05-25 16:15:44 +00:00
Marek Olšák
c8e8979d6b
radeonsi: fix the fast launch vert/prim thread counts if they are trimmed
...
This fixes the case when the counts were out of sync because one of them
was decreased.
Acked-by: Pierre-Eric Pelloux-Prayer <pierre-eric.pelloux-prayer@amd.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10813 >
2021-05-25 16:15:44 +00:00
Marek Olšák
f6e19fd831
radeonsi: don't use GS fast launch with small instances
...
Acked-by: Timur Kristóf <timur.kristof@gmail.com >
Acked-by: Pierre-Eric Pelloux-Prayer <pierre-eric.pelloux-prayer@amd.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10813 >
2021-05-25 16:15:44 +00:00
Marek Olšák
e33e525e16
radeonsi: don't disable L2 caching for staging textures
...
Uncached access can be slow if the box is not aligned nicely.
Also, caching in L2 might enable bigger PCIe bursts.
Reviewed-by: Pierre-Eric Pelloux-Prayer <pierre-eric.pelloux-prayer@amd.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10813 >
2021-05-25 16:15:44 +00:00
Marek Olšák
36e07198a7
radeonsi: always use the L2 LRU cache policy for faster clears and copies
...
Waves and CP DMA can finish sooner if L2 doesn't do any evictions, which
is hard to predict.
Reviewed-by: Pierre-Eric Pelloux-Prayer <pierre-eric.pelloux-prayer@amd.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10813 >
2021-05-25 16:15:44 +00:00
Marek Olšák
805c785314
radeonsi: fix a coherency issue when VS memory stores are not visible in PS
...
If a shader has no param exports (no varyings), the pixel shader can start
after the VS position is written before the vertex shader finishes.
The fix is to wait for the memory stores before the position export.
The code needs to be restructured. First prepare param exports to get
nr_param_exports, then emit position exports with the wait, and then
emit param exports.
Reviewed-by: Timur Kristóf <timur.kristof@gmail.com >
Acked-by: Pierre-Eric Pelloux-Prayer <pierre-eric.pelloux-prayer@amd.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10813 >
2021-05-25 16:15:44 +00:00
Marek Olšák
d8fefb1322
radeonsi: add a gfx10 bug workaround for NOT_EOP
...
Fixes: cc24ec8c07 - radeonsi: set NOT_EOP for back-to-back draws on gfx10+
Reviewed-by: Pierre-Eric Pelloux-Prayer <pierre-eric.pelloux-prayer@amd.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10813 >
2021-05-25 16:15:44 +00:00
Marek Olšák
7effb291e6
radeonsi: handle PIPE_CAP_MAX_VERTEX_BUFFERS
...
no change in behavior because the value is the same as the default
Reviewed-by: Pierre-Eric Pelloux-Prayer <pierre-eric.pelloux-prayer@amd.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10813 >
2021-05-25 16:15:44 +00:00
Marek Olšák
c7e731c737
radeonsi: remove unused SI_IMAGE_ACCESS_AS_BUFFER
...
Reviewed-by: Pierre-Eric Pelloux-Prayer <pierre-eric.pelloux-prayer@amd.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10813 >
2021-05-25 16:15:44 +00:00
Marek Olšák
66c8e40d69
winsys/amdgpu: don't hold a mutex while accessing is_shared
...
It adds overhead to amdgpu_bo_wait and I'm not sure whether the mutex
is even needed.
Reviewed-by: Pierre-Eric Pelloux-Prayer <pierre-eric.pelloux-prayer@amd.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10813 >
2021-05-25 16:15:44 +00:00
Marek Olšák
4602147561
ac/llvm: don't draw the primitive for the dummy export workaround for Navi1x
...
for conservative rasterization
Reviewed-by: Pierre-Eric Pelloux-Prayer <pierre-eric.pelloux-prayer@amd.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10813 >
2021-05-25 16:15:44 +00:00
Marek Olšák
f33500b187
ac/llvm: set range metadata on mbcnt and deduplicate get_thread_id
...
Reviewed-by: Timur Kristóf <timur.kristof@gmail.com >
Acked-by: Pierre-Eric Pelloux-Prayer <pierre-eric.pelloux-prayer@amd.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10813 >
2021-05-25 16:15:44 +00:00
Marek Olšák
57e182c75b
ac/llvm: allow ac_build_optimization_barrier with SGPRs, pointers, and metadata
...
sgpr=true prevents moving the value to a VGPR.
Reviewed-by: Pierre-Eric Pelloux-Prayer <pierre-eric.pelloux-prayer@amd.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10813 >
2021-05-25 16:15:44 +00:00
Marek Olšák
5f33f80dc7
ac/llvm: expose set_range_metadata to more users
...
I sometimes use it for experiments. It will be used later.
Reviewed-by: Timur Kristóf <timur.kristof@gmail.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10813 >
2021-05-25 16:15:44 +00:00
Marek Olšák
94a1f45e15
ac/llvm: set target features per function instead of per target machine
...
This is a cleanup that allows the removal of the wave32 target machine and
the wave32 pass manager.
Reviewed-by: Pierre-Eric Pelloux-Prayer <pierre-eric.pelloux-prayer@amd.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10813 >
2021-05-25 16:15:44 +00:00
Marek Olšák
38d3c4251d
ac/gpu_info: set has_zero_index_buffer_bug for Navi12 too
...
Acked-by: Timur Kristóf <timur.kristof@gmail.com >
Reviewed-by: Pierre-Eric Pelloux-Prayer <pierre-eric.pelloux-prayer@amd.com >
Cc: mesa-stable@lists.freedesktop.org
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10813 >
2021-05-25 16:15:44 +00:00
Marek Olšák
fbecc47430
amd: fix incorrect addrlib comment for HTILE equations
...
Reviewed-by: Pierre-Eric Pelloux-Prayer <pierre-eric.pelloux-prayer@amd.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10813 >
2021-05-25 16:15:44 +00:00
Marek Olšák
ade5d9c2a7
amd/registers: regenerate json files without 32-bit register fields
...
Only a few of those were used in drivers.
Acked-by: Timur Kristóf <timur.kristof@gmail.com >
Reviewed-by: Pierre-Eric Pelloux-Prayer <pierre-eric.pelloux-prayer@amd.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10813 >
2021-05-25 16:15:44 +00:00
Marek Olšák
72362f2830
amd/registers: don't generate 32-bit register fields
...
This removes confusing register types due to deduplication, such as:
"name": "SQ_WAVE_TTMP10",
"type_ref": "SPI_SHADER_USER_DATA_PS_0"
Reviewed-by: Timur Kristóf <timur.kristof@gmail.com >
Reviewed-by: Pierre-Eric Pelloux-Prayer <pierre-eric.pelloux-prayer@amd.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10813 >
2021-05-25 16:15:43 +00:00
Samuel Pitoiset
287c06228c
radv: remove an useless TODO for dynamic line width
...
We can't do anything it seems.
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/10881 >
2021-05-25 14:11:44 +00:00
Samuel Pitoiset
eaef5c2934
radv: ignore dynamic blend constants if blend isn't enabled
...
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/10881 >
2021-05-25 14:11:44 +00:00
Timur Kristóf
c783293e47
aco: Don't eliminate exec write when it's used by a copy later.
...
Fixes: bc13049747
Signed-off-by: Timur Kristóf <timur.kristof@gmail.com >
Reviewed-by: Daniel Schürmann <daniel@schuermann.dev >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10920 >
2021-05-25 13:50:43 +00:00
Alyssa Rosenzweig
5f8778a583
panfrost: Add message preload to pan_shader_info
...
Signed-off-by: Alyssa Rosenzweig <alyssa@collabora.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10967 >
2021-05-25 13:10:37 +00:00
Alyssa Rosenzweig
821b80d68a
panfrost: Add Message Preload descriptor XML
...
New to v7, allows executing up to +LD_VAR_IMM or +VAR_TEX instructions
before starting the shader.
Signed-off-by: Alyssa Rosenzweig <alyssa@collabora.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10967 >
2021-05-25 13:10:37 +00:00
Alyssa Rosenzweig
84cda22b13
panfrost/ci: Run jobs with PAN_MESA_DEBUG=sync
...
This way if there's a fault, the pipeline won't accidentally pass
and let bugs slip into main. This seems to have occurred on both T720
and G72, leading to flakes on both. I want flakeless CI, so this is a
step in eliminating flakes before they hit the tree.
Signed-off-by: Alyssa Rosenzweig <alyssa@collabora.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10938 >
2021-05-25 12:55:15 +00:00
Alyssa Rosenzweig
949343f8ef
panfrost/ci: Remove reference to dated flag
...
This was removed ages ago, nobody updated it.
Signed-off-by: Alyssa Rosenzweig <alyssa@collabora.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10938 >
2021-05-25 12:55:15 +00:00
Alyssa Rosenzweig
98b2f97702
panfrost/ci: Disable terrain trace
...
It's reliably faulting in CI but not locally, and I can't figure out
what the difference could possibly be. Regardless I can't fix the fault
otherwise, and faultless CI matters more than losing a single trace
(from an app I manually test anyway).
Signed-off-by: Alyssa Rosenzweig <alyssa@collabora.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10938 >
2021-05-25 12:55:15 +00:00
Alyssa Rosenzweig
ac1ee2bebe
panfrost: Increase tiler_heap max allocation to 64MB
...
We previously allocated only 16MB, but this isn't always enough. Now
that we have growable (heap) on recent kernels, there's not much reason
to try to shrink this allocation.
Fixes OUT_OF_MEMORY fault on furmark trace.
Signed-off-by: Alyssa Rosenzweig <alyssa@collabora.com >
Cc: mesa-stable
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10938 >
2021-05-25 12:55:15 +00:00
Alyssa Rosenzweig
95337edcd7
panfrost: Remove minimal mode
...
Superseded by abort-on-fault. It didn't work correctly in the presence
of MMU faults anyway.
Signed-off-by: Alyssa Rosenzweig <alyssa@collabora.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10938 >
2021-05-25 12:55:15 +00:00
Alyssa Rosenzweig
2f4b5a4ebe
panfrost: Abort on faults in SYNC mode
...
This allows failing fast (optionally still tracing, if set with
PAN_MESA_DEBUG=trace) when a GPU fault is introduced. This is better
behaviour for both use cases:
1. When debugging a known fault, setting this mode together with trace
will stop the driver as soon as a buggy command stream is submitted,
and the offending stream will be the last trace file.
2. When running test suites (particularly in CI), setting this mode
will detect faults and crash, causing the pipeline to fail fast as
opposed to incorrectly marking the run green if the test happens to
pass despite the faults and slow downs.
Signed-off-by: Alyssa Rosenzweig <alyssa@collabora.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10938 >
2021-05-25 12:55:15 +00:00
Alyssa Rosenzweig
7bc3730b3f
panfrost: Lower max inputs again
...
Due to Midgard ABI silliness. We could fix this properly but I'm not
aware of any app that needs more than 16, so let's just revert to the
behaviour matching the DDK.
Fixes: fdbf8c96fe ("panfrost: Use natural shader limits")
Signed-off-by: Alyssa Rosenzweig <alyssa@collabora.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10938 >
2021-05-25 12:55:15 +00:00
Lucas Stach
7b9d8d1936
etnaviv: flush used render buffers on context flush when neccessary
...
Some resources like backbuffers are explicitly flushed by the frontend
at the appropriate time, others however won't get flushed explicitly.
Remember those resources when they get emitted as a render buffer and
flush them on a context flush to make their content visible to other
entities sharing the buffer.
We still keep the optimized path for most resources where the frontend
promises to do the flushing for us and only enable implicit flushing
when a buffer handle is exported/imported without the
PIPE_HANDLE_USAGE_EXPLICIT_FLUSH flag set.
Signed-off-by: Lucas Stach <l.stach@pengutronix.de >
Reviewed-by: Christian Gmeiner <christian.gmeiner@gmail.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/7603 >
2021-05-25 10:38:29 +00:00
Lucas Stach
1c539bbb06
etnaviv: remove double assigment of surface->texture
...
surf->base.texture is already assigned earlier via a proper
pipe_resource_reference call. Remove the superfluous assignement.
Signed-off-by: Lucas Stach <l.stach@pengutronix.de >
Reviewed-by: Christian Gmeiner <christian.gmeiner@gmail.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/7603 >
2021-05-25 10:38:29 +00:00
Lucas Stach
3824429da0
frontend/dri: add EXPLICIT_FLUSH hint in dri2_resource_get_param
...
dri2_resource_get_param() is called from two different places right now.
Only one of them adds the EXPLICIT_FLUSH hint to the handle usage, which
may disable the optimizations provided by this hint without a reason.
Make sure to always add this hint when appropriate.
Signed-off-by: Lucas Stach <l.stach@pengutronix.de >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/7603 >
2021-05-25 10:38:29 +00:00
Lionel Landwerlin
40eb8b7830
intel/perf: rename metric descriptions
...
There is an effort to drop the "Gen" prefix from much of our codebase.
This just applies this to the metrics.
Signed-off-by: Lionel Landwerlin <lionel.g.landwerlin@intel.com >
Reviewed-by: Kenneth Graunke <kenneth@whitecape.org >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10930 >
2021-05-25 10:09:44 +00:00
Lionel Landwerlin
16bff57543
intel/perf: update Gen9/11 programming for AsyncCompute
...
Adding a register, similar to what was done for RenderBasic.
Signed-off-by: Lionel Landwerlin <lionel.g.landwerlin@intel.com >
Reviewed-by: Kenneth Graunke <kenneth@whitecape.org >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10930 >
2021-05-25 10:09:44 +00:00
Lionel Landwerlin
290f5a0156
intel/perf: add EHL availability condition to HDCAndSF counters
...
The availability of those counters depends on the topology.
Signed-off-by: Lionel Landwerlin <lionel.g.landwerlin@intel.com >
Reviewed-by: Kenneth Graunke <kenneth@whitecape.org >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10930 >
2021-05-25 10:09:44 +00:00
Lionel Landwerlin
6ed558f8ca
intel/perf: update Gen11 RenderBasic programming
...
Signed-off-by: Lionel Landwerlin <lionel.g.landwerlin@intel.com >
Reviewed-by: Kenneth Graunke <kenneth@whitecape.org >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10930 >
2021-05-25 10:09:44 +00:00
Lionel Landwerlin
6f9dcb05ff
intel/perf: update Gen11 RenderBasic programming
...
Simple order change.
Signed-off-by: Lionel Landwerlin <lionel.g.landwerlin@intel.com >
Reviewed-by: Kenneth Graunke <kenneth@whitecape.org >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10930 >
2021-05-25 10:09:44 +00:00
Lionel Landwerlin
16e344bc79
intel/perf: update gen9/11 TestOa configs
...
Programming an additional FLEX register.
Signed-off-by: Lionel Landwerlin <lionel.g.landwerlin@intel.com >
Reviewed-by: Kenneth Graunke <kenneth@whitecape.org >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10930 >
2021-05-25 10:09:44 +00:00
Iago Toral Quiroga
de75f43aef
v3dv: expose VK_KHR_maintenance2
...
We don't do anything for input attachment aspects read by a subpass
since it doesn't have performance implications for us.
We also ignore the the new depth stencil layouts because they don't
have practical implications for our implementation.
We also ignore the new usage info for views since we are not currently
making decisions about views based on their usage.
Reviewed-by: Alejandro Piñeiro <apinheiro@igalia.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10951 >
2021-05-25 09:12:35 +00:00
Iago Toral Quiroga
b32a48c7e2
v3dv: allow creating uncompressed views from compressed images and vice versa
...
Relevant CTS tests (requires VK_KHR_maintenance2):
dEQP-VK.image.texel_view_compatible.*
Reviewed-by: Alejandro Piñeiro <apinheiro@igalia.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10951 >
2021-05-25 09:12:35 +00:00
Iago Toral Quiroga
8e3179545e
v3dv: fix texture_size()
...
The uniform data for the texture size as produced by the compiler
contains the texture index directly and is not packed with
v3d_unit_data_create, so using v3d_unit_data_get_unit is not
correct.
Reviewed-by: Alejandro Piñeiro <apinheiro@igalia.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10951 >
2021-05-25 09:12:35 +00:00
Iago Toral Quiroga
32abeac8a8
v3dv: implement VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_POINT_CLIPPING_PROPERTIES
...
Relevant CTS test (requires VK_KHR_maintenance2);
dEQP-VK.clipping.clip_volume.clipped.large_points
Reviewed-by: Alejandro Piñeiro <apinheiro@igalia.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10951 >
2021-05-25 09:12:35 +00:00
Erik Faye-Lund
cb6827eb05
zink: simplify emit_load_const
...
This is the combination of two simplifications I spotted while
researching some other issue:
1. We can use nir_const_value_as_uint to save some conditionals
2. We can unify the vector and scalar code-paths to reduce some
duplicated logic.
While we're at it, switch to using NIR_MAX_VEC_COMPONENTS rather than a
dynamic array size on the stack, because that tends to generate better
code.
Reviewed-By: Mike Blumenkrantz <michael.blumenkrantz@gmail.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10956 >
2021-05-25 08:59:57 +00:00
Tomeu Vizoso
507e8907af
ci/piglit: Use wget instead of ci-fairy to check a file exists
...
ci-fairy minio ls will try to list files in the path given, which for
trace buckets is generally forbidden. We don't really need to do any
listing in this case, so use wget instead to check that the reference
image doesn't exist yet.
Previous to this patch, trace jobs would re-upload all reference images
to minio every time because they wouldn't be able to verify that the
reference image was already there. Jobs would often take up to 4 minutes
needlessly re-uploading these files.
Signed-off-by: Tomeu Vizoso <tomeu.vizoso@collabora.com >
Reviewed-by: Emma Anholt <emma@anholt.net >
Reviewed-by: Alyssa Rosenzweig <alyssa.rosenzweig@collabora.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10953 >
2021-05-25 06:58:28 +00:00
Yiwei Zhang
c8e90a022e
radv: fix AHB leak upon exportable allocation
...
A successful AHardwareBuffer_allocate itself will increase a refcount on
the newly allocated AHB. For the import case, the implementation must
acquire a reference on the AHB. So if we layer the exportable allocation
on top of AHB allocation and AHB import, we must release an AHB
reference to avoid leak.
Signed-off-by: Yiwei Zhang <zzyiwei@chromium.org >
Reviewed-by: Tapani Pälli <tapani.palli@intel.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10940 >
2021-05-25 06:31:25 +00:00
Yiwei Zhang
2797c75426
anv: fix AHB leak upon exportable allocation
...
A successful AHardwareBuffer_allocate itself will increase a refcount on
the newly allocated AHB. For the import case, the implementation must
acquire a reference on the AHB. So if we layer the exportable allocation
on top of AHB allocation and AHB import, we must release an AHB
reference to avoid leak.
Signed-off-by: Yiwei Zhang <zzyiwei@chromium.org >
Reviewed-by: Tapani Pälli <tapani.palli@intel.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10940 >
2021-05-25 06:31:25 +00:00
Icecream95
f18c55708a
pan/mdg: Try scheduling load/store ops in pairs
...
If there are an even number of load/store ops to be scheduled, and
only one load/store op is available for scheduling, try using another
instruction type.
Helps bundle count at the cost of register pressure.
total instructions in shared programs: 333405 -> 333599 (0.06%)
instructions in affected programs: 27576 -> 27770 (0.70%)
helped: 43
HURT: 69
helped stats (abs) min: 1 max: 61 x̄: 5.49 x̃: 1
helped stats (rel) min: 0.18% max: 11.71% x̄: 2.27% x̃: 1.75%
HURT stats (abs) min: 1 max: 95 x̄: 6.23 x̃: 2
HURT stats (rel) min: 0.06% max: 32.42% x̄: 2.59% x̃: 1.53%
95% mean confidence interval for instructions value: -0.93 4.40
95% mean confidence interval for instructions %-change: -0.09% 1.53%
Inconclusive result (value mean confidence interval includes 0).
total bundles in shared programs: 155785 -> 152371 (-2.19%)
bundles in affected programs: 83689 -> 80275 (-4.08%)
helped: 2538
HURT: 110
helped stats (abs) min: 1 max: 59 x̄: 1.53 x̃: 1
helped stats (rel) min: 0.14% max: 22.52% x̄: 8.71% x̃: 7.69%
HURT stats (abs) min: 1 max: 92 x̄: 4.32 x̃: 1
HURT stats (rel) min: 0.21% max: 55.76% x̄: 4.61% x̃: 2.86%
95% mean confidence interval for bundles value: -1.41 -1.17
95% mean confidence interval for bundles %-change: -8.37% -7.94%
Bundles are helped.
total quadwords in shared programs: 264143 -> 260520 (-1.37%)
quadwords in affected programs: 141705 -> 138082 (-2.56%)
helped: 2560
HURT: 96
helped stats (abs) min: 1 max: 15 x̄: 1.49 x̃: 1
helped stats (rel) min: 0.06% max: 14.29% x̄: 5.62% x̃: 5.00%
HURT stats (abs) min: 1 max: 11 x̄: 2.02 x̃: 2
HURT stats (rel) min: 0.12% max: 6.20% x̄: 1.94% x̃: 1.47%
95% mean confidence interval for quadwords value: -1.42 -1.31
95% mean confidence interval for quadwords %-change: -5.50% -5.20%
Quadwords are helped.
total registers in shared programs: 21709 -> 22156 (2.06%)
registers in affected programs: 2684 -> 3131 (16.65%)
helped: 55
HURT: 470
helped stats (abs) min: 1 max: 2 x̄: 1.05 x̃: 1
helped stats (rel) min: 6.67% max: 40.00% x̄: 15.37% x̃: 14.29%
HURT stats (abs) min: 1 max: 4 x̄: 1.07 x̃: 1
HURT stats (rel) min: 6.67% max: 100.00% x̄: 31.63% x̃: 25.00%
95% mean confidence interval for registers value: 0.79 0.91
95% mean confidence interval for registers %-change: 24.69% 28.72%
Registers are HURT.
total threads in shared programs: 24450 -> 24360 (-0.37%)
threads in affected programs: 234 -> 144 (-38.46%)
helped: 12
HURT: 63
helped stats (abs) min: 1 max: 2 x̄: 1.50 x̃: 1
helped stats (rel) min: 100.00% max: 100.00% x̄: 100.00% x̃: 100.00%
HURT stats (abs) min: 1 max: 2 x̄: 1.71 x̃: 2
HURT stats (rel) min: 50.00% max: 50.00% x̄: 50.00% x̃: 50.00%
95% mean confidence interval for threads value: -1.49 -0.91
95% mean confidence interval for threads %-change: -38.74% -13.26%
Threads are [HURT].
total loops in shared programs: 286 -> 286 (0.00%)
loops in affected programs: 0 -> 0
helped: 0
HURT: 0
total spills in shared programs: 521 -> 593 (13.82%)
spills in affected programs: 260 -> 332 (27.69%)
helped: 8
HURT: 9
total fills in shared programs: 1598 -> 1659 (3.82%)
fills in affected programs: 839 -> 900 (7.27%)
helped: 9
HURT: 10
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/5745 >
2021-05-24 20:54:37 +00:00
Alyssa Rosenzweig
af78f52493
panfrost: Only link varyings once in good conditions
...
If the varying descriptors will always be the same for a given shader
variant (certainly true if none of separable shaders, transform
feedback, or point sprites are used), we only need to link once. Now
that pan_pool supports both owned and unowned modes, we have the
flexibility to reuse the code path for both allocation strategies.
Signed-off-by: Alyssa Rosenzweig <alyssa@collabora.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10954 >
2021-05-24 20:35:46 +00:00
Italo Nicola
c746747cb8
panfrost: fix GL_EXT_multisampled_render_to_texture regression
...
Signed-off-by: Italo Nicola <italonicola@collabora.com >
Fixes: ff3eada7eb ("panfrost: Use the generic preload and FB helpers in the gallium driver")
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10962 >
2021-05-24 20:19:30 +00:00
Marek Olšák
80f0726e4c
amd: add Beige Goby support
...
Acked-by: Samuel Pitoiset <samuel.pitoiset@gmail.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10878 >
2021-05-24 17:41:34 +00:00
Aaron Liu
c54bb135aa
amd: add Yellow Carp support
...
Signed-off-by: Aaron Liu <aaron.liu@amd.com >
Signed-off-by: Marek Olšák <marek.olsak@amd.com >
Acked-by: Samuel Pitoiset <samuel.pitoiset@gmail.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10878 >
2021-05-24 17:41:34 +00:00
Marek Olšák
0e8100bf58
radeonsi: simplify the NGG culling vertex count heuristic
...
This removes another chip-specific switch.
It enables a lower threshold on Navi1x, which should be fine.
Acked-by: Timur Kristóf <timur.kristof@gmail.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10878 >
2021-05-24 17:41:34 +00:00
Emma Anholt
a76ec17f12
mesa/st: Fix iris regression with clip distances.
...
In general gallium shaders are all SSO and it's up to the driver to handle
lining up varying storage between stages at draw time. However, there's a
NIR option "unify_interfaces" that iris uses which applies to non-SSO (as
indicated by nir->info.separate_shader) shaders and makes the inputs_read
and outputs_written match up at GLSL-to-NIR link time, and then iris then
avoids any lowering passes that would add new varyings.
By introducing info gathering after variant creation (because all I knew
was "gallium is always SSO"), I broke the unify_interfaces link-time setup
on iris. Just skip that when the unify_interfaces flag is set, and add
some asserts to catch anyone trying to mix unify_interfaces with known
varying-adjusting lowering passes.
Closes : #4450
Reviewed-by: Dave Airlie <airlied@redhat.com >
Reviewed-by: Marek Olšák <marek.olsak@amd.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10876 >
2021-05-24 17:16:10 +00:00
Emma Anholt
a7b1f30d1f
ci/freedreno: Add glx-copy-sub-buffer to flakes on a530 and a630.
...
A630 just had one sample count marked, but when piglit's been shuffled,
samples=4 and non-msaa have showed up too. Looks like from our history
a530 is flaky on it too.
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10933 >
2021-05-24 16:42:33 +00:00
Emma Anholt
c322a0dd24
ci/freedreno: Also mark waitformsc as flaky.
...
glx@glx_arb_sync_control@glxgetmscrateoml is the only non-flaky (so far)
arb_sync_control test on a630.
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10933 >
2021-05-24 16:42:33 +00:00
Emma Anholt
dd2151e5f2
ci/freedreno: Mark a630 glx-visuals-depth/stencil as piglit flakes.
...
These seem to be present from the beginning of piglit runs.
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10933 >
2021-05-24 16:42:33 +00:00
Emma Anholt
ee408df29c
ci/freedreno: Consolidate ssbo.fragment_binding_array flake annotation.
...
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10933 >
2021-05-24 16:42:33 +00:00
Emma Anholt
fec60d5bee
ci/freedreno: Drop VK flake annotations not seen in the last ~year.
...
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10933 >
2021-05-24 16:42:33 +00:00
Emma Anholt
4caf9b430d
ci/freedreno: Add a link explaining get_display_plane_capabilities
...
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10933 >
2021-05-24 16:42:33 +00:00
Emma Anholt
a8c3783982
ci/freedreno: Drop a630 flake annotation from the go-fast changes.
...
The async fix seems to have fixed it, haven't seen this one since May 3rd.
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10933 >
2021-05-24 16:42:33 +00:00
Emma Anholt
1dbaaa22f9
ci/freedreno: Clear stale validation failure flake annotation.
...
Haven't seen it in my current set of IRC logs.
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10933 >
2021-05-24 16:42:33 +00:00
Emma Anholt
a40479b6bc
ci/freedreno: Clear compswap flake annotation.
...
These flakes disappeared around 2020-08 and the only sign since then has
been some flakes on versions of the ir3 RA rewrite.
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10933 >
2021-05-24 16:42:33 +00:00
Emil Velikov
af2bf08bba
gbm: list to stderr all the missing extension
...
This way people have a fighting chance of figuring out what's wrong.
v2: add gbm: prefix to the warning (Simon Ser)
Signed-off-by: Emil Velikov <emil.velikov@collabora.com >
Reviewed-by: Simon Ser <contact@emersion.fr >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10732 >
2021-05-24 16:17:47 +00:00
Alejandro Piñeiro
77edb2d40d
v3dv: don't use typedef enum with broadcom stages
...
This is the only place on the broadcom stack where we use "typedef
enum", so for consistency let's avoid it.
Reviewed-by: Iago Toral Quiroga <itoral@igalia.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10947 >
2021-05-24 15:22:29 +00:00
Alyssa Rosenzweig
55db371223
ci: Condition s390x on specific drivers
...
Signed-off-by: Alyssa Rosenzweig <alyssa@collabora.com >
Reviewed-by: Emma Anholt <emma@anholt.net >
Reviewed-by: Adam Jackson <ajax@redhat.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10926 >
2021-05-24 14:56:51 +00:00
Alyssa Rosenzweig
ebe1d2585b
ci: Condition ppc64-el on specific drivers
...
Changes to Panfrost or Freedreno should not trigger ppc64 rebuilds.
Signed-off-by: Alyssa Rosenzweig <alyssa@collabora.com >
Reviewed-by: Emma Anholt <emma@anholt.net >
Reviewed-by: Adam Jackson <ajax@redhat.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10926 >
2021-05-24 14:56:51 +00:00
Alyssa Rosenzweig
1595a9421b
panfrost/ci: Split rules by ISA
...
Panfrost has two compilers, one for Midgard GPUs and one for Bifrost
GPUs. The respective compilers are src/panfrost/midgard and
src/panfrost/bifrost. Changes internal to just one compiler (or
disassembler) cannot affect the other hardware, so there's no need to
run extra jobs in these cases.
Also split out common vs Gallium panfrost so we can do the right thing
for panvk builds in the imminent future.
Signed-off-by: Alyssa Rosenzweig <alyssa@collabora.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10924 >
2021-05-24 13:27:26 +00:00
Icecream95
fe9d37b0c6
panfrost: Fix polygon list size computations
...
As noted in f5c293425f ("panfrost: Correct polygon size computations"),
"We do have to be careful to add the header size to total comptued BO
size."
Fixes: ff3eada7eb ("panfrost: Use the generic preload and FB helpers in the gallium driver")
Closes: https://gitlab.freedesktop.org/mesa/mesa/-/issues/4660
Closes: https://gitlab.freedesktop.org/mesa/mesa/-/issues/4737
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10943 >
2021-05-24 13:05:32 +00:00
Mike Blumenkrantz
f1ba85995c
radeonsi: explicitly return support for all index buffer formats
...
this should not change current behavior
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/10914 >
2021-05-24 12:44:06 +00:00
Tomeu Vizoso
324dd35d7c
ci/lava: Add caching proxies for trace downloads
...
To avoid having to download the same traces again and again in each job,
use the caching proxy configured in the Collabora lab.
We can currently hardcode it like this because we don't test the same
driver in more than one lab, but when that changes we will need a more
flexible approach.
Signed-off-by: Tomeu Vizoso <tomeu.vizoso@collabora.com >
Acked-by: Daniel Stone <daniels@collabora.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10949 >
2021-05-24 11:35:41 +02:00
Erik Faye-Lund
e1e207528f
docs: update link to #lima
...
Similar to the other channels, #lima is also moving to OFTC, so let's
update the links as appropriate.
While we're at it, fix the URI scheme to use a slash as a host/channel
separator, and drop the hash for maximum compatibility.
Reviewed-by: Erico Nunes <nunes.erico@gmail.com >
Reviewed-by: Adam Jackson <ajax@redhat.com >
Reviewed-by: Alyssa Rosenzweig <alyssa.rosenzweig@collabora.com >
Reviewed-by: Eric Engestrom <eric@engestrom.ch >
Reviewed-by: Jason Ekstrand <jason@jlekstrand.net >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10917 >
2021-05-24 09:21:48 +00:00
Erik Faye-Lund
e0bb2c5873
docs: update location of #panfrost
...
Panfrost has already moved their IRC-channel to OFTC, so let's update
the docs as well.
Reviewed-by: Daniel Stone <daniels@collabora.com >
Reviewed-by: Adam Jackson <ajax@redhat.com >
Reviewed-by: Alyssa Rosenzweig <alyssa.rosenzweig@collabora.com >
Reviewed-by: Eric Engestrom <eric@engestrom.ch >
Reviewed-by: Jason Ekstrand <jason@jlekstrand.net >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10917 >
2021-05-24 09:21:48 +00:00
Erik Faye-Lund
04b00a65a4
docs: update link to #zink
...
We have decided to follow what's happening with #dri-devel for #zink as
well, so let's update our link there as well.
While we're at it, let's switch the link to an anonymous link, because
we're not referring to it anywhere, so it doesn't need to be named.
Reviewed-by: Daniel Stone <daniels@collabora.com >
Reviewed-by: Adam Jackson <ajax@redhat.com >
Reviewed-by: Alyssa Rosenzweig <alyssa.rosenzweig@collabora.com >
Reviewed-by: Eric Engestrom <eric@engestrom.ch >
Reviewed-by: Jason Ekstrand <jason@jlekstrand.net >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10917 >
2021-05-24 09:21:48 +00:00
Erik Faye-Lund
e6baf37778
docs: promote #dri-devel on oftc over freenode
...
Due to the recent changes at Freenode and the recommendation from the
X.Org board of moving to OFTC[1], many mesa-developers have moved over
to the #dri-devel channel on OFTC by now.
So let's promote that channel rather than the Freenode channel.
While we're at it, let's correct[2] the URI to use a slash to separate
between the host and channel. And omit the # from the channel name for
maximum compatibility.
[1]: https://lists.freedesktop.org/archives/mesa-dev/2021-May/225271.html
[2]: https://en.wikipedia.org/wiki/Internet_Relay_Chat#URI_scheme
Reviewed-by: Daniel Stone <daniels@collabora.com >
Reviewed-by: Adam Jackson <ajax@redhat.com >
Reviewed-by: Alyssa Rosenzweig <alyssa.rosenzweig@collabora.com >
Reviewed-by: Eric Engestrom <eric@engestrom.ch >
Reviewed-by: Jason Ekstrand <jason@jlekstrand.net >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10917 >
2021-05-24 09:21:48 +00:00
Samuel Pitoiset
a00be79d80
radv: remove small overhead of radv_pipeline_has_ngg()
...
Closes: https://gitlab.freedesktop.org/mesa/mesa/-/issues/4784
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/10908 >
2021-05-24 08:50:47 +00:00
Samuel Pitoiset
ca783612e7
radv: simplify radv_pipeline_has_gs_copy_shader()
...
The GS copy shader should only be built if GS and without NGG.
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/10908 >
2021-05-24 08:50:47 +00:00
Samuel Pitoiset
e98c61e9f3
radv: fix fast clearing DCC if one level can't be compressed on GFX10+
...
Fallback to a slow clear, this could be improved by splitting the
clear into two parts (one fast and one slow) but that's complicated.
Cc: 21.1 mesa-stable
Signed-off-by: Samuel Pitoiset <samuel.pitoiset@gmail.com >
Reviewed-by: Bas Nieuwenhuizen <bas@basnieuwenhuizen.nl >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10516 >
2021-05-24 08:28:48 +00:00
Boris Brezillon
b830613516
ci: Update to a new kernel fixing a bug in the panfrost driver
...
Should fix #4818 .
Signed-off-by: Boris Brezillon <boris.brezillon@collabora.com >
Reviewed-by: Tomeu Vizoso <tomeu.vizoso@collabora.com >
Reviewed-by: Emma Anholt <emma@anholt.net >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10915 >
2021-05-24 06:37:30 +00:00
Tomeu Vizoso
36e6367747
radv/ci: Test on Stoney on CI
...
Run part of the VK CTS in 3 devices with Stoney Ridge graphics.
Signed-off-by: Tomeu Vizoso <tomeu.vizoso@collabora.com >
Reviewed-by: Rohan Garg <rohan.garg@collabora.com >
Reviewed-by: Corentin Noël <corentin.noel@collabora.com >
Acked-by: Samuel Pitoiset <samuel.pitoiset@gmail.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10853 >
2021-05-24 07:44:00 +02:00
Emma Anholt
b6dd4d28b9
ci/iris: Switch GLK back to manual testing.
...
The glk boards are particularly slow, and we've had the lab get backed up,
causing many spurious failures in the last day due to #4819 . Just disable
this board by default for now until that can get sorted out.
Reviewed-by: Tomeu Vizoso <tomeu.vizoso@collabora.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10932 >
2021-05-24 07:38:18 +02:00
Yogesh Mohanmarimuthu
cd34c7f5b8
radv: set RADEON_FLAG_GTT_WC flag for prime memory
...
With display on iGPU and render on dGPU, VRR is not working. To fix
this set RADEON_FLAG_GTT_WC flag when allocating memory for prime. This
allows kernel function amdgpu_display_user_framebuffer_create() to
allocate GTT memory with USWC flag making the buffer scanout for iGPU.
This helps the ddx amdgpu_present_check_flip() function to return
true. Now, xserver will flip the framebuffer instead of blit. Due
to this VRR feature will work where iGPU supports USWC flag.
v2: modify commit message with use case (Michel Dänzer)
v3: allow GTT_WC flag only if VRAM_DOMAIN and NO_CPU_ACCESS (Bas Nieuwenhuizen)
v4: add check for wsi_info is NULL
v5: use wsi_info pointer to check for prime alloc (Bas Nieuwenhuizen)
v6: set _GTT_WC flag when wsi_info pointer is not NULL (Bas Nieuwenhuizen)
Signed-off-by: Yogesh Mohanmarimuthu <yogesh.mohanmarimuthu@amd.com >
Signed-off-by: Vitaly Prosyak <vitaly.prosyak@amd.com >
Reviewed-by: Bas Nieuwenhuizen <bas@basnieuwenhuizen.nl >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10657 >
2021-05-23 11:00:17 +05:30
Lionel Landwerlin
474eaa25ad
intel/fs: make sure shuffle is lowered to supported types
...
On XeHP there are restrictions on types of source and destinations
with float types. As shuffle is implemented using MOV we need to make
sure we lower it to supported types.
This fixes tests like :
dEQP-VK.subgroups.arithmetic.framebuffer.subgroupexclusivemax_vec4_vertex
dEQP-VK.subgroups.arithmetic.framebuffer.subgroupexclusivemul_f16vec3_vertex
Signed-off-by: Lionel Landwerlin <lionel.g.landwerlin@intel.com >
Suggested-by: Francisco Jerez <currojerez@riseup.net >
Reviewed-by: Francisco Jerez <currojerez@riseup.net >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10902 >
2021-05-22 21:55:33 +00:00
Mike Blumenkrantz
8ab36670e9
aux/trace: dump 'wait' param for get_query_result
...
Reviewed-by: Adam Jackson <ajax@redhat.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10899 >
2021-05-22 12:37:57 +00:00
Mike Blumenkrantz
ebd69c718c
aux/trace: add a pipe_context::clear_buffer hook
...
Reviewed-by: Adam Jackson <ajax@redhat.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10899 >
2021-05-22 12:37:57 +00:00
Mike Blumenkrantz
33e7001572
aux/trace: fix query handling with tc
...
trace needs to follow the tc rules for queries a little in order to avoid
crashing and provide drivers with the same behavior they expect
Reviewed-by: Adam Jackson <ajax@redhat.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10899 >
2021-05-22 12:37:57 +00:00
Mike Blumenkrantz
dce827f69c
aux/trace: fix set_inlinable_constants hook
...
need to dump the arg, not just the array
Fixes: 8926c4a313 ("aux/trace: add a set_inlinable_constants hook")
Reviewed-by: Adam Jackson <ajax@redhat.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10899 >
2021-05-22 12:37:57 +00:00
Mike Blumenkrantz
3fedd2bbe8
aux/trace: hook tc methods
...
these need to have the context/screen unwrapped in order to not crash
while tracing
Reviewed-by: Adam Jackson <ajax@redhat.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10899 >
2021-05-22 12:37:57 +00:00
Mike Blumenkrantz
d2ae8e6d5e
aux/trace: stop dumping transfer data for threaded contexts
...
this is only useful for unit testing (and is it really useful even then?),
and does nothing but explode trace dumps and demolish performance otherwise
Reviewed-by: Adam Jackson <ajax@redhat.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10899 >
2021-05-22 12:37:57 +00:00
Mike Blumenkrantz
94ab82a3ca
aux/trace: trace transfer ops
...
Reviewed-by: Adam Jackson <ajax@redhat.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10899 >
2021-05-22 12:37:57 +00:00
Mike Blumenkrantz
a1c7279a7f
aux/trace: more effectively unwrap pipe_context params from screen functions
...
when using tc, these are the threaded context, not the trace context
Reviewed-by: Adam Jackson <ajax@redhat.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10899 >
2021-05-22 12:37:57 +00:00
Mike Blumenkrantz
4a54cb49d9
aux/trace: add pipe_context::set_debug_callback hook
...
Reviewed-by: Adam Jackson <ajax@redhat.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10899 >
2021-05-22 12:37:57 +00:00
Andres Gomez
b663c54417
ci: update some radv trace checksums
...
After a7c0cf500b ("radv: Enable DCC for image stores on GFX10.")
some checksums for the radv driver remained to be updated.
Signed-off-by: Andres Gomez <agomez@igalia.com >
Reviewed-by: Martin Peres <martin.peres@mupuf.org >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10856 >
2021-05-22 06:26:28 +00:00
Andres Gomez
4b12771f8d
ci: update some radv trace checksums
...
After 524848707b ("radv: don't set sx_blend_opt_epsilon for V_028C70_COLOR_10_11_11")
some checksums for the radv driver remained to be updated.
Signed-off-by: Andres Gomez <agomez@igalia.com >
Reviewed-by: Martin Peres <martin.peres@mupuf.org >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10856 >
2021-05-22 06:26:28 +00:00
Andres Gomez
763b557262
ci: make sure we only read the first line from install/VERSION
...
Signed-off-by: Andres Gomez <agomez@igalia.com >
Reviewed-by: Martin Peres <martin.peres@mupuf.org >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10856 >
2021-05-22 06:26:28 +00:00
Andres Gomez
683ddf19dc
ci: remove results directory content only with piglit runners
...
Removing the directory itself can be problematic with certain runner
strategies (B2C).
v2:
- Better deleting pattern matching since the previously used one was
problematic and not pointed out by /bin/sh, as noticed by Emma.
v3:
- Check that the results directory exists before attempting to
delete its content.
Signed-off-by: Andres Gomez <agomez@igalia.com >
Reviewed-by: Martin Peres <martin.peres@mupuf.org >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10856 >
2021-05-22 06:26:28 +00:00
Andres Gomez
be05fecca0
ci: allow starting xorg for piglit run
...
And enable it in the radv's Raven traces job.
v2:
- Adapt to changes in the start-x.sh script.
v3:
- Not deleting any more the non-existent by now
".gitlab-ci/common/start-x.sh" script (Martin).
Signed-off-by: Andres Gomez <agomez@igalia.com >
Reviewed-by: Martin Peres <martin.peres@mupuf.org >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10856 >
2021-05-22 06:26:28 +00:00
Andres Gomez
3f2449ec5f
ci: add xorg to the x86_test-vk container
...
Only the AMD video drivers for xorg are added since there are no other
expected users by now.
v2:
- Remove the start/stop logic from the x.sh script. We don't care
about stopping since that's already managed by gitlab-ci (Emma).
v3:
- Remove mistakenly added ".gitlab-ci/common/start-x.sh"
script (Martin).
Signed-off-by: Andres Gomez <agomez@igalia.com >
Reviewed-by: Martin Peres <martin.peres@mupuf.org >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10856 >
2021-05-22 06:26:28 +00:00
Felix DeGrood
380fa050f2
intel/compiler: balanced tileY/linear friendly LID order for CS
...
Fixes perf regression introduced from tileY LID order for CS
shaders that access both textures and buffers. Walks LIDs in
X-major fashion, but with blocks of height 4. This maps LIDs per
HW thread for SIMD8/16/32 as (2x4/4x4/8x4), which is always good
for tileY resources and usually good for linear resources.
Reviewed-by: Caio Marcelo de Oliveira Filho <caio.oliveira@intel.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10733 >
2021-05-22 00:15:25 +00:00
Felix DeGrood
c23e2a662a
intel/compiler: tileY friendly LID order for CS
...
Computer shaders that access tileY resources (textures) benefit
from Y-locality accesses. Easiest way to implement this is walk
local ids in Y-major fashion, instead of X-major fashion. Y-major
local ids will reduce partial writes and increase cache locality
for tileY accesses since tileY resources cachelines progress in
Y direction.
Improves performance on TGL:
Borderlands3.dxvk-g2 +1.5%
Y-major can introduce a performance drop on CS that use mixture
of buffers and images. This should be fixed in next commit.
Reviewed-by: Caio Marcelo de Oliveira Filho <caio.oliveira@intel.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10733 >
2021-05-22 00:15:25 +00:00
Felix DeGrood
bbd6ce6e9d
intel/compile: refactor DERIVATIVE_GROUP logic
...
Minor changes to logic to make following changes easier.
Reviewed-by: Caio Marcelo de Oliveira Filho <caio.oliveira@intel.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10733 >
2021-05-22 00:15:25 +00:00
Felix DeGrood
ca59db9900
intel/compiler: Use switch for DERIVATIVE_GROUP logic
...
Switch statement is more readable.
Reviewed-by: Caio Marcelo de Oliveira Filho <caio.oliveira@intel.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10733 >
2021-05-22 00:15:25 +00:00
Robert Tarasov
a04d0a304a
iris: Check data alignment for copy_mem_mem
...
Check both source and destination offsets are aligned to 4. This
patch fixes dEQP-GLES{2|3}.functional.buffer.write.random.* tests
failures on guest side while trying to copy small (<16b) buffers
via glBufferSubData() with offset which isn't aligned to 4.
Fixes: 9b1b9714 ("iris: Use MI_COPY_MEM_MEM for tiny resource_copy_region calls.")
Cc: mesa-stable@lists.freedesktop.org
Reviewed-by: Lionel Landwerlin lionel.g.landwerlin@intel.com
Reviewed-by: Marcin Ślusarz marcin.slusarz@intel.com
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10910 >
2021-05-21 23:13:57 +00:00
Mike Blumenkrantz
43abed919e
aux/vbuf: prevent uint underflow and assert if no vbs are dirty
...
if this mask is 0, there is nothing to do here
Fixes: e73bf3b805 ("gallium: add start_slot parameter to set_vertex_buffers")
Reviewed-by: Marek Olšák <marek.olsak@amd.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10929 >
2021-05-21 22:35:22 +00:00
Chia-I Wu
1b02577209
pps: fix a missing include in Intel pps driver
...
In file included from ../src/intel/ds/intel_pps_perf.cc:8:
../src/intel/ds/intel_pps_perf.h:34:78: error: ‘string’ in namespace ‘std’ does not name a type
Signed-off-by: Chia-I Wu <olvaffe@gmail.com >
Reviewed-by: Rob Clark <robdclark@chromium.org >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10934 >
2021-05-21 22:03:16 +00:00
Connor Abbott
9350900fcd
ir3: Only use per-wave pvtmem layout for compute
...
The blob seems to do this since a630, and it fixes
spec@glsl-1.30 @execution@fs-large-local-array on a650.
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10922 >
2021-05-21 20:45:07 +00:00
Connor Abbott
0ab01f4215
ir3: Call nir_lower_wrmask() again after lowering scratch
...
I forgot that after rebasing on large_consts support that this is now
called after the first time nir_lower_wrmask is called and can generate
partial writemasks that need to be lowered. While we're here, also call
the main optimization loop if things are lowered to scratch because it
generates address arithmetic that may need to be cleaned up.
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10922 >
2021-05-21 20:45:07 +00:00
Alyssa Rosenzweig
738b12a492
panfrost/ci: Disable G72 jobs for now
...
There's a bug in ATEST (and LD_TILE?) handling affecting v6, manifesting
as gpu sched timeouts in dmesg and ultimately as random dEQP flakes.
Until this can be sorted out and the G72 jobs are proven to be stable,
we can't have them in the critical merge path.
Signed-off-by: Alyssa Rosenzweig <alyssa@collabora.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10923 >
2021-05-21 20:27:43 +00:00
Alyssa Rosenzweig
0700c8938c
panfrost/ci: Disable GLES2 jobs when we run GLES3
...
I've been meaning to make this change for a while, but I've been holding
out in case dEQP-GLES2 on T860/Bifrost catches a driver issue missed by
dEQP-GLES3 and also missed by T720's dEQP-GLES2 job. Given that hasn't
happened (indeed, dEQP-GLES3 is an effective super set of dEQP-GLES2),
let's save the cycles and skip the redundant jobs.
Signed-off-by: Alyssa Rosenzweig <alyssa@collabora.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10923 >
2021-05-21 20:27:43 +00:00
Vasily Khoruzhick
d6eab2cc77
lima: implement alpha test
...
As [1] suggests, 3 lower bits in rsw->multi_sample is alpha test
compare func and bits 16-23 are reference value - uint8,
0.0 is 0, 0.5 is 0x80, 1.0 is 0xff.
Just as on Panfrost, enabled alpha test needs early-Z and pixel kill
to be disabled.
[1] http://web.archive.org/web/20171026123213/http://limadriver.org/Render_State/
Reviewed-by: Erico Nunes <nunes.erico@gmail.com >
Reviewed-by: Alyssa Rosenzweig <alyssa@collabora.com >
Signed-off-by: Vasily Khoruzhick <anarsoul@gmail.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10879 >
2021-05-21 20:12:42 +00:00
Samuel Pitoiset
726cb2d6f6
ac: ac_gpu_info::has_vgt_flush_ngg_legacy_bug
...
Signed-off-by: Samuel Pitoiset <samuel.pitoiset@gmail.com >
Reviewed-by: Marek Olšák <marek.olsak@amd.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10911 >
2021-05-21 19:46:56 +00:00
Ezequiel Garcia
ae6bc7a9d0
panfrost: Rename G52 product ID 0x7402 as G52r1
...
As pointed out by Robin Murphy, the new product ID belongs
to IP revision "G52r1".
Signed-off-by: Ezequiel Garcia <ezequiel@collabora.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10921 >
2021-05-21 19:05:07 +00:00
Marek Olšák
b6d47f482c
gallium: remove structure u_resource
...
Reviewed-By: Mike Blumenkrantz <michael.blumenkrantz@gmail.com >
Acked-by: Pierre-Eric Pelloux-Prayer <pierre-eric.pelloux-prayer@amd.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10659 >
2021-05-21 17:38:04 +00:00
Marek Olšák
2670efa1f7
gallium: remove empty structure u_resource_vtbl
...
Reviewed-By: Mike Blumenkrantz <michael.blumenkrantz@gmail.com >
Acked-by: Pierre-Eric Pelloux-Prayer <pierre-eric.pelloux-prayer@amd.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10659 >
2021-05-21 17:38:04 +00:00
Marek Olšák
38171635af
gallium: remove u_resource_vtbl::transfer_(un)map
...
This removes the call indirection.
Reviewed-By: Mike Blumenkrantz <michael.blumenkrantz@gmail.com >
Acked-by: Pierre-Eric Pelloux-Prayer <pierre-eric.pelloux-prayer@amd.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10659 >
2021-05-21 17:38:04 +00:00
Marek Olšák
eb74f97769
gallium: split transfer_(un)map into buffer_(un)map and texture_(un)map
...
The u_resource_vtbl indirection is going to be removed.
Reviewed-By: Mike Blumenkrantz <michael.blumenkrantz@gmail.com >
Acked-by: Pierre-Eric Pelloux-Prayer <pierre-eric.pelloux-prayer@amd.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10659 >
2021-05-21 17:38:04 +00:00
Marek Olšák
9effc49569
gallium: remove u_resource_vtbl::resource_destroy
...
Reviewed-By: Mike Blumenkrantz <michael.blumenkrantz@gmail.com >
Acked-by: Pierre-Eric Pelloux-Prayer <pierre-eric.pelloux-prayer@amd.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10659 >
2021-05-21 17:38:04 +00:00
Marek Olšák
f7b865f1a3
r600: stop using u_resource_vtbl::resource_destroy
...
Acked-By: Mike Blumenkrantz <michael.blumenkrantz@gmail.com >
Acked-by: Pierre-Eric Pelloux-Prayer <pierre-eric.pelloux-prayer@amd.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10659 >
2021-05-21 17:38:04 +00:00
Marek Olšák
8b2c0e725a
svga: stop using u_resource_vtbl::resource_destroy
...
Acked-By: Mike Blumenkrantz <michael.blumenkrantz@gmail.com >
Acked-by: Pierre-Eric Pelloux-Prayer <pierre-eric.pelloux-prayer@amd.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10659 >
2021-05-21 17:38:04 +00:00
Marek Olšák
bee4236606
virgl: stop using u_resource_vtbl::resource_destroy
...
Acked-By: Mike Blumenkrantz <michael.blumenkrantz@gmail.com >
Acked-by: Pierre-Eric Pelloux-Prayer <pierre-eric.pelloux-prayer@amd.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10659 >
2021-05-21 17:38:04 +00:00
Marek Olšák
2bf7c3a665
i915g: stop using u_resource_vtbl::resource_destroy
...
Acked-By: Mike Blumenkrantz <michael.blumenkrantz@gmail.com >
Acked-by: Pierre-Eric Pelloux-Prayer <pierre-eric.pelloux-prayer@amd.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10659 >
2021-05-21 17:38:04 +00:00
Marek Olšák
6d843c284d
nouveau: stop using u_resource_vtbl::resource_destroy
...
Acked-By: Mike Blumenkrantz <michael.blumenkrantz@gmail.com >
Acked-by: Pierre-Eric Pelloux-Prayer <pierre-eric.pelloux-prayer@amd.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10659 >
2021-05-21 17:38:04 +00:00
Marek Olšák
f60a44b686
r300: stop using u_resource_vtbl::resource_destroy
...
Acked-By: Mike Blumenkrantz <michael.blumenkrantz@gmail.com >
Acked-by: Pierre-Eric Pelloux-Prayer <pierre-eric.pelloux-prayer@amd.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10659 >
2021-05-21 17:38:04 +00:00
Marek Olšák
b04044b350
radeonsi: stop using u_resource_vtbl::resource_destroy
...
Acked-By: Mike Blumenkrantz <michael.blumenkrantz@gmail.com >
Reviewed-by: Pierre-Eric Pelloux-Prayer <pierre-eric.pelloux-prayer@amd.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10659 >
2021-05-21 17:38:04 +00:00
Marek Olšák
89eaf59092
gallium: remove transfer_flush_region from u_resource_vtbl
...
It's only used by buffers and only zink uses it privately for textures too.
This is part of removing u_resource_vtbl.
Reviewed-By: Mike Blumenkrantz <michael.blumenkrantz@gmail.com >
Acked-by: Pierre-Eric Pelloux-Prayer <pierre-eric.pelloux-prayer@amd.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10659 >
2021-05-21 17:38:04 +00:00
Marek Olšák
078e129d54
gallium: remove resource_get_handle from u_resource_vtbl
...
This is the initial step towards removing u_resource_vtbl.
Reviewed-By: Mike Blumenkrantz <michael.blumenkrantz@gmail.com >
Acked-by: Pierre-Eric Pelloux-Prayer <pierre-eric.pelloux-prayer@amd.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10659 >
2021-05-21 17:38:04 +00:00
Marek Olšák
a7a3de6902
gallium: remove unused u_default_transfer_unmap
...
Reviewed-By: Mike Blumenkrantz <michael.blumenkrantz@gmail.com >
Acked-by: Pierre-Eric Pelloux-Prayer <pierre-eric.pelloux-prayer@amd.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10659 >
2021-05-21 17:38:04 +00:00
Marek Olšák
b1237ecb32
zink: don't set u_resource_vtbl
...
nothing uses it
Reviewed-By: Mike Blumenkrantz <michael.blumenkrantz@gmail.com >
Acked-by: Pierre-Eric Pelloux-Prayer <pierre-eric.pelloux-prayer@amd.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10659 >
2021-05-21 17:38:04 +00:00
Mike Blumenkrantz
0b51bfd173
ci: more freedreno flakes
...
Acked-by: Rob Clark <robdclark@chromium.org >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10919 >
2021-05-21 16:56:51 +00:00
Rob Clark
ea112c5104
freedreno: Implement TC resource_busy
...
Signed-off-by: Rob Clark <robdclark@chromium.org >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10883 >
2021-05-21 16:34:11 +00:00
Rob Clark
a6d9a5f55a
freedreno: Rename internal resource_busy
...
So I can re-use the name fd_resource_busy.
Signed-off-by: Rob Clark <robdclark@chromium.org >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10883 >
2021-05-21 16:34:11 +00:00
Juan A. Suarez Romero
7e767ffeb3
vc4: initialize array
...
This fixes a (rather false) error about accessing an array that it is
uninitialized.
Fixes: 7bc39c8418 ("vc4: Add a dump-the-surface-contents routine.")
Closes: https://gitlab.freedesktop.org/mesa/mesa/-/issues/4816
Cc: mesa-stable
Reviewed-by: Jose Maria Casanova Crespo <jmcasanova@igalia.com >
Signed-off-by: Juan A. Suarez Romero <jasuarez@igalia.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10918 >
2021-05-21 15:16:25 +00:00
Alyssa Rosenzweig
789c9f764e
panfrost: Add PAN_MESA_DEBUG=dirty option
...
Signed-off-by: Alyssa Rosenzweig <alyssa@collabora.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10888 >
2021-05-21 14:23:17 +00:00
Alyssa Rosenzweig
fab1fabb4f
panfrost: Dirty track fragment images
...
Signed-off-by: Alyssa Rosenzweig <alyssa@collabora.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10888 >
2021-05-21 14:23:17 +00:00
Alyssa Rosenzweig
0c3c6cf473
panfrost: Dirty track viewport descriptor
...
Signed-off-by: Alyssa Rosenzweig <alyssa@collabora.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10888 >
2021-05-21 14:23:17 +00:00
Alyssa Rosenzweig
cd2c1ef9da
panfrost: Dirty track textures/samplers
...
draws/second on drawoverhead test 4 is improved by 160% (not a typo)
Signed-off-by: Alyssa Rosenzweig <alyssa@collabora.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10888 >
2021-05-21 14:23:17 +00:00
Alyssa Rosenzweig
a803499ddb
panfrost: Dirty track RSDs
...
Signed-off-by: Alyssa Rosenzweig <alyssa@collabora.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10888 >
2021-05-21 14:23:17 +00:00
Alyssa Rosenzweig
9aaf150499
panfrost: Dirty all state when batch is set
...
State uploads are bound to the batch, so if the batch changes, we
invalidate all state. Theoretically this isn't totally optimal but in
practice it should be good enough.
Signed-off-by: Alyssa Rosenzweig <alyssa@collabora.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10888 >
2021-05-21 14:23:17 +00:00
Alyssa Rosenzweig
a4b0da78bb
panfrost: Add the usual clean/dirty helpers
...
Signed-off-by: Alyssa Rosenzweig <alyssa@collabora.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10888 >
2021-05-21 14:23:17 +00:00
Alyssa Rosenzweig
744a9aef7b
panfrost: Define dirty tracking flags
...
Signed-off-by: Alyssa Rosenzweig <alyssa@collabora.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10888 >
2021-05-21 14:23:17 +00:00
SureshGuttula
0236b8a5de
frontends/va/picture:Fix wrong reallocation even surface is protected
...
This patch will avoid reallocation,if surface is already protected.
Fixing the comparision logic of boolean value(true \ flase) with
PIPE_BIND_PROTECTED.
Fixes: 81be8b3c2f ("va/picture: make sure destination buffer is protected if needed")
Signed-off-by: SureshGuttula <suresh.guttula@amd.corp-partner.google.com >
Reviewed-by: Pierre-Eric Pelloux-Prayer <pierre-eric.pelloux-prayer@amd.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10916 >
2021-05-21 11:34:17 +00:00
Mike Blumenkrantz
1272c2e052
util/prim_restart: fix util_translate_prim_restart_ib
...
this was broken for the indirect case if the indirect draw count or
firstIndex was nonzero and also would rewrite the index buffer onto the
wrong offset of the dst buffer
Fixes: 0c85d6c523 ("gallium/util: factor out primitive-restart rewriting logic")
Fixes: 330d0607ed ("gallium: remove pipe_index_buffer and set_index_buffer")
Reviewed-by: Erik Faye-Lund <erik.faye-lund@collabora.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10909 >
2021-05-21 10:58:26 +00:00
Lucas Stach
77fcf70082
dri: don't call modifier interfaces when modifiers_count is 0
...
The wayland EGL platform sets the modifier count to 0 in some cases
to signal that modifiers should not be used, even if a list of modifiers
is present. The loader_dri_create_image helper didn't handle this case
properly and called the modifierful driver interface with a 0 modifier
count, leading to the obvious outcome of the driver being unable to
allocate an image.
Fixes: cb9ae4273d ("dri: add loader_dri_create_image helper")
Signed-off-by: Lucas Stach <l.stach@pengutronix.de >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10903 >
2021-05-21 08:20:58 +00:00
Timothy Arceri
8b180ab98b
nir/lower_io_to_vector: fix per vertex io handling for arrays
...
The pass was processing the per vertex index from the wrong end
of the array deref chain.
Fixes: bcd14756ee ("nir/lower_io_to_vector: add flat mode")
Reviewed-by: Rhys Perry <pendingchaos02@gmail.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10798 >
2021-05-21 02:43:30 +00:00
Ian Romanick
aa64342661
iris: Silence warnings about implicit enum type conversions
...
src/gallium/drivers/iris/iris_state.c: In function ‘iris_create_blend_state’:
src/gallium/drivers/iris/iris_state.c:1284:41: warning: implicit conversion from ‘enum pipe_blendfactor’ to ‘enum GFX125_3D_Color_Buffer_Blend_Factor’ [-Wenum-conversion]
1284 | be.SourceBlendFactor = src_rgb;
| ^
src/gallium/drivers/iris/iris_state.c:1285:41: warning: implicit conversion from ‘enum pipe_blendfactor’ to ‘enum GFX125_3D_Color_Buffer_Blend_Factor’ [-Wenum-conversion]
1285 | be.SourceAlphaBlendFactor = src_alpha;
| ^
src/gallium/drivers/iris/iris_state.c:1286:41: warning: implicit conversion from ‘enum pipe_blendfactor’ to ‘enum GFX125_3D_Color_Buffer_Blend_Factor’ [-Wenum-conversion]
1286 | be.DestinationBlendFactor = dst_rgb;
| ^
src/gallium/drivers/iris/iris_state.c:1287:41: warning: implicit conversion from ‘enum pipe_blendfactor’ to ‘enum GFX125_3D_Color_Buffer_Blend_Factor’ [-Wenum-conversion]
1287 | be.DestinationAlphaBlendFactor = dst_alpha;
| ^
src/gallium/drivers/iris/iris_state.c:1308:28: warning: implicit conversion from ‘enum pipe_blendfactor’ to ‘enum GFX125_3D_Color_Buffer_Blend_Factor’ [-Wenum-conversion]
1308 | pb.SourceBlendFactor =
| ^
src/gallium/drivers/iris/iris_state.c:1310:33: warning: implicit conversion from ‘enum pipe_blendfactor’ to ‘enum GFX125_3D_Color_Buffer_Blend_Factor’ [-Wenum-conversion]
1310 | pb.SourceAlphaBlendFactor =
| ^
src/gallium/drivers/iris/iris_state.c:1312:33: warning: implicit conversion from ‘enum pipe_blendfactor’ to ‘enum GFX125_3D_Color_Buffer_Blend_Factor’ [-Wenum-conversion]
1312 | pb.DestinationBlendFactor =
| ^
src/gallium/drivers/iris/iris_state.c:1314:38: warning: implicit conversion from ‘enum pipe_blendfactor’ to ‘enum GFX125_3D_Color_Buffer_Blend_Factor’ [-Wenum-conversion]
1314 | pb.DestinationAlphaBlendFactor =
| ^
Reviewed-by: Emma Anholt <emma@anholt.net >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/9610 >
2021-05-21 01:40:22 +00:00
Ian Romanick
55ac31533d
iris: Return correct enum names from fmt_swizzle
...
SCS_ONE and ISL_CHANNEL_SELECT_ONE (and SCS_ZERO and
ISL_CHANNEL_SELECT_ZERO) have the same values, so this doesn't matter in
practice. However, some compiler warning options will cause warnings to
be generated.
src/gallium/drivers/iris/iris_state.c: In function ‘fmt_swizzle’:
src/gallium/drivers/iris/iris_state.c:2177:32: warning: implicit conversion from ‘enum GFX125_ShaderChannelSelect’ to ‘enum isl_channel_select’ [-Wenum-conversion]
2177 | case PIPE_SWIZZLE_1: return SCS_ONE;
| ^~~~~~~
src/gallium/drivers/iris/iris_state.c:2178:32: warning: implicit conversion from ‘enum GFX125_ShaderChannelSelect’ to ‘enum isl_channel_select’ [-Wenum-conversion]
2178 | case PIPE_SWIZZLE_0: return SCS_ZERO;
| ^~~~~~~~
Reviewed-by: Emma Anholt <emma@anholt.net >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/9610 >
2021-05-21 01:40:22 +00:00
Ian Romanick
f57c074270
gallium/dri: Allow use of R8G8_R8B8 for YUYV and G8R8_B8R8 for UYVY
...
v2: Add missing FALLTHROUGH. Caught by CI.
Reviewed-by: Emma Anholt <emma@anholt.net >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/9610 >
2021-05-21 01:40:22 +00:00
Ian Romanick
880b00dc59
nir/lower_tex: Add support for lowering YUYV formats
...
v2: Rebase on bc438c91d9 ("nir/lower_tex: ignore texture_index if
tex_instr has deref src")
Reviewed-by: Emma Anholt <emma@anholt.net >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/9610 >
2021-05-21 01:40:22 +00:00
Ian Romanick
53fc6ba930
mesa: Add R8G8_R8B8 and G8R8_B8R8 formats
...
These aren't real formats. They cannot be used with
RenderbufferObjects, Textures, or anything else visible through the GL
API. The only purpose is to support YUYV textures imported through
EGL_image_external. There is hardware that can sample from this
subsampled format, but the hardware does not do the colorspace
conversion automatically.
v2: Treat these formats as compressed. This is a lie, but it seems to
be a less egregious lie than what I was doing before. It also passes
'ninja test'.
Reviewed-by: Emma Anholt <emma@anholt.net >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/9610 >
2021-05-21 01:40:22 +00:00
Ian Romanick
3fa16b3025
intel/isl: Add mappings for PIPE_FORMAT_R8G8_R8B8_UNORM and PIPE_FORMAT_G8R8_B8R8_UNORM
...
Reviewed-by: Emma Anholt <emma@anholt.net >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/9610 >
2021-05-21 01:40:22 +00:00
Ian Romanick
2fdd9b8604
gallium/dri: Add Y21x formats
...
v2: Add all the Y21x tests to the A530 expected fail list. All of the
YUV image import tests fail on this platform, and nobody has been able
to investigate why.
v3: Update the comment describing the zeroed bits in Y212. Suggested by
Emma.
v4: Add all Y21x test to the rpi3 expected fail list.
Reviewed-by: Emma Anholt <emma@anholt.net >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/9610 >
2021-05-21 01:40:22 +00:00
Ian Romanick
d884174a08
egl/dri2: Add Y21x formats
...
Reviewed-by: Emma Anholt <emma@anholt.net >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/9610 >
2021-05-21 01:40:22 +00:00
Ian Romanick
517247a8d9
util/format: Add Y21x formats
...
Reviewed-by: Emma Anholt <emma@anholt.net >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/9610 >
2021-05-21 01:40:22 +00:00
Ian Romanick
3c4c03cd13
gallium/dri: Add Y41x formats
...
v2: Don't leak __DRI_IMAGE_FOURCC_RGBA16161616 to applications.
v3: Fix typo in __DRI_IMAGE_FOURCC_RGBA16161616 table entry.
v4: Add the Y412 and Y416 tests to the A530 expected fail list. Many
YUV image import tests fail on this platform, and nobody has been able
to investigate why.
v5: Update the comment describing the zeroed bits in Y412. Suggested by
Emma.
v6: Add all Y41x test to the rpi3 expected fail list.
Reviewed-by: Emma Anholt <emma@anholt.net >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/9610 >
2021-05-21 01:40:22 +00:00
Ian Romanick
410c94926c
egl/dri2: Add Y41x formats
...
Reviewed-by: Emma Anholt <emma@anholt.net >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/9610 >
2021-05-21 01:40:22 +00:00
Ian Romanick
0820f1f3d0
util/format: Add Y41x formats
...
Reviewed-by: Emma Anholt <emma@anholt.net >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/9610 >
2021-05-21 01:40:22 +00:00
Ian Romanick
1358d93650
nir/lower_tex: Add support for lowering Y41x formats
...
These are similar to AYUV, but the channel ordering is different... in
such a way that there's no RGBA format that will make the channels line
up right.
v2: Rebase on bc438c91d9 ("nir/lower_tex: ignore texture_index if
tex_instr has deref src")
Reviewed-by: Emma Anholt <emma@anholt.net >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/9610 >
2021-05-21 01:40:22 +00:00
Ian Romanick
671f94c5b9
mesa/st: Always call st_nir_lower_tex_src_plane if samplers were lowered
...
Reviewed-by: Emma Anholt <emma@anholt.net >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/9610 >
2021-05-21 01:40:22 +00:00
Ian Romanick
5e1503f243
egl/dri2: Rely on drm-uapi for DRM_FORMAT defines
...
All of these formats, and ones that will be added later in this series,
are in the copy of drm_fourcc.h in drm-uapi.
Suggested-by: Nanley Chery <nanley.g.chery@intel.com >
Reviewed-by: Nanley Chery <nanley.g.chery@intel.com >
Reviewed-by: Emma Anholt <emma@anholt.net >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/9610 >
2021-05-21 01:40:22 +00:00
Ian Romanick
3773486cb8
dri: Fix typo before __DRI_IMAGE_COMPONENTS defines
...
s/are may be/might be/
Also add a missing comma.
v2: Also s/its/it's/. Suggested by Nanley.
Reviewed-by: Nanley Chery <nanley.g.chery@intel.com >
Reviewed-by: Emma Anholt <emma@anholt.net >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/9610 >
2021-05-21 01:40:22 +00:00
Ian Romanick
9e9bedfdcb
util/format: Delete trailing whitespace
...
The angry red marks in Emacs were annoying me.
Reviewed-by: Nanley Chery <nanley.g.chery@intel.com >
Reviewed-by: Emma Anholt <emma@anholt.net >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/9610 >
2021-05-21 01:40:22 +00:00
Kenneth Graunke
dd508b2bed
iris: Don't advertise Y-tiled modifiers for scanout buffers on Gfx8
...
According to isl_gfx7.c:264, the display engine does not support Y
tiled buffers prior to Skylake. But we exposed I915_FORMAT_MOD_Y_TILED
even when querying for a list of modifiers with PIPE_BIND_SCANOUT set,
which we can't support. That led to crashes later when we tried to
create such an image, and isl rightly denied it.
Fixes crashes in wflinfo since c03e79d783 , but the bug exists before
that and it's probably worth a stable backport even without that patch.
Closes: https://gitlab.freedesktop.org/mesa/mesa/-/issues/4815
Fixes: c03e79d783 ("loader/dri: hook up createImageWithModifiers2")
Reviewed-by: Lionel Landwerlin <lionel.g.landwerlin@intel.com >
Cc: mesa-stable
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10907 >
2021-05-21 01:10:47 +00:00
Kenneth Graunke
e9e953ff94
i965: Don't advertise Y-tiled modifiers for scanout buffers on Gfx8-
...
According to isl_gfx7.c:264, the display engine does not support Y
tiled buffers prior to Skylake. But we exposed I915_FORMAT_MOD_Y_TILED
even when querying for a list of modifiers with __DRI_IMAGE_USE_SCANOUT
set, which we can't support. That led to crashes later when we tried
to create such an image, and isl rightly denied it.
This duplicates a bit of code from ISL, but the isl_gfx6_filter_tiling
function that we ought to use to filter things relies on surf_info,
which we don't have at this stage. This is probably good enough.
Fixes crashes in wflinfo since c03e79d783 , but the bug exists before
that and it's probably worth a stable backport even without that patch.
Closes: https://gitlab.freedesktop.org/mesa/mesa/-/issues/4815
Fixes: c03e79d783 ("loader/dri: hook up createImageWithModifiers2")
Reviewed-by: Lionel Landwerlin <lionel.g.landwerlin@intel.com >
Cc: mesa-stable
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10907 >
2021-05-21 01:10:47 +00:00
Andres Gomez
50a5cb000c
ci: Add test which occasionally times out to lavapipe-vk skips
...
E.g:
- https://gitlab.freedesktop.org/mesa/mesa/-/jobs/9881541
- https://gitlab.freedesktop.org/mesa/mesa/-/jobs/9916369
Signed-off-by: Andres Gomez <agomez@igalia.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10893 >
2021-05-21 00:59:09 +00:00
Kenneth Graunke
a3a4517f41
isl: Work around NVIDIA and AMD display pitch requirements
...
In the case where we're rendering on the Intel GPU, but displaying
on an AMD and NVIDIA GPU, we need to follow their pitch requirements
for our linear scanout buffers.
Based on a patch by Lionel Landwerlin.
Closes : #4706
Reviewed-by: Emma Anholt <emma@anholt.net >
Reviewed-by: Jason Ekstrand <jason@jlekstrand.net >
Reviewed-by: Marek Olšák <marek.olsak@amd.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10895 >
2021-05-20 23:48:01 +00:00
Emma Anholt
d8a1d41952
i915g: Fix undefined results for TGSI_OPCODE_KILL
...
The swizzle() requires a proper ureg with the 0/1 swizzle fields filled
in, or our ONE swizzles end up reading .x instead. This meant that we
were killing based on the incoming value of R0.
Reviewed-by: Adam Jackson <ajax@redhat.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10874 >
2021-05-20 23:12:12 +00:00
Emma Anholt
fc3d5bebf2
i915g: Fix writing of undefined depth value if not writing any outputs.
...
This was showing up as flakes in CI on tests that didn't write any outputs
but did check the depth result.
Reviewed-by: Adam Jackson <ajax@redhat.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10874 >
2021-05-20 23:12:12 +00:00
Eric Anholt
8b0901c707
i915g: Stop advertising support for indirect addressing in the FS.
...
This hardware can't do any form of indirect addressing. The couple of new
Crashes are the backend falling over when faced with loops/ifs.
Fixes: 8a22064d31 ("i915g: Implement vertex textures.")
Reviewed-by: Adam Jackson <ajax@redhat.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10874 >
2021-05-20 23:12:12 +00:00
Emma Anholt
15f608582e
i915g: Add support for the .Absolute flag on TGSI srcs.
...
We don't have a way to ask TGSI to not have .Absolute, so lower it in the
backend.
Cc: mesa-stable
Reviewed-by: Adam Jackson <ajax@redhat.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10874 >
2021-05-20 23:12:12 +00:00
Emma Anholt
5d57f6080c
i915g: Make the FS for compile failures write red instead of DIFFUSE.
...
The DIFFUSE thing would write an undefined result if the shader that
failed to compile didn't read VARYING_SLOT_COL0, causing flakes in CI.
This does make 2 piglit tests that were expecting red spuriously pass.
Reviewed-by: Adam Jackson <ajax@redhat.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10874 >
2021-05-20 23:12:12 +00:00
Emma Anholt
adc505dd2d
ci/i915g: Introduce manual testing of i915g using anholt's runner.
...
Now you can mash the button to see how badly i915g's broken these days.
Reviewed-by: Adam Jackson <ajax@redhat.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10874 >
2021-05-20 23:12:12 +00:00
Emma Anholt
6649cfbf30
i915g: Fix dumping of the FS in batchbuffers.
...
We have to increment off of the packet header before disassembling (same
as i915c's copy of this code).
Reviewed-by: Adam Jackson <ajax@redhat.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10874 >
2021-05-20 23:12:12 +00:00
Emma Anholt
0102e7f081
i915g: Switch batchbuffer dumping to mesa_logi().
...
This makes I915_DUMP_CMD=1 actually do something on non-DDEBUG builds.
Reviewed-by: Adam Jackson <ajax@redhat.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10874 >
2021-05-20 23:12:12 +00:00
Emma Anholt
8509aceb74
i915g: Disable 3D-pipeline clears.
...
The 3D-pipeline fast clears try to emit FS constants before an FS is
necessarily bound, causing segfaults in dEQP. Plus it flushes the whole
batchbuffer so it'll probably be slower anyway.
Fixes: 6358e6371b ("i915g: implement hw clear")
Reviewed-by: Adam Jackson <ajax@redhat.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10874 >
2021-05-20 23:12:12 +00:00
Emma Anholt
c2f80baa93
mesa/st: Only use 16-bit ints or floats in the NIR path.
...
For i915g or other drivers using the draw path, llvmpipe (reasonably)
reports int16 support. However, if we try to link and translate an int16
shader using st_glsl_to_tgsi, it will throw assertion failures.
Reviewed-by: Alyssa Rosenzweig <alyssa.rosenzweig@collabora.com >
Reviewed-by: Adam Jackson <ajax@redhat.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10874 >
2021-05-20 23:12:12 +00:00
Emma Anholt
307139c7f9
vulkan: Avoid stomping array padding in the MemoryProperties wrapper.
...
The deqp test for it expects that the unused array elements are untouched,
so make sure they don't get replaced with random stack data.
Reviewed-by: Jason Ekstrand <jason@jlekstrand.net >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10737 >
2021-05-20 21:41:06 +00:00
Yiwei Zhang
10a826e340
venus: vn_GetAndroidHardwareBufferPropertiesANDROID (part 2/2)
...
Support VkAndroidHardwareBufferFormatPropertiesANDROID query.
Signed-off-by: Yiwei Zhang <zzyiwei@chromium.org >
Reviewed-by: Chia-I Wu <olvaffe@gmail.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10847 >
2021-05-20 19:57:58 +00:00
Yiwei Zhang
58f518ce17
venus: vn_GetAndroidHardwareBufferPropertiesANDROID (part 1/2)
...
Signed-off-by: Yiwei Zhang <zzyiwei@chromium.org >
Reviewed-by: Chia-I Wu <olvaffe@gmail.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10847 >
2021-05-20 19:57:58 +00:00
Yiwei Zhang
ebf0e45506
venus: add ahb image and buffer properties query support
...
Signed-off-by: Yiwei Zhang <zzyiwei@chromium.org >
Reviewed-by: Chia-I Wu <olvaffe@gmail.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10847 >
2021-05-20 19:57:58 +00:00
Yiwei Zhang
008bcefb32
venus: add vn_android_get_ahb_usage helper function
...
See "AHardwareBuffer Usage Equivalence" in the spec.
Signed-off-by: Yiwei Zhang <zzyiwei@chromium.org >
Reviewed-by: Chia-I Wu <olvaffe@gmail.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10847 >
2021-05-20 19:57:58 +00:00
Yiwei Zhang
5cd04adb8a
venus: add AHB format and VkFormat conversion helper functions
...
See "AHardwareBuffer Format Equivalence" in the spec.
Signed-off-by: Yiwei Zhang <zzyiwei@chromium.org >
Reviewed-by: Chia-I Wu <olvaffe@gmail.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10847 >
2021-05-20 19:57:58 +00:00
Yiwei Zhang
055ce78f31
venus: clean up vn_android api names
...
Signed-off-by: Yiwei Zhang <zzyiwei@chromium.org >
Reviewed-by: Chia-I Wu <olvaffe@gmail.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10847 >
2021-05-20 19:57:58 +00:00
Erik Faye-Lund
98812f893b
zink: fix provoking-vertex cap for quads
...
The way we've doing this currently preserves provoking vertex for quads,
so let's report that to the state-tracker.
This fixes a couple of piglits.
Reviewed-By: Mike Blumenkrantz <michael.blumenkrantz@gmail.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10905 >
2021-05-20 19:11:31 +00:00
Connor Abbott
de9f2170cc
ir3: Use round-to-nearest-even for fquantize2f16
...
We're supposed to map a floating-point value too large to be represented
as fp16 to infinity, however round-to-zero naturally rounds it down to
the largest representable fp16 number instead. The blob emits a bunch of
fixup code to work around this, but instead we can just do what all the
other drivers seem to do and use round-to-nearest-even instead.
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10897 >
2021-05-20 18:45:59 +00:00
Tomeu Vizoso
ea266412b6
panfrost/ci: Add one more flake test for G72
...
dEQP-GLES31.functional.texture.gather.offset_dynamic.implementation_offset.2d_array.rgba8.size_pot.repeat_mirrored_repeat
Signed-off-by: Tomeu Vizoso <tomeu.vizoso@collabora.com >
Acked-by: Daniel Stone <daniels@collabora.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10901 >
2021-05-20 17:56:30 +00:00
Daniel Schürmann
32c7d17120
aco: remove condition operand from branch in invert block
...
As value numbering only handles logical blocks, this
could lead to invalid IR until insert_exec_mask().
No fossil-db changes.
Reviewed-by: Rhys Perry <pendingchaos02@gmail.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10894 >
2021-05-20 17:44:20 +00:00
Timur Kristóf
2bb1bf78f0
radv/cmd_buffer: Fix warning by initializing instance count.
...
Signed-off-by: Timur Kristóf <timur.kristof@gmail.com >
Reviewed-by: Samuel Pitoiset <samuel.pitoiset@gmail.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10806 >
2021-05-20 17:11:22 +00:00
Timur Kristóf
438510a7f5
nine: Fix uninitialized warning in texture9.c
...
Signed-off-by: Timur Kristóf <timur.kristof@gmail.com >
Reviewed-by: Adam Jackson <ajax@redhat.com >
Reviewed-by: Axel Davy <davyaxel0@gmail.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10806 >
2021-05-20 17:11:22 +00:00
Timur Kristóf
b778564c76
gallivm: Fix a few uninitialized variable warnings.
...
Signed-off-by: Timur Kristóf <timur.kristof@gmail.com >
Reviewed-by: Adam Jackson <ajax@redhat.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10806 >
2021-05-20 17:11:22 +00:00
Timur Kristóf
5f1aa5ac38
anv: Fix unused function warnings for memory range checks.
...
Signed-off-by: Timur Kristóf <timur.kristof@gmail.com >
Reviewed-by: Lionel Landwerlin <lionel.g.landwerlin@intel.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10806 >
2021-05-20 17:11:22 +00:00
Timur Kristóf
2d35857705
gallium/tessellator: Fix uninitialized variable warnings.
...
Signed-off-by: Timur Kristóf <timur.kristof@gmail.com >
Reviewed-by: Adam Jackson <ajax@redhat.com >
Reviewed-by: Alyssa Rosenzweig <alyssa@collabora.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10806 >
2021-05-20 17:11:22 +00:00
Timur Kristóf
020c3c403f
aco/util: Initialize IDSet::bits_set to zero.
...
Signed-off-by: Timur Kristóf <timur.kristof@gmail.com >
Reviewed-by: Rhys Perry <pendingchaos02@gmail.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10806 >
2021-05-20 17:11:22 +00:00
Timur Kristóf
c4f6e4d6b0
aco/insert_exec_mask: Fixed unused variable warning in release build.
...
Signed-off-by: Timur Kristóf <timur.kristof@gmail.com >
Reviewed-by: Rhys Perry <pendingchaos02@gmail.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10806 >
2021-05-20 17:11:22 +00:00
Matti Hamalainen
844ae34a15
aux/trace: add missing return value to trace output
...
trace_screen_resource_bind_backing() was missing printing of
the boolean return value. Add it.
Reviewed-By: Mike Blumenkrantz <michael.blumenkrantz@gmail.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10900 >
2021-05-20 16:32:21 +00:00
Georg Lehmann
36d0ff4682
radv: Fix compatible image handle type for dmabufs.
...
Reviewed-by: Joshua Ashton <joshua@froggi.es >
Reviewed-by: Bas Nieuwenhuizen <bas@basnieuwenhuizen.nl >
Fixes: 6c83e3ea98 ("radv: Add format modifier format queries.")
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10891 >
2021-05-20 15:11:07 +00:00
Samuel Pitoiset
489e38c708
radv: fix heap indices when computing the budget
...
RADV_HEAP_* is the heap type, not the index.
Fixes dEQP-VK.info.device_memory_budget.
Fixes: 08d162f0b5 ("radv: expose 2/3rd of total memory as VRAM and 1/3rd as GTT on APUs")
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/10852 >
2021-05-20 14:26:59 +00:00
Samuel Pitoiset
b1171e5ffe
Revert "radv: Do not access set layout during vkCmdBindDescriptorSets."
...
This was a temporary workaround for a Baldur's Gate 3 bug which
should now be fixed.
This reverts commit eb104e949e .
Closes: https://gitlab.freedesktop.org/mesa/mesa/-/issues/3701
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/10839 >
2021-05-20 13:38:33 +00:00
Samuel Pitoiset
fe2a5716ee
aco: fix derivatives/intrinsics with SGPR sources
...
ds_swizzle_b32 requires a VGPR and DPP can't encode SGPR sources.
Fixes
dEQP-VK.graphicsfuzz.cov-derivative-uniform-vector-global-loop-count.
Cc: 21.1 mesa-stable
Signed-off-by: Samuel Pitoiset <samuel.pitoiset@gmail.com >
Reviewed-by: Rhys Perry <pendingchaos02@gmail.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10840 >
2021-05-20 13:24:31 +00:00
Mike Blumenkrantz
938acf6d22
aux/trace: trace pipe_screen::resource_create_with_modifiers
...
Reviewed-by: Adam Jackson <ajax@redhat.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10361 >
2021-05-20 12:34:27 +00:00
Alyssa Rosenzweig
2c2cf0ecfe
panfrost: Streamline varying linking code
...
Refactor all the linking code with the following objectives:
* Remove linking magic (especially around XFB)
* Cleaner code (obviously)
* Less stage coupling (in case someone ever implements geom/tess)
* Decouple ATTRIBUTE from ATTRIBUTE_BUFFER to enable optimizations
The main hack remaining is doing precision linking here to workaround
linking previously used.
Signed-off-by: Alyssa Rosenzweig <alyssa@collabora.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10778 >
2021-05-20 10:05:39 +00:00
Alyssa Rosenzweig
4d44d4179e
glsl: Fix packing of matrices for XFB
...
The CAP for packed transform feedback concerns packing of unrelated
variables into the same varying slot. (On Mali, transform feedback is
implemented on a per-slot basis, so different variables need different
slots to be written to different buffers.) However, this requirement is
tangential to the packing of arrays, matrices, and structures inherent
to GLSL. These array-like values need to be packed /within/ their slot,
even though drivers using the CAP (just Panfrost) cannot pack
independent values in the slot. Transform feedback of individual
elements is not independent, after all.
Acked-by: Erik Faye-Lund <erik.faye-lund@collabora.com >
Signed-off-by: Alyssa Rosenzweig <alyssa@collabora.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10778 >
2021-05-20 10:05:39 +00:00
Alyssa Rosenzweig
538ab8c571
glsl: Fix subscripted arrays with no XFB packing
...
We need to duplicate the subscripted members even if they happen to be
aligned, since the other elements may be passed into the consumer
shader. Fixes on Panfrost:
dEQP-GLES3.functional.transform_feedback.array_element.interleaved.lines.highp_float
Note: the test did pass on main previously due to an elaborate set of
driver hacks. I don't believe the old behaviour was correct regardless.
Only Panfrost is affected by this change and the next, as every other
driver sets PIPE_CAP_PACKED_STREAM_OUTPUT.
Acked-by: Erik Faye-Lund <erik.faye-lund@collabora.com >
Signed-off-by: Alyssa Rosenzweig <alyssa.rosenzweig@collabora.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10778 >
2021-05-20 10:05:39 +00:00
Alyssa Rosenzweig
7efa5f3c80
asahi: Set PACKED_STREAM_OUTPUT
...
Lazy copypaste from Panfrost. We don't support XFB yet at all, but when
we do, it will almost certainly be the way every other driver in Mesa
does.
Signed-off-by: Alyssa Rosenzweig <alyssa@collabora.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10778 >
2021-05-20 10:05:39 +00:00
Mike Blumenkrantz
66935c1d05
aux/trace: pipe_screen::get_dmabuf_modifier_planes
...
Reviewed-by: Adam Jackson <ajax@redhat.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10387 >
2021-05-20 07:30:21 +00:00
Mike Blumenkrantz
bcfcd547d2
aux/trace: propagate pipe_screen::transfer_helper pointer
...
Reviewed-by: Adam Jackson <ajax@redhat.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10387 >
2021-05-20 07:30:21 +00:00
Mike Blumenkrantz
ce687c9160
aux/trace: pipe_context::is_dmabuf_modifier_supported
...
Reviewed-by: Adam Jackson <ajax@redhat.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10387 >
2021-05-20 07:30:21 +00:00
Mike Blumenkrantz
1f97a4ac1f
aux/trace: pipe_screen::query_dmabuf_modifiers
...
Reviewed-by: Adam Jackson <ajax@redhat.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10387 >
2021-05-20 07:30:21 +00:00
Mike Blumenkrantz
b4929c986d
aux/trace: support pipe_screen::query_memory_info
...
Reviewed-by: Adam Jackson <ajax@redhat.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10387 >
2021-05-20 07:30:21 +00:00
Iago Toral Quiroga
2e4994526a
v3d: take TLB blit framebuffer dimensions from smallest surface dimensions
...
Typically, we program the framebuffer dimensions using the destination
surface, however, if we blit a rect from a surface that is smaller than
the destination, the simulator will complain that the TLB load stride
is not large enough to match the destination framebuffer. We can work
around this by programming the smallest size of both surfaces, which
should be okay because the tlb blit path requires that the blit
coordinates are the same for both src and dst.
Fixes assert crashes with the simulator for MSAA tests in:
./bin/gl-1.0-logicop
Reviewed-by: Juan A. Suarez <jasuarez@igalia.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10863 >
2021-05-20 05:45:33 +00:00
Eric Anholt
aa4f132d51
ci/intel: Add test jobs for dEQP.
...
This covers dEQP-EGL, GL, and GLES on GLK, APL (BXT), and AML-Y
Chromebooks. The GLES tests are fractional runs on some boards to keep
the pipeline time down. Flakes are reported to #intel-ci on freenode.
Reviewed-by: Tomeu Vizoso <tomeu.vizoso@collabora.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10438 >
2021-05-20 03:18:27 +00:00
Eric Anholt
d9e64cb2d7
ci/deqp: Make DEQP_EXPECTED_RENDERER a required regex for VK like for GLES.
...
All devices want it, and regexes are nicer for handling more complicated
device names.
Reviewed-by: Tomeu Vizoso <tomeu.vizoso@collabora.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10438 >
2021-05-20 03:18:27 +00:00
Ian Romanick
d246c31ec1
nir/algebraic: Add algebraic opt for float comparisons with identical operands.
...
The flt version could have been added in 56e21647e2 , but our
collective understanding of NaN and comparisons was poor in 2015. The
new "is_a_number" predicate makes the others possible.
All of the helped shaders in shader-db are either from Mad Max or Skia.
Some of the Skia shaders just get decimated by this change:
instructions helped: shaders/skia/580-4.shader_test FS SIMD8: 81 -> 29 (-64.20%) (scheduled: top-down)
I looked at a couple of those shaders, and they had sequences like:
vec1 32 ssa_44 = flt32 ssa_32, ssa_32
vec1 32 ssa_45 = b32csel ssa_44, ssa_43, ssa_0
vec1 32 ssa_46 = fge32 ssa_32, ssa_32
vec1 32 ssa_47 = b32csel ssa_46, ssa_0, ssa_45
vec1 32 ssa_48 = iand ssa_46, ssa_44
vec1 32 ssa_49 = b32csel ssa_48, ssa_43, ssa_0
ssa_44 is replaced with False. Then ssa_47 selects between ssa_0 and
ssa_0, so ssa_47 and ssa_46 are eliminated. ssa_48 is (False && don't
care), so ssa_48 and ssa_49 are eliminated. After that, many
calculations now involve constants of zero, so they are optimized down
too. So it continues until there's not much left!
Reviewed-by: Rhys Perry <pendingchaos02@gmail.com >
All Intel platforms had similar results. (Tiger Lake shown)
total instructions in shared programs: 21072238 -> 21071386 (<.01%)
instructions in affected programs: 33722 -> 32870 (-2.53%)
helped: 146
HURT: 1
helped stats (abs) min: 1 max: 62 x̄: 5.84 x̃: 2
helped stats (rel) min: 0.19% max: 62.35% x̄: 4.09% x̃: 1.07%
HURT stats (abs) min: 1 max: 1 x̄: 1.00 x̃: 1
HURT stats (rel) min: 0.20% max: 0.20% x̄: 0.20% x̃: 0.20%
95% mean confidence interval for instructions value: -7.94 -3.65
95% mean confidence interval for instructions %-change: -5.87% -2.25%
Instructions are helped.
total cycles in shared programs: 856203326 -> 856192238 (<.01%)
cycles in affected programs: 749966 -> 738878 (-1.48%)
helped: 148
HURT: 0
helped stats (abs) min: 1 max: 1226 x̄: 74.92 x̃: 18
helped stats (rel) min: 0.07% max: 49.70% x̄: 2.69% x̃: 0.46%
95% mean confidence interval for cycles value: -104.82 -45.02
95% mean confidence interval for cycles %-change: -4.01% -1.37%
Cycles are helped.
LOST: 4
GAINED: 0
Fossil-db results:
Tiger Lake
Instructions in all programs: 160915223 -> 160898354 (-0.0%)
SENDs in all programs: 6812780 -> 6812780 (+0.0%)
Loops in all programs: 38340 -> 38340 (+0.0%)
Cycles in all programs: 7434144207 -> 7433978462 (-0.0%)
Spills in all programs: 192582 -> 192582 (+0.0%)
Fills in all programs: 304537 -> 304537 (+0.0%)
Ice Lake
Instructions in all programs: 145296298 -> 145279531 (-0.0%)
SENDs in all programs: 6863692 -> 6863692 (+0.0%)
Loops in all programs: 38334 -> 38334 (+0.0%)
Cycles in all programs: 8800257014 -> 8800088384 (-0.0%)
Spills in all programs: 216880 -> 216880 (+0.0%)
Fills in all programs: 334248 -> 334248 (+0.0%)
Skylake
Instructions in all programs: 135891664 -> 135874910 (-0.0%)
SENDs in all programs: 6802946 -> 6802946 (+0.0%)
Loops in all programs: 38331 -> 38331 (+0.0%)
Cycles in all programs: 8444273433 -> 8444130932 (-0.0%)
Spills in all programs: 194839 -> 194839 (+0.0%)
Fills in all programs: 301114 -> 301114 (+0.0%)
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10012 >
2021-05-20 01:39:35 +00:00
Ian Romanick
64bcfc3a17
nir/algebraic: Rearrange some logic-joined comparisons and reduce
...
On Skylake and Broadwell, a single big compute shader in Dirt Rally has
spills and fills *REALLY* helped. That same shader is hurt very
slightly for spills and fills on Ice Lake.
v2: Move the patterns earlier to be nearer other patterns that are
similar. Mark the replacement fmin and fmax exact. Both suggested by
Rhys.
Reviewed-by: Rhys Perry <pendingchaos02@gmail.com >
Tiger Lake
total instructions in shared programs: 21073812 -> 21073041 (<.01%)
instructions in affected programs: 77608 -> 76837 (-0.99%)
helped: 522
HURT: 33
helped stats (abs) min: 1 max: 26 x̄: 1.58 x̃: 1
helped stats (rel) min: 0.22% max: 14.29% x̄: 1.29% x̃: 1.02%
HURT stats (abs) min: 1 max: 8 x̄: 1.67 x̃: 1
HURT stats (rel) min: 0.25% max: 3.42% x̄: 1.06% x̃: 0.86%
95% mean confidence interval for instructions value: -1.57 -1.20
95% mean confidence interval for instructions %-change: -1.25% -1.05%
Instructions are helped.
total cycles in shared programs: 856224346 -> 856211096 (<.01%)
cycles in affected programs: 2394231 -> 2380981 (-0.55%)
helped: 603
HURT: 25
helped stats (abs) min: 1 max: 5218 x̄: 59.37 x̃: 28
helped stats (rel) min: 0.06% max: 5.61% x̄: 1.52% x̃: 1.37%
HURT stats (abs) min: 2 max: 21394 x̄: 901.92 x̃: 10
HURT stats (rel) min: 0.02% max: 5.90% x̄: 0.95% x̃: 0.59%
95% mean confidence interval for cycles value: -93.61 51.41
95% mean confidence interval for cycles %-change: -1.50% -1.34%
Inconclusive result (value mean confidence interval includes 0).
LOST: 1
GAINED: 1
Ice Lake
total instructions in shared programs: 20025692 -> 20024554 (<.01%)
instructions in affected programs: 104981 -> 103843 (-1.08%)
helped: 738
HURT: 0
helped stats (abs) min: 1 max: 30 x̄: 1.54 x̃: 1
helped stats (rel) min: 0.31% max: 10.53% x̄: 1.20% x̃: 1.06%
95% mean confidence interval for instructions value: -1.66 -1.43
95% mean confidence interval for instructions %-change: -1.26% -1.14%
Instructions are helped.
total cycles in shared programs: 979474407 -> 979422333 (<.01%)
cycles in affected programs: 4136364 -> 4084290 (-1.26%)
helped: 759
HURT: 59
helped stats (abs) min: 2 max: 11010 x̄: 72.78 x̃: 28
helped stats (rel) min: 0.03% max: 6.43% x̄: 1.23% x̃: 1.02%
HURT stats (abs) min: 1 max: 698 x̄: 53.66 x̃: 8
HURT stats (rel) min: 0.02% max: 24.05% x̄: 1.64% x̃: 0.33%
95% mean confidence interval for cycles value: -97.08 -30.24
95% mean confidence interval for cycles %-change: -1.14% -0.91%
Cycles are helped.
total spills in shared programs: 10568 -> 10569 (<.01%)
spills in affected programs: 102 -> 103 (0.98%)
helped: 0
HURT: 1
total fills in shared programs: 11347 -> 11349 (0.02%)
fills in affected programs: 277 -> 279 (0.72%)
helped: 0
HURT: 1
LOST: 2
GAINED: 2
Skylake
total instructions in shared programs: 18190419 -> 18188523 (-0.01%)
instructions in affected programs: 102502 -> 100606 (-1.85%)
helped: 791
HURT: 0
helped stats (abs) min: 1 max: 676 x̄: 2.40 x̃: 1
helped stats (rel) min: 0.34% max: 20.23% x̄: 1.41% x̃: 1.23%
95% mean confidence interval for instructions value: -4.07 -0.72
95% mean confidence interval for instructions %-change: -1.47% -1.34%
Instructions are helped.
total cycles in shared programs: 960737969 -> 960498951 (-0.02%)
cycles in affected programs: 4435351 -> 4196333 (-5.39%)
helped: 804
HURT: 67
helped stats (abs) min: 1 max: 198540 x̄: 300.54 x̃: 24
helped stats (rel) min: 0.03% max: 25.41% x̄: 1.21% x̃: 0.92%
HURT stats (abs) min: 2 max: 680 x̄: 39.06 x̃: 6
HURT stats (rel) min: 0.05% max: 23.98% x̄: 1.12% x̃: 0.19%
95% mean confidence interval for cycles value: -722.03 173.20
95% mean confidence interval for cycles %-change: -1.15% -0.91%
Inconclusive result (value mean confidence interval includes 0).
total spills in shared programs: 9757 -> 9722 (-0.36%)
spills in affected programs: 138 -> 103 (-25.36%)
helped: 1
HURT: 0
total fills in shared programs: 9861 -> 9576 (-2.89%)
fills in affected programs: 564 -> 279 (-50.53%)
helped: 1
HURT: 0
LOST: 5
GAINED: 2
Broadwell
total instructions in shared programs: 17853870 -> 17852414 (<.01%)
instructions in affected programs: 101276 -> 99820 (-1.44%)
helped: 777
HURT: 0
helped stats (abs) min: 1 max: 264 x̄: 1.87 x̃: 1
helped stats (rel) min: 0.34% max: 8.44% x̄: 1.37% x̃: 1.23%
95% mean confidence interval for instructions value: -2.54 -1.21
95% mean confidence interval for instructions %-change: -1.42% -1.32%
Instructions are helped.
total cycles in shared programs: 1029846029 -> 1029725458 (-0.01%)
cycles in affected programs: 4435791 -> 4315220 (-2.72%)
helped: 813
HURT: 43
helped stats (abs) min: 2 max: 68560 x̄: 149.95 x̃: 24
helped stats (rel) min: 0.02% max: 73.73% x̄: 1.43% x̃: 0.92%
HURT stats (abs) min: 2 max: 726 x̄: 31.12 x̃: 13
HURT stats (rel) min: 0.01% max: 8.43% x̄: 0.62% x̃: 0.31%
95% mean confidence interval for cycles value: -299.58 17.87
95% mean confidence interval for cycles %-change: -1.63% -1.02%
Inconclusive result (value mean confidence interval includes 0).
total spills in shared programs: 20333 -> 20307 (-0.13%)
spills in affected programs: 151 -> 125 (-17.22%)
helped: 1
HURT: 0
total fills in shared programs: 25899 -> 25775 (-0.48%)
fills in affected programs: 573 -> 449 (-21.64%)
helped: 1
HURT: 0
LOST: 5
GAINED: 0
Sandy Bridge, Ivy Bridge, and Haswell had similar results. (Haswell shown)
total instructions in shared programs: 16417658 -> 16416320 (<.01%)
instructions in affected programs: 96495 -> 95157 (-1.39%)
helped: 774
HURT: 0
helped stats (abs) min: 1 max: 18 x̄: 1.73 x̃: 1
helped stats (rel) min: 0.33% max: 9.80% x̄: 1.52% x̃: 1.20%
95% mean confidence interval for instructions value: -1.83 -1.63
95% mean confidence interval for instructions %-change: -1.59% -1.46%
Instructions are helped.
total cycles in shared programs: 1037104346 -> 1037080579 (<.01%)
cycles in affected programs: 3787747 -> 3763980 (-0.63%)
helped: 791
HURT: 53
helped stats (abs) min: 1 max: 5411 x̄: 65.87 x̃: 32
helped stats (rel) min: 0.02% max: 21.17% x̄: 1.44% x̃: 1.18%
HURT stats (abs) min: 2 max: 14160 x̄: 534.72 x̃: 18
HURT stats (rel) min: 0.02% max: 15.37% x̄: 5.70% x̃: 0.54%
95% mean confidence interval for cycles value: -69.39 13.07
95% mean confidence interval for cycles %-change: -1.19% -0.80%
Inconclusive result (value mean confidence interval includes 0).
LOST: 12
GAINED: 2
GM45 and Iron Lake had similar results. (Iron Lake shown)
total instructions in shared programs: 8132855 -> 8132703 (<.01%)
instructions in affected programs: 8782 -> 8630 (-1.73%)
helped: 38
HURT: 0
helped stats (abs) min: 4 max: 4 x̄: 4.00 x̃: 4
helped stats (rel) min: 1.66% max: 3.23% x̄: 1.77% x̃: 1.72%
95% mean confidence interval for instructions value: -4.00 -4.00
95% mean confidence interval for instructions %-change: -1.88% -1.65%
Instructions are helped.
total cycles in shared programs: 238300850 -> 238298568 (<.01%)
cycles in affected programs: 257202 -> 254920 (-0.89%)
helped: 62
HURT: 2
helped stats (abs) min: 4 max: 58 x̄: 36.90 x̃: 50
helped stats (rel) min: 0.15% max: 1.55% x̄: 0.87% x̃: 1.12%
HURT stats (abs) min: 2 max: 4 x̄: 3.00 x̃: 3
HURT stats (rel) min: 0.12% max: 0.22% x̄: 0.17% x̃: 0.17%
95% mean confidence interval for cycles value: -41.34 -29.98
95% mean confidence interval for cycles %-change: -0.95% -0.73%
Cycles are helped.
Fossil-db results:
All Intel platforms had similar results. (Ice Lake shown)
Instructions in all programs: 145296888 -> 145296346 (-0.0%)
SENDs in all programs: 6863696 -> 6863696 (+0.0%)
Loops in all programs: 38334 -> 38334 (+0.0%)
Cycles in all programs: 8800262303 -> 8800258950 (-0.0%)
Spills in all programs: 216880 -> 216880 (+0.0%)
Fills in all programs: 334248 -> 334248 (+0.0%)
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10012 >
2021-05-20 01:39:35 +00:00
Ian Romanick
adc2835646
nir/algebraic: Mark some more logic-joined comparison reductions as exact
...
If the values are known to be numbers, the the replacements are exact.
This is only applied to the patterns with constants. Constants should
always be numbers, and shaders with NaN constants should be handled in a
different way.
No shader-db or fossil-db changes on any Intel platform. The intention
is to make these patterns more future proof.
Reviewed-by: Rhys Perry <pendingchaos02@gmail.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10012 >
2021-05-20 01:39:35 +00:00
Ian Romanick
23bbf3932b
nir/algebraic: Mark some more comparison reductions exact
...
Reviewed-by: Rhys Perry <pendingchaos02@gmail.com >
All Haswell and later Intel platforms had similar results. (Tiger Lake shown)
total instructions in shared programs: 21049056 -> 21048939 (<.01%)
instructions in affected programs: 4716 -> 4599 (-2.48%)
helped: 39
HURT: 0
helped stats (abs) min: 1 max: 6 x̄: 3.00 x̃: 3
helped stats (rel) min: 0.99% max: 5.43% x̄: 2.80% x̃: 2.51%
95% mean confidence interval for instructions value: -3.46 -2.54
95% mean confidence interval for instructions %-change: -3.22% -2.38%
Instructions are helped.
total cycles in shared programs: 855141411 -> 855141159 (<.01%)
cycles in affected programs: 54491 -> 54239 (-0.46%)
helped: 28
HURT: 5
helped stats (abs) min: 2 max: 34 x̄: 12.82 x̃: 12
helped stats (rel) min: 0.06% max: 2.73% x̄: 0.94% x̃: 0.75%
HURT stats (abs) min: 2 max: 52 x̄: 21.40 x̃: 6
HURT stats (rel) min: 0.11% max: 2.46% x̄: 0.90% x̃: 0.56%
95% mean confidence interval for cycles value: -13.72 -1.55
95% mean confidence interval for cycles %-change: -1.01% -0.31%
Cycles are helped.
Tiger Lake
Instructions in all programs: 160902191 -> 160899554 (-0.0%)
SENDs in all programs: 6812435 -> 6812435 (+0.0%)
Loops in all programs: 38225 -> 38225 (+0.0%)
Cycles in all programs: 7428581420 -> 7428555881 (-0.0%)
Spills in all programs: 192582 -> 192582 (+0.0%)
Fills in all programs: 304539 -> 304539 (+0.0%)
A lot of fragment shaders in Shadow of the Tomb Raider were helped, and
a bunch of vertex shaders in Octopath Traveler were hurt.
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10012 >
2021-05-20 01:39:35 +00:00
Ian Romanick
7d85dc4f35
nir/algebraic: Equality comparison inversions require sources be numbers
...
v2: Update A630 expected image checksum for minetest.trace.
Reviewed-by: Rhys Perry <pendingchaos02@gmail.com >
Tiger Lake
total instructions in shared programs: 21036690 -> 21049485 (0.06%)
instructions in affected programs: 852085 -> 864880 (1.50%)
helped: 240
HURT: 2514
helped stats (abs) min: 1 max: 46 x̄: 2.45 x̃: 2
helped stats (rel) min: 0.15% max: 4.30% x̄: 0.79% x̃: 0.55%
HURT stats (abs) min: 1 max: 198 x̄: 5.32 x̃: 2
HURT stats (rel) min: 0.06% max: 10.71% x̄: 1.48% x̃: 1.04%
95% mean confidence interval for instructions value: 4.14 5.15
95% mean confidence interval for instructions %-change: 1.23% 1.34%
Instructions are HURT.
total cycles in shared programs: 856045255 -> 855816220 (-0.03%)
cycles in affected programs: 16743786 -> 16514751 (-1.37%)
helped: 790
HURT: 1973
helped stats (abs) min: 1 max: 10766 x̄: 627.97 x̃: 18
helped stats (rel) min: <.01% max: 32.59% x̄: 3.01% x̃: 0.64%
HURT stats (abs) min: 1 max: 4078 x̄: 135.36 x̃: 18
HURT stats (rel) min: <.01% max: 54.56% x̄: 2.80% x̃: 0.82%
95% mean confidence interval for cycles value: -131.36 -34.42
95% mean confidence interval for cycles %-change: 0.88% 1.40%
Inconclusive result (value mean confidence interval and %-change mean confidence interval disagree).
total spills in shared programs: 9771 -> 9766 (-0.05%)
spills in affected programs: 47 -> 42 (-10.64%)
helped: 1
HURT: 0
total fills in shared programs: 9451 -> 9430 (-0.22%)
fills in affected programs: 91 -> 70 (-23.08%)
helped: 1
HURT: 0
LOST: 16
GAINED: 51
All Intel GPUs from Sandybridge through Ice Lake had similar results. (Ice Lake shown)
total instructions in shared programs: 20024781 -> 20025568 (<.01%)
instructions in affected programs: 103309 -> 104096 (0.76%)
helped: 12
HURT: 389
helped stats (abs) min: 1 max: 2 x̄: 1.17 x̃: 1
helped stats (rel) min: 0.20% max: 2.70% x̄: 1.36% x̃: 1.37%
HURT stats (abs) min: 1 max: 8 x̄: 2.06 x̃: 1
HURT stats (rel) min: 0.05% max: 7.14% x̄: 1.25% x̃: 0.95%
95% mean confidence interval for instructions value: 1.78 2.15
95% mean confidence interval for instructions %-change: 1.06% 1.28%
Instructions are HURT.
total cycles in shared programs: 979419070 -> 979439180 (<.01%)
cycles in affected programs: 4968711 -> 4988821 (0.40%)
helped: 60
HURT: 381
helped stats (abs) min: 1 max: 1296 x̄: 96.92 x̃: 26
helped stats (rel) min: <.01% max: 27.10% x̄: 1.64% x̃: 0.65%
HURT stats (abs) min: 1 max: 7320 x̄: 68.04 x̃: 30
HURT stats (rel) min: <.01% max: 19.77% x̄: 1.32% x̃: 0.87%
95% mean confidence interval for cycles value: 10.25 80.95
95% mean confidence interval for cycles %-change: 0.69% 1.15%
Cycles are HURT.
LOST: 1
GAINED: 2
GM45 and Iron Lake had similar results. (Iron Lake shown)
total instructions in shared programs: 8128474 -> 8132527 (0.05%)
instructions in affected programs: 642323 -> 646376 (0.63%)
helped: 12
HURT: 1972
helped stats (abs) min: 1 max: 4 x̄: 3.00 x̃: 4
helped stats (rel) min: 0.72% max: 1.72% x̄: 1.09% x̃: 0.83%
HURT stats (abs) min: 1 max: 16 x̄: 2.07 x̃: 3
HURT stats (rel) min: 0.12% max: 7.14% x̄: 0.77% x̃: 0.70%
95% mean confidence interval for instructions value: 1.99 2.10
95% mean confidence interval for instructions %-change: 0.74% 0.79%
Instructions are HURT.
total cycles in shared programs: 238280994 -> 238294376 (<.01%)
cycles in affected programs: 8841250 -> 8854632 (0.15%)
helped: 84
HURT: 1192
helped stats (abs) min: 4 max: 64 x̄: 12.50 x̃: 8
helped stats (rel) min: 0.02% max: 1.61% x̄: 0.28% x̃: 0.17%
HURT stats (abs) min: 2 max: 198 x̄: 12.11 x̃: 12
HURT stats (rel) min: 0.02% max: 8.03% x̄: 0.28% x̃: 0.14%
95% mean confidence interval for cycles value: 9.65 11.32
95% mean confidence interval for cycles %-change: 0.22% 0.27%
Cycles are HURT.
No fossil-db changes on any Intel platform.
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10012 >
2021-05-20 01:39:35 +00:00
Ian Romanick
4246c2869c
nir/algebraic: Invert comparisons less often
...
This fixes the piglit test range_analysis_fsat_of_nan.shader_test. That
test contains some code like
o = saturate(X) > 0 ? vec4(1.0, 0.0, 0.0, 1.0)
: vec4(0.0, 1.0, 0.0, 1.0);
A clever optimizer will convert this to
o = vec4(float(saturate(X) > 0),
float(!(saturate(X) > 0)),
0, 1);
Due to the ordering of optimizations in the compiler, the `saturate`
operations are removed. This is safe even in the presense of NaN.
o = vec4(float(X > 0), float(!(X > 0)), 0, 1);
Since the calculations are not marked precise, an overzealous
optimizer may reduce this to
o = vec4(float(X > 0), float(X <= 0), 0, 1);
This will result in black being output. The GLSL spec gives quite a bit
of leeway with respect to NaN, but that seems too far. The shader
author asked for a result of red or green. A result of black is still
"undefined behavior," but it's also a little mean.
This also enables CSE to do its job better.
v2: Update A530 expected image checksum for minetest.trace.
Closes: https://gitlab.freedesktop.org/mesa/mesa/-/issues/4531
Fixes: 0dbda153aa ("nir/algebraic: Flag inexact optimizations")
Reviewed-by: Rhys Perry <pendingchaos02@gmail.com >
Tiger Lake
total instructions in shared programs: 21041563 -> 21041789 (<.01%)
instructions in affected programs: 992066 -> 992292 (0.02%)
helped: 526
HURT: 548
helped stats (abs) min: 1 max: 16 x̄: 2.48 x̃: 2
helped stats (rel) min: 0.04% max: 5.56% x̄: 0.74% x̃: 0.49%
HURT stats (abs) min: 1 max: 27 x̄: 2.80 x̃: 2
HURT stats (rel) min: 0.04% max: 4.55% x̄: 0.59% x̃: 0.38%
95% mean confidence interval for instructions value: -0.00 0.42
95% mean confidence interval for instructions %-change: -0.12% <.01%
Inconclusive result (value mean confidence interval includes 0).
total cycles in shared programs: 855885569 -> 856118189 (0.03%)
cycles in affected programs: 343637248 -> 343869868 (0.07%)
helped: 907
HURT: 541
helped stats (abs) min: 1 max: 7724 x̄: 206.45 x̃: 36
helped stats (rel) min: <.01% max: 29.97% x̄: 1.01% x̃: 0.37%
HURT stats (abs) min: 1 max: 14177 x̄: 776.09 x̃: 31
HURT stats (rel) min: <.01% max: 29.94% x̄: 1.24% x̃: 0.35%
95% mean confidence interval for cycles value: 84.30 237.00
95% mean confidence interval for cycles %-change: -0.32% -0.01%
Inconclusive result (value mean confidence interval and %-change mean confidence interval disagree).
LOST: 3
GAINED: 5
Ice Lake
total instructions in shared programs: 20027107 -> 20025352 (<.01%)
instructions in affected programs: 1068856 -> 1067101 (-0.16%)
helped: 1153
HURT: 273
helped stats (abs) min: 1 max: 14 x̄: 1.83 x̃: 1
helped stats (rel) min: 0.03% max: 5.66% x̄: 0.61% x̃: 0.35%
HURT stats (abs) min: 1 max: 15 x̄: 1.29 x̃: 1
HURT stats (rel) min: 0.16% max: 1.30% x̄: 0.58% x̃: 0.60%
95% mean confidence interval for instructions value: -1.33 -1.13
95% mean confidence interval for instructions %-change: -0.43% -0.34%
Instructions are helped.
total cycles in shared programs: 979499227 -> 979448725 (<.01%)
cycles in affected programs: 344261539 -> 344211037 (-0.01%)
helped: 1079
HURT: 441
helped stats (abs) min: 1 max: 9384 x̄: 147.78 x̃: 48
helped stats (rel) min: <.01% max: 31.83% x̄: 0.90% x̃: 0.33%
HURT stats (abs) min: 1 max: 7220 x̄: 247.07 x̃: 32
HURT stats (rel) min: <.01% max: 31.30% x̄: 1.52% x̃: 0.53%
95% mean confidence interval for cycles value: -70.01 3.56
95% mean confidence interval for cycles %-change: -0.35% -0.05%
Inconclusive result (value mean confidence interval includes 0).
total spills in shared programs: 10564 -> 10568 (0.04%)
spills in affected programs: 143 -> 147 (2.80%)
helped: 0
HURT: 1
total fills in shared programs: 11343 -> 11347 (0.04%)
fills in affected programs: 287 -> 291 (1.39%)
helped: 0
HURT: 1
LOST: 3
GAINED: 2
Skylake
total instructions in shared programs: 18192274 -> 18190128 (-0.01%)
instructions in affected programs: 1000188 -> 998042 (-0.21%)
helped: 1149
HURT: 55
helped stats (abs) min: 1 max: 14 x̄: 1.92 x̃: 1
helped stats (rel) min: 0.04% max: 6.67% x̄: 0.67% x̃: 0.42%
HURT stats (abs) min: 1 max: 2 x̄: 1.05 x̃: 1
HURT stats (rel) min: 0.16% max: 0.55% x̄: 0.27% x̃: 0.26%
95% mean confidence interval for instructions value: -1.87 -1.69
95% mean confidence interval for instructions %-change: -0.67% -0.58%
Instructions are helped.
total cycles in shared programs: 960856054 -> 960728040 (-0.01%)
cycles in affected programs: 340840968 -> 340712954 (-0.04%)
helped: 1079
HURT: 233
helped stats (abs) min: 1 max: 7640 x̄: 170.95 x̃: 46
helped stats (rel) min: <.01% max: 30.20% x̄: 0.96% x̃: 0.28%
HURT stats (abs) min: 1 max: 6864 x̄: 242.23 x̃: 26
HURT stats (rel) min: <.01% max: 34.64% x̄: 2.10% x̃: 0.22%
95% mean confidence interval for cycles value: -135.62 -59.53
95% mean confidence interval for cycles %-change: -0.59% -0.25%
Cycles are helped.
LOST: 15
GAINED: 1
Broadwell
total instructions in shared programs: 17855624 -> 17853580 (-0.01%)
instructions in affected programs: 1012209 -> 1010165 (-0.20%)
helped: 1105
HURT: 52
helped stats (abs) min: 1 max: 13 x̄: 1.90 x̃: 1
helped stats (rel) min: 0.03% max: 6.67% x̄: 0.67% x̃: 0.36%
HURT stats (abs) min: 1 max: 1 x̄: 1.00 x̃: 1
HURT stats (rel) min: 0.13% max: 0.52% x̄: 0.26% x̃: 0.25%
95% mean confidence interval for instructions value: -1.86 -1.67
95% mean confidence interval for instructions %-change: -0.68% -0.58%
Instructions are helped.
total cycles in shared programs: 1029905447 -> 1029840699 (<.01%)
cycles in affected programs: 347102680 -> 347037932 (-0.02%)
helped: 1007
HURT: 211
helped stats (abs) min: 1 max: 1360 x̄: 89.76 x̃: 48
helped stats (rel) min: <.01% max: 16.26% x̄: 0.69% x̃: 0.25%
HURT stats (abs) min: 1 max: 1297 x̄: 121.51 x̃: 20
HURT stats (rel) min: <.01% max: 31.31% x̄: 1.21% x̃: 0.20%
95% mean confidence interval for cycles value: -62.39 -43.92
95% mean confidence interval for cycles %-change: -0.47% -0.25%
Cycles are helped.
total spills in shared programs: 20335 -> 20333 (<.01%)
spills in affected programs: 19 -> 17 (-10.53%)
helped: 2
HURT: 0
total fills in shared programs: 25905 -> 25899 (-0.02%)
fills in affected programs: 23 -> 17 (-26.09%)
helped: 2
HURT: 0
LOST: 9
GAINED: 0
Haswell
total instructions in shared programs: 16418516 -> 16417293 (<.01%)
instructions in affected programs: 223785 -> 222562 (-0.55%)
helped: 590
HURT: 67
helped stats (abs) min: 1 max: 15 x̄: 2.19 x̃: 1
helped stats (rel) min: 0.03% max: 6.52% x̄: 0.87% x̃: 0.60%
HURT stats (abs) min: 1 max: 2 x̄: 1.04 x̃: 1
HURT stats (rel) min: 0.04% max: 1.85% x̄: 0.44% x̃: 0.25%
95% mean confidence interval for instructions value: -2.01 -1.71
95% mean confidence interval for instructions %-change: -0.80% -0.67%
Instructions are helped.
total cycles in shared programs: 1037179754 -> 1037084874 (<.01%)
cycles in affected programs: 352541071 -> 352446191 (-0.03%)
helped: 1093
HURT: 182
helped stats (abs) min: 1 max: 888 x̄: 111.03 x̃: 64
helped stats (rel) min: <.01% max: 27.30% x̄: 0.84% x̃: 0.20%
HURT stats (abs) min: 1 max: 6777 x̄: 145.49 x̃: 21
HURT stats (rel) min: <.01% max: 24.10% x̄: 1.99% x̃: 0.29%
95% mean confidence interval for cycles value: -88.10 -60.73
95% mean confidence interval for cycles %-change: -0.58% -0.29%
Cycles are helped.
total spills in shared programs: 17457 -> 17456 (<.01%)
spills in affected programs: 12 -> 11 (-8.33%)
helped: 1
HURT: 0
total fills in shared programs: 20387 -> 20385 (<.01%)
fills in affected programs: 15 -> 13 (-13.33%)
helped: 1
HURT: 0
LOST: 6
GAINED: 1
Ivy Bridge and earlier platforms had similar results. (Ivy Bridge shown)
total instructions in shared programs: 15515482 -> 15513998 (<.01%)
instructions in affected programs: 239739 -> 238255 (-0.62%)
helped: 573
HURT: 57
helped stats (abs) min: 1 max: 20 x̄: 2.73 x̃: 2
helped stats (rel) min: 0.03% max: 9.84% x̄: 0.94% x̃: 0.55%
HURT stats (abs) min: 1 max: 2 x̄: 1.39 x̃: 1
HURT stats (rel) min: 0.09% max: 1.85% x̄: 0.52% x̃: 0.35%
95% mean confidence interval for instructions value: -2.57 -2.14
95% mean confidence interval for instructions %-change: -0.89% -0.73%
Instructions are helped.
total cycles in shared programs: 584509880 -> 584463152 (<.01%)
cycles in affected programs: 11765280 -> 11718552 (-0.40%)
helped: 661
HURT: 152
helped stats (abs) min: 1 max: 3073 x̄: 101.99 x̃: 32
helped stats (rel) min: <.01% max: 34.38% x̄: 1.46% x̃: 0.50%
HURT stats (abs) min: 1 max: 6637 x̄: 136.10 x̃: 15
HURT stats (rel) min: <.01% max: 24.19% x̄: 1.75% x̃: 0.25%
95% mean confidence interval for cycles value: -82.79 -32.16
95% mean confidence interval for cycles %-change: -1.11% -0.61%
Cycles are helped.
LOST: 9
GAINED: 0
Tiger Lake
Instructions in all programs: 160905127 -> 160900949 (-0.0%)
SENDs in all programs: 6812418 -> 6812085 (-0.0%)
Loops in all programs: 38225 -> 38225 (+0.0%)
Cycles in all programs: 7431911114 -> 7433914697 (+0.0%)
Spills in all programs: 192582 -> 192582 (+0.0%)
Fills in all programs: 304539 -> 304537 (-0.0%)
Ice Lake
Instructions in all programs: 145296733 -> 145292370 (-0.0%)
SENDs in all programs: 6863818 -> 6863485 (-0.0%)
Loops in all programs: 38219 -> 38219 (+0.0%)
Cycles in all programs: 8798257570 -> 8800204360 (+0.0%)
Spills in all programs: 216880 -> 216880 (+0.0%)
Fills in all programs: 334250 -> 334248 (-0.0%)
Skylake
Instructions in all programs: 135891485 -> 135887357 (-0.0%)
SENDs in all programs: 6803031 -> 6802698 (-0.0%)
Loops in all programs: 38216 -> 38216 (+0.0%)
Cycles in all programs: 8442221881 -> 8444201959 (+0.0%)
Spills in all programs: 194839 -> 194839 (+0.0%)
Fills in all programs: 301116 -> 301114 (-0.0%)
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10012 >
2021-05-20 01:39:35 +00:00
Ian Romanick
49177b9e2f
nir/algebraic: Tautology replacements require sources be numbers
...
It seems worth the small amount of damage to give an extra cushion of
not having to debug problems later.
Reviewed-by: Rhys Perry <pendingchaos02@gmail.com >
All Intel platforms had similar results. (Tiger Lake shown)
total instructions in shared programs: 21043197 -> 21043359 (<.01%)
instructions in affected programs: 4409 -> 4571 (3.67%)
helped: 0
HURT: 25
HURT stats (abs) min: 1 max: 16 x̄: 6.48 x̃: 5
HURT stats (rel) min: 0.39% max: 15.38% x̄: 4.59% x̃: 4.40%
95% mean confidence interval for instructions value: 4.37 8.59
95% mean confidence interval for instructions %-change: 2.93% 6.26%
Instructions are HURT.
total cycles in shared programs: 856175986 -> 856176921 (<.01%)
cycles in affected programs: 58908 -> 59843 (1.59%)
helped: 0
HURT: 25
HURT stats (abs) min: 7 max: 70 x̄: 37.40 x̃: 38
HURT stats (rel) min: 0.27% max: 5.63% x̄: 1.87% x̃: 1.39%
95% mean confidence interval for cycles value: 31.11 43.69
95% mean confidence interval for cycles %-change: 1.35% 2.39%
Cycles are HURT.
No fossil-db changes on any Intel platform.
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10012 >
2021-05-20 01:39:35 +00:00
Ian Romanick
d69ba58644
nir/algebraic: Remove some optimizations of comparisons with fsat
...
When most of these patterns were created, we believed, incorrectly, that
fsat(NaN) was NaN. We have since realized that fsat(NaN) is zero.
Originally, this changed the patterns to use is_a_number. This didn't
help any shaders, so it's easier to just drop the optimizations.
This commit crossed paths with 4c3ad4d065 ("nir/algebraic: mark more
optimization with fsat(NaN) as inexact") and bc123c396a
("nir/algebraic: mark some optimizations with fsat(NaN) as inexact").
Given that these don't impact very many shaders, it seems safer to just
remove them.
As discussed in
https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/8716 , I tried
modifying these patterns to use !(b cmp a). Unfortunately, on Intel
GPUs, the results were much worse than just removing the patterns
altogether.
Some other related patterns will be addressed in later commits.
There are still a number of patterns that use the identity fsat(1-X) ==
1 - fsat(X). If X is NaN, the former is zero while the latter is 1.0.
I haven't evaluted these patterns yet. If changes are needed in these
patterns, it should be a separate commit anyway.
v2: Replace arrow `=>` with `->` in comments because the `=>` looks a
lot like `<=` comparison. Suggested by Rhys.
Fixes: 92b75c126b ("nir/algebraic: Replace checks that a value is between (or not) [0, 1]")
Fixes: a7f0c57673 ("nir/algebraic: Eliminate useless fsat() on operand of comparison w/value in (0, 1)")
Reviewed-by: Rhys Perry <pendingchaos02@gmail.com >
All Intel hardware had similar results. (Ice Lake shown)
total instructions in shared programs: 20029060 -> 20029670 (<.01%)
instructions in affected programs: 69236 -> 69846 (0.88%)
helped: 0
HURT: 263
HURT stats (abs) min: 1 max: 20 x̄: 2.32 x̃: 1
HURT stats (rel) min: 0.30% max: 11.11% x̄: 1.35% x̃: 0.98%
95% mean confidence interval for instructions value: 1.86 2.78
95% mean confidence interval for instructions %-change: 1.18% 1.52%
Instructions are HURT.
total cycles in shared programs: 979821278 -> 979834425 (<.01%)
cycles in affected programs: 1476848 -> 1489995 (0.89%)
helped: 49
HURT: 204
helped stats (abs) min: 1 max: 812 x̄: 102.31 x̃: 20
helped stats (rel) min: 0.01% max: 21.43% x̄: 2.23% x̃: 0.52%
HURT stats (abs) min: 2 max: 2600 x̄: 89.02 x̃: 16
HURT stats (rel) min: 0.04% max: 27.27% x̄: 1.49% x̃: 0.72%
95% mean confidence interval for cycles value: 13.18 90.75
95% mean confidence interval for cycles %-change: 0.29% 1.25%
Cycles are HURT.
No fossil-db changes.
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10012 >
2021-05-20 01:39:35 +00:00
Andres Gomez
088c7c61cf
ci: Uprev piglit to 9d87cc3d79e ("framework/replay: send backend's subprocess stderr to sys.stderr")
...
This pulls in a fix for replayer to make the backends send their
stderr to sys.stderr always.
v2:
- Updated piglit results for llvmpipe, softpipe, zink and
radeonsi-stoney.
Signed-off-by: Andres Gomez <agomez@igalia.com >
Reviewed-by: Tomeu Vizoso <tomeu.vizoso@collabora.com > [v1]
Reviewed-by: Martin Peres <martin.peres@mupuf.org > [v1]
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10854 >
2021-05-20 01:13:17 +00:00
BillKristiansen
1208290558
d3d12: Sets all SRV descriptors as data-static
...
As Mesa d3d12 is currently implemented, all resource data is static
at the time a SRV or CBV is created. Therefore, it makes sense for all
descriptors to use the DESCRIPTORS_STATIC_KEEPING_BUFFER_BOUNDS_CHECKS
flag. Use of this flag broadens debug validation and allows some
optimizations in the underlying driver.
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10871 >
2021-05-20 01:02:40 +00:00
BillKristiansen
bb1d0025d8
d3d12: Fixes stale context bindings after copy, resolve, and clear
...
Some GL applications, including Blender, are producing rendering
artifacts due to missing resource state barriers.
The d3d12_context keeps track of all resources bound as shader resource
or constant buffers. If any of these resources are used for Copy,
Resolve, or Clear source/target, the context tracking must be updated
so the correct state can be restored before the next draw call.
This change is something of a big hammer. Essentially, if a resource
currently bound as an SRV or CBV gets used for a non-shader access, a
flag is set in the context that invalidates all bindings of the same
type on the same shader stage. Thus the next Draw execution refreshes
the shader views and state transitions state before invoking Draw on the
command list.
A more elegant (and complex) fix would limit the invalidation to
resource state only, rather than also forcing a recreation of resource
views. It is unclear right now whether it is worth the time to
implement a more elegant fix.
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10871 >
2021-05-20 01:02:40 +00:00
Emma Anholt
59c22727bb
ci/freedreno: Mark two more recent intermittent a530 flakes.
...
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10886 >
2021-05-20 00:15:45 +00:00
Nanley Chery
a8b9693093
iris: Prefer more GPU-based uploads for compression
...
Where possible, start compressing depth and stencil resources on upload.
This makes a couple of benchmarks (CS:GO, GFXBench5's gl_alu2_off) start
sampling HiZ buffers in a compressed state instead of the pass-through
state.
Improves the FPS of GFXBench5's gl_alu2_off by 3.14% ±0.52% on TGL.
Testing was done with the performance CI.
Closes: https://gitlab.freedesktop.org/mesa/mesa/-/issues/2617
Reviewed-by: Kenneth Graunke <kenneth@whitecape.org >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10872 >
2021-05-19 23:59:17 +00:00
Nanley Chery
88903ba64d
isl: Add isl_aux_usage_has_compression
...
Reviewed-by: Kenneth Graunke <kenneth@whitecape.org >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10872 >
2021-05-19 23:59:17 +00:00
Eric Engestrom
6dc049fdf4
docs/release-calendar: add the schedule for the 21.1 branch
...
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10890 >
2021-05-19 23:55:19 +00:00
Eric Engestrom
59597f5962
docs: update calendar and link releases notes for 21.1.1
...
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10890 >
2021-05-19 23:55:19 +00:00
Eric Engestrom
072ffbc959
docs: update calendar and link releases notes for 21.1.0
...
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10890 >
2021-05-19 23:55:19 +00:00
Eric Engestrom
bcf65e656d
docs: add release notes for 21.1.1
...
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10890 >
2021-05-19 23:55:19 +00:00
Eric Engestrom
1b46c2efae
docs: add release notes for 21.1.0
...
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10890 >
2021-05-19 23:55:19 +00:00
Connor Abbott
e894e83e47
ir3/cf: Rewrite pass
...
The old pass had a few bugs:
- It tried to avoid folding f2f32 into f2f16, but didn't consider
conversions that were already folded in.
- It didn't prevent folding an f2f16 or f2f32 into a non-floating-point
op.
In addition it wasn't written in a manner which made handling integer
conversions practical. This rewrites the pass to instead calculate the
"type" of the conversion source and then check whether folding the
conversion is allowed. This allows us to cleanly separate the
declarative part where we describe how the HW works from the policy part
where we decide whether the transform is allowed, and makes it simple to
add support for folding integer conversions.
Closes : #3208
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10859 >
2021-05-19 20:03:19 +00:00
Pierre-Eric Pelloux-Prayer
17861aff96
radeonsi: enable glsl_correct_derivatives_after_discard by default
...
Enabling this option by default allows the nir_opt_move_discards_to_top
to be used more often.
This is only done for LLVM13+ since doing this on LLVM11 hurts a lot of
shaders.
Reviewed-by: Marek Olšák <marek.olsak@amd.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10522 >
2021-05-19 18:04:44 +00:00
Pierre-Eric Pelloux-Prayer
7640479028
radeonsi/nir: enable nir_opt_move_discards_to_top pass
...
Since it affects discards and demotes, this commit also moves the
usage of nir_lower_discard_or_demote ealier.
Reviewed-by: Marek Olšák <marek.olsak@amd.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10522 >
2021-05-19 18:04:44 +00:00
Jason Ekstrand
b447f5049b
nir: Add a discard optimization pass
...
Many fragment shaders do a discard using relatively little information
but still put the discard fairly far down in the shader for no good
reason. If the discard is moved higher up, we can possibly avoid doing
some or almost all of the work in the shader. When this lets us skip
texturing operations, it's an especially high win.
One of the biggest offenders here is DXVK. The D3D APIs have different
rules for discards than OpenGL and Vulkan. One effective way (which is
what DXVK uses) to implement DX behavior on top of GL or Vulkan is to
wait until the very end of the shader to discard. This ends up in the
pessimal case where we always do all of the work before discarding.
This pass helps some DXVK shaders significantly.
v2 (Jason Ekstrand):
- Fix a couple of typos (Grazvydas, Ian)
- Use the new nir_instr_move helper
- Find all movable discards before moving anything so we don't
accidentally re-order anything and break dependencies
v3 (Pierre-Eric): remove the call to nir_opt_conditional_discard based
on Daniel Schürmann comment.
v4 (Pierre-Eric):
- handle demote intrinsics and drop derivatives_safe_after_discard
- add early return if discards/demotes aren't used
v5 (Pierre-Eric):
- use pass_flags instead of instr set (Daniel Schürmann)
v6 (Daniel Schürmann):
- cleanup and fix pass_flags handling
Reviewed-by: Daniel Schürmann <daniel@schuermann.dev >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10522 >
2021-05-19 18:04:44 +00:00
Jason Ekstrand
3033410b10
nir/gather_info: Expose a nir_intrinsic_writes_external_memory helper
...
Reviewed-by: Timur Kristóf <timur.kristof@gmail.com >
Reviewed-by: Daniel Schürmann <daniel@schuermann.dev >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10522 >
2021-05-19 18:04:44 +00:00
Jason Ekstrand
f97fb1fa55
nir: Add a nir_instr_move helper
...
Removes an instruction from one place and inserts it at another while
working around a weird cursor corner-case.
v2: change return value to bool (Daniel Schürmann)
Reviewed-by: Timur Kristóf <timur.kristof@gmail.com > (v1)
Reviewed-by: Daniel Schürmann <daniel@schuermann.dev >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10522 >
2021-05-19 18:04:44 +00:00
Lucas Stach
3701cb9439
gallium/dri: copy image use in dup_image
...
Don't lose the use flags when dup'ing an image.
Signed-off-by: Lucas Stach <l.stach@pengutronix.de >
Reviewed-by: Daniel Stone <daniels@collabora.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/8106 >
2021-05-19 16:54:19 +00:00
Lucas Stach
c03e79d783
loader/dri: hook up createImageWithModifiers2
...
Call into the new modifiers with usage createImage variant when available
to provide the DRI implementation with more context about the allocation.
Signed-off-by: Lucas Stach <l.stach@pengutronix.de >
Reviewed-by: Daniel Stone <daniels@collabora.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/8106 >
2021-05-19 16:54:19 +00:00
Simon Ser
8eba1ac329
i965: implement createImageWithModifiers2
...
This implements __DRIimageExtension version 19.
Signed-off-by: Simon Ser <contact@emersion.fr >
Signed-off-by: Lucas Stach <l.stach@pengutronix.de >
Reviewed-by: Daniel Stone <daniels@collabora.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/8106 >
2021-05-19 16:54:19 +00:00
Simon Ser
23b0112ce1
gallium/dri: implement createImageWithModifiers2
...
This implements __DRIimageExtension version 19.
Signed-off-by: Simon Ser <contact@emersion.fr >
Signed-off-by: Lucas Stach <l.stach@pengutronix.de >
Reviewed-by: Daniel Stone <daniels@collabora.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/8106 >
2021-05-19 16:54:19 +00:00
Simon Ser
afd8b2f498
dri: add createImageWithModifiers2 interface
...
With the addition of createImageWithModifiers usage flags were
dropped, as it was believed at the time that modifers will be a
full replacement for the usage flags. This has turned out to be
untrue, as modifiers are not able to describe buffer placement.
Add a new version of the interface, that allows to specifiy
use flags in addition to the modifier.
Signed-off-by: Simon Ser <contact@emersion.fr >
Signed-off-by: Lucas Stach <l.stach@pengutronix.de >
Reviewed-by: Daniel Stone <daniels@collabora.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/8106 >
2021-05-19 16:54:19 +00:00
Lucas Stach
8fd5b16efc
loader/dri3: convert to loader_dri_create_image
...
Get rid of the code duplication and makes it easier to hook in a
new createImageWithModifiers2, but obscures the code flow a bit.
Signed-off-by: Lucas Stach <l.stach@pengutronix.de >
Reviewed-by: Daniel Stone <daniels@collabora.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/8106 >
2021-05-19 16:54:19 +00:00
Lucas Stach
cb9ae4273d
dri: add loader_dri_create_image helper
...
The DRI image extension already has two different ways to allocate an
image (with and without a modifier) and will soon grow a third one.
Add a helper, which handles calling the appropriate implementation to
get rid of code duplication in the winsys.
This convert the two obvious call sites (GBM dri and EGL wayland)
that profit from the code dedup.
Signed-off-by: Lucas Stach <l.stach@pengutronix.de >
Reviewed-by: Daniel Stone <daniels@collabora.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/8106 >
2021-05-19 16:54:19 +00:00
Erico Nunes
7327b2b7b4
lima: add reload command to the command dump
...
This was not being included in the command stream and may be
useful to debug further issues.
Signed-off-by: Erico Nunes <nunes.erico@gmail.com >
Reviewed-by: Vasily Khoruzhick <anarsoul@gmail.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10791 >
2021-05-19 18:15:49 +02:00
Erico Nunes
1fc7575cc1
lima: enable z16 format
...
Other than listing the format as supported, an extra detail is to unset
one bit in the render state depth_test when a z16 texture needs to be
reloaded before rendering, following the mali blob behavior.
Signed-off-by: Erico Nunes <nunes.erico@gmail.com >
Reviewed-by: Vasily Khoruzhick <anarsoul@gmail.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10791 >
2021-05-19 18:15:46 +02:00
Jason Ekstrand
ebba3cad81
intel/vec4: Add support for UBO pushing
...
Shader-db results on Haswell (vec4 only):
total instructions in shared programs: 2853928 -> 2726576 (-4.46%)
instructions in affected programs: 855840 -> 728488 (-14.88%)
helped: 9500
HURT: 18
helped stats (abs) min: 1 max: 359 x̄: 13.54 x̃: 11
helped stats (rel) min: 0.44% max: 53.33% x̄: 19.13% x̃: 17.44%
HURT stats (abs) min: 4 max: 124 x̄: 71.00 x̃: 92
HURT stats (rel) min: 3.64% max: 77.86% x̄: 46.43% x̃: 52.12%
95% mean confidence interval for instructions value: -13.78 -12.98
95% mean confidence interval for instructions %-change: -19.21% -18.81%
Instructions are helped.
total cycles in shared programs: 101822616 -> 60245580 (-40.83%)
cycles in affected programs: 93312382 -> 51735346 (-44.56%)
helped: 13292
HURT: 4506
helped stats (abs) min: 2 max: 1229260 x̄: 3370.82 x̃: 776
helped stats (rel) min: 0.04% max: 96.70% x̄: 47.56% x̃: 43.76%
HURT stats (abs) min: 2 max: 17644 x̄: 716.37 x̃: 82
HURT stats (rel) min: 0.02% max: 491.80% x̄: 41.00% x̃: 11.11%
95% mean confidence interval for cycles value: -3037.07 -1635.03
95% mean confidence interval for cycles %-change: -26.03% -24.25%
Cycles are helped.
total spills in shared programs: 1080 -> 1314 (21.67%)
spills in affected programs: 74 -> 308 (316.22%)
helped: 0
HURT: 47
total fills in shared programs: 310 -> 497 (60.32%)
fills in affected programs: 71 -> 258 (263.38%)
helped: 0
HURT: 47
total sends in shared programs: 239884 -> 151799 (-36.72%)
sends in affected programs: 129302 -> 41217 (-68.12%)
helped: 9547
HURT: 0
helped stats (abs) min: 1 max: 226 x̄: 9.23 x̃: 8
helped stats (rel) min: 3.12% max: 98.15% x̄: 72.38% x̃: 80.00%
95% mean confidence interval for sends value: -9.48 -8.98
95% mean confidence interval for sends %-change: -72.80% -71.97%
Sends are helped.
Reviewed-by: Kenneth Graunke <kenneth@whitecape.org >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10571 >
2021-05-19 14:38:13 +00:00
Jason Ekstrand
89fd196f6b
intel/vec4: Add support for masking pushed data
...
This is the vec4 equivalent of d0d039a4d3 , required for proper UBO
pushing in vertex stages for Vulkan on HSW. Sadly, the implementation
requires us to do everything in ALIGN1 mode and the vec4 instruction
scheduler doesn't understand HW_GRF <-> UNIFORM interference so it's
easier to do the whole thing in the generator. We add an instruction
to the top of the program which just means "emit the blob" and all the
magic happens in codegen.
Reviewed-by: Kenneth Graunke <kenneth@whitecape.org >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10571 >
2021-05-19 14:38:13 +00:00
Jason Ekstrand
a881f2295f
intel/vec4: Set up push ranges before we emit any code
...
In order to avoid switching pull constants to push constants and then
having to back to pull, compute the push ranges up-front. This way we
know by the time we emit code exactly what ranges are pushable. This is
a bit inefficient in the case where the "normal" push constants get
compacted. However, most apps don't use giant piles of dead uniforms
combined with substantial UBO use so this should be ok.
Reviewed-by: Kenneth Graunke <kenneth@whitecape.org >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10571 >
2021-05-19 14:38:13 +00:00
Jason Ekstrand
c35501ffe8
intel/vec4: Update nr_params in pack_uniform_registers
...
This is where we re-arrange and re-pack the params.
Reviewed-by: Kenneth Graunke <kenneth@whitecape.org >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10571 >
2021-05-19 14:38:13 +00:00
Jason Ekstrand
3d1ac996d0
intel/vec4: Add some asserts to move_push_to_pull
...
Reviewed-by: Kenneth Graunke <kenneth@whitecape.org >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10571 >
2021-05-19 14:38:13 +00:00
Jason Ekstrand
2db8867943
intel/vec4: Don't spill fp64 registers more than once
...
The way we handle spilling for fp64 in vec4 is to emit a series of MOVs
which swizzles the data around and then a pair of 32-bit spills. This
works great except that the next time we go to pick a spill reg, the
compiler isn't smart enough to figure out that the register has already
been spilled. Normally we do this by looking at the sources of spill
instructions (or destinations of fills) but, because it's separated from
the actual value by a MOV, we can't see it. This commit adds a new
opcode VEC4_OPCODE_MOV_FOR_SCRATCH which is identical to MOV in
semantics except that it lets RA know not to spill again.
Fixes: 82c69426a5 "i965/vec4: support basic spilling of 64-bit registers"
Reviewed-by: Kenneth Graunke <kenneth@whitecape.org >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10571 >
2021-05-19 14:38:13 +00:00
Jason Ekstrand
7138249675
anv: Push at most 32 regs for vec4 shaders
...
The vec4 back-end can't push UBOs just yet but it soon will be able.
When it starts pushing UBOs, it will have a lower limit than scalar due
to a crummy register allocator. Mirror that limit in ANV so we don't
run into asserts due to ANV and the back-end making different choices.
Reviewed-by: Kenneth Graunke <kenneth@whitecape.org >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10571 >
2021-05-19 14:38:13 +00:00
Jason Ekstrand
c01354d5c4
anv: Support pushing shader constants
...
Usually, nir_opt_constant_folding will get rid of any load_constant
intrinsics which might possibly be pushed but there are rare cases where
we can still end up with them. Better to handle them.
Cc: mesa-stable@lists.freedesktop.org
Reviewed-by: Kenneth Graunke <kenneth@whitecape.org >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10571 >
2021-05-19 14:38:13 +00:00
Jason Ekstrand
24b3e71fa9
anv: Plumb the shader into push constant helpers
...
Cc: mesa-stable@lists.freedesktop.org
Reviewed-by: Kenneth Graunke <kenneth@whitecape.org >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10571 >
2021-05-19 14:38:13 +00:00
Rhys Perry
3013670dfd
aco: disallow SGPRs on DPP instructions
...
They can't be encoded.
Signed-off-by: Rhys Perry <pendingchaos02@gmail.com >
Reviewed-by: Timur Kristóf <timur.kristof@gmail.com >
Cc: mesa-stable
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10841 >
2021-05-19 14:25:37 +00:00
Jose Fonseca
4191eb291b
d3d10umd: Avoid duplication in CreateDevice.
...
As suggested by Jesse Natalie.
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10687 >
2021-05-19 13:50:07 +00:00
Jose Fonseca
bd16133572
d3d10sw: Add a sanity test.
...
Reviewed-by: Roland Scheidegger <sroland@vmware.com >
Acked-by: Jesse Natalie <jenatali@microsoft.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10687 >
2021-05-19 13:50:07 +00:00
Jose Fonseca
54b8137141
d3d10umd,d3d10sw: Initial import.
...
This change adds a gallium D3D10 state tracker that works as a WDDM UMD
software driver, similar to Microsoft WARP, but using llvmpipe/softpipe.
The final deliverable is a d3d10sw.dll, which is similar to WARP's
d3d10warp.dll.
This has been used to run Microsoft Windows HCK wgf11* tests with
llvmpipe, and they were at one point passing 100%.
Known limitations:
- TGSI (no NIR)
- D3D10 only (no D3D11 support yet)
- no WINE integration (WINE doesn't implement WDDM DDI.)
For further details see:
- src/gallium/frontends/d3d10umd/README.md
- src/gallium/targets/d3d10sw/README.md
v2: Drop the DXBC-based disassembly. Add missing break statements.
v3: Incorporate Jesse's feedback.
Reviewed-by: Roland Scheidegger <sroland@vmware.com >
Acked-by: Jesse Natalie <jenatali@microsoft.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10687 >
2021-05-19 13:50:07 +00:00
Jose Fonseca
3927a2d946
draw: Plug leak when combining tessellation with primitive assembly.
...
Another lavapipe leak found with LeakSanitizer.
This happens when using tessellation without geometry shader but with a
fragment shader that consumes primitive ID, therefore requiring
primitive assembler stage.
Reviewed-by: Roland Scheidegger <sroland@vmware.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10835 >
2021-05-19 12:24:05 +00:00
Lionel Landwerlin
790ff1ceac
anv: fixup physical device properties of fragment shading rate
...
We've only enabled the extension on Gfx11+ so no need to care about
prior values.
Also fixup values of (min|max)FragmentShadingRateAttachmentTexelSize.
Signed-off-by: Lionel Landwerlin <lionel.g.landwerlin@intel.com >
Fixes: 231651fd89 ("anv: implement VK_KHR_fragment_shading_rate")
Reviewed-by: Tapani Pälli <tapani.palli@intel.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10607 >
2021-05-19 10:58:01 +03:00
Samuel Pitoiset
1bbbdfe590
radv: enable DCC stores on RDNA2
...
It seems this gives 2-3% improvements most of the time. This also
enables DCC for concurrent images.
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/10454 >
2021-05-19 07:17:29 +00:00
Tomeu Vizoso
7bd88dfaa2
panfrost/ci: Test Panfrost on the Mali G72 GPU
...
Make use of some Chromebooks recently added to the Collabora LAVA lab to
test Panfrost on the G72 (Bifrost) GPU.
Signed-off-by: Tomeu Vizoso <tomeu.vizoso@collabora.com >
Reviewed-by: Emma Anholt <emma@anholt.net >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10785 >
2021-05-19 06:56:19 +00:00
Tomeu Vizoso
e77163295a
ci: Update kernel to v5.13-rc2
...
This version adds support for some Chromebooks with the MT8183 SoC that
we want to use to test Panfrost.
Signed-off-by: Tomeu Vizoso <tomeu.vizoso@collabora.com >
Reviewed-by: Emma Anholt <emma@anholt.net >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10785 >
2021-05-19 06:56:19 +00:00
Jose Fonseca
250605c57d
draw: Allocate extra padding for extra shader outputs.
...
This prevents read buffer overflows in dup_vertex(), when draw stages
allocate extra shader outputs after the vertex buffers are allocated.
The original issue can be exercised with upcoming
piglit/tests/general/vertex-fallbacks.c test.
Reviewed-by: Roland Scheidegger <sroland@vmware.com >
Cc: 21.0 21.1 <mesa-stable@lists.freedesktop.org >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10836 >
2021-05-19 06:31:31 +00:00
Mike Blumenkrantz
0df249f542
util/primconvert: add C++ guards to header
...
Reviewed-by: Jesse Natalie <jenatali@microsoft.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10868 >
2021-05-19 00:05:56 +00:00
Alyssa Rosenzweig
de40016d8b
panfrost: Express viewport in terms of the batch
...
Easier to say the state dependencies.
Signed-off-by: Alyssa Rosenzweig <alyssa@collabora.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10869 >
2021-05-18 22:51:56 +00:00
Alyssa Rosenzweig
c2d571934d
panfrost: Simplify panfrost_bind_sampler_states
...
Signed-off-by: Alyssa Rosenzweig <alyssa@collabora.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10869 >
2021-05-18 22:51:56 +00:00
Alyssa Rosenzweig
a9a3f55519
panfrost: Mark job_index > 10000 as unlikely
...
By definition this is happening <= 0.02% of the time.
Signed-off-by: Alyssa Rosenzweig <alyssa@rosenzweig.io >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10869 >
2021-05-18 22:51:56 +00:00
Alyssa Rosenzweig
24eccad4a7
panfrost: Remove silly assertion
...
We don't assert the rest of the Gallium contract here either.
Signed-off-by: Alyssa Rosenzweig <alyssa@rosenzweig.io >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10869 >
2021-05-18 22:51:56 +00:00
Alyssa Rosenzweig
35dfaaf1c3
panfrost: Pass batch to panfrost_get_index_buffer_bounded
...
Calling batch_for_fbo outside of Gallium entrypoints is an antipattern.
Signed-off-by: Alyssa Rosenzweig <alyssa@rosenzweig.io >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10869 >
2021-05-18 22:51:56 +00:00
Alyssa Rosenzweig
7561cd5825
panfrost: Deduplicate some code from indirect/direct draws
...
Signed-off-by: Alyssa Rosenzweig <alyssa@rosenzweig.io >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10869 >
2021-05-18 22:51:56 +00:00
Alyssa Rosenzweig
4b3ac29bb9
panfrost: Move batch_set_requirements to the CSO
...
Much of the per-draw work can be precomputed.
Signed-off-by: Alyssa Rosenzweig <alyssa@rosenzweig.io >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10869 >
2021-05-18 22:51:56 +00:00
Alyssa Rosenzweig
bfd76ab501
panfrost: Pack draw-time RSD all-at-once
...
Manually inline the functions, delete the duplicates, and use GenXML the
way it's meant to be used. Template structs should **never** cross
function boundaries.
Signed-off-by: Alyssa Rosenzweig <alyssa@collabora.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10869 >
2021-05-18 22:51:56 +00:00
Alyssa Rosenzweig
8f2b2bcff4
panfrost: Hoist part of shader_reads_tilebuffer
...
The other part is |'d together. Do the happy path at compile time, and
reserve the draw time fixup for a v5 silicon issue.
Signed-off-by: Alyssa Rosenzweig <alyssa@collabora.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10869 >
2021-05-18 22:51:56 +00:00
Alyssa Rosenzweig
876de2831f
panfrost: Pull erratum workaround into own function
...
This _does_ need to be draw-time, but it doesn't need to be in the
monster routine.
Signed-off-by: Alyssa Rosenzweig <alyssa@collabora.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10869 >
2021-05-18 22:51:56 +00:00
Alyssa Rosenzweig
672079e592
panfrost: Distribute masks for FPK selection
...
We can calculate these at much lower frequencies and just & together at
draw time.
Signed-off-by: Alyssa Rosenzweig <alyssa@collabora.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10869 >
2021-05-18 22:51:56 +00:00
Alyssa Rosenzweig
974709c51c
panfrost: Partially determine FPK state
...
This might be disabled at draw-time, but we can merge part of the state
check to compile-time.
Signed-off-by: Alyssa Rosenzweig <alyssa@collabora.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10869 >
2021-05-18 22:51:56 +00:00
Alyssa Rosenzweig
0dd3d32141
panfrost: Hoist allow_forward_pixel_to_be_killed
...
Only a function of the shader code.
Signed-off-by: Alyssa Rosenzweig <alyssa@collabora.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10869 >
2021-05-18 22:51:56 +00:00
Alyssa Rosenzweig
997c1c84f3
panfrost: Streamline the !fs_required case
...
Takes some complexity out of the per-draw path.
Signed-off-by: Alyssa Rosenzweig <alyssa@collabora.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10869 >
2021-05-18 22:51:56 +00:00
Alyssa Rosenzweig
00e3705f60
panfrost: Move early-z decision earlier
...
These were already grouped nicely, just never got used. I also added
coverage writes to the list of reasons not to use early-z for
completeness. At the moment this doesn't do anything since this is a
Midgard flag and we haven't hooked up coverage writes on Midgard.
Signed-off-by: Alyssa Rosenzweig <alyssa@collabora.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10869 >
2021-05-18 22:51:56 +00:00
Alyssa Rosenzweig
c05e04d530
panfrost: Fill out the rasterizer CSO
...
The RSD state is all over the place but let's try to collect what we
can.
Signed-off-by: Alyssa Rosenzweig <alyssa@collabora.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10869 >
2021-05-18 22:51:56 +00:00
Alyssa Rosenzweig
88b9e5e471
panfrost: Correct the type of sample_mask
...
Let's not encode impossible masks.
Signed-off-by: Alyssa Rosenzweig <alyssa@collabora.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10869 >
2021-05-18 22:51:56 +00:00
Alyssa Rosenzweig
aee43b8cb0
panfrost: Preset evaluate_per_sample
...
Even though this isn't totally known at compile-time, at least one case
is, so let's handle that one ahead-of-time.
Signed-off-by: Alyssa Rosenzweig <alyssa@collabora.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10869 >
2021-05-18 22:51:56 +00:00
Alyssa Rosenzweig
04f2cb8ec5
panfrost: Move depth/stencil/alpha to CSO create
...
Now that we can merge RSD state, there's no reason to pack this at
draw-time. This is fun!
Signed-off-by: Alyssa Rosenzweig <alyssa@collabora.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10869 >
2021-05-18 22:51:56 +00:00
Alyssa Rosenzweig
ca690579b8
panfrost: Prepack partial RSD at compile time
...
Even for fragment shaders! Just need to merge the partial descriptors.
Fixes: c21c6d134b ("panfrost: Use the pan_shader_prepare_rsd() helper")
Signed-off-by: Alyssa Rosenzweig <alyssa@collabora.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10869 >
2021-05-18 22:51:56 +00:00
Alyssa Rosenzweig
398e65693b
panfrost: Add draw-time merge helper
...
The famous GenXML "OR" trick. Will be *essential* to packing RSDs.
Signed-off-by: Alyssa Rosenzweig <alyssa@collabora.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10869 >
2021-05-18 22:51:56 +00:00
Alyssa Rosenzweig
5a8e1dfaf3
panfrost: Precompute bifrost_blend_type_from_nir
...
Needed in the draw call hot path. Do it at compile time.
Signed-off-by: Alyssa Rosenzweig <alyssa@collabora.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10869 >
2021-05-18 22:51:56 +00:00
Alyssa Rosenzweig
87256d335b
panfrost: Split Bifrost BLEND emit by word
...
This allows the GenXML packs to be effectively inlined and folded,
skipping over the Midgard pieces.
Signed-off-by: Alyssa Rosenzweig <alyssa@collabora.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10869 >
2021-05-18 22:51:56 +00:00
Alyssa Rosenzweig
9ad1403747
panfrost: Remove unused dither flag
...
Signed-off-by: Alyssa Rosenzweig <alyssa@collabora.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10869 >
2021-05-18 22:51:56 +00:00
Alyssa Rosenzweig
bb0b3fde10
panfrost: Streamline fixed-function get_blend path
...
Signed-off-by: Alyssa Rosenzweig <alyssa@collabora.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10869 >
2021-05-18 22:51:56 +00:00
Alyssa Rosenzweig
2984d3bf1f
panfrost: Pass batch to panfrost_get_blend
...
Signed-off-by: Alyssa Rosenzweig <alyssa@collabora.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10869 >
2021-05-18 22:51:56 +00:00
Alyssa Rosenzweig
b98c40ce36
panfrost: Simplify blend_final
...
Now that we've moved everything but the blend shader up to the CSO, we
can just return a blend shader pointer (or zero to indicate the absence
thereof), and remove a source of name conflicts.
Signed-off-by: Alyssa Rosenzweig <alyssa@collabora.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10869 >
2021-05-18 22:51:56 +00:00
Alyssa Rosenzweig
6ca84265e4
panfrost: Distribute out constant colour code
...
Signed-off-by: Alyssa Rosenzweig <alyssa@collabora.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10869 >
2021-05-18 22:51:56 +00:00
Alyssa Rosenzweig
b82ac27ec3
panfrost: Pack blend equations at CSO create time
...
These are large. Get them out of the per-draw path.
Signed-off-by: Alyssa Rosenzweig <alyssa@collabora.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10869 >
2021-05-18 22:51:56 +00:00
Alyssa Rosenzweig
aa85a64821
panfrost: Garbage collect Gallium blend includes
...
Got moved to common blend handling.
Signed-off-by: Alyssa Rosenzweig <alyssa@collabora.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10869 >
2021-05-18 22:51:56 +00:00
Alyssa Rosenzweig
ffeeda3414
panfrost: Translate fixed-function blend at CSO create
...
Fixes: 93824b6451 ("panfrost: Move the blend logic out of the gallium driver")
Signed-off-by: Alyssa Rosenzweig <alyssa@collabora.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10869 >
2021-05-18 22:51:56 +00:00
Alyssa Rosenzweig
3943adbd91
panfrost: Move blend properties to CSO create
...
Fixes: 93824b6451 ("panfrost: Move the blend logic out of the gallium driver")
Signed-off-by: Alyssa Rosenzweig <alyssa@collabora.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10869 >
2021-05-18 22:51:56 +00:00
Alyssa Rosenzweig
d7590efd25
panfrost: Fix pan_blend_to_fixed_function_equation prototype
...
Doesn't need the whole state, just the equation itself.
Signed-off-by: Alyssa Rosenzweig <alyssa@collabora.com >
Fixes: 93824b6451 ("panfrost: Move the blend logic out of the gallium driver")
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10869 >
2021-05-18 22:51:56 +00:00
Alyssa Rosenzweig
b2affb6cc5
panfrost: Fix blend fixed-function prototype
...
Needs to be broken up into different functions for disjoint state.
Simpler prototypes and allows matching to CSOs.
Signed-off-by: Alyssa Rosenzweig <alyssa@collabora.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10869 >
2021-05-18 22:51:56 +00:00
Alyssa Rosenzweig
5d3e2b5e9e
panfrost: Fix blend constant fetch prototype
...
Signed-off-by: Alyssa Rosenzweig <alyssa@collabora.com >
Fixes: 93824b6451 ("panfrost: Move the blend logic out of the gallium driver")
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10869 >
2021-05-18 22:51:56 +00:00
Alyssa Rosenzweig
c35194b945
panfrost: Fix is_opaque prototype
...
Fixes: 93824b6451 ("panfrost: Move the blend logic out of the gallium driver")
Signed-off-by: Alyssa Rosenzweig <alyssa@collabora.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10869 >
2021-05-18 22:51:56 +00:00
Alyssa Rosenzweig
a0592066b0
panfrost: Fix the reads_dest prototype
...
Takes too much state, only pass what we need.
Fixes: 93824b6451 ("panfrost: Move the blend logic out of the gallium driver")
Signed-off-by: Alyssa Rosenzweig <alyssa@collabora.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10869 >
2021-05-18 22:51:56 +00:00
Alyssa Rosenzweig
1d62ec348a
panfrost: Fix blending for unbacked MRT
...
Signed-off-by: Alyssa Rosenzweig <alyssa@collabora.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10869 >
2021-05-18 22:51:56 +00:00
Bas Nieuwenhuizen
c7904b5b9b
aco: Implement bvh64_intersect_ray_amd intrinsic.
...
Reviewed-by: Daniel Schürmann <daniel@schuermann.dev >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10818 >
2021-05-18 23:02:25 +02:00
Bas Nieuwenhuizen
2d6a6469b8
nir: Add bvh64_intersect_ray_amd intrinsic.
...
Reviewed-by: Daniel Schürmann <daniel@schuermann.dev >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10818 >
2021-05-18 23:01:47 +02:00
Gert Wollny
5be00fe88a
r600: Enable NIR debug flags also for Cayman
...
Signed-off-by: Gert Wollny <gert.wollny@collabora.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10608 >
2021-05-18 22:16:08 +02:00
Gert Wollny
ed595c1785
r600/sfn: legalize image access on Cayman
...
This, seems to avoid hardware resets with the
ARB_shader_image_load_store-invalid
piglit.
Signed-off-by: Gert Wollny <gert.wollny@collabora.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10608 >
2021-05-18 22:16:07 +02:00
Gert Wollny
27f5157777
r600/sfn: Add lowering pass to legalize image access
...
Make sure only existing images are accessed and that the accessed
coordinates are within the image.
The generated code is quite exponsive, because it encapsulates each
access to an image with two if statements, one to check whether the
image index actually exists (this will get optimized away if the
image selection is direct), and one if statement to check whether
the coordinates are in range. For that reason it will only be enabled
for Cayman were invalid access seems to raise more issues.
Signed-off-by: Gert Wollny <gert.wollny@collabora.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10608 >
2021-05-18 22:16:07 +02:00
Gert Wollny
ffc5be25ca
r600/sfn: Fix cube query layer number for indirect access
...
Signed-off-by: Gert Wollny <gert.wollny@collabora.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10608 >
2021-05-18 22:16:07 +02:00
Gert Wollny
6a15c7d9ad
r600/sfn: read number of images from shader info
...
Signed-off-by: Gert Wollny <gert.wollny@collabora.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10608 >
2021-05-18 22:16:07 +02:00
Gert Wollny
efdb888b29
r600/sfn: Fix Geometry shader for Cayman
...
Signed-off-by: Gert Wollny <gert.wollny@collabora.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10608 >
2021-05-18 22:16:07 +02:00
Gert Wollny
80efb6369a
r600/sfn: Fix Cayman SSBO write with more than one value
...
Signed-off-by: Gert Wollny <gert.wollny@collabora.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10608 >
2021-05-18 22:16:07 +02:00
Gert Wollny
3b1f82c777
r600/sfn: Fix ssbo/image atomic swap for Cayman
...
Signed-off-by: Gert Wollny <gert.wollny@collabora.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10608 >
2021-05-18 22:16:07 +02:00
Gert Wollny
9898bc2915
r600/sfn: Fix texture gather for Cayman
...
Signed-off-by: Gert Wollny <gert.wollny@collabora.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10608 >
2021-05-18 22:16:07 +02:00
Gert Wollny
2d8b27507d
r600/sfn: Use unified code path for index register load
...
Signed-off-by: Gert Wollny <gert.wollny@collabora.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10608 >
2021-05-18 22:16:07 +02:00
Gert Wollny
e9be6be49b
r600/sfn: Use unified index register code for samplers
...
Signed-off-by: Gert Wollny <gert.wollny@collabora.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10608 >
2021-05-18 22:16:07 +02:00
Gert Wollny
07514ff2c8
r600/sfn: Fix Cayman trans ops
...
v2: return from emit_sin_r600 on > Cayman (Kenn Glennard)
Signed-off-by: Gert Wollny <gert.wollny@collabora.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10608 >
2021-05-18 22:16:07 +02:00
Gert Wollny
89672820b7
r600/sfn: count only distinct literals per instruction group
...
This is to avoid useless instruction group splits.
Signed-off-by: Gert Wollny <gert.wollny@collabora.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10608 >
2021-05-18 22:07:10 +02:00
Gert Wollny
aa055f78ba
r600/sfn: Don't check the faction when searching for the input slot
...
All loads from the same driver location are merged into one variable,
so there is no need to check the frachtion.
Signed-off-by: Gert Wollny <gert.wollny@collabora.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10608 >
2021-05-18 22:07:10 +02:00
Gert Wollny
3b4b962c15
r600/sfn: Lower FS pos input w-transform in NIR
...
Signed-off-by: Gert Wollny <gert.wollny@collabora.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10608 >
2021-05-18 22:07:10 +02:00
Gert Wollny
ba8d19ab80
r600/sfn: force new CF if fetch through TC would be used in same clause
...
Signed-off-by: Gert Wollny <gert.wollny@collabora.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10608 >
2021-05-18 22:07:10 +02:00
Gert Wollny
91209206f2
r600/sfn: Use valid pixel mode for SSBO and Image result fetches
...
Signed-off-by: Gert Wollny <gert.wollny@collabora.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10608 >
2021-05-18 22:07:10 +02:00
Gert Wollny
129de7ee60
r600/sfn: Use valid pixel mode only in fragment shaders
...
The doc says that it should only be set in the FS.
Signed-off-by: Gert Wollny <gert.wollny@collabora.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10608 >
2021-05-18 22:07:10 +02:00
Gert Wollny
9bf5033941
r600: don't put INTERP_X and INTERP_Z into one instruction group
...
Apparently this is not allowed and results in interpolation errors.
Signed-off-by: Gert Wollny <gert.wollny@collabora.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10608 >
2021-05-18 22:07:10 +02:00
Alyssa Rosenzweig
6bd33ce2dc
panfrost: Reduce blitter pool size
...
Blit shaders are small and the average app doesn't use many of them, so
try to pack in a single 4k BO. Saves 60k in a lot of simple apps.
Signed-off-by: Alyssa Rosenzweig <alyssa@collabora.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10866 >
2021-05-18 19:19:01 +00:00
Alyssa Rosenzweig
c900236569
panfrost: Pool texture views
...
No need to stick these in separate BOs.
Signed-off-by: Alyssa Rosenzweig <alyssa@collabora.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10866 >
2021-05-18 19:19:01 +00:00
Alyssa Rosenzweig
f1e0efff8d
panfrost: Pool shaders
...
Now we can do so without leaking memory :-)
Likewise use a pan_pool for RSDs, to share the common path.
Signed-off-by: Alyssa Rosenzweig <alyssa@collabora.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10866 >
2021-05-18 19:19:01 +00:00
Alyssa Rosenzweig
93d5fbf23d
panfrost: Add reference type for unowned pool
...
This allows implementing the common pattern of allocating from an
unowned pool and immediately taking a reference.
Signed-off-by: Alyssa Rosenzweig <alyssa@collabora.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10866 >
2021-05-18 19:19:01 +00:00
Alyssa Rosenzweig
bd55b6a727
panfrost: Make pool slab size configurable
...
Different pools have different expected sizes.
Signed-off-by: Alyssa Rosenzweig <alyssa@collabora.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10866 >
2021-05-18 19:19:01 +00:00
Alyssa Rosenzweig
ab859cfffe
panfrost: Label pools
...
Allows the allocated BOs to be labeled more intelligently.
Signed-off-by: Alyssa Rosenzweig <alyssa@collabora.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10866 >
2021-05-18 19:19:01 +00:00
Alyssa Rosenzweig
3fa1f93dac
panfrost: Label all BOs in userspace
...
Doesn't do any fancy cross-process labeling like @shadeslayer's patches
but helps with all your intra-process labeling needs.
Signed-off-by: Alyssa Rosenzweig <alyssa@collabora.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10866 >
2021-05-18 19:19:01 +00:00
Alyssa Rosenzweig
ecd0cf0b27
panfrost: Add unowned mode to pan_pool
...
I would like to reuse pan_pool for persistent uploads (shaders and CSOs)
in Gallium. In theory u_upload_mgr is more appropriate, but pan_pool is
already a knockoff u_upload_mgr, so might as well finish the job.
Signed-off-by: Alyssa Rosenzweig <alyssa@collabora.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10866 >
2021-05-18 19:19:01 +00:00
Alyssa Rosenzweig
b131f96aa8
pan/mdg: Set lower_uniforms_to_ubo
...
Rip off the band-aid. No other driver in Mesa has this combination, and
there's a reason for that. It confuses nir_to_tgsi; this commit fixes
GALLIUM_HUD (again) on Midgard.
shader-db stats aren't as bad as they appear at first blush, since the
added cycles are from added if-else branches (and only one side of the
if is taken on Midgard, which does no warping*).
total instructions in shared programs: 97036 -> 98107 (1.10%)
instructions in affected programs: 8297 -> 9368 (12.91%)
helped: 0
HURT: 45
HURT stats (abs) min: 1 max: 52 x̄: 23.80 x̃: 25
HURT stats (rel) min: 0.61% max: 61.90% x̄: 16.18% x̃: 14.66%
95% mean confidence interval for instructions value: 20.04 27.56
95% mean confidence interval for instructions %-change: 12.62% 19.74%
Instructions are HURT.
total bundles in shared programs: 45507 -> 46091 (1.28%)
bundles in affected programs: 3138 -> 3722 (18.61%)
helped: 2
HURT: 40
helped stats (abs) min: 1 max: 1 x̄: 1.00 x̃: 1
helped stats (rel) min: 1.54% max: 2.17% x̄: 1.86% x̃: 1.86%
HURT stats (abs) min: 2 max: 44 x̄: 14.65 x̃: 12
HURT stats (rel) min: 2.70% max: 50.00% x̄: 23.03% x̃: 21.25%
95% mean confidence interval for bundles value: 10.35 17.46
95% mean confidence interval for bundles %-change: 16.81% 26.88%
Bundles are HURT.
total quadwords in shared programs: 76952 -> 77849 (1.17%)
quadwords in affected programs: 6556 -> 7453 (13.68%)
helped: 2
HURT: 44
helped stats (abs) min: 1 max: 5 x̄: 3.00 x̃: 3
helped stats (rel) min: 1.73% max: 4.55% x̄: 3.14% x̃: 3.14%
HURT stats (abs) min: 2 max: 58 x̄: 20.52 x̃: 18
HURT stats (rel) min: 2.11% max: 46.34% x̄: 17.20% x̃: 12.96%
95% mean confidence interval for quadwords value: 15.18 23.82
95% mean confidence interval for quadwords %-change: 12.68% 19.96%
Quadwords are HURT.
total registers in shared programs: 6966 -> 6925 (-0.59%)
registers in affected programs: 347 -> 306 (-11.82%)
helped: 26
HURT: 8
helped stats (abs) min: 1 max: 4 x̄: 2.04 x̃: 2
helped stats (rel) min: 6.67% max: 42.86% x̄: 20.92% x̃: 22.22%
HURT stats (abs) min: 1 max: 5 x̄: 1.50 x̃: 1
HURT stats (rel) min: 9.09% max: 50.00% x̄: 17.19% x̃: 11.81%
95% mean confidence interval for registers value: -1.85 -0.56
95% mean confidence interval for registers %-change: -18.97% -4.93%
Registers are helped.
total threads in shared programs: 5040 -> 5050 (0.20%)
threads in affected programs: 13 -> 23 (76.92%)
helped: 10
HURT: 1
helped stats (abs) min: 1 max: 2 x̄: 1.10 x̃: 1
helped stats (rel) min: 100.00% max: 100.00% x̄: 100.00% x̃: 100.00%
HURT stats (abs) min: 1 max: 1 x̄: 1.00 x̃: 1
HURT stats (rel) min: 50.00% max: 50.00% x̄: 50.00% x̃: 50.00%
95% mean confidence interval for threads value: 0.44 1.38
95% mean confidence interval for threads %-change: 55.98% 116.75%
Threads are helped.
Fixes: 24d7c413fe ("panfrost: Enable packed uniforms.")
Signed-off-by: Alyssa Rosenzweig <alyssa@collabora.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10866 >
2021-05-18 19:19:01 +00:00
Alyssa Rosenzweig
a89bc59980
pan/mdg: Fix spills to TLS
...
LOCAL_STORAGE.zw is workgroup local memory, whereas LOCAL_STORAGE.xy is
thread local memory. Likewise PC_SP.zw is the stack pointer, which is
initialized to (LOCAL_STORAGE.zw + offset) but is modifiable by the
shader. Panfrost doesn't modify the s tack pointer, and the register
allocation logic assumes a zero offset, so let's always spill to thread
local memory = LOCAL_STORAGE.xy, as was intended by Italo's cleanup.
This is visible on any shader that spills. Compute shaders aren't
advertised yet, so WLS will be null, causing a fault like the following
(reproduced on Mali T860 with the glyphy trace):
[15634.148873] panfrost ff9a0000.gpu: Unhandled Page fault in AS0 at VA 0x0000000000000000
Reason: TODO
raw fault status: 0x70003C2
decoded fault status: SLAVE FAULT
exception type 0xC2: TRANSLATION_FAULT_LEVEL2
access type 0x3: WRITE
source id 0x700
[15634.658170] panfrost ff9a0000.gpu: gpu sched timeout, js=0, config=0x3300, status=0x8, head=0x31d4540,
tail=0x31d4540, sched_job=00000000e8101b2e
Fixes: 6a12ea02fe ("pan/mdg: properly encode/decode ldst instructions")
Signed-off-by: Alyssa Rosenzweig <alyssa@collabora.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10866 >
2021-05-18 19:19:01 +00:00
Alyssa Rosenzweig
8d2d711026
pan/mdg: Fix output types for scalar fields
...
Already fixed vector, but scalar was missed.
Fixes: 4d9c0a32e7 ("pan/mdg: Use _output_ type for outmod printing")
Signed-off-by: Alyssa Rosenzweig <alyssa@collabora.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10866 >
2021-05-18 19:19:01 +00:00
Alyssa Rosenzweig
6f2ea57e1d
pan/mdg: Remove unused midgard_int_alu_op_prefix
...
Signed-off-by: Alyssa Rosenzweig <alyssa@collabora.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10866 >
2021-05-18 19:19:01 +00:00
Bas Nieuwenhuizen
74d36c4f98
radv: Use correct border swizzle on GFX9+.
...
We only need the format swizzle, not the full swizzle.
Fixes: 57e796a12a ("radv: Implement VK_EXT_custom_border_color")
Gitlab: https://gitlab.freedesktop.org/mesa/mesa/-/issues/4020
Reviewed-by: Samuel Pitoiset <samuel.pitoiset@gmail.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/9731 >
2021-05-18 19:05:31 +00:00
Italo Nicola
32f710c09d
virgl: implement EXT_multisampled_render_to_texture
...
Signed-off-by: Italo Nicola <italonicola@collabora.com >
Reviewed-by: Gert Wollny <gert.wollny@collabora.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10500 >
2021-05-18 18:54:16 +00:00
Bas Nieuwenhuizen
07e0aab9d9
radv: Implement vkCmdTraceRays.
...
Reviewed-by: Samuel Pitoiset <samuel.pitoiset@gmail.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/9767 >
2021-05-18 18:29:36 +00:00
Bas Nieuwenhuizen
733c9b6d17
radv: Add RT pipeline bind.
...
Reviewed-by: Samuel Pitoiset <samuel.pitoiset@gmail.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/9767 >
2021-05-18 18:29:36 +00:00
Bas Nieuwenhuizen
eba2b4137e
radv: Add support for RT bind point.
...
Reviewed-by: Samuel Pitoiset <samuel.pitoiset@gmail.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/9767 >
2021-05-18 18:29:36 +00:00
Bas Nieuwenhuizen
bf2b990618
radv: Use global BO list with raytracing.
...
The shader binding tables in vkCmdTraceRays have no buffer reference.
Reviewed-by: Samuel Pitoiset <samuel.pitoiset@gmail.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/9767 >
2021-05-18 18:29:36 +00:00
Bas Nieuwenhuizen
bfe2802188
aco: Add load_sbt_amd intrinsic implementation.
...
Reviewed-by: Samuel Pitoiset <samuel.pitoiset@gmail.com >
Reviewed-by: Rhys Perry <pendingchaos02@gmail.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/9767 >
2021-05-18 18:29:36 +00:00
Bas Nieuwenhuizen
197d9f008e
radv: Add sbt descriptors user SGPR input.
...
Reviewed-by: Samuel Pitoiset <samuel.pitoiset@gmail.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/9767 >
2021-05-18 18:29:36 +00:00
Bas Nieuwenhuizen
aa82f91c38
nir: Add load_sbt_amd intrinsic.
...
Reviewed-by: Samuel Pitoiset <samuel.pitoiset@gmail.com >
Reviewed-by: Rhys Perry <pendingchaos02@gmail.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/9767 >
2021-05-18 18:29:36 +00:00
Juan A. Suarez Romero
53ef2a7e69
ci/broadcom: update expected results
...
Fix also some typos in the expected failed results.
Reviewed-by: Jose Maria Casanova Crespo <jmcasanova@igalia.com >
Signed-off-by: Juan A. Suarez Romero <jasuarez@igalia.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10865 >
2021-05-18 15:52:57 +00:00
Antonio Caggiano
41039d8ee9
pps: Intel documentation
...
Add documentation for the Intel Perfetto datasource.
Signed-off-by: Antonio Caggiano <antonio.caggiano@collabora.com >
Reviewed-by: Lionel Landwerlin <lionel.g.landwerlin@intel.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10216 >
2021-05-18 14:28:48 +00:00
Antonio Caggiano
92180a4376
pps: Intel pps driver
...
Add the Intel pps driver using functionalities provided by
libintel_perf.
v2: Fix build with perfetto not enabled.
v3: Open perf stream with no filtering.
v4: Drop usage of inc/dec_n_users.
v5: Isolate intel_perf in its own class.
Signed-off-by: Antonio Caggiano <antonio.caggiano@collabora.com >
Reviewed-by: Lionel Landwerlin <lionel.g.landwerlin@intel.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10216 >
2021-05-18 14:28:48 +00:00
Lionel Landwerlin
5d95aa3964
intel/perf: allow metric sets to be loaded with on OA reports
...
A bunch of performance counters rely on register snapshots on top of
the OA reports. Those are already conditional to the query mode in the
equations :
availability="true $QueryMode &&"
This change allows to disable counters that are only available with
additional register snapshots. This will be useful if you only want to
OA reports to extract performance counter values.
Signed-off-by: Lionel Landwerlin <lionel.g.landwerlin@intel.com >
Acked-by: Antonio Caggiano <antonio.caggiano@collabora.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10216 >
2021-05-18 14:28:48 +00:00
Lionel Landwerlin
fba189a349
intel/perf: allow opening perf stream with no context filtering
...
Signed-off-by: Lionel Landwerlin <lionel.g.landwerlin@intel.com >
Acked-by: Antonio Caggiano <antonio.caggiano@collabora.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10216 >
2021-05-18 14:28:48 +00:00
Antonio Caggiano
b18a4bb8c6
intel/perf: Extern C
...
Allow libintel_perf to be included as a dependency from a C++ project by
wrapping some declaration within an extern "C" block, and then add a
function to allow direct reading of the OA stream.
v2: Don't expose internal helpers (Lionel)
Signed-off-by: Antonio Caggiano <antonio.caggiano@collabora.com >
Reviewed-by: Lionel Landwerlin <lionel.g.landwerlin@intel.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10216 >
2021-05-18 14:28:48 +00:00
Erik Faye-Lund
46ded8cda9
docs/features: mark a few more extensions as done for zink
...
These are all done, but wasn't marked as done yet.
Reviewed-By: Mike Blumenkrantz <michael.blumenkrantz@gmail.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10861 >
2021-05-18 14:11:00 +00:00
Erik Faye-Lund
065a60b405
docs/features: document GL_ARB_ES3_2_compatibility support for zink
...
We support this extension on Zink even if we don't support ES 3.2,
because the compatibility extension doesn't require advanced blending.
Reviewed-By: Mike Blumenkrantz <michael.blumenkrantz@gmail.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10861 >
2021-05-18 14:11:00 +00:00
Italo Nicola
2cc59f41d9
panfrost/ci: Improve coverage for T860
...
By skipping slower tests such as `.*3_level_array.*`, we can add more
tests to CI without dramatically increase job duration.
Besides that, this patch also increases coverage by adding different
kinds of tests that were previously untested, failing or slowed CI too
much.
Signed-off-by: Italo Nicola <italonicola@collabora.com >
Reviewed-by: Tomeu Vizoso <tomeu.vizoso@collabora.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10855 >
2021-05-18 13:32:15 +00:00
Timur Kristóf
bc13049747
aco: Eliminate useless exec writes in jump threading.
...
Eliminate exec writes which are unused by subsequent instructions.
Fossil DB results on Sienna Cichlid:
Totals from 80960 (54.03% of 149839) affected shaders:
CodeSize: 162953748 -> 161749372 (-0.74%)
Instrs: 31462273 -> 31161179 (-0.96%)
Copies: 2171239 -> 1942293 (-10.54%)
Branches: 807771 -> 807747 (-0.00%)
Signed-off-by: Timur Kristóf <timur.kristof@gmail.com >
Reviewed-by: Tony Wasserka <tony.wasserka@gmx.de >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10691 >
2021-05-18 11:48:22 +00:00
Timur Kristóf
e230dcc30b
aco: Refactor SSA elimination phi info to use vector instead of map.
...
No Fossil DB changes.
Signed-off-by: Timur Kristóf <timur.kristof@gmail.com >
Reviewed-by: Tony Wasserka <tony.wasserka@gmx.de >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10691 >
2021-05-18 11:48:22 +00:00
Timur Kristóf
25a7947da7
aco: Don't use s_and_saveexec with branches when exec is constant.
...
When exec is constant, we can remember the constant as the old exec,
and just copy the condition and use it as the new exec. There is no
need to save the constant.
Due to using p_parallelcopy which is lowered to s_mov_b64 (or 32),
many exec restores now become copies, hence the increase in the copy
stats.
Fossil DB changes on Sienna Cichlid:
Totals from 73969 (49.37% of 149839) affected shaders:
SpillSGPRs: 1768 -> 1610 (-8.94%)
CodeSize: 99053892 -> 99047884 (-0.01%); split: -0.02%, +0.01%
Instrs: 19372852 -> 19370398 (-0.01%); split: -0.02%, +0.01%
VClause: 515154 -> 515142 (-0.00%); split: -0.00%, +0.00%
SClause: 719236 -> 718395 (-0.12%); split: -0.14%, +0.02%
Copies: 1109770 -> 1254634 (+13.05%); split: -0.07%, +13.12%
Branches: 374338 -> 374348 (+0.00%); split: -0.00%, +0.00%
PreSGPRs: 1776481 -> 1653761 (-6.91%)
Signed-off-by: Timur Kristóf <timur.kristof@gmail.com >
Reviewed-by: Tony Wasserka <tony.wasserka@gmx.de >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10691 >
2021-05-18 11:48:22 +00:00
Timur Kristóf
c850af936a
aco: Remember when exec mask is const, and restore the const then.
...
Previously, we would store even the constant -1 exec mask from the
beginning of every merged shader. With this change it is no longer
necessary because we can restore to constant exec mask directly.
Hence, this frees up a register pair (single register for Wave32)
in every merged shader.
No Fossil DB changes.
Signed-off-by: Timur Kristóf <timur.kristof@gmail.com >
Reviewed-by: Tony Wasserka <tony.wasserka@gmx.de >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10691 >
2021-05-18 11:48:22 +00:00
Timur Kristóf
04f90db9a0
aco: Use Operand instead of Temp for the exec mask stack.
...
This will enable us to store non-temporary values,
such as constant operands there.
No Fossil DB changes.
Signed-off-by: Timur Kristóf <timur.kristof@gmail.com >
Reviewed-by: Tony Wasserka <tony.wasserka@gmx.de >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10691 >
2021-05-18 11:48:22 +00:00
Timur Kristóf
662bbf6ad4
aco: Determine whether a few more instructions need exec.
...
These don't really need the exec mask (and never have), but we haven't
needed to include them in needs_exec_mask yet.
No Fossil DB changes.
Signed-off-by: Timur Kristóf <timur.kristof@gmail.com >
Reviewed-by: Tony Wasserka <tony.wasserka@gmx.de >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10691 >
2021-05-18 11:48:22 +00:00
Iago Toral Quiroga
b06b24191f
broadcom/ci: update fail list for v3dv
...
Reviewed-by: Alejandro Piñeiro <apinheiro@igalia.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10801 >
2021-05-18 11:28:17 +00:00
Iago Toral Quiroga
39c41169ba
broadcom/compiler: consider RT component size when lowering logic ops in Vulkan
...
In Vulkan we configure our integer RTs to clamp automatically, so with logic
operations we need to be careful and avoid overflows by discarding any bits
that won't fit in the RT component size.
Fixes remaining CTS test failures in:
dEQP-VK.pipeline.logic_op.*
Reviewed-by: Alejandro Piñeiro <apinheiro@igalia.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10801 >
2021-05-18 11:28:17 +00:00
Iago Toral Quiroga
df7185d0d1
broadcom/compiler: don't emit TLB loads for components that don't exist
...
This avoids debug builds to assert crash. Components that don't exist
won't be used and will be eventually DCEd, so simply lower them to 0.
Fixes CTS tests like these in debug builds:
dEQP-VK.pipeline.logic_op.r8_uint.clear
dEQP-VK.pipeline.logic_op.r8_uint.and
dEQP-VK.pipeline.logic_op.r8_uint.and_reverse
dEQP-VK.pipeline.logic_op.r8_uint.copy
dEQP-VK.pipeline.logic_op.r8_uint.and_inverted
dEQP-VK.pipeline.logic_op.r8_uint.no_op
dEQP-VK.pipeline.logic_op.r8_uint.xor
dEQP-VK.pipeline.logic_op.r8_uint.or
Reviewed-by: Alejandro Piñeiro <apinheiro@igalia.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10801 >
2021-05-18 11:28:17 +00:00
Maksim Sisov
5eaf8b59c8
i965: export GEM handle with RDWR access rights
...
There is a regression that made it impossible to export gem
handles with write access.
That is, a client may export gem handles of each buffer plane, then
export dmabuf fds using these handles, and mmap these dmabuf in
a different process (this is what Chromium does).
After https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/4861 ,
it became impossible as mmap resulted in EACCESS error as slightly
different approach was taken for exporting these gem handles.
This CL fixes exporting gem handles (which are exported from dmabuf
fds) by adding the DRM_RDWR flag.
Cc: mesa-stable
Fixes #3119
Reviewed-by: Lionel Landwerlin <lionel.g.landwerlin@intel.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10850 >
2021-05-18 09:49:54 +00:00
Samuel Pitoiset
143c7f0375
radv: add missing entrypoints for VK_EXT_extended_dynamic_state2
...
Fixes warnings with dEQP-VK.api.version_check.entry_points.
Fixes: d96507b73f ("radv: advertise VK_EXT_extended_dynamic_state2")
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/10831 >
2021-05-18 09:32:37 +00:00
Lucas Stach
92ed827fbd
etnaviv: fix vertex sampler setup
...
The start offset of the vertex samplers isn't zero, but the indexing of
the passed in views array is still zero based. Use the correct indexing
variable to fix vertex sampler setup.
Cc: <mesa-stable@lists.freedesktop.org >
Fixes: 81ab9fe2d0 ("etnaviv: handle NULL views in set_sampler_views")
Signed-off-by: Lucas Stach <l.stach@pengutronix.de >
Reviewed-by: Christian Gmeiner <christian.gmeiner@gmail.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10724 >
2021-05-18 09:23:46 +00:00
Maksim Sisov
b74898ef69
iris: export GEM handle with RDWR access rights
...
There is a regression that made it impossible to export gem
handles with write access.
That is, a client may export gem handles of each buffer plane, then
export dmabuf fds using these handles, and mmap these dmabuf in
a different process (this is what Chromium does).
After https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/4861 ,
it became impossible as mmap resulted in EACCESS error as slightly
different approach was taken for exporting these gem handles.
This CL fixes exporting gem handles (which are exported from dmabuf
fds) by adding the DRM_RDWR flag.
Cc: mesa-stable
Fixes #3119
Reviewed-by: Lionel Landwerlin <lionel.g.landwerlin@intel.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10851 >
2021-05-18 08:46:06 +00:00
Samuel Pitoiset
1b1c726ca9
nir/opt_access: fix getting variables in presence of similar bindings/desc
...
It's perfectly legal to declare multiple SSBOs that point to the same
binding/descriptor_set with different access mask. Currently, it will
always get the first one in the list that matches binding/desc_set
regardless of the access mask, but other variables might have different
access mask.
Fix this by being conservative if another variable uses the same
binding/desc_set because we can't get it reliably without adding
a new field to vulkan_resource_index.
This fixes rendering issues in Resident Evil Village with vkd3d-proton.
This bug has been uncovered by ("spirv: Don't remove variables used by
resource indexing intrinsics") because variables are no longer removed
No fossils-db changes.
Cc: 21.1 mesa-stable
Signed-off-by: Samuel Pitoiset <samuel.pitoiset@gmail.com >
Reviewed-by: Rhys Perry <pendingchaos02@gmail.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10692 >
2021-05-18 06:25:24 +00:00
Emma Anholt
6eff881097
ci/freedreno: Skip a test that's taking out the a530 boards.
...
This one has shown up as faulting several times, with CP failures
afterward.
Fixes: e8640fef90 ("ci: Uprev piglit to 3351e8952 ("max-texture-size: report merged results")")
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10848 >
2021-05-18 00:23:26 +00:00
Adam Jackson
e17e3df476
drisw: Don't bzero displaytarget pixels
...
Drivers generally don't clear new resources.
Reviewed-by: Emma Anholt <emma@anholt.net >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10758 >
2021-05-17 16:02:22 -04:00
Adam Jackson
b9a172c5af
gallium/dri: Remove unused dri_drawable::drisw_surface
...
Reviewed-by: Emma Anholt <emma@anholt.net >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10758 >
2021-05-17 16:02:18 -04:00
Danylo Piliaiev
931ad19a18
turnip: make cmdstream bo's read-only to GPU
...
Would allow earlier faults instead of having corrupted cmdstream.
This was already done to Freedreno long ago in:
04aff7e4 "freedreno: make cmdstream bo's read-only to GPU"
Since private memory should be GPU writable it is now allocated
separately, instead of suballocation from now read-only cmdstream.
Signed-off-by: Danylo Piliaiev <dpiliaiev@igalia.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10807 >
2021-05-17 18:29:09 +00:00
Danylo Piliaiev
413e7c6dc8
turnip: make possible to create read-only bo with tu_bo_init_new
...
GPU won't be able to write to such BOs, which would to useful for
cmdstream BOs.
Move "bool dump" to the new flags along the way.
Signed-off-by: Danylo Piliaiev <dpiliaiev@igalia.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10807 >
2021-05-17 18:29:09 +00:00
Alyssa Rosenzweig
d6f993e5d4
panfrost: Shorten iffy comment
...
Signed-off-by: Alyssa Rosenzweig <alyssa@collabora.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10845 >
2021-05-17 18:14:02 +00:00
Alyssa Rosenzweig
5aee982aec
panfrost: Garbage collect comment
...
Signed-off-by: Alyssa Rosenzweig <alyssa@collabora.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10845 >
2021-05-17 18:14:02 +00:00
Alyssa Rosenzweig
e249eaf141
panfrost: Make clear which limits are arbitrary
...
Signed-off-by: Alyssa Rosenzweig <alyssa@collabora.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10845 >
2021-05-17 18:14:02 +00:00
Alyssa Rosenzweig
fdbf8c96fe
panfrost: Use natural shader limits
...
Mostly arbitrary. Use the Gallium limits which are all less than the
hardware limits, and static_assert that this is the case to future
proof.
Signed-off-by: Alyssa Rosenzweig <alyssa@collabora.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10845 >
2021-05-17 18:14:02 +00:00
Alyssa Rosenzweig
73ca229690
panfrost: Drop random #define
...
Signed-off-by: Alyssa Rosenzweig <alyssa@collabora.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10845 >
2021-05-17 18:14:02 +00:00
Emma Anholt
958f11d537
midgard: Fix type for vertex_builtin_arg() and compute_builtin_arg().
...
It takes an intrinsic, not an ALU op. Fixes a clang complaint about enum
conversion.
Fixes: 306800d747 ("pan/midgard: Lower gl_VertexID/gl_InstanceID to attributes")
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10843 >
2021-05-17 17:58:49 +00:00
Boris Brezillon
5425855562
panfrost: Limit the number of active batch to 32
...
Should improve memory usage at the expense of more agressive batch
submission when the free batch pool is empty. The limit has been chosen
such that a batches bitmap fits nicely in a 32-bit integer.
Signed-off-by: Boris Brezillon <boris.brezillon@collabora.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10842 >
2021-05-17 16:55:03 +00:00
Boris Brezillon
a6af15aa5b
panfrost: Simplify the dependency tracking logic
...
Flush batches when a new batch accessing the same set of BOs comes in
instead of delaying that operation. This greatly simplifies the
dependency tracking logic and shouldn't hurt the perfs (it might even
improve the latency since jobs are now flushed earlier).
Signed-off-by: Boris Brezillon <boris.brezillon@collabora.com >
Reviewed-by: Alyssa Rosenzweig <alyssa@collabora.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10842 >
2021-05-17 16:55:03 +00:00
Boris Brezillon
82571f977a
panfrost: Avoid duplicate entries in access->readers
...
The PAN_BATCH_DEBUG section was too wide, potentially leading to
double insertion of the same batch in the readers array. Let's get rid
of this already_accessed parameter and make sure
panfrost_batch_update_bo_access() is only called if the RW flags have
changed.
Signed-off-by: Boris Brezillon <boris.brezillon@collabora.com >
Reviewed-by: Alyssa Rosenzweig <alyssa@collabora.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10842 >
2021-05-17 16:55:03 +00:00
Boris Brezillon
3c684d10be
panfrost: Don't freeze blit batches
...
We don't want blit batches to interfere with subsequent draw calls, but
we want to keep them in the list of pending batches (so they gets flushed
when glFlush() is called), so calling panfrost_freeze_batch() is not an
option. Reset the ctx->batch pointer manually.
Note that there's no risk to have those batches re-used to queue
unrelated draws because we created a unique pipe_surface object per
blit call, and the batch logic use the surface pointers to calculate
the batch key hash.
Fixes: e1649e916d ("panfrost: Use pan_blit() when PAN_MESA_DEBUG=panblit")
Reported-by: Icecream95 <ixn@disroot.org >
Signed-off-by: Boris Brezillon <boris.brezillon@collabora.com >
Tested-by: Icecream95 <ixn@disroot.org >
Reviewed-by: Alyssa Rosenzweig <alyssa@collabora.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10842 >
2021-05-17 16:55:03 +00:00
Abel García Dorta
3e74bbf631
i915g: fix implicit fallthrough
...
Closes : #4777
Fixes: 4e861ac4a1 ("i915g: Add more optimizations")
Fixes: f34fd58ec9 ("i915g: implement unfenced relocs for textures using tiling bits")
Fixes: beaf039f97 ("i915g: cleanup static state calculation, part 1")
Reviewed-by: Emma Anholt <emma@anholt.net >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10811 >
2021-05-17 16:35:53 +00:00
Samuel Pitoiset
6d56c16c9c
radv: dump the trap handler shader with RADV_DEBUG=metashaders
...
Help debugging it.
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/10656 >
2021-05-17 15:18:16 +00:00
Alyssa Rosenzweig
77d0498913
panfrost: Fix major flaw in BO cache
...
BOs in the cache are chronological, so we try oldest BOs first. That
means if we find the oldest BO is busy, likely every BO is busy, and we
should bail early. This dramatically reduces the useless cycles spent in
bo_wait.
I studied the BO cache of the following drivers, all of which handle
this correctly: iris, lima, etnaviv, freedreno, vc4, v3d, v3dv.
Signed-off-by: Alyssa Rosenzweig <alyssa@collabora.com >
Cc: mesa-stable
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10794 >
2021-05-17 14:56:47 +00:00
Alyssa Rosenzweig
22a750465d
ci: Build asahi in meson-gallium job
...
Adding full CI for Asahi won't make sense for a while, but simply
build-testing should catch a lot of problems with whole tree refactors
in Gallium and NIR.
Closes : #4744
Signed-off-by: Alyssa Rosenzweig <alyssa@rosenzweig.io >
Acked-by: Daniel Stone <daniels@collabora.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10826 >
2021-05-17 14:32:21 +00:00
Tomeu Vizoso
2a46fcaf02
Revert "CI: Disable all Panfrost/AMD/Iris automatic jobs"
...
This reverts commit e1d74c9cfd .
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10838 >
2021-05-17 13:46:45 +00:00
Rhys Perry
fb31dda909
aco/ra: use flags instead of booleans for update_renames()
...
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/10459 >
2021-05-17 13:31:07 +00:00
Rhys Perry
6fd6374e27
aco/ra: fix get_reg_for_operand() with vector operands
...
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/10459 >
2021-05-17 13:31:07 +00:00
Rhys Perry
c08bfa110c
aco/ra: fix get_reg_for_operand() when the blocking var is a vector
...
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/10459 >
2021-05-17 13:31:07 +00:00
Rhys Perry
bc95d55e1f
aco/ra: fix get_reg_for_operand() with no free registers
...
fossil-db (Sienna Cichlid):
Totals from 195 (0.13% of 149839) affected shaders:
CodeSize: 2352160 -> 2356720 (+0.19%); split: -0.00%, +0.20%
Instrs: 431976 -> 433124 (+0.27%); split: -0.00%, +0.27%
Latency: 10174434 -> 10174897 (+0.00%); split: -0.00%, +0.00%
InvThroughput: 4044388 -> 4044425 (+0.00%); split: -0.00%, +0.00%
Copies: 67634 -> 68762 (+1.67%); split: -0.00%, +1.67%
fossil-db (Polaris):
Totals from 186 (0.12% of 151365) affected shaders:
CodeSize: 2272356 -> 2276848 (+0.20%); split: -0.00%, +0.20%
Instrs: 432390 -> 433513 (+0.26%); split: -0.00%, +0.26%
Latency: 13153394 -> 13160194 (+0.05%); split: -0.00%, +0.05%
InvThroughput: 10889509 -> 10889967 (+0.00%); split: -0.00%, +0.00%
SClause: 12745 -> 12747 (+0.02%)
Copies: 74832 -> 75945 (+1.49%); split: -0.01%, +1.50%
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/10459 >
2021-05-17 13:31:07 +00:00
Rhys Perry
4e459df0fc
aco/ra: initialize temp_in_scc earlier
...
We need to know if there's a temporary in SCC before the instruction, not
after.
Signed-off-by: Rhys Perry <pendingchaos02@gmail.com >
Reviewed-by: Daniel Schürmann <daniel@schuermann.dev >
Fixes: 93c8ebfa78 ("aco: Initial commit of independent AMD compiler")
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10459 >
2021-05-17 13:31:07 +00:00
Mike Blumenkrantz
d517996ae5
zink: add even more validation for linear images before creation
...
nvidia claims format feature support for various flags but then doesn't
actually support them for a 3D image, only 2D, meaning that an extra step
is necessary before creating a linear image
Reviewed-by: Dave Airlie <airlied@redhat.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10823 >
2021-05-17 12:55:17 +00:00
Mike Blumenkrantz
df6ab67e99
zink: populate images with u_blitter if transfer_dst isn't available
...
this seems incredibly unlikely, but now it's handled
Reviewed-by: Dave Airlie <airlied@redhat.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10823 >
2021-05-17 12:55:17 +00:00
Mike Blumenkrantz
6a67315d8a
zink: don't multiply cube array image layers
...
this whole thing seems broken, but this part in particular is super broken
Reviewed-by: Dave Airlie <airlied@redhat.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10824 >
2021-05-17 12:42:31 +00:00
Daniel Schürmann
b960169257
aco/ra: also prevent overflow register for p_create_vector operands
...
Fixes: d659ce0d6c ('aco/ra: prevent underflow register for p_create_vector operands')
Reviewed-by: Tony Wasserka <tony.wasserka@gmx.de >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10832 >
2021-05-17 11:18:25 +00:00
Rhys Perry
dc525cbe0c
ci: remove expected robustness2 fails for Renoir
...
These should be fixed now.
Signed-off-by: Rhys Perry <pendingchaos02@gmail.com >
Reviewed-by: Samuel Pitoiset <samuel.pitoiset@gmail.com >
Reviewed-by: Martin Peres <martin.peres@mupuf.org >
Fixes: 157c6b0f33 ("radv,aco: use per-attribute vertex descriptors for robustness")
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10834 >
2021-05-17 11:06:36 +00:00
Marek Olšák
3828081c92
util: add thread-safe version of idalloc
...
For buffer IDs in u_threaded_context.
Reviewed-By: Mike Blumenkrantz <michael.blumenkrantz@gmail.com >
Reviewed-by: Rob Clark <robdclark@chromium.org >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10662 >
2021-05-17 10:37:24 +00:00
Marek Olšák
6fed423ade
gallium/u_threaded: don't reference resource in pipe_transfer
...
The atomic can be costly, so skip it. This should be safe because
we never have pipe_transfer as the only live reference of a buffer.
Drivers can't do this yet because something needs to hold the resource
reference while a transfer object is being passed via u_threaded_context.
Reviewed-By: Mike Blumenkrantz <michael.blumenkrantz@gmail.com >
Reviewed-by: Rob Clark <robdclark@chromium.org >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10662 >
2021-05-17 10:37:24 +00:00
Marek Olšák
6ac085966b
gallium/u_threaded: always map idle buffers unsynchronized
...
Reviewed-By: Mike Blumenkrantz <michael.blumenkrantz@gmail.com >
Reviewed-by: Rob Clark <robdclark@chromium.org >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10662 >
2021-05-17 10:37:24 +00:00
Marek Olšák
e8b2779455
gallium/u_threaded: don't invalidate idle buffers
...
Reviewed-By: Mike Blumenkrantz <michael.blumenkrantz@gmail.com >
Reviewed-by: Rob Clark <robdclark@chromium.org >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10662 >
2021-05-17 10:37:24 +00:00
Marek Olšák
89bd06f57a
gallium/u_threaded: add driver-internal flush tracking for buffer lists
...
This is used to track which buffer lists are associated with commands that
the driver hasn't flushed yet, so that we can consider all those buffers
busy.
Reviewed-By: Mike Blumenkrantz <michael.blumenkrantz@gmail.com >
Reviewed-by: Rob Clark <robdclark@chromium.org >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10662 >
2021-05-17 10:37:24 +00:00
Marek Olšák
e9c41b3214
gallium/u_threaded: add buffer lists - tracking of buffers referenced by tc
...
not used by anything yet
Reviewed-By: Mike Blumenkrantz <michael.blumenkrantz@gmail.com >
Reviewed-by: Rob Clark <robdclark@chromium.org >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10662 >
2021-05-17 10:37:24 +00:00
Marek Olšák
88b97567d4
gallium/u_threaded: query shader resource limits
...
for tracking buffer busyness later
Reviewed-By: Mike Blumenkrantz <michael.blumenkrantz@gmail.com >
Reviewed-by: Rob Clark <robdclark@chromium.org >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10662 >
2021-05-17 10:37:24 +00:00
Marek Olšák
39447cc894
gallium/u_threaded: track whether TCS, TES, or GS have ever been used
...
to optimize buffer busyness tracking later
Reviewed-By: Mike Blumenkrantz <michael.blumenkrantz@gmail.com >
Reviewed-by: Rob Clark <robdclark@chromium.org >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10662 >
2021-05-17 10:37:24 +00:00
Marek Olšák
ec77a2d43a
gallium/u_threaded: add callbacks and documentation for resource busy checking
...
Reviewed-By: Mike Blumenkrantz <michael.blumenkrantz@gmail.com >
Reviewed-by: Rob Clark <robdclark@chromium.org >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10662 >
2021-05-17 10:37:24 +00:00
Marek Olšák
ab58fce7b9
gallium/u_threaded: merge draws in tc_call_draw_single
...
Reviewed-By: Mike Blumenkrantz <michael.blumenkrantz@gmail.com >
Reviewed-by: Rob Clark <robdclark@chromium.org >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10662 >
2021-05-17 10:37:24 +00:00
Marek Olšák
a1cb58243b
gallium/u_threaded: pass last into and return call size from execute callbacks
...
This will allow call merging inside execute callbacks because they can
iterate the batch and return how many slots they consumed.
Reviewed-By: Mike Blumenkrantz <michael.blumenkrantz@gmail.com >
Reviewed-by: Rob Clark <robdclark@chromium.org >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10662 >
2021-05-17 10:37:24 +00:00
Tapani Pälli
72fd126070
anv: require rendering support for blit destination feature
...
This fixes some new cts tests that exercise blitting
between compressed and uncompressed formats.
Cc: mesa-stable
Signed-off-by: Tapani Pälli <tapani.palli@intel.com >
Reviewed-by: Lionel Landwerlin <lionel.g.landwerlin@intel.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10830 >
2021-05-17 10:24:28 +00:00
Connor Abbott
a40714abf7
nir/lower_phis_to_scalar: Add "lower_all" option
...
We don't want to have to deal with vector phis in freedreno, because
vectors are always split/unsplit around vectorized instructions anyways,
and the stated reason for not scalarising them (it hurting coalescing)
won't apply to us because we won't be using nir_from_ssa. Add this
option so that we don't have to do the equivalent thing while
translating from NIR.
Reviewed-by: Rob Clark <robdclark@gmail.com >
Reviewed-by: Daniel Schürmann <daniel@schuermann.dev >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10809 >
2021-05-17 09:59:45 +00:00
Marcin Ślusarz
7e6a7dba1e
intel/isl: replace format_gen by verx10
...
Signed-off-by: Marcin Ślusarz <marcin.slusarz@intel.com >
Reviewed-by: Caio Marcelo de Oliveira Filho <caio.oliveira@intel.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10810 >
2021-05-17 09:46:45 +00:00
Marcin Ślusarz
f2c48b0404
i965: simplify gfx version checks
...
Signed-off-by: Marcin Ślusarz <marcin.slusarz@intel.com >
Reviewed-by: Caio Marcelo de Oliveira Filho <caio.oliveira@intel.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10810 >
2021-05-17 09:46:45 +00:00
Marcin Ślusarz
b1933d769f
intel: simplify is_haswell checks, part 2
...
Few cases that were not handled by sed.
Signed-off-by: Marcin Ślusarz <marcin.slusarz@intel.com >
Reviewed-by: Caio Marcelo de Oliveira Filho <caio.oliveira@intel.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10810 >
2021-05-17 09:46:45 +00:00
Marcin Ślusarz
3340d5ee02
intel: simplify is_haswell checks, part 1
...
Generated with:
files=`git grep is_haswell | cut -d: -f1 | sort | uniq`
for file in $files; do
cat $file | \
sed "s/devinfo->ver <= 7 && !devinfo->is_haswell/devinfo->verx10 <= 70/g" | \
sed "s/devinfo->ver >= 8 || devinfo->is_haswell/devinfo->verx10 >= 75/g" | \
sed "s/devinfo->is_haswell || devinfo->ver >= 8/devinfo->verx10 >= 75/g" | \
sed "s/devinfo.is_haswell || devinfo.ver >= 8/devinfo.verx10 >= 75/g" | \
sed "s/devinfo->ver > 7 || devinfo->is_haswell/devinfo->verx10 >= 75/g" | \
sed "s/devinfo->ver == 7 && !devinfo->is_haswell/devinfo->verx10 == 70/g" | \
sed "s/devinfo.ver == 7 && !devinfo.is_haswell/devinfo.verx10 == 70/g" | \
sed "s/devinfo->ver < 8 && !devinfo->is_haswell/devinfo->verx10 <= 70/g" | \
sed "s/device->info.ver == 7 && !device->info.is_haswell/device->info.verx10 == 70/g" \
> tmpXXX
mv tmpXXX $file
done
Signed-off-by: Marcin Ślusarz <marcin.slusarz@intel.com >
Acked-by: Caio Marcelo de Oliveira Filho <caio.oliveira@intel.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10810 >
2021-05-17 09:46:45 +00:00
Danylo Piliaiev
3a29e45a90
turnip: do not ignore early_fragment_tests
...
Specifying "early_fragment_tests" in fragment shader takes precedence
over our internal conditions.
Fixes test:
dEQP-VK.fragment_operations.early_fragment.early_fragment_tests_stencil
Fixes: b2a60c157e "turnip: add LRZ early-z support"
Signed-off-by: Danylo Piliaiev <dpiliaiev@igalia.com >
Reviewed-by: Emma Anholt <emma@anholt.net >
Reviewed-by: Samuel Iglesias Gonsálvez <siglesias@igalia.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10803 >
2021-05-17 11:56:32 +03:00
Boris Brezillon
075d43821a
panfrost: Try to align scanout resource stride on 64 bytes
...
Signed-off-by: Boris Brezillon <boris.brezillon@collabora.com >
Reviewed-by: Daniel Stone <daniels@collabora.com >
Acked-by: Alyssa Rosenzweig <alyssa@collabora.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10423 >
2021-05-17 09:48:34 +02:00
Boris Brezillon
6b036d1350
panfrost: Relax the stride check when importing resources
...
Imported resources will not necessarily have their line stride aligned
on 64 bytes, and things prove to work just fine even on Bifrost, so
let's relax the condition and drop the comment stating that Bifrost
needs pixel lines to be aligned on 64 bytes.
Reported-by: Icecream95 <ixn@disroot.org >
Suggested-by: Icecream95 <ixn@disroot.org >
Fixes: 051d62cf04 ("panfrost: Add a pan_image_layout_init() helper")
Signed-off-by: Boris Brezillon <boris.brezillon@collabora.com >
Reviewed-by: Daniel Stone <daniels@collabora.com >
Reviewed-by: Alyssa Rosenzweig <alyssa@collabora.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10423 >
2021-05-17 09:47:46 +02:00
Yiwei Zhang
d661e32bfb
venus: stop advertising KHR_driver_properties for Android
...
This is to pass the Android cts requirement. We will re-advertise the
extension after venus has a valid driver id defined.
Signed-off-by: Yiwei Zhang <zzyiwei@chromium.org >
Reviewed-by: Chia-I Wu <olvaffe@gmail.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10819 >
2021-05-17 04:44:01 +00:00
Yiwei Zhang
a49346979a
venus: fix vkEnumeratePhysicalDeviceGroups
...
Signed-off-by: Yiwei Zhang <zzyiwei@chromium.org >
Reviewed-by: Chia-I Wu <olvaffe@gmail.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10819 >
2021-05-17 04:44:01 +00:00
James Park
fb7be7870c
vulkan: Support 32-bit "weak" symbols on MSVC
...
MSVC uses different decorated names for 32-bit versus 64-bit. Declare
all argument sizes for 32-bit because computing the actual size would be
difficult.
Fixes: 9be7aa3fc8 ("vulkan: Add a common entrypoint table generator")
Reviewed-by: Jesse Natalie <jenatali@microsoft.com >
Acked-by: Jason Ekstrand <jason@jlekstrand.net >
Reviewed-by: Erik Faye-Lund <erik.faye-lund@collabora.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10573 >
2021-05-16 23:05:24 +00:00
Rob Clark
a5a86adc23
freedreno/a6xx: Add a few registers
...
Based-on: https://patchwork.freedesktop.org/patch/429745/?series=89269&rev=2
Signed-off-by: Rob Clark <robdclark@chromium.org >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10829 >
2021-05-16 18:47:55 +00:00
Dmitry Baryshkov
0c30ad402d
freedreno/regs: split DSI PHY registers to separate xml files.
...
In-kernel DSI PHY driver is being more and more split from the main DSI
driver. Split PHY registers from main dsi.xml file to ease further split
of the drivers.
Signed-off-by: Dmitry Baryshkov <dbaryshkov@gmail.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10817 >
2021-05-16 15:53:14 +00:00
Mike Blumenkrantz
6df187df13
nir/builder: add nir_pad_vector and nir_pad_vec4 util functions
...
these pad a given value to vec4 or arbitrary number of components
Reviewed-by: Jesse Natalie <jenatali@microsoft.com >
Reviewed-by: Jason Ekstrand <jason@jlekstrand.net >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10630 >
2021-05-16 14:15:14 +00:00
Joshua Ashton
6fcf3314d0
venus: Fix zero-initialized fd causing apps to hang/crash
...
Some apps such as Gamescope crash under the mere presence of the virtio Vulkan driver without using a device.
This is because virtgpu::fd is zero-initialized upon allocation, which causes fd 0 to be closed in virtgpu_destroy.
Cc: mesa-stable
Fixes: 247232d5 ("venus: add experimental renderers")
Signed-off-by: Joshua Ashton <joshua@froggi.es >
Reviewed-by: Bas Nieuwenhuizen <bas@basnieuwenhuizen.nl >
Reviewed-By: Mike Blumenkrantz <michael.blumenkrantz@gmail.com >
Reviewed-by: Daniel Stone <daniels@collabora.com >
Reviewed-by: Chia-I Wu <olvaffe@gmail.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10814 >
2021-05-16 01:47:01 +00:00
Joshua Ashton
855cb78d46
radv: Handle unnormalized samplers in YCbCr lowering
...
We need to divide these by their divisors and special-case COSITED_EVEN.
Fixes NV12 compositing in Gamescope.
Fixes: 91702374 ("radv: Add ycbcr lowering pass.")
Cc: mesa-stable
Signed-off-by: Joshua Ashton <joshua@froggi.es >
Reviewed-by: Bas Nieuwenhuizen <bas@basnieuwenhuizen.nl >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10816 >
2021-05-15 18:15:52 +00:00
Lionel Landwerlin
fc765d6a8d
iris: fix assert to reflect correct limit for encoded size
...
Signed-off-by: Lionel Landwerlin <lionel.g.landwerlin@intel.com >
Reviewed-by: Kenneth Graunke <kenneth@whitecape.org >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10805 >
2021-05-15 09:57:58 +00:00
Gert Wollny
b3499435ec
r600/sfn: Ignore precision when linking
...
There doesn't seem to be any speciifc support for passing arount
mediump and lowp data, so when linking these specifiers can be ignored
theerby saving IO instructions.
Signed-off-by: Gert Wollny <gert.wollny@collabora.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10722 >
2021-05-15 09:58:35 +02:00
Gert Wollny
4c045ad11e
nir/linker: add option to ignore the IO precisions for better varying packing
...
Backends that don't handle IO component precision can pack more varyings
into one slot if the linker ignores the precision. If the IO is vectorized
then this can save IO instructions.
Related: 165a69d2f7
nir: handle mediump varyings in varying compaction helpers
Signed-off-by: Gert Wollny <gert.wollny@collabora.com >
Reviewed-by: Marek Olšák <marek.olsak@amd.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10722 >
2021-05-15 09:58:27 +02:00
Juan A. Suarez Romero
629e8347ad
ci: Update VK-GL-CTS to 1.2.6.1
...
Reviewed-by: Emma Anholt <emma@anholt.net >
Signed-off-by: Juan A. Suarez Romero <jasuarez@igalia.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10800 >
2021-05-14 20:35:24 +00:00
Dave Airlie
172c719baf
llvmpipe: fix non-multisampled rendering to multisampled framebuffer
...
Don't depend moving between samples on key->multisample
Big CI wins
Reported-by: Erik Faye-Lund <kusmabite@gmail.com >
Reviewed-by: Emma Anholt <emma@anholt.net >
Fixes: 210d714f46 ("llvmpipe: handle multisample color stores.")
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10780 >
2021-05-15 06:05:00 +10:00
Nanley Chery
bcdebf4ff8
iris: Avoid sampling some MCS surfaces with clear
...
Supposedly avoids GPU hangs in BF4. See HSD 1707282275 and 14013111325.
v2. Fix bug in WA implementation. (Sagar)
Cc: mesa-stable
Reviewed-by: Sagar Ghuge <sagar.ghuge@intel.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/8755 >
2021-05-14 18:05:32 +00:00
Nanley Chery
eef4c708b3
anv: Avoid sampling some MCS surfaces with clear
...
Supposedly avoids GPU hangs in BF4. See HSD 1707282275 and 14013111325.
v2. Fix bug in WA implementation. (Sagar)
Cc: mesa-stable
Reviewed-by: Sagar Ghuge <sagar.ghuge@intel.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/8755 >
2021-05-14 18:05:32 +00:00
Nanley Chery
608c131638
anv: Add clear_supported to anv_layout_to_aux_state
...
This will be used for an MCS workaround.
Cc: mesa-stable
Reviewed-by: Sagar Ghuge <sagar.ghuge@intel.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/8755 >
2021-05-14 18:05:32 +00:00
Daniel Schürmann
b3eb87aa65
radv: call nir_copy_prop() after load-store vectorization
...
The load-store vectorizer can create a large amount
of unnecessary nir_op_vec and nir_op_mov instructions.
This prevents nir_opt_move from stalling to much and
potentially also helps other passes.
Closes : #4778
Fixes: 1958381c9a ('radv: Reorder some NIR optimizations in preparation for the I/O changes.')
Reviewed-by: Rhys Perry <pendingchaos02@gmail.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10804 >
2021-05-14 17:38:46 +00:00
Daniel Schürmann
d659ce0d6c
aco/ra: prevent underflow register for p_create_vector operands
...
It could happen that we tested negative out-of-range
registers for p_create_vector operands resulting in a crash.
Fixes: 8962510e38 ('aco/ra: Conservatively refactor get_reg_specified to use PhysRegInterval')
Closes : #4697
Reviewed-by: Rhys Perry <pendingchaos02@gmail.com >
Reviewed-by: Tony Wasserka <tony.wasserka@gmx.de >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10799 >
2021-05-14 17:26:41 +00:00
Emma Anholt
341ecb2dfc
ci/freedreno: Skip refract on a306 now that it hangchecks sometimes.
...
Not every MR, but several per day since I landed the apitrace switch which
increased trace replay resolution to 1080p. Hopefully some day we can
tune the hangcheck to be less aggressive.
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10793 >
2021-05-14 16:59:13 +00:00
Caio Marcelo de Oliveira Filho
09984fd02f
nir: Rename nir_is_per_vertex_io to nir_is_arrayed_io
...
VS outputs are "per vertex" but not the kind of I/O we want to match
with this helper. Change to a name that covers the "arrayness"
required by the type.
Name inspired by the GLSL spec definition of arrayed I/O.
Reviewed-by: Timur Kristóf <timur.kristof@gmail.com >
Reviewed-by: Matt Turner <mattst88@gmail.com >
Reviewed-by: Jason Ekstrand <jason@jlekstrand.net >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10493 >
2021-05-14 16:17:45 +00:00
Gert Wollny
e418710f8b
compiler/nir: check whether var is an input in lower_fragcoord_wtrans
...
Otherwise the lowering pass might try to lower any other load from
a deref if its data.location value happens to be zero.
Fixes: 418c4c0d7d
compiler/nir: extend lower_fragcoord_wtrans to support VARYING_SLOT_POS
Signed-off-by: Gert Wollny <gert.wollny@collabora.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10577 >
2021-05-14 13:26:13 +00:00
Mike Blumenkrantz
0f04a90ea3
zink: emit some barriers out of renderpass where possible
...
when emitting barriers, we don't need to end the renderpass in some cases
this handles the case of emitting barriers for new resources which have
never before been accessed and thus do not require synchronization at a
specific point in the batch
Reviewed-by: Dave Airlie <airlied@redhat.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10700 >
2021-05-14 13:15:07 +00:00
Mike Blumenkrantz
f1ec655e47
zink: add flags for determining whether to update framebuffer and renderpass
...
we can optimize restarting renderpasses here a little by only performing
lookups if states have actually changed
Reviewed-by: Dave Airlie <airlied@redhat.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10761 >
2021-05-14 13:02:21 +00:00
Mike Blumenkrantz
b11b1968ee
zink: add a flag for tracking/validating renderpass clears
...
we've been tracking which attachments are deferring clears but not
specifically the ones that are going to be cleared in a renderpass
Reviewed-by: Dave Airlie <airlied@redhat.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10761 >
2021-05-14 13:02:21 +00:00
Mike Blumenkrantz
a7d3636d03
zink: split out base renderpass begin into separate function
...
let fb setup and barriers and whatever be separate
Reviewed-by: Dave Airlie <airlied@redhat.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10761 >
2021-05-14 13:02:21 +00:00
Tony Wasserka
a50d5b13be
util: tune signatures of generated enum operators
...
This allows use of these operators in a constexpr context and silences
a clang -Wunused-function warning.
Reviewed-by: Jesse Natalie <jenatali@microsoft.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10784 >
2021-05-14 11:00:52 +00:00
Tony Wasserka
c0f4bb9a22
util: add support for defining bitwise operators on strongly typed enums
...
Reviewed-by: Jesse Natalie <jenatali@microsoft.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10784 >
2021-05-14 11:00:52 +00:00
Jordan Justen
df5b14969f
intel: Add 2 ADL-S pci-ids
...
Cc: mesa-stable
Signed-off-by: Jordan Justen <jordan.l.justen@intel.com >
Reviewed-by: Lionel Landwerlin <lionel.g.landwerlin@intel.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10781 >
2021-05-14 08:59:18 +00:00
Daniel Schürmann
c62d58c80f
driconf: set vk_x11_strict_image_count for Metro: Exodus
...
Otherwise, the game crashes on startup under xwayland.
Closes : #4650
Cc: mesa-stable
Reviewed-by: Bas Nieuwenhuizen <bas@basnieuwenhuizen.nl >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10750 >
2021-05-14 07:59:50 +00:00
Mike Blumenkrantz
776ddfc858
util/queue: don't require a fence when adding a job
...
sometimes we just want to fire jobs off into the void and don't care
if or when they finish
Reviewed-by: Rob Clark <robdclark@chromium.org >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10719 >
2021-05-14 06:49:31 +00:00
Icecream95
4da88060d0
panfrost: Skip blit shader labelling if the buffer has no space
...
Fixes stack corruption in dEQP-GLES31.functional.draw_buffers_indexed.
random.max_implementation_draw_buffers.10
Fixes: 8ba2f9f698 ("panfrost: Create a blitter library to replace the existing preload helpers")
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10792 >
2021-05-14 06:39:05 +00:00
Lionel Landwerlin
938e52a6e8
anv: handle spirv parsing failure
...
v2: don't leak spec_entries
v3: Also switch to VK_ERROR_UNKNOWN when parsing fails
Signed-off-by: Lionel Landwerlin <lionel.g.landwerlin@intel.com >
Cc: mesa-stable
Reviewed-by: Jason Ekstrand <jason@jlekstrand.net >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10790 >
2021-05-14 06:32:03 +00:00
Jordan Justen
e435511b58
intel/dev: Add device info for ADL GT2
...
Cc: mesa-stable
Signed-off-by: Jordan Justen <jordan.l.justen@intel.com >
Reviewed-by: Anuj Phogat <anuj.phogat@gmail.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/9465 >
2021-05-14 06:10:47 +00:00
Jordan Justen
89f3312625
intel/isl: Add Wa_22011186057 to disable CCS on ADL GT2 A0
...
Cc: mesa-stable
Signed-off-by: Jordan Justen <jordan.l.justen@intel.com >
Reviewed-by: Nanley Chery <nanley.g.chery@intel.com >
Reviewed-by: Anuj Phogat <anuj.phogat@gmail.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/9465 >
2021-05-14 06:10:47 +00:00
Daniel Stone
e1d74c9cfd
CI: Disable all Panfrost/AMD/Iris automatic jobs
...
The power in Cambridge is unstable; disable these jobs until it's back
clear.
Signed-off-by: Daniel Stone <daniels@collabora.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10797 >
2021-05-14 04:18:17 +00:00
Mike Blumenkrantz
d1e30ca120
zink: immediately return false when getting query result if it's not gonna happen
...
this is a small optimization for the no-wait case when unflushed usage
exists since it's impossible for a qbo update to happen instantly
no functionality will be fixed by this, it's just a very minor optimization
Reviewed-by: Dave Airlie <airlied@redhat.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10796 >
2021-05-14 03:15:09 +00:00
Mike Blumenkrantz
cf3f17a643
lavapipe: fix fencing when submitting multiple cmdbufs
...
a fence applies to all the submitted cmdbufs, so it's necessary to do
the flush which creates the user fence after all the cmdbufs have been
processed in order to avoid creating a fence that only applies to the
first cmdbuf
Fixes: b38879f8c5 ("vallium: initial import of the vulkan frontend")
Reviewed-by: Dave Airlie <airlied@redhat.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10795 >
2021-05-14 03:03:32 +00:00
Mike Blumenkrantz
719e4fb369
zink: fix DrawParameters shader cap usage
...
this is for vertex shaders and covers more than just baseinstance
Fixes: dcb9e4ddb4 ("zink: emit cap early")
Reviewed-by: Dave Airlie <airlied@redhat.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10788 >
2021-05-13 21:44:59 +00:00
Mike Blumenkrantz
8e2ac24482
zink: stop overwriting buffer map pointers for stream uploader
...
this breaks the driver!
the uploader always maps its own pointer, so modifying that at any
point just explodes things later
Fixes: d179c5d28e ("zink: implement threaded context")
Reviewed-by: Dave Airlie <airlied@redhat.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10787 >
2021-05-13 21:37:15 +00:00
Caio Marcelo de Oliveira Filho
c0dc6affdc
intel/compiler: Clarify why VUE is recomputed by FS
...
FS will get the last geometry VUE, but it still needs to recompute in
case the number of position slots assigned by geometry is larger than
one -- this happens when Primitive Replication is used.
Reviewed-by: Kenneth Graunke <kenneth@whitecape.org >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10653 >
2021-05-13 12:10:26 -07:00
Danylo Piliaiev
5a133ef1f2
ci/turnip: drop fail annotation for image.extend_operands_spirv1p4.*
...
They were fixed in
ed20e69b "vtn: Handle ZeroExtend/SignExtend image operands"
Signed-off-by: Danylo Piliaiev <dpiliaiev@igalia.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10783 >
2021-05-13 17:18:48 +00:00
Danylo Piliaiev
9a477ccbea
ci/turnip: drop fail annotation for float_control tests
...
These tests are NotSupported and therefore cannot fail.
Signed-off-by: Danylo Piliaiev <dpiliaiev@igalia.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10783 >
2021-05-13 17:18:48 +00:00
Lionel Landwerlin
2cebb1b5b3
anv: fix perf query pass with command buffer batching
...
We've only considered the perf query pool change previously. But we
also need to pay attention to the pass index.
Signed-off-by: Lionel Landwerlin <lionel.g.landwerlin@intel.com >
Fixes: 0a7224f3ff ("anv: group as many command buffers into a single execbuf")
Reviewed-by: Felix DeGrood <felix.j.degrood@intel.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10301 >
2021-05-13 17:02:41 +00:00
Lionel Landwerlin
2c2de4d60e
intel/mi_builder: fix resolve call
...
Giving NULL for anv_combine_address() triggers an assert in that
function.
Signed-off-by: Lionel Landwerlin <lionel.g.landwerlin@intel.com >
Fixes: 8525ebe6e3 ("intel/mi_builder: Return an address from __gen_get_batch_address")
Reviewed-by: Felix DeGrood <felix.j.degrood@intel.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10301 >
2021-05-13 17:02:41 +00:00
Abel García Dorta
f88dd7ed4d
i915g: add HW atomic counters as unsupported
...
Closes : #4772
Fixes: 2a06423c00 ("gallium: add CAPs to support HW atomic counters. (v3)")
Reviewed-by: Alyssa Rosenzweig <alyssa@collabora.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10776 >
2021-05-13 16:29:07 +00:00
Tony Wasserka
80ee9d3947
aco/scheduler: Verify register demand invariants in debug mode
...
Reviewed-by: Daniel Schürmann <daniel@schuermann.dev >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10644 >
2021-05-13 15:27:57 +00:00
Tony Wasserka
50ba919d37
aco/scheduler: Fix register demand computation for upwards moves
...
The initial value needs to be taken from the instruction that is being
moved over, not the one to be moved.
Additionally the parameter of this function was removed because it was
misleading. Setting it to any value other than source_idx would cause
register_demand to be initialized incorrectly. (Instead, the maximum
demand among the covered instructions would need to be determined.)
Reviewed-by: Daniel Schürmann <daniel@schuermann.dev >
Cc: mesa-stable
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10644 >
2021-05-13 15:27:57 +00:00
Tony Wasserka
c528af1076
aco/scheduler: Fix register demand computation for downwards moves
...
Previously, changes in total_demand_clause were not always propagated to
total_demand. For instance, clause moves do not change the local register
demand at the end of a clause, yet they may still affect the total maximum.
Reviewed-by: Daniel Schürmann <daniel@schuermann.dev >
Fixes: 8235bc6411 ("aco: try to group together VMEM loads of the same resource")
Closes: https://gitlab.freedesktop.org/mesa/mesa/-/issues/4533
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10644 >
2021-05-13 15:27:57 +00:00
Daniel Schürmann
c7d679f0f7
aco: relax validation rules for p_reduce dst RegType
...
By exposing a subgroupSize of 64, reductions with
cluster_size 32 in wave32 might be considered divergent,
and thus, result in a VGPR.
Fixes: dEQP-VK.subgroups.clustered.graphics.subgroupclustered* with wave32
Reviewed-by: Timur Kristóf <timur.kristof@gmail.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10769 >
2021-05-13 15:10:24 +00:00
Tapani Pälli
343d90b6ab
isl: require hiz for depth surface in isl_surf_get_ccs_surf
...
Fixes: 752eefdb ("intel/isl: Refactor isl_surf_get_ccs_surf")
Signed-off-by: Tapani Pälli <tapani.palli@intel.com >
Reviewed-by: Nanley Chery <nanley.g.chery@intel.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10768 >
2021-05-13 17:18:54 +03:00
Jose Fonseca
6bb7d3bbc0
wgl: Remove opengl32.mingw.def.
...
MinGW DEF parsing is even more broken than before, and 32-bits import
libs are broken regardless one uses opengl32.mingw.def or opengl32.def.
This change removes opengl32.mingw.def and addresses the issue differently:
- link opengl32.dll with --enable-stdcall-fixup
- use the systems opengl32 import lib (libopengl32.a/opengl32.lib)
instead of our own
This change also gets test_wgl built with MinGW (even if it's never tested),
which I used to verify this; and to not link against internal libraries.
Reviewed-by: Jesse Natalie <jenatali@microsoft.com >
v2: Revert back to shared_library.
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10767 >
2021-05-13 13:18:16 +00:00
Mike Blumenkrantz
4791738d1d
zink: always do maybe_flush after draw/compute
...
this is a bit more sensible since a forced flush is going to require
refs and layouts be reapplied
Reviewed-by: Dave Airlie <airlied@redhat.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10760 >
2021-05-13 10:31:59 +00:00
Mike Blumenkrantz
9fc2b47870
zink: check for a work_count-based stall in zink_maybe_flush_or_stall()
...
put all the maybes in one place
Reviewed-by: Dave Airlie <airlied@redhat.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10760 >
2021-05-13 10:31:59 +00:00
Mike Blumenkrantz
afb837523d
zink: flush every 100k draws/computes
...
this ensures more consistent throughput in e.g., drawoverhead
Reviewed-by: Dave Airlie <airlied@redhat.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10760 >
2021-05-13 10:31:59 +00:00
Timothy Arceri
5aabc91273
glsl: add missing support for explicit components in interface blocks
...
From the ARB_enhanced_layouts spec:
"As with input layout qualifiers, all shaders except compute shaders
allow *location* layout qualifiers on output variable declarations,
output block declarations, and output block member declarations. Of
these, variables and block members (but not blocks) additionally
allow the *component* layout qualifier."
We previously had compile tests in piglit to make sure this was not a
compile error but no execution tests.
Fixes: d99a040bbf ("i965: enable ARB_enhanced_layouts for gen8+")
Reviewed-by: Alejandro Piñeiro <apinheiro@igalia.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10763 >
2021-05-13 08:07:53 +00:00
Timothy Arceri
1a71d6aa6e
glsl: create validate_component_layout_for_type() helper
...
This will be used in the following patch.
Reviewed-by: Alejandro Piñeiro <apinheiro@igalia.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10763 >
2021-05-13 08:07:53 +00:00
Ryan Houdek
2908aba828
Update release notes with mention that x87 is no longer used on x86
...
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/9868 >
2021-05-13 06:06:42 +00:00
Ryan Houdek
a57d937654
Switch u_format_test to passed on i386
...
Switching from x87 to SSE resolves the rounding behaviour in this test.
It was some of the dxt formats failing and now they are not.
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/9868 >
2021-05-13 06:06:42 +00:00
Ryan Houdek
855ffa7c46
Default enable SSE2 on mesa builds.
...
With the idea of branching classic device support in to its own tree now would be a good time to also raise the minimum
requirements to something that is more "modern" on x86.
SSE2 was introduced in 2000(!) by default let's make it the minimum spec now
All the old hardware that is moving to the maintenance branch will finally be out of the way.
For the 64-bit side of the discussion there isn't much changed.
* GCC already enables -msse and -msse2 by default
* Same with clang
* fpmath=sse might remove some extraneous x87 usage
** Clang implies fpmath=sse ALWAYS
For the 32-bit side of things is where the exciting details change
* GCC by default doesn't enable sse1 or sse2
** Does all `float`, `double`, and `long double` math with x87
** -msse2 enables sse2 and sse1, gcc still uses x87 even with those enabled
** -mfpmath=sse moves away from using x87 and instead uses sse1 and sse2
* Clang already default enables sse1/sse2 which then turns on their implied fpmath=sse
What does this mean for users?
On Linux raises the default minimum processor spec to SSE2 supporting CPUs
* Intel requirements raise from P5 (1993) to Netburst (2000)
* AMD requirements raise from Athlon(1999/2000) to Athlon 64 (2003)
* Via requirements raise from C3(2001) to C7 (2005)
What does it mean for package maintainers?
For x86-64 distributions that have i386/i686 multilib, then nothing changes. You're already on a platform guaranteed to support SSE2.
For i386/i686 distributions they will need to weigh their min spec against this. Not sure how many still support classic processors.
Who is left out in the cold?
* Intel Quark (2013)
** Embedded board, doesn't have a GPU, Technically has 1x PCIe 2.0 lane that someone could plug a GPU in to
* Some older transmeta CPUs, but they had a followup that also had SSE2.
** Anyone hacking on these with a modern GPU? I'm guessing they know how to turn this option off
Reviewed-by: Erik Faye-Lund <erik.faye-lund@collabora.com >
Reviewed-by: Adam Jackson <ajax@redhat.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/9868 >
2021-05-13 06:06:42 +00:00
Vinson Lee
57721591de
nv50/ir: Add ConstantFolding constructor.
...
Fix defect reported by Coverity Scan.
Uninitialized scalar field (UNINIT_CTOR)
member_not_init_in_gen_ctor: The compiler-generated constructor for this
class does not initialize foldCount.
Signed-off-by: Vinson Lee <vlee@freedesktop.org >
Reviewed-by: Ilia Mirkin <imirkin@alum.mit.edu >
Reviewed-by: Karol Herbst <kherbst@redhat.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10713 >
2021-05-13 05:56:13 +00:00
Vinson Lee
c892412111
nvc0/ir: Initialize CodeEmitterGK110 member progType in constructor.
...
Fix defect reported by Coverity Scan.
Uninitialized scalar field (UNINIT_CTOR)
uninit_member: Non-static class member progType is not initialized in
this constructor nor in any functions that it calls.
Signed-off-by: Vinson Lee <vlee@freedesktop.org >
Reviewed-by: Ilia Mirkin <imirkin@alum.mit.edu >
Reviewed-by: Karol Herbst <kherbst@redhat.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10715 >
2021-05-12 22:18:30 -07:00
Chia-I Wu
77d959814c
venus: get rid of #ifdef's in vn_CreateImage
...
No real change after compiler optimizations.
Signed-off-by: Chia-I Wu <olvaffe@gmail.com >
Reviewed-by: Yiwei Zhang <zzyiwei@chromium.org >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10779 >
2021-05-12 22:37:05 +00:00
Lionel Landwerlin
f46aa1b9d7
intel/fs: use the final destination type for regioning restrictions
...
This is most likely a rebase mistake :(
Fixes: f3e5cd813a ("intel/fs: Handle regioning restrictions of split FP/DP pipelines.")
Ref: aa53665fda ("intel/fs/copy_prop: check stride constraints with actual final type")
Signed-off-by: Lionel Landwerlin <lionel.g.landwerlin@intel.com >
Reviewed-by: Jordan Justen <jordan.l.justen@intel.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10764 >
2021-05-12 21:19:11 +00:00
Ezequiel Garcia
e1959f0f59
panfrost: Add GPU IDs for G52 1-Core-2EE (RK3568/RK3566)
...
Rockchip SoCs RK3566 and RK3568 have a Gondul with
one shader core and two execution engines, with product ID 0x7402.
Quoting the datasheet:
Mali-G52 1-Core-2EE
* Support 1600Mpix/s fill rate when 800MHz clock frequency
* Support 38.4GLOPs when 800MHz clock frequency
To distinguish it from other variants of G52, we agreed
to call this "G52L", L is for Little.
Signed-off-by: Ezequiel Garcia <ezequiel@collabora.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10771 >
2021-05-12 20:45:44 +00:00
Alyssa Rosenzweig
01ef56a7e4
pan/mdg: Use smaller LD_UNIFORM instructions
...
If we only read 8 bytes from a UBO, we need to use LD_UNIFORM.64 as
opposed to LD_UNIFORM.128. In addition to probably being faster, this
fixes a buffer overrun manifesting as MMU faults with source ID
0x500/0x600/0x700, visible in WebGL Aquarium.
This is essentially the same patch as 616394cf31 ("pan/mdg: Use
appropriate sizes for global loads/stores"), only this is for UBOs where
that was for SSBOs.
Before enabling PACKED_UNIFORMS, this bug was not visible since we could
guarantee the UBO size was a multiple of 16. We no longer have that
invariant, and in rare cases the last 8 bytes of the last 16-byte slot
of a mapped uniform buffer would overrun the BO and trigger a fault,
even if the result is unused.
Fixes: 24d7c413fe ("panfrost: Enable packed uniforms.")
Signed-off-by: Alyssa Rosenzweig <alyssa@collabora.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10772 >
2021-05-12 20:04:21 +00:00
Alyssa Rosenzweig
df3edfc729
panfrost: Don't upload empty push uniform table
...
Instead zero out the pointer in this case.
Signed-off-by: Alyssa Rosenzweig <alyssa@collabora.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10772 >
2021-05-12 20:04:21 +00:00
Alyssa Rosenzweig
5c069ff512
panfrost: Clean up cases for emit_fbd
...
Signed-off-by: Alyssa Rosenzweig <alyssa@collabora.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10774 >
2021-05-12 19:46:59 +00:00
Alyssa Rosenzweig
dbdbbd29c9
panfrost: Remove spurious assignment
...
Signed-off-by: Alyssa Rosenzweig <alyssa@collabora.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10774 >
2021-05-12 19:46:59 +00:00
Alyssa Rosenzweig
55959da24a
panfrost: Don't translate compare funcs
...
Matches Gallium.
Signed-off-by: Alyssa Rosenzweig <alyssa@collabora.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10774 >
2021-05-12 19:46:59 +00:00
Alyssa Rosenzweig
65a00b5199
panfrost: Hide CAP_INT16 behind is_deqp
...
The GLSL precision lowering is still buggy (see !10729 ), no other driver
enables all the CAPs yet. I don't know enough GLSL IR to be the one to
fix this. In the mean time, this is a hotfix to expose the same set of
CAPs that radeonsi does.
By keeping it with is_deqp, we still get CI coverage of int16.
Closes : #4759
Signed-off-by: Alyssa Rosenzweig <alyssa@collabora.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10777 >
2021-05-12 19:31:34 +00:00
Rob Clark
6c530ebf40
freedreno/ir3: Don't force RTNE if rounding mode is undefined
...
Forcing round-to-nearest-even results in loss of opportunities for
conversion folding, causing a regression in gfxbench gl_alu2.
Fixes: de195671bd ("ir3: nir_op_f2f16 should round to even")
Signed-off-by: Rob Clark <robdclark@chromium.org >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10773 >
2021-05-12 19:05:27 +00:00
Leo Liu
052335a180
frontends/va: fix multi planes for external memeory type
...
For the multi planes case, only the first plane is required with the
template buffer formats, and shouldn't fail for other planes.
Signed-off-by: Leo Liu <leo.liu@amd.com >
Reviewed-by: James Zhu <James.Zhu@amd.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10751 >
2021-05-12 18:55:35 +00:00
Rob Clark
57c8164389
gallium/u_threaded: Add call logging
...
Signed-off-by: Rob Clark <robdclark@chromium.org >
Reviewed-by: Marek Olšák <marek.olsak@amd.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10753 >
2021-05-12 16:09:51 +00:00
Rob Clark
3b69cbe06c
gallium/u_threaded: Add to_call() helper
...
Add helper for casting the call, which when asserts are enabled will
sanity check the call size to detect corruption.
Signed-off-by: Rob Clark <robdclark@chromium.org >
Reviewed-by: Marek Olšák <marek.olsak@amd.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10753 >
2021-05-12 16:09:51 +00:00
Erik Faye-Lund
e8640fef90
ci: Uprev piglit to 3351e8952 ("max-texture-size: report merged results")
...
This pulls in a fix for the max-texture-size test using piglit-runner,
among other things.
Acked-By: Mike Blumenkrantz <michael.blumenkrantz@gmail.com >
Reviewed-by: Emma Anholt <emma@anholt.net >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10749 >
2021-05-12 15:47:35 +00:00
Marek Olšák
5818380f86
gallium/u_threaded: fix 32-bit breakage due to incorrect pointer arithmetic
...
Fixes: 1233c90ab4 - gallium/u_threaded: rewrite slot layout to reduce wasted space
Closes: https://gitlab.freedesktop.org/mesa/mesa/-/issues/4755
Closes: https://gitlab.freedesktop.org/mesa/mesa/-/issues/4758
Acked-By: Mike Blumenkrantz <michael.blumenkrantz@gmail.com >
Reviewed-by: Rob Clark <robdclark@chromium.org >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10746 >
2021-05-12 15:25:46 +00:00
Daniel Schürmann
989e9867a6
aco: fix additional register requirements for spilling
...
It could happen that VGPR spilling without SGPR spilling
calculated a negative spills_to_vgpr number and then
increasing the VGPR target demand above the limit.
Cc: mesa-stable
Reviewed-by: Tony Wasserka <tony.wasserka@gmx.de >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10756 >
2021-05-12 14:13:24 +00:00
Timur Kristóf
bb127c2130
radv: Use new NIR lowering of NGG GS when ACO is used.
...
Signed-off-by: Timur Kristóf <timur.kristof@gmail.com >
Reviewed-by: Daniel Schürmann <daniel@schuermann.dev >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10740 >
2021-05-12 13:47:04 +00:00
Timur Kristóf
60ac5dda82
ac: Add NIR lowering for NGG GS.
...
Signed-off-by: Timur Kristóf <timur.kristof@gmail.com >
Reviewed-by: Daniel Schürmann <daniel@schuermann.dev >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10740 >
2021-05-12 13:47:04 +00:00
Timur Kristóf
9732881729
radv: Use new NGG NIR lowering for VS/TES when ACO is used.
...
Signed-off-by: Timur Kristóf <timur.kristof@gmail.com >
Reviewed-by: Daniel Schürmann <daniel@schuermann.dev >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10740 >
2021-05-12 13:47:04 +00:00
Timur Kristóf
3d589b8b46
ac: Add new NIR pass to lower NGG VS/TES.
...
Signed-off-by: Timur Kristóf <timur.kristof@gmail.com >
Reviewed-by: Daniel Schürmann <daniel@schuermann.dev >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10740 >
2021-05-12 13:47:04 +00:00
Timur Kristóf
89a76ff786
aco: Implement new NGG specific NIR intrinsics.
...
Signed-off-by: Timur Kristóf <timur.kristof@gmail.com >
Reviewed-by: Daniel Schürmann <daniel@schuermann.dev >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10740 >
2021-05-12 13:47:04 +00:00
Timur Kristóf
33e29f8f9b
radv: Gather NGG info sooner.
...
Signed-off-by: Timur Kristóf <timur.kristof@gmail.com >
Reviewed-by: Daniel Schürmann <daniel@schuermann.dev >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10740 >
2021-05-12 13:47:04 +00:00
Timur Kristóf
1630ec96d3
radv: Fill shader info earlier.
...
Signed-off-by: Timur Kristóf <timur.kristof@gmail.com >
Reviewed-by: Daniel Schürmann <daniel@schuermann.dev >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10740 >
2021-05-12 13:47:04 +00:00
Timur Kristóf
75a002f809
aco: Split ngg_emit_sendmsg_gs_alloc_req from the wave0 check.
...
This allows us to emit the gs_alloc_req independently of the
wave ID check, which is what the NIR lowering will need.
Signed-off-by: Timur Kristóf <timur.kristof@gmail.com >
Reviewed-by: Daniel Schürmann <daniel@schuermann.dev >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10740 >
2021-05-12 13:47:04 +00:00
Timur Kristóf
ad8dd39bd3
aco: Fixup the NIR metadata after sanitize_cf_list.
...
sanitize_cf_list can in fact invalidate the dominance metadata,
which we need to use eg. nir_unsigned_upper_bound.
Signed-off-by: Timur Kristóf <timur.kristof@gmail.com >
Reviewed-by: Daniel Schürmann <daniel@schuermann.dev >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10740 >
2021-05-12 13:47:04 +00:00
Timur Kristóf
00fd087f0a
aco: Allow workgroup barrier and shared scope for NGG shaders.
...
NGG already needs to use workgroup barriers, but this commit allows
them to come from NIR as opposed to just emitting it in ACO
instruction selection.
Signed-off-by: Timur Kristóf <timur.kristof@gmail.com >
Reviewed-by: Daniel Schürmann <daniel@schuermann.dev >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10740 >
2021-05-12 13:47:04 +00:00
Timur Kristóf
0d6b6c850f
nir: Add AMD specific intrinsics for merged shaders and NGG.
...
These intrinsics represent what the hardware can actually do.
Lowering our shaders to use these intrinsics will allow us to
deal with mapping the classic VS, TES, GS (and the future MS)
stages to the hardware capabilities using NIR, which makes our
backend compilers simpler.
Signed-off-by: Timur Kristóf <timur.kristof@gmail.com >
Reviewed-by: Daniel Schürmann <daniel@schuermann.dev >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10740 >
2021-05-12 13:47:04 +00:00
Timur Kristóf
641707a807
nir: Allow load_primitive_id in VS in nir_divergence_analysis.
...
The lowered NIR code of NGG VS shaders uses this intrinsic
when the VS has to export the primitive ID.
Signed-off-by: Timur Kristóf <timur.kristof@gmail.com >
Reviewed-by: Daniel Schürmann <daniel@schuermann.dev >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10740 >
2021-05-12 13:47:04 +00:00
Timur Kristóf
e905e0938a
nir: Support upper bound of unsigned bit size conversions.
...
These allow us to generate slightly better code in some cases,
eg. multiplications in ACO.
Signed-off-by: Timur Kristóf <timur.kristof@gmail.com >
Reviewed-by: Daniel Schürmann <daniel@schuermann.dev >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10740 >
2021-05-12 13:47:04 +00:00
Timur Kristóf
9a2ffe1abb
nir: Support upper bound of subgroup_id/num_subgroups for non-compute.
...
These intrinsics will be used when lowering NGG shaders, including
currently supported stages like VS, TES, GS and also by mesh shaders
in the future.
Signed-off-by: Timur Kristóf <timur.kristof@gmail.com >
Reviewed-by: Daniel Schürmann <daniel@schuermann.dev >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10740 >
2021-05-12 13:47:04 +00:00
Alyssa Rosenzweig
ac5ba2dfad
panfrost: Implement framebuffer invalidation
...
The strategy is lifted from Freedreno. The trick is to remove buffers
from the resolve set, rather than add buffers to a discard set (as you
would naively try). The latter is wrong -- draws after the
glInvalidateFramebuffer() still need to be respected.
glmark2 -btexture on-screen with sway on Mali T860 from 1393fps to
1998fps
Signed-off-by: Alyssa Rosenzweig <alyssa@collabora.com >
Closes : #2407
Reviewed-by: Boris Brezillon <boris.brezillon@collabora.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/6295 >
2021-05-12 12:47:53 +00:00
Alyssa Rosenzweig
c8161bf05d
panfrost: Set discard based on the resolve set
...
This is a bit simpler and will allow resolve to be disabled
independently.
Signed-off-by: Alyssa Rosenzweig <alyssa@collabora.com >
Reviewed-by: Boris Brezillon <boris.brezillon@collabora.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/6295 >
2021-05-12 12:47:53 +00:00
Alyssa Rosenzweig
bff8c7e611
panfrost: Track buffers needing resolve
...
This is a subset of the buffers cleared or drawed.
Signed-off-by: Alyssa Rosenzweig <alyssa@collabora.com >
Reviewed-by: Boris Brezillon <boris.brezillon@collabora.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/6295 >
2021-05-12 12:47:53 +00:00
Marcin Ślusarz
2c3e2d69bd
nir: handle float atomics in nir_lower_memory_model
...
Signed-off-by: Marcin Ślusarz <marcin.slusarz@intel.com >
Reviewed-by: Rhys Perry <pendingchaos02@gmail.com >
Fixes: 2adb337256 ("nir,radv/aco: add and use pass to lower make available/visible barriers")
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10766 >
2021-05-12 11:09:07 +00:00
Marcin Ślusarz
27073b59bc
nir: handle float atomics in nir_gather_info
...
Signed-off-by: Marcin Ślusarz <marcin.slusarz@intel.com >
Reviewed-by: Rhys Perry <pendingchaos02@gmail.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10766 >
2021-05-12 11:09:07 +00:00
Erik Faye-Lund
8166e41e1f
translate: assert that nr_elements is in range
...
This just ensures that we don't end up reading/writing outside of the
space reserved in the key. This would have made it easier to to track
down the issue in the previous commit faster.
Reviewed-by: Marek Olšák <marek.olsak@amd.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10730 >
2021-05-12 11:26:54 +02:00
Erik Faye-Lund
100c4dbd9c
translate: reserve more vertex-shader outputs
...
It's not just position that's special here, we also need space for
other special vertex-shader outputs.
This fixes a crash with Zink on Lavapipe, because Zink always emits
psize to avoid some shader-keys. While this might not be ideal, it's not
illegal. So we need to handle it.
But it seems we're missing more, and this list is taken from
compute_vertex_info() in lp_state_derived.c.
Reviewed-by: Marek Olšák <marek.olsak@amd.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10730 >
2021-05-12 11:26:54 +02:00
Erik Faye-Lund
790b9a5872
lavapipe: correct reported number of UBOs
...
When emitting the state we add one to the UBO index, so we have to
subtract one from the number of UBOs that we support. This is still
fine, because Vulkan only requires 14 UBOs to be supported, and LLVMpipe
supports 16.
Reviewed-By: Mike Blumenkrantz <michael.blumenkrantz@gmail.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10731 >
2021-05-12 10:52:36 +02:00
Boris Brezillon
7db79fa677
panfrost: Flag indirect draw/dispatch shaders as internal
...
Signed-off-by: Boris Brezillon <boris.brezillon@collabora.com >
Reviewed-by: Alyssa Rosenzweig <alyssa@collabora.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10417 >
2021-05-12 07:03:51 +00:00
Boris Brezillon
ec2b46a1ce
panfrost: Expose the DRAW_PARAMETERS cap on Bifrost
...
Signed-off-by: Boris Brezillon <boris.brezillon@collabora.com >
Reviewed-by: Alyssa Rosenzweig <alyssa@collabora.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10417 >
2021-05-12 07:03:51 +00:00
Boris Brezillon
a5ba2e2045
pan/bi: Add support for gl_DrawID
...
We simply pass the drawid as a sysval.
Signed-off-by: Boris Brezillon <boris.brezillon@collabora.com >
Acked-by: Alyssa Rosenzweig <alyssa@collabora.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10417 >
2021-05-12 07:03:51 +00:00
Boris Brezillon
7cc4c8c5e5
pan/bi: Add support for gl_{BaseVertex,BaseInstance}
...
Extend the VERTEX_INSTANCE_OFFSETS sysval to pass
BaseVertex/BaseInstance information to the shader.
Signed-off-by: Boris Brezillon <boris.brezillon@collabora.com >
Acked-by: Alyssa Rosenzweig <alyssa@collabora.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10417 >
2021-05-12 07:03:51 +00:00
Alyssa Rosenzweig
69d81edaf8
pan/bi: Add first_vertex to vertex ID
...
Apparently r61 is zero based.
Signed-off-by: Alyssa Rosenzweig <alyssa@collabora.com >
Signed-off-by: Boris Brezillon <boris.brezillon@collabora.com >
Tested-by: Boris Brezillon <boris.brezillon@collabora.com >
Acked-by: Alyssa Rosenzweig <alyssa@collabora.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10417 >
2021-05-12 07:03:51 +00:00
Boris Brezillon
0e74598e36
panfrost: Split the indexed and !indexed indirect draw info structs
...
Some fields are overlapping, so let's just split those structs to
avoid confusion.
Signed-off-by: Boris Brezillon <boris.brezillon@collabora.com >
Acked-by: Alyssa Rosenzweig <alyssa@collabora.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10417 >
2021-05-12 07:03:51 +00:00
Gustavo Padovan
5d6608ef78
iris/ci: enable intel devices automatically in MR pipelines
...
After a period of stabilization it is now time to move them
to be part of the MR pipelines. We will still watch the
behavior and look for any issue that arises.
Signed-off-by: Gustavo Padovan <gustavo.padovan@collabora.com >
Signed-off-by: Tomeu Vizoso <tomeu.vizoso@collabora.com >
Reviewed-by: Emma Anholt <emma@anholt.net >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10550 >
2021-05-12 08:21:38 +02:00
Gustavo Padovan
12f0b14e2d
iris/ci: disable failing gimark test for now
...
In order to enable the intel devices to automatically be part of
Marge pipelines we need it to be fully passing all tests. We will
remove the gimark tests temporaly to achieve that.
Signed-off-by: Gustavo Padovan <gustavo.padovan@collabora.com >
Signed-off-by: Tomeu Vizoso <tomeu.vizoso@collabora.com >
Reviewed-by: Emma Anholt <emma@anholt.net >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10550 >
2021-05-12 08:21:38 +02:00
Vinson Lee
fe1378dcb6
nv50/ir: Initialize GCRA::RIG_Node members.
...
Fix defects reported by Coverity Scan.
uninit_member: Non-static class member degree is not initialized in this constructor nor in any functions that it calls.
uninit_member: Non-static class member degreeLimit is not initialized in this constructor nor in any functions that it calls.
uninit_member: Non-static class member maxReg is not initialized in this constructor nor in any functions that it calls.
uninit_member: Non-static class member f is not initialized in this constructor nor in any functions that it calls.
uninit_member: Non-static class member reg is not initialized in this constructor nor in any functions that it calls.
uninit_member: Non-static class member weight is not initialized in this constructor nor in any functions that it calls.
Signed-off-by: Vinson Lee <vlee@freedesktop.org >
Reviewed-by: Ilia Mirkin <imirkin@alum.mit.edu >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10714 >
2021-05-12 05:32:19 +00:00
Hyunjun Ko
3f229e34c9
turnip: Implement VK_KHR_timeline_semaphore.
...
Implements non-shareable timelines using legacy syncobjs,
inspired by anv/radv implementation.
v1. Avoid memcpy in/out_syncobjs and fix some mistakes.
v2.
- Handle vkQueueWaitIdle.
- Add enum tu_semaphore_type.
- Fix to handle VK_SEMAPHORE_WAIT_ANY_BIT_KHR correctly.
- Fix a crash of dEQP-VK.synchronization.timeline_semaphore.device_host.misc.max_difference_value.
v3. Avoid indefinite waiting in vkQueueWaitIdle by calling
tu_device_submit_deferred_locked itself.
Signed-off-by: Hyunjun Ko <zzoon@igalia.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10126 >
2021-05-12 05:07:44 +00:00
Hyunjun Ko
daefc6e2a4
turnip: prep work for timeline semaphore support
...
Small refactor to classify semphore types, currently only binary
syncobj is being used though.
v1. Fix a crash of dEQP-VK.api.null_handle.destroy_semaphore
Signed-off-by: Hyunjun Ko <zzoon@igalia.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10126 >
2021-05-12 05:07:44 +00:00
Mike Blumenkrantz
73a9dbce6b
zink: pop descriptor refs when invalidating sets
...
this avoids memory ballooning, mainly for samplers, when a descriptorset
component has refs for a very, very large number of sets
Reviewed-by: Dave Airlie <airlied@redhat.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10699 >
2021-05-11 22:39:50 -04:00
Mike Blumenkrantz
e3933548c2
zink: remove screen param from zink_descriptors_update()
...
this was redundant
Reviewed-by: Dave Airlie <airlied@redhat.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10699 >
2021-05-11 22:39:50 -04:00
Mike Blumenkrantz
987b0eb638
zink: make zink_context_update_descriptor_states() static
...
this is no longer used externally
Reviewed-by: Dave Airlie <airlied@redhat.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10699 >
2021-05-11 22:39:50 -04:00
Mike Blumenkrantz
21868216c9
zink: call invalidate on invalid descriptor sets during recycle
...
Reviewed-by: Dave Airlie <airlied@redhat.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10699 >
2021-05-11 22:39:50 -04:00
Mike Blumenkrantz
d2ff25c708
zink: use better iterating for buffer rebinds
...
now that the number of descriptors for a given type is known, we can iterate
over all bound descriptors for the type instead of relying on shader usage
Reviewed-by: Dave Airlie <airlied@redhat.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10699 >
2021-05-11 22:39:50 -04:00
Mike Blumenkrantz
7cc47e59c8
zink: add slot params to zink_context_invalidate_descriptor_state
...
allow more precision with invalidation
Reviewed-by: Dave Airlie <airlied@redhat.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10699 >
2021-05-11 22:39:50 -04:00
Mike Blumenkrantz
402eaa0795
zink: track number of tbos in shader data
...
Reviewed-by: Dave Airlie <airlied@redhat.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10699 >
2021-05-11 22:39:50 -04:00
Mike Blumenkrantz
1082dc5f4a
zink: track max slot idx for descriptor types
...
this will be useful when restoring states across renderpasses
Reviewed-by: Dave Airlie <airlied@redhat.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10699 >
2021-05-11 22:39:50 -04:00
Mike Blumenkrantz
095b8ad8b1
zink: don't track sampler states onto buffer sampler sets
...
this should always just be a null pointer to reduce overhead
Reviewed-by: Dave Airlie <airlied@redhat.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10699 >
2021-05-11 22:39:50 -04:00
Mike Blumenkrantz
208e34e110
zink: update samplerview descriptor layouts when image binds are set
...
for this case it's important to match the GENERAL layout in sampler bindings
if the resource is also being used as a shader image
Reviewed-by: Dave Airlie <airlied@redhat.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10699 >
2021-05-11 22:39:50 -04:00
Mike Blumenkrantz
4c7d951b76
zink: track bind counts for descriptors
...
* for samplers this is a per-stage slot mask that will be used for fast layout updates
* images get a count for gfx and compute usage
* any writable descriptor bind gets its own gfx/compute counter
* all descriptor binds are now counted
Reviewed-by: Dave Airlie <airlied@redhat.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10699 >
2021-05-11 22:39:50 -04:00
Mike Blumenkrantz
27a4ba52db
zink: unify resource rebinding
...
this improves handling for shader images
Reviewed-by: Dave Airlie <airlied@redhat.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10699 >
2021-05-11 22:39:50 -04:00
Mike Blumenkrantz
42634824f8
zink: add context-based descriptor info tracking infrastructure
...
this maintains the exact structs needed to update descriptor states
it's incomplete at this moment due to lacking shader image rebinds, but
it's also not yet being used
Reviewed-by: Dave Airlie <airlied@redhat.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10699 >
2021-05-11 22:39:50 -04:00
Mike Blumenkrantz
a8e80b3344
zink: stop invalidating descriptor sets on pool destroy
...
this was debug code I was using for testing pool validity, but it
stopped being useful and just crashes sometimes now
Reviewed-by: Dave Airlie <airlied@redhat.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10699 >
2021-05-11 22:39:50 -04:00
Yiwei Zhang
47eabd0e6b
virgl: do not use winsys info for guest storage of classic resource
...
winsys_stride is the stride of the host storage of the classic resource,
and using that breaks the readback on the guest storage.
v2: move the scrubbing to virgl_resource_from_handle
The returned modifier also points directly to the host driver's real
modifier but not a virtualized one. Leave plane_offset as zero here
matches the prior behavior before introducing winsys info.
Signed-off-by: Yiwei Zhang <zzyiwei@chromium.org >
Reviewed-by: Gurchetan Singh <gurchetansingh@chromium.org > (v1)
Reviewed-by: Chia-I Wu <olvaffe@gmail.com > (v2)
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10757 >
2021-05-11 23:51:42 +00:00
Mark Janes
494255c821
iris: Use const uploader for user index data
...
Reviewed-by: Kenneth Graunke <kenneth@whitecape.org >
Reviewed-by: Jordan Justen <jordan.l.justen@intel.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10759 >
2021-05-11 16:03:22 -07:00
Mark Janes
cdadb84e41
iris: Use const uploader for draw parameters
...
Reviewed-by: Kenneth Graunke <kenneth@whitecape.org >
Reviewed-by: Jordan Justen <jordan.l.justen@intel.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10759 >
2021-05-11 16:03:21 -07:00
Mark Janes
19ea0974da
iris: Use const uploader for blorp vertex data
...
Reviewed-by: Kenneth Graunke <kenneth@whitecape.org >
Reviewed-by: Jordan Justen <jordan.l.justen@intel.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10759 >
2021-05-11 16:03:20 -07:00
Mark Janes
beceb392d7
iris: Use const_uploader for iris_create_stream_output_target
...
This data is written and read by the GPU, and does not need to be in
system memory.
Reviewed-by: Kenneth Graunke <kenneth@whitecape.org >
Reviewed-by: Jordan Justen <jordan.l.justen@intel.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10759 >
2021-05-11 16:03:20 -07:00
Mark Janes
8838861ea3
iris: Upload constant resources for efficient GPU access
...
Re-using the stream_uploader for constant data hurts performance on
DG1. Constant data like uniform buffers should reside in local
memory for faster GPU access.
Reviewed-by: Kenneth Graunke <kenneth@whitecape.org >
Reviewed-by: Jordan Justen <jordan.l.justen@intel.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10759 >
2021-05-11 16:03:18 -07:00
Mark Janes
ecd75318e3
iris: Increase the size of upload buffers
...
Smaller sizes may generate CPU overhead while saving negligible
memory.
Reviewed-by: Kenneth Graunke <kenneth@whitecape.org >
Reviewed-by: Jordan Justen <jordan.l.justen@intel.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10759 >
2021-05-11 16:03:15 -07:00
Emma Anholt
161478ad4c
ci/iris: Add some more traces to replay.
...
Reviewed-by: Tomeu Vizoso <tomeu.vizoso@collabora.com >
Reviewed-by: Rohan Garg <rohan.garg@collabora.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10295 >
2021-05-11 20:07:29 +00:00
Emma Anholt
cd142cc483
ci/panfrost: Add some more traces to replay.
...
Reviewed-by: Tomeu Vizoso <tomeu.vizoso@collabora.com >
Reviewed-by: Rohan Garg <rohan.garg@collabora.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10295 >
2021-05-11 20:07:29 +00:00
Emma Anholt
7520ac54dd
ci: Switch to apitraces for glmark2
...
This brings in upstream mediump fixes, and should also replay faster than
.rdc files.
Reviewed-by: Tomeu Vizoso <tomeu.vizoso@collabora.com >
Reviewed-by: Rohan Garg <rohan.garg@collabora.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10295 >
2021-05-11 20:07:29 +00:00
Tomeu Vizoso
8b04b77118
ci: Remove the need for an empty Piglit results file
...
Just create such an empty file if there isn't already.
So drivers that are expected to pass all tests don't need to commit an
empty results file.
Signed-off-by: Tomeu Vizoso <tomeu.vizoso@collabora.com >
Reviewed-by: Emma Anholt <emma@anholt.net >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10295 >
2021-05-11 20:07:29 +00:00
Adam Jackson
584145ea88
zink/ntv: Don't call free() on ralloc'd memory
...
Caught this with an LTO build:
[1465/1465] Linking target src/gallium/targets/dri/libgallium_dri.so
In function ‘spirv_shader_delete’,
inlined from ‘nir_to_spirv’ at ../src/gallium/drivers/zink/nir_to_spirv/nir_to_spirv.c:3907:7:
../src/gallium/drivers/zink/nir_to_spirv/nir_to_spirv.c:3916:4: warning: ‘free’ called on pointer ‘block_1394’ with nonzero offset 48 [-Wfree-nonheap-object]
3916 | FREE(s);
| ^
../src/gallium/drivers/zink/nir_to_spirv/nir_to_spirv.c: In function ‘nir_to_spirv’:
../src/util/ralloc.c:133:18: note: returned from ‘malloc’
133 | void *block = malloc(align64(size + sizeof(ralloc_header),
| ^
Since s->words is allocated on the same ralloc context we can simplify
further by freeing the context all at once.
Reviewed-by: Emma Anholt <emma@anholt.net >
Reviewed-by: Mike Blumenkrantz <michael.blumenkrantz@gmail.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10754 >
2021-05-11 16:45:14 +00:00
Mike Blumenkrantz
eb63c7dece
iris: refcount separate screen objects for resource tracking
...
this screen object can never, ever be accessed like this in a resource,
as it may have previously been replaced by a wrapper (e.g., driver trace)
which will then explode when it is accessed directly
instead, keep a separate screen ref on the resource which is known to be
the actual driver object and not a wrapper
Fixes: 0a497eb130 ("iris: make resources take a ref on the screen object")
Reviewed-by: Lionel Landwerlin lionel.g.landwerlin@intel.com
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10632 >
2021-05-11 14:50:19 +00:00
Emma Anholt
9a5c9ff342
turnip: Drop fail annotation for driver_properties.
...
These subtests weren't run in CI, and the whole set is skipped since
dropping to 1.1.
Fixes: 7bcda21441 ("turnip: Demote API version to 1.1.")
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10734 >
2021-05-11 14:16:25 +00:00
Emma Anholt
63a3d18ae1
ci/turnip: Add some links to issues and MRs for some test failures.
...
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10734 >
2021-05-11 14:16:25 +00:00
Emma Anholt
90b08175b7
ci/turnip: Clean up some stale fail annotations.
...
This test group was fixed in the deqp 1.2.6.0 uprev, but we do a
fractional run that didn't include these tests.
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10734 >
2021-05-11 14:16:25 +00:00
Adam Jackson
37e1526479
gallivm: Fix a signature mismatch warning
...
gcc 11 says:
../src/gallium/auxiliary/gallivm/lp_bld_format_soa.c:84:49: warning: argument 3 of type ‘struct LLVMOpaqueValue * const*’ declared as a pointer [-Warray-parameter=]
84 | const LLVMValueRef *unswizzled,
| ~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~
In file included from ../src/gallium/auxiliary/gallivm/lp_bld_format_soa.c:42:
../src/gallium/auxiliary/gallivm/lp_bld_format.h:126:48: note: previously declared as an array ‘struct LLVMOpaqueValue * const[4]’
126 | const LLVMValueRef unswizzled[4],
| ~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~
Reviewed-by: Dave Airlie <airlied@redhat.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10738 >
2021-05-11 09:14:30 -04:00
Danylo Piliaiev
811f289c56
turnip: copy all layers specified in vkCmdCopyImage
...
When copying layered images we ignored .layerCount parameter.
Fixes mis-rendering of walls in D3D11 game "Company Of Heroes 2".
Signed-off-by: Danylo Piliaiev <dpiliaiev@igalia.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10736 >
2021-05-11 11:42:12 +00:00
Iago Toral Quiroga
6f93354bae
broadcom/compiler: clarify PIPE_SHADER_CAP_INDIRECT_INPUT_ADDR setting
...
We enabled this in the past to fix some register allocation issues we
faced with geometry shaders but we didn't document why it is safe for
us to do this, which is not immediately obvious.
Reviewed-by: Juan A. Suarez <jasuarez@igalia.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10745 >
2021-05-11 12:26:19 +02:00
Iago Toral Quiroga
370495abd1
v3d: disable GLSL loop unrolling again
...
We had re-enabled this because of some test regressions:
KHR-GLES31.core.geometry_shader.limits.max_input_components and
ext_transform_feedback-max-varyings failed to register allocate,
but now that we support indirect indexing on vertex shader outputs natively
this is no longer an issue.
Piglit's max-samplers tests failed. These tests use indirect indexing
on samplers which is not supported and fail to link with this error message:
"Failed to link: error: sampler arrays indexed with non-constant expressions
is forbidden in GLSL 110". This is expected. The reason these were passing
before is that loop unrolling was able to turn indirect indexing into
direct indexing. We add them to the expected fail list.
Reviewed-by: Juan A. Suarez <jasuarez@igalia.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10723 >
2021-05-11 09:31:31 +00:00
Iago Toral Quiroga
f0fef41917
broadcom/compiler: don't unroll due to indirect indexing of outputs
...
We can handle this natively now, so there is no point.
Reviewed-by: Juan A. Suarez <jasuarez@igalia.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10723 >
2021-05-11 09:31:31 +00:00
Iago Toral Quiroga
9f5481cf78
v3dv: don't lower indirect derefs on output variables
...
Our backend compiler can handle this for all supported shader stages now.
Reviewed-by: Juan A. Suarez <jasuarez@igalia.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10723 >
2021-05-11 09:31:31 +00:00
Iago Toral Quiroga
0235ed18a7
broadcom/compiler: don't use nir_src_is_dynamically_uniform
...
Now that we have divergence analysis we should use that.
Reviewed-by: Juan A. Suarez <jasuarez@igalia.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10723 >
2021-05-11 09:31:31 +00:00
Iago Toral Quiroga
838316dd5b
broacom/compiler: enable PIPE_SHADER_CAP_INDIRECT_OUTPUT_ADDR
...
We have been able to to handle indirect offsets on GS outputs for
a while and we have just implemented this for VS, so we can enable
this capability and avoid the horrible if-ladder code to convert
indirect output indices to constant indices.
Reviewed-by: Juan A. Suarez <jasuarez@igalia.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10723 >
2021-05-11 09:31:31 +00:00
Iago Toral Quiroga
cb39dca2d3
broadcom/compiler: make vir_VPM_WRITE_indirect handle non-uniform offsets
...
Reviewed-by: Juan A. Suarez <jasuarez@igalia.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10723 >
2021-05-11 09:31:31 +00:00
Iago Toral Quiroga
f71893a942
broadcom/compiler: implement non-uniform offset on vertex outputs
...
Reviewed-by: Juan A. Suarez <jasuarez@igalia.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10723 >
2021-05-11 09:31:31 +00:00
Iago Toral Quiroga
067ad7eccc
broadcom/compiler: move vertex shader output handling to its own function
...
Reviewed-by: Juan A. Suarez <jasuarez@igalia.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10723 >
2021-05-11 09:31:31 +00:00
Juan A. Suarez Romero
54ec9c95cf
broadcom/compiler: fix dynamic-stack-buffer-overflow error
...
When spilling a register, the number of temps can be increased when
introducing a temporal variable.
Those nodes are not elegible to be spilled, but we need to take care of
no accessing out-of-bounds of the arrays defined with a size equal to
the original number of temps.
Fixes address sanitizer error on
KHR-GLES3.shaders.uniform_block.random.all_shared_buffer.14 (and many
others).
v2 (Iago):
- Add clarification in assertion.
- Use `vir_get_temp` to increase num_temps.
v3 (Iago):
- Update clarification
Reviewed-by: Iago Toral Quiroga <itoral@igalia.com >
Signed-off-by: Juan A. Suarez Romero <jasuarez@igalia.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10643 >
2021-05-11 07:46:17 +00:00
Juan A. Suarez Romero
cf030ceef3
st/mesa: fix pipe resource leak
...
When switching from a normal texture to a texture storage, unreference
the old one to avoid leaking it.
v2 (Emma):
- Update commit message
Reviewed-by: Emma Anholt <emma@anholt.net >
Signed-off-by: Juan A. Suarez Romero <jasuarez@igalia.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10643 >
2021-05-11 07:46:17 +00:00
Juan A. Suarez Romero
66bf683ca9
v3d: fix resource leak in error path
...
Do not leak pipe resource if scanout resource creation fails.
Fixes: bf6973199d ("v3d: Allow the UIF modifier with renderonly.")
Reviewed-by: Iago Toral Quiroga <itoral@igalia.com >
Signed-off-by: Juan A. Suarez Romero <jasuarez@igalia.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10643 >
2021-05-11 07:46:17 +00:00
Eric Engestrom
2af08bf7b6
egl/x11: don't forget to exit the attrib list loop
...
Without this check, if we receive any attribs from the client, we either
find an X11/XCB screen fd in there, or we keep going until we end up in
random bits of memory and crash.
Fixes: 4aebd86f9a ("egl/x11: pick the user requested screen")
Signed-off-by: Eric Engestrom <eric@engestrom.ch >
Reviewed-by: Adam Jackson <ajax@redhat.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10717 >
2021-05-11 06:27:22 +00:00
Mike Blumenkrantz
90d2631027
zink: use DONTCARE renderpass when a new scanout fb attachment is set
...
using DONTCARE for the loadOp is more optimal for this case
Reviewed-by: Dave Airlie <airlied@redhat.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10698 >
2021-05-11 00:10:26 +00:00
Emma Anholt
d93acf1001
freedreno: Update editorconfig and emacs settings for freedreno reformat.
...
Fixes: 2d439343ea ("freedreno: Re-indent")
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10742 >
2021-05-10 23:16:00 +00:00
Alyssa Rosenzweig
e8672be1f7
docs: Simplify now that kmsro is autoenabled
...
Since 70813c1c13 ("meson: Remove kmsro from gallium-drivers"), it is no
longer necessary to include kmsro in the gallium-drivers list; kmsro
will be automatically enabled if it may be required. Simplify the docs
for lima and panfrost accordingly to reflect the change.
Signed-off-by: Alyssa Rosenzweig <alyssa@collabora.com >
Reviewed-by: Emma Anholt <emma@anholt.net >
Reviewed-by: Vasily Khoruzhick <anarsoul@gmail.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10727 >
2021-05-10 21:45:57 +00:00
Mike Blumenkrantz
c0068ef495
ci: skip glsl-uniform-interstage-limits tests for softpipe jobs
...
these tests take over 5 minutes just locally, and the codepaths are mostly
shared with llvmpipe in the draw module, so there's not much point in running
them given that other drivers are more likely to catch any issues here over
softpipe, which is only more likely to catch timeouts
Reviewed-by: Michel Dänzer <mdaenzer@redhat.com >
Reviewed-by: Emma Anholt <emma@anholt.net >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10708 >
2021-05-10 18:06:21 +00:00
Eric Anholt
3eee475e39
turnip: Claim 2 discrete queue priorities.
...
The spec requires at least 2, but says "No specific guarantees are made
about higher priority queues receiving more processing time or better
quality of service than lower priority queues." So, we can just leave the
priorities as a stub.
Fixes dEQP-VK.info.device_properties
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10470 >
2021-05-10 17:21:02 +00:00
Eric Anholt
d8099df65a
turnip: Drop wideLines properties since we don't support wide lines.
...
The blob doesn't expose wideLines either, and
dEQP-VK.info.device_properties fails if you claim wide line properties
without it.
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10470 >
2021-05-10 17:21:02 +00:00
Tomeu Vizoso
e882b0505e
pan/midgard: Don't emit zero padding
...
util_dynarray_grow_bytes doesn't cope well with zero grow bytes.
../mesa/src/util/u_dynarray.h:134:8: runtime error: division by zero
#0 0xffffa2d99288 in util_dynarray_grow_bytes ../mesa/src/util/u_dynarray.h:134
#1 0xffffa2d99288 in emit_alu_bundle ../mesa/src/panfrost/midgard/midgard_emit.c:350
#2 0xffffa2d99288 in emit_binary_bundle ../mesa/src/panfrost/midgard/midgard_emit.c:390
#3 0xffffa2d738a8 in midgard_compile_shader_nir ../mesa/src/panfrost/midgard/midgard_compile.c:2740
#4 0xffffa2cc8aa8 in panfrost_shader_compile ../mesa/src/gallium/drivers/panfrost/pan_assemble.c:68
#5 0xffffa2c9918c in panfrost_bind_shader_state ../mesa/src/gallium/drivers/panfrost/pan_context.c:2015
#6 0xffffa0726d94 in st_update_vp ../mesa/src/mesa/state_tracker/st_atom_shader.c:238
#7 0xffffa070e028 in st_validate_state ../mesa/src/mesa/state_tracker/st_atom.c:261
#8 0xffffa06c30bc in prepare_draw ../mesa/src/mesa/state_tracker/st_draw.c:132
#9 0xffffa06c30bc in st_draw_vbo ../mesa/src/mesa/state_tracker/st_draw.c:184
#10 0xffffa167bb20 in _mesa_validated_drawrangeelements ../mesa/src/mesa/main/draw.c:816
#11 0xffffa167c684 in _mesa_DrawElements ../mesa/src/mesa/main/draw.c:970
#12 0xaaaadfa5b55c in glu::drawFromUserPointers(glu::RenderContext const&, unsigned int, int, glu::VertexArrayBinding const*, glu::PrimitiveList const&, glu::DrawUtilCallback*) (/home/tomeu/deqp-build/modules/gles2/deqp-gles2+0x3b355c)
#13 0xaaaadf9ce514 in deqp::gls::ShaderLibraryCase::execute() (/home/tomeu/deqp-build/modules/gles2/deqp-gles2+0x326514)
#14 0xaaaadf9cfb38 in deqp::gls::ShaderLibraryCase::iterate() (/home/tomeu/deqp-build/modules/gles2/deqp-gles2+0x327b38)
#15 0xaaaadf70cc9c in deqp::gles2::TestCaseWrapper::iterate(tcu::TestCase*) (/home/tomeu/deqp-build/modules/gles2/deqp-gles2+0x64c9c)
#16 0xaaaadfb9a47c in tcu::TestSessionExecutor::iterateTestCase(tcu::TestCase*) (/home/tomeu/deqp-build/modules/gles2/deqp-gles2+0x4f247c)
#17 0xaaaadfb9b240 in tcu::TestSessionExecutor::iterate() (/home/tomeu/deqp-build/modules/gles2/deqp-gles2+0x4f3240)
#18 0xaaaadfb7a564 in tcu::App::iterate() (/home/tomeu/deqp-build/modules/gles2/deqp-gles2+0x4d2564)
#19 0xaaaadf70a20c in main (/home/tomeu/deqp-build/modules/gles2/deqp-gles2+0x6220c)
#20 0xffffaf1e12a8 in __libc_start_main ../csu/libc-start.c:308
#21 0xaaaadf70a8dc (/home/tomeu/deqp-build/modules/gles2/deqp-gles2+0x628dc)
Signed-off-by: Tomeu Vizoso <tomeu.vizoso@collabora.com >
Reviewed-by: Alyssa Rosenzweig <alyssa.rosenzweig@collabora.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10695 >
2021-05-10 17:02:09 +00:00
Tomeu Vizoso
fd4c5b9668
panfrost: Don't access members of NULL pointers
...
This fixes the following UBSAN warning:
../mesa/src/gallium/drivers/panfrost/pan_resource.c:889:16: runtime error: member access within null pointer of type 'struct panfrost_resource'
#0 0xffff79787a1c in panfrost_resource_get_stencil ../mesa/src/gallium/drivers/panfrost/pan_resource.c:889
#1 0xffff7997af44 in u_transfer_helper_resource_destroy ../mesa/src/gallium/auxiliary/util/u_transfer_helper.c:141
#2 0xffff77187f14 in pipe_resource_reference ../mesa/src/gallium/auxiliary/util/u_inlines.h:150
#3 0xffff77187f14 in st_bufferobj_free ../mesa/src/mesa/state_tracker/st_cb_bufferobjects.c:87
#4 0xffff774be848 in _mesa_reference_buffer_object_ ../mesa/src/mesa/main/bufferobj.c:504
#5 0xffff77c2cb3c in _vbo_DestroyContext ../mesa/src/mesa/vbo/vbo_context.c:208
#6 0xffff771bd854 in st_destroy_context ../mesa/src/mesa/state_tracker/st_context.c:1082
#7 0xffff76f4b3cc in dri_destroy_context ../mesa/src/gallium/state_trackers/dri/dri_context.c:245
#8 0xffff76f298a0 in driDestroyContext ../mesa/src/mesa/drivers/dri/common/dri_util.c:528
#9 0xffff863ac118 in dri2_destroy_context ../mesa/src/egl/drivers/dri2/egl_dri2.c:1463
#10 0xffff86372484 in eglDestroyContext ../mesa/src/egl/main/eglapi.c:826
#11 0xaaaabf5ebe24 in tcu::surfaceless::EglRenderContext::~EglRenderContext() (/home/tomeu/deqp-build/modules/gles2/deqp-gles2+0x63e24)
#12 0xaaaabf5ebeb8 in tcu::surfaceless::EglRenderContext::~EglRenderContext() (/home/tomeu/deqp-build/modules/gles2/deqp-gles2+0x63eb8)
#13 0xaaaabf5ece30 in deqp::gles2::TestPackage::deinit() (/home/tomeu/deqp-build/modules/gles2/deqp-gles2+0x64e30)
#14 0xaaaabfaabad0 in tcu::TestHierarchyIterator::next() (/home/tomeu/deqp-build/modules/gles2/deqp-gles2+0x523ad0)
#15 0xaaaabfa7b65c in tcu::TestSessionExecutor::iterate() (/home/tomeu/deqp-build/modules/gles2/deqp-gles2+0x4f365c)
#16 0xaaaabfa5a564 in tcu::App::iterate() (/home/tomeu/deqp-build/modules/gles2/deqp-gles2+0x4d2564)
#17 0xaaaabf5ea20c in main (/home/tomeu/deqp-build/modules/gles2/deqp-gles2+0x6220c)
#18 0xffff85d322a8 in __libc_start_main ../csu/libc-start.c:308
#19 0xaaaabf5ea8dc (/home/tomeu/deqp-build/modules/gles2/deqp-gles2+0x628dc)
Signed-off-by: Tomeu Vizoso <tomeu.vizoso@collabora.com >
Reviewed-by: Alyssa Rosenzweig <alyssa.rosenzweig@collabora.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10695 >
2021-05-10 17:02:09 +00:00
Alyssa Rosenzweig
25dd4d41bc
panfrost: Drop panfrost_fence in favour of pipe_fence_handle
...
Suggested-by: Tomeu Vizoso <tomeu.vizoso@collabora.com >
Signed-off-by: Alyssa Rosenzweig <alyssa@collabora.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10695 >
2021-05-10 17:02:09 +00:00
Erik Faye-Lund
c688f8f8c5
lavapipe: report allocation-error
...
If we fail to create an image, we need to report this, otherwise we'll
start doing crazy stuff, like reporting a required size of zero.
Reviewed-by: Adam Jackson <ajax@redhat.com >
Reviewed-by: Dave Airlie <airlied@redhat.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10689 >
2021-05-10 16:38:04 +00:00
Erik Faye-Lund
1a099cb90b
llvmpipe: allow calculating size of overly large texture
...
We need this for Lavapipe; we shouldn't fail to create an vkImage that
is too large, we should instead fail to allocate memory for it.
Reviewed-by: Adam Jackson <ajax@redhat.com >
Reviewed-by: Dave Airlie <airlied@redhat.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10689 >
2021-05-10 16:38:04 +00:00
Erik Faye-Lund
e10618f6f5
lavapipe: report out-of-memory when binding
...
This isn't the perfect error-code, but we don't really have anything
better, it seems.
The ideal fix here would be to fix LLVMpipe to support larger textures,
but this is probably as far as I'm interested in chasing down this path
for now.
Reviewed-by: Adam Jackson <ajax@redhat.com >
Reviewed-by: Dave Airlie <airlied@redhat.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10689 >
2021-05-10 16:38:04 +00:00
Erik Faye-Lund
6012dec550
gallium: allow to report errors from p_screen::resource_bind_backing
...
Reviewed-by: Adam Jackson <ajax@redhat.com >
Reviewed-by: Dave Airlie <airlied@redhat.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10689 >
2021-05-10 16:38:04 +00:00
Erik Faye-Lund
9618d5700c
zink: check for error when binding memory
...
If binding fails, we don't really have a valid image. So let's make sure
we free up the memory sooner rather than later.
Reviewed-by: Adam Jackson <ajax@redhat.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10689 >
2021-05-10 16:38:04 +00:00
Erik Faye-Lund
deb7fa10a2
st/mesa: do not take util_logbase2 of a negative size
...
It's possible to get all width, height and depth as negative here, and
if we take the util_logbase2 of that, we get a nonsense value that might
be outside of the range the driver supports. So let's clamp to zero here
to avoid having to make the drivers overly pessimistic about what the
state-tracker demands.
Reviewed-by: Adam Jackson <ajax@redhat.com >
Reviewed-by: Dave Airlie <airlied@redhat.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10689 >
2021-05-10 16:38:04 +00:00
Rob Clark
8ad7a7c7b3
docs/perfetto: Updates for freedreno and render-stages
...
Signed-off-by: Rob Clark <robdclark@chromium.org >
Reviewed-by: Antonio Caggiano <antonio.caggiano@collabora.com >
Acked-by: Emma Anholt <emma@anholt.net >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/9901 >
2021-05-10 15:34:07 +00:00
Rob Clark
1fadcfedb7
pps: Add a more interesting cfg example
...
Includes counters and renderstages, as well as CPU process/freq, vblank,
dma_fence, etc. This is a more reasonable starting point for system
level tracing.
Signed-off-by: Rob Clark <robdclark@chromium.org >
Reviewed-by: Antonio Caggiano <antonio.caggiano@collabora.com >
Acked-by: Emma Anholt <emma@anholt.net >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/9901 >
2021-05-10 15:34:07 +00:00
Rob Clark
3a772be026
freedreno: Add perfetto renderpass support
...
Add a custom DataSource to provide trace events for render stages.
Signed-off-by: Rob Clark <robdclark@chromium.org >
Acked-by: Emma Anholt <emma@anholt.net >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/9901 >
2021-05-10 15:34:07 +00:00
Rob Clark
27fe7d8fb4
freedreno: Moar header C++-proofing
...
Signed-off-by: Rob Clark <robdclark@chromium.org >
Acked-by: Emma Anholt <emma@anholt.net >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/9901 >
2021-05-10 15:34:07 +00:00
Rob Clark
133a3e4dd3
freedreno/pps: Detect GPU suspend on newer kernels
...
We can avoid re-sending the configuration cmdstream constantly if we
know the device has not suspended since the last sampling period.
Signed-off-by: Rob Clark <robdclark@chromium.org >
Acked-by: Emma Anholt <emma@anholt.net >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/9901 >
2021-05-10 15:34:07 +00:00
Rob Clark
e63ef520fe
freedreno/drm: Add support to query device suspend count
...
Signed-off-by: Rob Clark <robdclark@chromium.org >
Acked-by: Emma Anholt <emma@anholt.net >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/9901 >
2021-05-10 15:34:07 +00:00
Rob Clark
3e4f1798d4
gallium/aux: Add perfetto support to u_trace
...
Not really direct perfetto support, but add a way that tracepoints can
be associated with a driver provided callback which can generate
perfetto events using the timestamps collected on the GPU.
Signed-off-by: Rob Clark <robdclark@chromium.org >
Acked-by: Emma Anholt <emma@anholt.net >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/9901 >
2021-05-10 15:34:07 +00:00
Rob Clark
3e13e45467
freedreno: Add freedreno pps driver
...
Signed-off-by: Rob Clark <robdclark@chromium.org >
Reviewed-by: Antonio Caggiano <antonio.caggiano@collabora.com >
Acked-by: Emma Anholt <emma@anholt.net >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/9901 >
2021-05-10 15:34:07 +00:00
Rob Clark
ecfb00fb09
util/perfetto: Add one-time init
...
Various places around mesa which might want to register a data-source,
etc, should call util_perfetto_init() first to ensure we connect to the
tracing service.
Signed-off-by: Rob Clark <robdclark@chromium.org >
Reviewed-by: Antonio Caggiano <antonio.caggiano@collabora.com >
Acked-by: Emma Anholt <emma@anholt.net >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/9901 >
2021-05-10 15:34:07 +00:00
Rob Clark
7327c051d0
pps: Lower min sampling interval
...
A shorter interval lets us have more granularity to see counter changes
per tile pass.
Signed-off-by: Rob Clark <robdclark@chromium.org >
Reviewed-by: Antonio Caggiano <antonio.caggiano@collabora.com >
Acked-by: Emma Anholt <emma@anholt.net >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/9901 >
2021-05-10 15:34:07 +00:00
Simon Ser
0e94675494
radv: stop special-casing multi-planar formats in radv_get_modifier_flags
...
In radv_get_modifier_flags, we had a special case for multi-planar
formats. However ac_is_modifier_supported should already take care of
rejecting unsupported modifiers for multi-planar buffers.
Some time ago, ac_is_modifier_supported rejected any non-linear modifier
for multi-planar formats. 35e25ea1d0 ("ac/surface: allow non-DCC modifiers
for YUV on GFX9+") changed that to allow non-DCC modifiers with
multi-planar formats on GFX9+. Since then, the radv check has been out
of sync.
A similar patch was applied to radeonsi in 979e138695 ("radeonsi: stop
special-casing YUV formats in si_query_dmabuf_modifiers").
This fixes tiling artifacts with NV12 buffers.
Signed-off-by: Simon Ser <contact@emersion.fr >
Reviewed-by: Bas Nieuwenhuizen <bas@basnieuwenhuizen.nl >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10623 >
2021-05-10 14:31:21 +00:00
Karol Herbst
e9c6569227
nouveau/mm: remove unused nouveau_mm_allocation.next field
...
Signed-off-by: Karol Herbst <kherbst@redhat.com >
Reviewed-by: Pierre Moreau <dev@pmoreau.org >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/8765 >
2021-05-10 12:20:21 +00:00
Karol Herbst
de0a0d2f02
nouveau/mm: pass mm_bucket to mm_slab_new
...
We relied on mm_slab_new choosing the same bucket the caller used, just
pass it in.
Signed-off-by: Karol Herbst <kherbst@redhat.com >
Reviewed-by: Pierre Moreau <dev@pmoreau.org >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/8765 >
2021-05-10 12:20:21 +00:00
Karol Herbst
b7d2add5e0
nouveau: fix race in nouveau_screen_get_name
...
Signed-off-by: Karol Herbst <kherbst@redhat.com >
Reviewed-by: Ilia Mirkin <imirkin@alum.mit.edu >
Reviewed-by: Pierre Moreau <dev@pmoreau.org >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/8765 >
2021-05-10 12:20:21 +00:00
Karol Herbst
98280e8348
clover/memory: fix data race in buffer subclasses
...
Cc: mesa-stable
Signed-off-by: Karol Herbst <kherbst@redhat.com >
Reviewed-by: Zoltán Böszörményi <zboszor@gmail.com >
Reviewed-by: Pierre Moreau <dev@pmoreau.org >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/8765 >
2021-05-10 12:20:21 +00:00
Rhys Perry
a54f111831
radv,aco: compact vertex buffer descriptors
...
It seems common for there to be holes.
fossil-db (GFX10.3, robustBufferAccess enabled):
Totals from 33791 (23.10% of 146267) affected shaders:
(no statistics changed)
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/7871 >
2021-05-10 12:09:14 +00:00
Rhys Perry
20a0744e22
Revert "radv,aco: don't use MUBUF for multi-channel loads on GFX8 with robustness2"
...
This reverts commit a8a6b9fb2f .
This is no longer necessary now that we fixup the size when creating the
descriptors.
Reviewed-by: Samuel Pitoiset <samuel.pitoiset@gmail.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/7871 >
2021-05-10 12:09:14 +00:00
Rhys Perry
157c6b0f33
radv,aco: use per-attribute vertex descriptors for robustness
...
We have to use a different num_records for each attribute to correctly
implement robust buffer access.
fossil-db (GFX10.3, robustBufferAccess enabled):
Totals from 60059 (41.06% of 146267) affected shaders:
VGPRs: 2169040 -> 2169024 (-0.00%); split: -0.02%, +0.02%
CodeSize: 79473128 -> 81156016 (+2.12%); split: -0.00%, +2.12%
MaxWaves: 1635360 -> 1635258 (-0.01%); split: +0.00%, -0.01%
Instrs: 15559040 -> 15793205 (+1.51%); split: -0.01%, +1.52%
Latency: 90954792 -> 91308768 (+0.39%); split: -0.30%, +0.69%
InvThroughput: 14937873 -> 14958761 (+0.14%); split: -0.04%, +0.18%
VClause: 444280 -> 412074 (-7.25%); split: -9.22%, +1.97%
SClause: 588545 -> 644141 (+9.45%); split: -0.54%, +9.99%
Copies: 1010395 -> 1011232 (+0.08%); split: -0.44%, +0.53%
Branches: 274279 -> 274282 (+0.00%); split: -0.00%, +0.00%
PreSGPRs: 1431171 -> 1405056 (-1.82%); split: -2.89%, +1.07%
PreVGPRs: 1575253 -> 1575259 (+0.00%)
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/7871 >
2021-05-10 12:09:14 +00:00
Rhys Perry
dfa38fa0c7
aco: group loads from the same vertex binding into the same clause
...
In the future, we might have vertex attribute loads from the same binding
but with different descriptors. Since they will be loading from the same
buffer, we should continue grouping them into clauses.
No fossil-db changes.
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/7871 >
2021-05-10 12:09:14 +00:00
Timur Kristóf
4bb2e42fb4
radv: Properly enable Wave32 mode for NGG GS.
...
The condition for enabling it was incorrect, and was always false.
Therefore, it was never really enabled.
Signed-off-by: Timur Kristóf <timur.kristof@gmail.com >
Reviewed-by: Samuel Pitoiset <samuel.pitoiset@gmail.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10683 >
2021-05-10 11:39:23 +00:00
Timur Kristóf
925bd5f990
radv: Ignore GS copy shader when determining NGG GS wave size.
...
The GS copy shader is not used with NGG GS.
This fixes a big bug when NGG GS is running in Wave32 mode.
Signed-off-by: Timur Kristóf <timur.kristof@gmail.com >
Reviewed-by: Samuel Pitoiset <samuel.pitoiset@gmail.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10683 >
2021-05-10 11:39:23 +00:00
Juan A. Suarez Romero
ea463f9bff
ci/broadcom: update expected results
...
Reviewed-by: Jose Maria Casanova Crespo <jmcasanova@igalia.com >
Signed-off-by: Juan A. Suarez Romero <jasuarez@igalia.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10694 >
2021-05-10 10:11:09 +00:00
Tapani Pälli
181beece3c
nir: skip assert check with empty structs
...
Fixes issues with upcoming CTS test testing empty structs.
v2: decorate with UNUSED as only used in assert (Timothy)
Signed-off-by: Tapani Pälli <tapani.palli@intel.com >
Reviewed-by: Timothy Arceri <tarceri@itsqueeze.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10681 >
2021-05-10 08:07:29 +03:00
Alyssa Rosenzweig
15b5573194
agx: Set reads_tib appropriately
...
Signed-off-by: Alyssa Rosenzweig <alyssa@rosenzweig.io >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10720 >
2021-05-09 23:29:45 -04:00
Alyssa Rosenzweig
d0f566a90d
agx: Implement load_output
...
Signed-off-by: Alyssa Rosenzweig <alyssa@rosenzweig.io >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10720 >
2021-05-09 23:29:45 -04:00
Alyssa Rosenzweig
1b9b2f9046
agx: Condition writeout ops on already being emitted
...
There's a lot of r/e waiting here, but will be needed for ld_tile. Match
the Metal blob.
Signed-off-by: Alyssa Rosenzweig <alyssa@collabora.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10720 >
2021-05-09 23:29:45 -04:00
Alyssa Rosenzweig
41d8db33a2
agx: Assume lower_fragcolor has been called
...
Signed-off-by: Alyssa Rosenzweig <alyssa@rosenzweig.io >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10720 >
2021-05-09 23:29:45 -04:00
Alyssa Rosenzweig
1164c992cf
agx: Add ld_tile opcode
...
Variant of st_tile.
Signed-off-by: Alyssa Rosenzweig <alyssa@rosenzweig.io >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10720 >
2021-05-09 23:29:45 -04:00
Alyssa Rosenzweig
07fdc0015e
agx: Rename blend -> st_tile
...
For symmetry.
Signed-off-by: Alyssa Rosenzweig <alyssa@rosenzweig.io >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10720 >
2021-05-09 23:29:45 -04:00
Alyssa Rosenzweig
06fe6651b3
agx: Implement blend constant color sysvals
...
Signed-off-by: Alyssa Rosenzweig <alyssa@rosenzweig.io >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10720 >
2021-05-09 23:29:45 -04:00
Alyssa Rosenzweig
5fd489a6bd
agx: Return agx_instr* from emit_intrinsic
...
Aesthetically useful.
Signed-off-by: Alyssa Rosenzweig <alyssa@rosenzweig.io >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10720 >
2021-05-09 23:29:45 -04:00
Alyssa Rosenzweig
dd64463d5f
asahi: Pass through "reads tilebuffer?" bit
...
To be determined if there's more to this, but it's the only bit I see
varying with Metal when blending is enabled.
Signed-off-by: Alyssa Rosenzweig <alyssa@rosenzweig.io >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10720 >
2021-05-09 23:29:45 -04:00
Alyssa Rosenzweig
e2332dea05
asahi: Fix shader key hash function
...
Fixes: 080b05e29e ("asahi: Add Gallium driver")
Signed-off-by: Alyssa Rosenzweig <alyssa@rosenzweig.io >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10720 >
2021-05-09 23:29:45 -04:00
Alyssa Rosenzweig
bedf1019be
asahi: Call nir_lower_fragcolor
...
Signed-off-by: Alyssa Rosenzweig <alyssa@rosenzweig.io >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10720 >
2021-05-09 23:18:19 -04:00
Alyssa Rosenzweig
d76ab2b5d6
asahi: Add blend constant system value
...
Signed-off-by: Alyssa Rosenzweig <alyssa@rosenzweig.io >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10720 >
2021-05-09 23:18:19 -04:00
Alyssa Rosenzweig
30d1223247
asahi: Implement set_blend_color
...
Signed-off-by: Alyssa Rosenzweig <alyssa@rosenzweig.io >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10720 >
2021-05-09 23:18:19 -04:00
Alyssa Rosenzweig
6b7cc1fa8f
asahi: Garbage collect bind_state
...
From noop.
Signed-off-by: Alyssa Rosenzweig <alyssa@rosenzweig.io >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10720 >
2021-05-09 23:18:19 -04:00
Alyssa Rosenzweig
91b9839bf7
asahi: Call nir_lower_blend with selected key
...
Also need to key to pipe formats.
Signed-off-by: Alyssa Rosenzweig <alyssa@rosenzweig.io >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10720 >
2021-05-09 23:18:11 -04:00
Alyssa Rosenzweig
f2179ed4f3
asahi: Augment Gallium key with blend state
...
Signed-off-by: Alyssa Rosenzweig <alyssa@rosenzweig.io >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10720 >
2021-05-09 23:17:50 -04:00
Alyssa Rosenzweig
77f1f12000
asahi: Translate blend CSO to lower_blend options
...
We'll just stick this in the key.
Signed-off-by: Alyssa Rosenzweig <alyssa@rosenzweig.io >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10720 >
2021-05-09 23:17:49 -04:00
Mike Blumenkrantz
564519dc84
zink: rework memory_barrier hook again (third time's the charm)
...
this improves granularity for the barriers and is more in line with the
spec for glMemoryBarrier
Reviewed-by: Dave Airlie <airlied@redhat.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10706 >
2021-05-10 02:21:13 +00:00
Mike Blumenkrantz
25ab2347f8
zink: fix texture barriers for real this time
...
according to spec, this is supposed to handle fragment shader fetch
from previous draw output, not color output readback from previous
color output write
Reviewed-by: Dave Airlie <airlied@redhat.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10706 >
2021-05-10 02:21:13 +00:00
Mike Blumenkrantz
4ebae25e17
zink: break out draw dispatch into separate functions
...
this is much easier to read and is going to greatly simplify the eventual
multidraw implementation which will be dropped in
also it allows moving conditionals outside of loops to very slightly improve
drawoverhead performance (with multidraw)
Reviewed-by: Dave Airlie <airlied@redhat.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10701 >
2021-05-10 01:39:46 +00:00
Mike Blumenkrantz
9e5d927d22
zink: remove compute cruft from resource mapping
...
this used to sync the compute batch, now it does nothing
Reviewed-by: Dave Airlie <airlied@redhat.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10707 >
2021-05-10 01:12:36 +00:00
Mike Blumenkrantz
b0c51cdc9e
zink: add debug assert to verify that zink_clear_framebuffer() is accurate
...
this should never be called for buffers that don't have pending clears
Reviewed-by: Dave Airlie <airlied@redhat.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10705 >
2021-05-10 01:02:22 +00:00
Mike Blumenkrantz
5ac6c70214
zink: break zs clear loop once both bits are set when beginning renderpass
...
no point in looping this any more than we have to
Reviewed-by: Dave Airlie <airlied@redhat.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10705 >
2021-05-10 01:02:22 +00:00
Mike Blumenkrantz
94aeb1041f
zink: handle in-renderpass clears in fb_clears_apply_internal()
...
this isn't used yet, but it may as well be handled in case that changes
Reviewed-by: Dave Airlie <airlied@redhat.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10705 >
2021-05-10 01:02:22 +00:00
Mike Blumenkrantz
b715aaa5f1
zink: only set layer info for samplerviews if there are multiple layers
...
fixes a bunch of validation errors
Reviewed-by: Dave Airlie <airlied@redhat.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10703 >
2021-05-10 00:52:08 +00:00
Mike Blumenkrantz
3c1ecb93d3
zink: simplify samplerview surface creation
...
instead of manually creating the ivci, there's already a util function for
that which will handle everything
also only set layer info if there are multiple layers
Reviewed-by: Dave Airlie <airlied@redhat.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10703 >
2021-05-10 00:52:08 +00:00
Mike Blumenkrantz
b243b1d963
zink: add a target param to create_ivci()
...
allow creating views of different types than the base resource
Reviewed-by: Dave Airlie <airlied@redhat.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10703 >
2021-05-10 00:52:08 +00:00
Mike Blumenkrantz
438f0b31e2
zink: clamp 3D surface viewtype to 2D only in the create_surface hook
...
this is only applicable to things that go through the hook, not for internal
surfaces
Reviewed-by: Dave Airlie <airlied@redhat.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10703 >
2021-05-10 00:52:08 +00:00
Mike Blumenkrantz
0c2453bb59
zink: make ZINK_INLINE_UNIFORMS more standardized in function
...
Reviewed-by: Joshua Ashton <joshua@froggi.es >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10696 >
2021-05-10 00:41:31 +00:00
Mauro Rossi
2736ae0454
android: nir: add nir_lower_fragcolor.c to Makefile.sources
...
Fixes the following building error:
FAILED: out/target/product/x86_64/obj/SHARED_LIBRARIES/gallium_dri_intermediates/LINKED/gallium_dri.so
...
ld.lld: error: undefined symbol: nir_lower_fragcolor
>>> referenced by pan_assemble.c:81 (external/mesa/src/gallium/drivers/panfrost/pan_assemble.c:81)
Cc: 21.0 21.1 <mesa-stable@lists.freedesktop.org >
Fixes: 1fd3563025 ("nir: add lowering pass for fragcolor -> fragdata")
Acked-by: Rob Clark <robclark@freedesktop.org >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10712 >
2021-05-09 00:34:46 +02:00
Iago Toral Quiroga
d81a6e5f1d
broadcom/compiler: change register allocation policy for accumulators
...
The current policy is to always favor accumulators if possible, however,
this is not always optimal.
Particularly, accumulators play a crucial role in enabling QPU instruction
merges, since these are limited to both the ADD and the ALU instructions
addressing at most 2 physical registers. For 2-src instructions, this means
that to be able to merge we need them to address at least 2 accumulators.
While favoring accumulators does help the case for instruction merges in
general, it is risky to assign accumulators to variables that have
long life spans. Doing so will make the accumulator unavailable for
any other instructions during that life span, and since we only have a few
accumulators, we can quickly run out and losing our capacity to merge
instructions for large parts of the qpu program.
On the other hand, we also want to avoid the extreme case were we keep
allocating physical registers to the point we run out, even if we have
accumulators available, since accumulators have additional restrictions
and may not be suitable for everything.
This change continues the policy of favoring accumulators, but it only
does so if the life span of the temps is short, to ensure that we can
recycle accumulators often across instructions and avoid running out
for sections of the QPU code, unless we are already running out of
physical registers.
total instructions in shared programs: 13654647 -> 13336921 (-2.33%)
instructions in affected programs: 11015919 -> 10698193 (-2.88%)
helped: 39758
HURT: 17325
Instructions are helped.
total threads in shared programs: 412046 -> 412038 (<.01%)
threads in affected programs: 16 -> 8 (-50.00%)
helped: 0
HURT: 4
Threads are HURT.
total uniforms in shared programs: 3745726 -> 3746003 (<.01%)
uniforms in affected programs: 17296 -> 17573 (1.60%)
helped: 76
HURT: 99
Uniforms are HURT.
total max-temps in shared programs: 2364430 -> 2359942 (-0.19%)
max-temps in affected programs: 109117 -> 104629 (-4.11%)
helped: 2893
HURT: 772
Max-temps are helped.
total spills in shared programs: 5727 -> 5746 (0.33%)
spills in affected programs: 221 -> 240 (8.60%)
helped: 1
HURT: 2
total fills in shared programs: 13121 -> 13139 (0.14%)
fills in affected programs: 466 -> 484 (3.86%)
helped: 1
HURT: 2
total sfu-stalls in shared programs: 33432 -> 34491 (3.17%)
sfu-stalls in affected programs: 18219 -> 19278 (5.81%)
helped: 4459
HURT: 5087
Inconclusive result
total inst-and-stalls in shared programs: 13688079 -> 13371412 (-2.31%)
inst-and-stalls in affected programs: 11030017 -> 10713350 (-2.87%)
helped: 39630
HURT: 17429
Inst-and-stalls are helped.
total nops in shared programs: 335753 -> 333708 (-0.61%)
nops in affected programs: 112659 -> 110614 (-1.82%)
helped: 8726
HURT: 7383
Inconclusive result
Reviewed-by: Alejandro Piñeiro <apinheiro@igalia.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10686 >
2021-05-08 13:15:42 +02:00
Jose Fonseca
24043d215f
lavapipe: Fix lvp_pipeline_compile's nir_xfb_info leak.
...
v2: Cleanup, as suggested by Mike Blumenkrantz.
Reviewed-By: Mike Blumenkrantz <michael.blumenkrantz@gmail.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10688 >
2021-05-08 07:17:49 +01:00
Jose Fonseca
c1609c3531
lavapipe: Fix lvp_execute_cmds' pipe_stream_output_target leak.
...
v2: Unbind SO targets, as suggested by Mike Blumenkrantz.
Reviewed-By: Mike Blumenkrantz <michael.blumenkrantz@gmail.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10688 >
2021-05-08 07:17:49 +01:00
Vinson Lee
38de1cd5f0
nv50/ir: Initialize CodeEmitterNV50 member progType.
...
Make progType a constructor argument.
Fix defect reported by Coverity Scan.
Uninitialized scalar field (UNINIT_CTOR)
uninit_member: Non-static class member progType is not initialized
in this constructor nor in any functions that it calls.
Suggested-by: Ilia Mirkin <imirkin@alum.mit.edu >
Signed-off-by: Vinson Lee <vlee@freedesktop.org >
Reviewed-by: Ilia Mirkin <imirkin@alum.mit.edu >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10562 >
2021-05-08 01:31:20 +00:00
Vinson Lee
b1f6aa6e48
nv50/ir: Initialize BuildUtil member tail.
...
Fix defect reported by Coverity Scan.
Uninitialized scalar field (UNINIT_CTOR)
uninit_member: Non-static class member tail is not initialized in
this constructor nor in any functions that it calls.
Signed-off-by: Vinson Lee <vlee@freedesktop.org >
Reviewed-by: Ilia Mirkin <imirkin@alum.mit.edu >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10561 >
2021-05-08 01:21:35 +00:00
Vinson Lee
9b50ebfb2d
nvc0: Remove unnecessary bsp_bo NULL check.
...
Fix defect reported by Coverity Scan.
Dereference before null check (REVERSE_INULL)
check_after_deref: Null-checking bsp_bo suggests that it may be
null, but it has already been dereferenced on all paths leading
to the check.
Signed-off-by: Vinson Lee <vlee@freedesktop.org >
Reviewed-by: Ilia Mirkin <imirkin@alum.mit.edu >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10564 >
2021-05-08 01:11:15 +00:00
Vinson Lee
2ba50c1a01
nv50/ir: Initialize Graph::Node member tag.
...
Fix defect reported by Coverity Scan.
Uninitialized scalar field (UNINIT_CTOR)
uninit_member: Non-static class member tag is not initialized in
this constructor nor in any functions that it calls.
Signed-off-by: Vinson Lee <vlee@freedesktop.org >
Reviewed-by: Ilia Mirkin <imirkin@alum.mit.edu >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10563 >
2021-05-07 17:49:11 -07:00
Mike Blumenkrantz
edd06995d7
zink: never use LINEAR for VK_EXT_4444_formats
...
we shouldn't be reading these back, and some drivers lie about what features
are supported in linear tiling anyway
Reviewed-by: Joshua Ashton <joshua@froggi.es >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10702 >
2021-05-07 21:13:46 +00:00
Adam Jackson
291aff3fcb
gallium: Remove unused st_visual::render_buffer
...
Reviewed-by: Pierre-Eric Pelloux-Prayer <pierre-eric.pelloux-prayer@amd.com >
Reviewed-By: Mike Blumenkrantz <michael.blumenkrantz@gmail.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10675 >
2021-05-07 16:47:30 -04:00
Ernst Sjöstrand
ca3dbecea6
nv50: Fix use of initializers on older compilers
...
Fixes the following error on Ubuntu 18.04 with GCC 7.
src/gallium/drivers/nouveau/codegen/nv50_ir_from_tgsi.cpp:1448:72:
sorry, unimplemented: non-trivial designated initializers not supported
info_out->prop.cp.gmem[gmemSlot++] = {.valid = 1, .slot = i};
Reviewed-by: Ilia Mirkin <imirkin@alum.mit.edu >
Reviewed-by: Karol Herbst <kherbst@redhat.com >
Fixes: f451854f3 ("nv50: add remapping of buffers/images into unified space")
Signed-off-by: Ernst Sjöstrand <ernstp@gmail.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10668 >
2021-05-07 19:36:21 +00:00
Danylo Piliaiev
daad8f2245
freedreno/a5xx: SP_BLEND_CNTL has per-mrt blend enable bit
...
Blending in SP_BLEND_CNTL is not a binary flag but the same
mask as in RB_BLEND_CNTL. It is a per-mrt enable bit for blending.
Copied form a6xx, on a5xx it should be have the same since it seems
to have the same structure layout.
Signed-off-by: Danylo Piliaiev <dpiliaiev@igalia.com >
Reviewed-by: Samuel Iglesias Gonsálvez <siglesias@igalia.com >
Reviewed-by: Rob Clark <robdclark@chromium.org >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10682 >
2021-05-07 19:12:17 +00:00
Danylo Piliaiev
14da2444a9
turnip,freedreno/a6xx: SP_BLEND_CNTL has per-mrt blend enable bit
...
Blending in SP_BLEND_CNTL is not a binary flag but the same
mask as in RB_BLEND_CNTL. It is a per-mrt enable bit for blending.
Example SP_BLEND_CNTL produced by blob on a630 and different MRT
blendings:
SP_BLEND_CNTL: { UNK8 | 0x6 }
SP_BLEND_CNTL: { ENABLED | UNK8 | 0xe }
(Decoded before this commit)
Fixes mis-rendering with D3D11 game "Spelunky 2".
Signed-off-by: Danylo Piliaiev <dpiliaiev@igalia.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10682 >
2021-05-07 19:12:17 +00:00
Erik Faye-Lund
39a938ecf4
lavapipe: fix fsum with swizzle
...
We can do stuff like this:
vec1 32 ssa_207 = fsum3 ssa_209.xxx
In this case, we'd end up not swizzling in get_alu_src, and reading
components out-of-bounds, which LLVM isn't very happy about, and thus
takes punitive actions, in the form of a segfault.
We don't want that, and we already know from the opcode what the
component counts should be here.
Reviewed-By: Mike Blumenkrantz <michael.blumenkrantz@gmail.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10690 >
2021-05-07 18:48:28 +00:00
Alyssa Rosenzweig
aa765c54bd
pan/bi: Add divergent intrinsic lowering pass
...
This is undefined behaviour in the hardware but perfectly legal NIR, so
lower to an if ladder predicated on the lane ID (the blob's preferred
strategy).
Signed-off-by: Alyssa Rosenzweig <alyssa@collabora.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10022 >
2021-05-07 18:20:30 +00:00
Alyssa Rosenzweig
4055b99de4
pan/bi: Add "lanes per warp" accessor
...
Varies by architecture version.
Signed-off-by: Alyssa Rosenzweig <alyssa@collabora.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10022 >
2021-05-07 18:20:30 +00:00
Alyssa Rosenzweig
7e4ee9bd2f
pan/bi: Map load_subgroup_invocation to FAU
...
Signed-off-by: Alyssa Rosenzweig <alyssa@collabora.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10022 >
2021-05-07 18:20:30 +00:00
Alyssa Rosenzweig
754c192e04
pan/bi: Drop load_sampler_lod_parameters_pan
...
Only used for an erratum workaround on Mali T720.
Signed-off-by: Alyssa Rosenzweig <alyssa@collabora.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10022 >
2021-05-07 18:20:30 +00:00
Alyssa Rosenzweig
db2f6b87a3
nir/divergence_anlysis: Add intrinsics for Bifrost
...
Signed-off-by: Alyssa Rosenzweig <alyssa@collabora.com >
Reviewed-by: Jason Ekstrand <jason@jlekstrand.net >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10022 >
2021-05-07 18:20:30 +00:00
Samuel Pitoiset
54b0cfb061
radv: fix extending the dirty bits to 64-bit
...
New dynamic states added for VK_EXT_extended_dynamic_state2 causes
GPU hangs with vkd3d-proton.
Fixes: 7bdd569d7e ("radv: extend the dirty bits to 64-bit")
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/10693 >
2021-05-07 18:09:00 +00:00
Alyssa Rosenzweig
e0419c29cc
panfrost: Use common blend lowering
...
Contains a number of bugfixes.
Signed-off-by: Alyssa Rosenzweig <alyssa@collabora.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10601 >
2021-05-07 17:25:21 +00:00
Alyssa Rosenzweig
f3de2bd6c2
nir: Add blend lowering pass
...
This pass was originally developed for Panfrost, where it passes the
relevant dEQP tests. Upstreaming so it can be extended and then shared
with:
* Asahi, for blending
* Zink, for logic ops
* Lavapipe, for advanced blending
Note that using this with MRT in a fragment shader (as non-panfrost
drivers will) has not yet been tested. Logic ops with integer
framebuffers are probably todo. It's been enough for Panfrost, will
suffice for ES2 on Asahi, and provides an upstream base for kusma's work
on advanced blending, so overall the merge is a net benefit.
v2: Remove bogus assert that the format layout is PLAIN. We need to
render R11G11B10, which Mesa reports as layout OTHER. The code is still
correct.
Signed-off-by: Alyssa Rosenzweig <alyssa@collabora.com >
Reviewed-by: Erik Faye-Lund <erik.faye-lund@collabora.com > [v1]
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10601 >
2021-05-07 17:25:21 +00:00
Alyssa Rosenzweig
0cde5ddc79
pan/lower_framebuffer: Fix bitsize mismatch
...
No idea why this never manifested before.
Signed-off-by: Alyssa Rosenzweig <alyssa@collabora.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10601 >
2021-05-07 17:25:21 +00:00
Mike Blumenkrantz
91bd4fc613
zink: add a pipe_context::clear_buffer hook
...
Reviewed-by: Dave Airlie <airlied@redhat.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10679 >
2021-05-07 17:00:30 +00:00
Gert Wollny
f94f2e1223
mesa: add an extension MESA_bgra
...
This GLES extension allows to combine the formats BGR and BGRA
as host-side formatsto be combined with the internal formats
RGB8/SRGB8 and RGBA8/SRGB8_ALPHA8 respectively.
This extension is of interest to support a subset of OpenGL in
virtualized environments where the host only supports GLES.
Initial mesa/glformat.c patch: rohan.garg@collabora.com
v2: - Correct names for ClearTexture calls
- Add BGR(A)_EXT tokens
- Add format check for BGR_EXT
(All Adam Jackson)
v3: Fix ordering in extension table (Marge)
Signed-off-by: Gert Wollny <gert.wollny@collabora.com >
Reviewed-by: Adam Jackson <ajax@redhat.com > (v2)
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10613 >
2021-05-07 16:35:15 +00:00
Boris Brezillon
0ab2336f3f
panfrost: Use pan_blit() when PAN_MESA_DEBUG=panblit
...
Hook-up support for native blits. We keep using u_blitter by default
for now.
Signed-off-by: Boris Brezillon <boris.brezillon@collabora.com >
Reviewed-by: Alyssa Rosenzweig <alyssa@collabora.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10548 >
2021-05-07 15:58:56 +00:00
Boris Brezillon
6197c3afd1
panfrost: Extend pan_blitter to support blit/resolve operations
...
Right now the lib is just used for TB preloads. Let's make it generic
to support actual blits.
Signed-off-by: Boris Brezillon <boris.brezillon@collabora.com >
Reviewed-by: Alyssa Rosenzweig <alyssa@collabora.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10548 >
2021-05-07 15:58:56 +00:00
Boris Brezillon
c1df85ded5
panfrost: Stop assuming the viewport will always cover the framebuffer
...
That's not necessarily true for actual blits, so let's pass the min/max
coords to pan_blitter_emit_viewport().
Signed-off-by: Boris Brezillon <boris.brezillon@collabora.com >
Reviewed-by: Alyssa Rosenzweig <alyssa@collabora.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10548 >
2021-05-07 15:58:56 +00:00
Boris Brezillon
09e65df92e
panfrost: Don't select the blit shader fragout type twice
...
The type has already been selected when forging the key, no need to do
it again pan_blitter_emit_bifrost_blend().
Signed-off-by: Boris Brezillon <boris.brezillon@collabora.com >
Reviewed-by: Alyssa Rosenzweig <alyssa@collabora.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10548 >
2021-05-07 15:58:56 +00:00
Boris Brezillon
666072c91f
panfrost: Shrink the number of args passed to prepare_{bifrost,midgard}_rsd()
...
There's clearly no need to pass RTs/ZS views around, pass only what we
really need.
Signed-off-by: Boris Brezillon <boris.brezillon@collabora.com >
Reviewed-by: Alyssa Rosenzweig <alyssa@collabora.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10548 >
2021-05-07 15:58:56 +00:00
Boris Brezillon
7d9d32d17d
panfrost: Rename pan_preload_emit_varying()
...
This function will be used for blits too.
Signed-off-by: Boris Brezillon <boris.brezillon@collabora.com >
Reviewed-by: Alyssa Rosenzweig <alyssa@collabora.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10548 >
2021-05-07 15:58:56 +00:00
Boris Brezillon
db92509bf6
panfrost: Make pan_preload_emit_viewport() applicable to blits
...
We will emit one viewport and attach it to several DCDs for multi-layer
blits. Make that possible by adjusting the prototype and rename the
function along the way.
Signed-off-by: Boris Brezillon <boris.brezillon@collabora.com >
Reviewed-by: Alyssa Rosenzweig <alyssa@collabora.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10548 >
2021-05-07 15:58:56 +00:00
Boris Brezillon
7f3ea517f7
panfrost: Make pan_preload_emit_*_textures() applicable to blits
...
The texture descriptors will be emitted once and re-used in several
DCDs when blitting more than one layer. Rename the functions and make
them return a GPU pointer instead of filling the DCD directly.
Signed-off-by: Boris Brezillon <boris.brezillon@collabora.com >
Reviewed-by: Alyssa Rosenzweig <alyssa@collabora.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10548 >
2021-05-07 15:58:56 +00:00
Boris Brezillon
1f86dd95ca
panfrost: Stop assigning ->position in pan_preload_emit_varying()
...
It doesn't make sense to have it done in pan_preload_emit_varying().
Signed-off-by: Boris Brezillon <boris.brezillon@collabora.com >
Reviewed-by: Alyssa Rosenzweig <alyssa@collabora.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10548 >
2021-05-07 15:58:56 +00:00
Boris Brezillon
f149e2cdd8
panfrost: Make pan_preload_emit_*_sampler() applicable to blits
...
The sampler descriptors will be emitted once and re-used in
several DCDs for the multi-layer blit case. We will also need
to select the filter. Let's adjust the pan_preload_emit_*_sampler()
functions to support that and rename them along the way.
Signed-off-by: Boris Brezillon <boris.brezillon@collabora.com >
Reviewed-by: Alyssa Rosenzweig <alyssa@collabora.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10548 >
2021-05-07 15:58:56 +00:00
Boris Brezillon
117e08d77c
panfrost: Get rid of the vertex_count arg in pan_preload_emit_varying()
...
We always pass 4 anyway.
Signed-off-by: Boris Brezillon <boris.brezillon@collabora.com >
Reviewed-by: Alyssa Rosenzweig <alyssa@collabora.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10548 >
2021-05-07 15:58:56 +00:00
Boris Brezillon
45c615fd05
panfrost: Pack pan_blit_surface fields
...
It should speed up a bit hash calculation and allow us to add extra
info without changing the structure size.
Signed-off-by: Boris Brezillon <boris.brezillon@collabora.com >
Reviewed-by: Alyssa Rosenzweig <alyssa@collabora.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10548 >
2021-05-07 15:58:56 +00:00
Boris Brezillon
bf0f96f893
panfrost: Fix blit shader names
...
first should be initialized to true if we want to get rid of the leading
';' in the shader name.
Signed-off-by: Boris Brezillon <boris.brezillon@collabora.com >
Reviewed-by: Alyssa Rosenzweig <alyssa@collabora.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10548 >
2021-05-07 15:58:56 +00:00
Boris Brezillon
e2b8f3d036
panfrost: Pass an image view to panfrost_estimate_texture_payload_size()
...
Signed-off-by: Boris Brezillon <boris.brezillon@collabora.com >
Reviewed-by: Alyssa Rosenzweig <alyssa@collabora.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10548 >
2021-05-07 15:58:56 +00:00
Matti Hamalainen
fefd853a56
gallium/tools: add option to use Meld for diffing
...
Add option -m/--meld to tracediff.sh to use Meld
<https://meldmerge.org/ > instead of sdiff for comparing
traces.
Signed-off-by: Matti Hamalainen <ccr@tnsp.org >
Acked-By: Mike Blumenkrantz <michael.blumenkrantz@gmail.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10648 >
2021-05-07 15:48:03 +00:00
Matti Hamalainen
118e8a505a
gallium/tools: improve pointer type tracking in parse.py
...
In our simplistic model of assigning types to pointer, we treat
return values specially because their "type" can't be known
easily before their first use. Improve the "ret" handling by
removing one from their count when we reassign the type to
something else.
Signed-off-by: Matti Hamalainen <ccr@tnsp.org >
Acked-By: Mike Blumenkrantz <michael.blumenkrantz@gmail.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10648 >
2021-05-07 15:48:03 +00:00
Matti Hamalainen
7ef828b563
gallium/tools: implement "high-level" overview mode option in dump scripts
...
As per the suggestion in #4609 , implement mode/option -M/--method-only
which only prints call method names, for quick overview of what is
happening in the trace. The same option can be used with both
dump.py and tracediff.sh.
Signed-off-by: Matti Hamalainen <ccr@tnsp.org >
Acked-By: Mike Blumenkrantz <michael.blumenkrantz@gmail.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10648 >
2021-05-07 15:48:03 +00:00
Matti Hamalainen
0112e3c7ea
gallium/tools: improve tracediff.sh argument handling
...
Implement better argument parsing/handling in tracediff.sh
so that the options passed to dump.py and sdiff are not required
to be positional.
Signed-off-by: Matti Hamalainen <ccr@tnsp.org >
Acked-By: Mike Blumenkrantz <michael.blumenkrantz@gmail.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10648 >
2021-05-07 15:48:03 +00:00
Matti Hamalainen
3369a132c4
gallium/tools: use left-column output mode of sdiff in tracediff.sh
...
Enabling --left-column option for sdiff inside tracediff.sh we
get output that only shows the differing lines on the right column.
This, when used with the -N/--named option should make many
trace diffs more understandable.
Signed-off-by: Matti Hamalainen <ccr@tnsp.org >
Acked-By: Mike Blumenkrantz <michael.blumenkrantz@gmail.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10648 >
2021-05-07 15:48:03 +00:00
Matti Hamalainen
d730c18bdb
gallium/tools: implement 'named' pointers option in dump.py
...
As suggested by zmike in issue #4609 , raw pointer values in
are problematic for diffing state dumps. In attempt to remedy
this, we implement an option --named/-N in dump.py that
generates symbolic names for all pointers based on the context.
Signed-off-by: Matti Hamalainen <ccr@tnsp.org >
Acked-By: Mike Blumenkrantz <michael.blumenkrantz@gmail.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10648 >
2021-05-07 15:48:03 +00:00
Matti Hamalainen
054b2afcb9
gallium/tools: implement better suppression of variants
...
Previously some variants (such as execution time and call number
were suppressed in tracediff.sh via a sed script. It makes sense
to implement an option to leave out such variants to begin with
in dump.py, so let's do so and use it.
Signed-off-by: Matti Hamalainen <ccr@tnsp.org >
Acked-By: Mike Blumenkrantz <michael.blumenkrantz@gmail.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10648 >
2021-05-07 15:48:03 +00:00
Matti Hamalainen
0834a42773
gallium/tools: improve option handling in dump_state.py
...
Previously we inherited some options from parse.py, but
that made no sense for some of the options that are not
needed for dump_state.py (such as --plain, as we output
only JSON format text.)
So, remove the inherit and implement filename argument
here independantly.
Signed-off-by: Matti Hamalainen <ccr@tnsp.org >
Acked-By: Mike Blumenkrantz <michael.blumenkrantz@gmail.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10648 >
2021-05-07 15:48:03 +00:00
Matti Hamalainen
a6765412fe
gallium/tools: clean up tracediff.sh a bit
...
Clean up tracediff.sh shellscript slightly, partially in preparation
for upcoming changes. Also add a signal handler for removing the
created temporary directory and files if we are interrupted.
Also, use the new --plain option of dump.py to suppress output
of ANSI color/formatting codes, so we do not have to post-filter
them later.
Signed-off-by: Matti Hamalainen <ccr@tnsp.org >
Acked-By: Mike Blumenkrantz <michael.blumenkrantz@gmail.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10648 >
2021-05-07 15:48:03 +00:00
Antonio Caggiano
f6be64ef66
pps: Documentation
...
Add documentation for Perfetto and Gfx-pps, together with some perfetto
config files to use as a starting point.
Signed-off-by: Antonio Caggiano <antonio.caggiano@collabora.com >
Signed-off-by: Rob Clark <robdclark@chromium.org >
Acked-by: Emma Anholt <emma@anholt.net >
Reviewed-by: John Bates <jbates@chromium.org >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/9652 >
2021-05-07 13:41:38 +00:00
Antonio Caggiano
948f780915
pps: Gfx-pps config tool
...
Add helpful tool to query pps capabilites such as supported devices,
counters and counter groups, and to dump counter values to stdout.
Signed-off-by: Antonio Caggiano <antonio.caggiano@collabora.com >
Acked-by: Emma Anholt <emma@anholt.net >
Reviewed-by: Rob Clark <robdclark@chromium.org >
Reviewed-by: John Bates <jbates@chromium.org >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/9652 >
2021-05-07 13:41:38 +00:00
Antonio Caggiano
1cc72b2aef
pps: Gfx-pps v0.3.0
...
Add the gfx-pps backbone in `src/pps`.
v2: Simplify supported drivers creation.
v3: No default getter is provided for counters.
v4: Open DRM device in read/write mode.
v5: Wait for datasource to be started.
v6: Set FIFO scheduler while sampling counters.
Signed-off-by: Antonio Caggiano <antonio.caggiano@collabora.com >
Acked-by: Emma Anholt <emma@anholt.net >
Reviewed-by: Rob Clark <robdclark@chromium.org >
Reviewed-by: John Bates <jbates@chromium.org >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/9652 >
2021-05-07 13:41:38 +00:00
Antonio Caggiano
a0738525ed
util: Perfetto SDK v15.0
...
Add Perfetto SDK v15.0 as a dependency using a meson wrap.
Signed-off-by: Antonio Caggiano <antonio.caggiano@collabora.com >
Acked-by: Alyssa Rosenzweig <alyssa.rosenzweig@collabora.com >
Acked-by: Emma Anholt <emma@anholt.net >
Reviewed-by: Rob Clark <robdclark@chromium.org >
Reviewed-by: John Bates <jbates@chromium.org >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/9652 >
2021-05-07 13:41:38 +00:00
Mike Blumenkrantz
c449a8a2c1
util/hash_table: _mesa_hash_table_create_u32_keys()
...
Reviewed-by: Erik Faye-Lund <erik.faye-lund@collabora.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10673 >
2021-05-07 13:14:08 +00:00
Iago Toral Quiroga
e5fc2064fc
v3d: re-enable GLSL loop unrolling
...
Disabling it that made us start to fail register allocation for a
few tests. Re-enable it until we figure out what is causing that.
Fixes: ca9e0871fb ('v3d: enable NIR loop unrolling')
Reviewed-by: Juan A. Suarez <jasuarez@igalia.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10684 >
2021-05-07 12:34:36 +00:00
Gert Wollny
c80877b535
r600/sfn: lower to scalar with filter applied
...
Signed-off-by: Gert Wollny <gert.wollny@collabora.com >
Reviewed-by: Timothy Arceri <tarceri@itsqueeze.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/9943 >
2021-05-07 12:09:03 +00:00
Gert Wollny
e36d5c5f6e
gallium: pass lower_to_scalar_filter to lower_to_scalar pass
...
v2: Fix the callback name
Signed-off-by: Gert Wollny <gert.wollny@collabora.com >
Reviewed-by: Timothy Arceri <tarceri@itsqueeze.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/9943 >
2021-05-07 12:09:03 +00:00
Gert Wollny
b4600d9352
nir: Add filter callback for lower_to_scalar to the options
...
Signed-off-by: Gert Wollny <gert.wollny@collabora.com >
Reviewed-by: Timothy Arceri <tarceri@itsqueeze.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/9943 >
2021-05-07 12:09:03 +00:00
Dave Airlie
83a05caaf2
gallivm: handle texture arrays in non-fragment shaders with lod.
...
We have to unwind the lod into the scalar path correctly.
Fixes a crash with renderdoc demo
Fixes: e168d148d7 ("gallivm/nir: handle non-uniform texture offsets")
Reviewed-By: Mike Blumenkrantz <michael.blumenkrantz@gmail.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10676 >
2021-05-07 02:41:29 +00:00
Mike Blumenkrantz
cca9201922
zink: start using dynamic front face state
...
this doesn't actually do anything other than test the codepath since
the hashed pipeline state will still change on every frontface change,
but it's a start
Reviewed-by: Dave Airlie <airlied@redhat.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10508 >
2021-05-07 02:00:54 +00:00
Mike Blumenkrantz
27d1ecd54b
zink: hook up dynamic dsa states
...
this is pretty straightforward, just adding some extra calls
Reviewed-by: Dave Airlie <airlied@redhat.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10508 >
2021-05-07 02:00:54 +00:00
Mike Blumenkrantz
e645f71c68
zink: return current pipeline object if state hasn't changed
...
Reviewed-by: Dave Airlie <airlied@redhat.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10508 >
2021-05-07 02:00:54 +00:00
Mike Blumenkrantz
ce31c840b6
zink: flag pipeline for change more often when vbos change without dynamic state
...
this is always going to be bad for perf, but we still need to force updates anytime
we know for sure they'll be needed
Reviewed-by: Dave Airlie <airlied@redhat.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10508 >
2021-05-07 02:00:54 +00:00
Mike Blumenkrantz
ff1941aa08
zink: split vertex state pipeline hashing into its own value
...
by creating a separate hash value for vertex state, changes to the vbos and
bindings requires massively less overhead as it doesn't require the rest of
the pipeline state to be rehashed
Reviewed-by: Dave Airlie <airlied@redhat.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10508 >
2021-05-07 02:00:54 +00:00
Mike Blumenkrantz
7ca64c1c4d
zink: move more vertex state stuff into the hw state
...
this simplifies a lot of the hashing since only the vertex state pointer
needs to be hashed
Reviewed-by: Dave Airlie <airlied@redhat.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10508 >
2021-05-07 02:00:54 +00:00
Mike Blumenkrantz
d7a1bd94fb
zink: check descriptor layout support before creating it
...
Reviewed-by: Dave Airlie <airlied@redhat.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/9965 >
2021-05-07 01:50:11 +00:00
Mike Blumenkrantz
75068967ee
zink: use explicit types during descriptor updates
...
less derefs
Reviewed-by: Dave Airlie <airlied@redhat.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/9965 >
2021-05-07 01:50:11 +00:00
Mike Blumenkrantz
eb446af697
zink: abstract descriptor pool usage for programs
...
Reviewed-by: Dave Airlie <airlied@redhat.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/9965 >
2021-05-07 01:50:11 +00:00
Mike Blumenkrantz
86047feac8
zink: abstract descriptor usage for programs
...
Reviewed-by: Dave Airlie <airlied@redhat.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/9965 >
2021-05-07 01:50:11 +00:00
Mike Blumenkrantz
11b5c07771
zink: abstract descriptor init
...
Reviewed-by: Dave Airlie <airlied@redhat.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/9965 >
2021-05-07 01:50:11 +00:00
Mike Blumenkrantz
2dfe9d8b7f
zink: unify pipeline layout creation functions
...
these codepaths are almost identical
Reviewed-by: Dave Airlie <airlied@redhat.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/9965 >
2021-05-07 01:50:11 +00:00
Mike Blumenkrantz
7d9b6b071a
zink: split off descriptor layout from descriptor pools
...
in theory we could have multiple pools per layout, but really it just makes
more sense to make the layouts persistent since they're more likely to be
reused
32bit compile fixes by Witold Baryluk
Reviewed-by: Dave Airlie <airlied@redhat.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/9965 >
2021-05-07 01:50:11 +00:00
Alyssa Rosenzweig
d4d3328b95
panfrost: Enable 16-bit support on Bifrost
...
Remove the PAN_MESA_DEBUG=fp16 flag that was hiding it.
Skip two buggy dEQP tests. See linked discussion. We'll need to make
sure this gets sorted out before submitting conformance, but I don't see
a test with a fix in the pipeline as valid reason to hold back valid
code.
Signed-off-by: Alyssa Rosenzweig <alyssa@collabora.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/9239 >
2021-05-06 23:26:21 +00:00
Alyssa Rosenzweig
793d18b79b
pan/bi: Enable mediump BLEND lowering
...
Other lowerings will wait until we iron out various missing features.
Signed-off-by: Alyssa Rosenzweig <alyssa@collabora.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/9239 >
2021-05-06 23:26:21 +00:00
Alyssa Rosenzweig
d3ba26be37
pan/bi: Garbage collect bifrost_nir.h
...
Signed-off-by: Alyssa Rosenzweig <alyssa@collabora.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/9239 >
2021-05-06 23:26:21 +00:00
Alyssa Rosenzweig
ff36e40145
pan/bi: Copyprop constants
...
Needed for constant folding to be effective. But don't copyprop into
instructions already reading from FAU, that will just end up adding more
moves!
Signed-off-by: Alyssa Rosenzweig <alyssa@collabora.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/9239 >
2021-05-06 23:26:21 +00:00
Alyssa Rosenzweig
1049bb4374
pan/bi: Fix int<-->float size converts
...
Signed-off-by: Alyssa Rosenzweig <alyssa@collabora.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/9239 >
2021-05-06 23:26:21 +00:00
Alyssa Rosenzweig
0f6e45f8b2
pan/bi: Enable NIR vectorization
...
We don't vectorize transcendentals, since those are scalar only in
hardware. Also don't vectorize a few places where impedance mismatches
between NIR and the hardware make handling vectors infeasible for now.
Signed-off-by: Alyssa Rosenzweig <alyssa.rosenzweig@collabora.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/9239 >
2021-05-06 23:26:21 +00:00
Alyssa Rosenzweig
646e03c451
pan/bi: Temporarily switch back to 0/~0 bools
...
Keeps things simpler while debugging vectorization woes.
Signed-off-by: Alyssa Rosenzweig <alyssa@collabora.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/9239 >
2021-05-06 23:26:21 +00:00
Alyssa Rosenzweig
8db4166c58
pan/bi: Handle make_vec with 1-bit bools
...
Signed-off-by: Alyssa Rosenzweig <alyssa@collabora.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/9239 >
2021-05-06 23:26:21 +00:00
Alyssa Rosenzweig
7793c9ab02
pan/bi: Adapt branching for 1-bit bools
...
Signed-off-by: Alyssa Rosenzweig <alyssa@rosenzweig.io >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/9239 >
2021-05-06 23:26:21 +00:00
Alyssa Rosenzweig
3d78cc5876
pan/bi: Change swizzled scalars to identity
...
Allows packing for things like IADD.v2s16
Signed-off-by: Alyssa Rosenzweig <alyssa@collabora.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/9239 >
2021-05-06 23:26:21 +00:00
Alyssa Rosenzweig
b7a757b2f7
panfrost: Fix typo handling blend types
...
This was right in my head.
Fixes: 93a176b6cf ("panfrost: Key blend shaders to the input types")
Signed-off-by: Alyssa Rosenzweig <alyssa@rosenzweig.io >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/9239 >
2021-05-06 23:26:21 +00:00
Alyssa Rosenzweig
54046d61f8
pan/mdg: Model blend shader interference
...
Backport of 4439757db2 ("pan/bi: Use the interference mechanism
to describe blend shader reg use") to Midgard.
Signed-off-by: Alyssa Rosenzweig <alyssa@collabora.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/9239 >
2021-05-06 23:26:21 +00:00
Adam Jackson
90cbab7cae
mesa: s/malloc/calloc/ to silence a warning
...
gcc 11 warns:
[846/1506] Compiling C object src/mesa/libmesa_common.a.p/main_shaderapi.c.o
In function ‘shader_source’,
inlined from ‘_mesa_ShaderSource_no_error’ at ../src/mesa/main/shaderapi.c:2137:4:
../src/mesa/main/shaderapi.c:2095:25: warning: ‘*offsets_10 + _130’ may be used uninitialized [-Wmaybe-uninitialized]
2095 | totalLength = offsets[count - 1] + 2;
I can't really see how it's getting to that conclusion, but allocating
`offsets` with calloc is both natural to do here and guarantees
initialization.
Reviewed-by: Matt Turner <mattst88@gmail.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10671 >
2021-05-06 21:25:47 +00:00
Adam Jackson
4770d6c01d
format/fxt1: Clean up fxt1_variance's argument list
...
gcc 11 warns:
../src/util/format/u_format_fxt1.c:940:22: warning: ‘fxt1_variance.constprop’ accessing 128 bytes in a region of size 64 [-Wstringop-overflow=]
940 | int32_t maxVarR = fxt1_variance(NULL, &input[N_TEXELS / 2], n_comp);
But, suspiciously, if you inline fxt1_variance the warning goes away.
What's happening is that the 2nd arg is uint8_t[N_TEXELS][MAX_COMP], so
it looks like we're passing too small of an array in since gcc knows
that `input` is also [N_TEXELS][MAX_COMP]. Fair enough. Fix the
signature to reflect what's actually going on, and remove some unused
arguments while we're at it.
Reviewed-by: Matt Turner <mattst88@gmail.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10671 >
2021-05-06 21:25:47 +00:00
Samuel Pitoiset
d96507b73f
radv: advertise VK_EXT_extended_dynamic_state2
...
This only implements dynamic primitive restart enable, depth bias
enable and rasterizer discard enable. I leave logic op and patch
control points for later.
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/10340 >
2021-05-06 20:58:59 +00:00
Samuel Pitoiset
dd19bf9d7d
radv: implement dynamic rasterizer discard enable
...
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/10340 >
2021-05-06 20:58:59 +00:00
Samuel Pitoiset
c40d7fadc3
radv: implement dynamic primitive restart enable
...
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/10340 >
2021-05-06 20:58:59 +00:00
Samuel Pitoiset
f2933e9872
radv: implement dynamic depth bias enable
...
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/10340 >
2021-05-06 20:58:58 +00:00
Samuel Pitoiset
44e7bcf942
radv: declare new dynamic states for VK_EXT_extended_dynamic_state2
...
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/10340 >
2021-05-06 20:58:58 +00:00
Samuel Pitoiset
c4a639238e
radv: declare VK_EXT_extended_dynamic_state2 but leave it disabled
...
To declare new prototypes.
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/10340 >
2021-05-06 20:58:58 +00:00
Emma Anholt
ae0c4e987e
ci/freedreno: Add another daily dose of a530 flakes.
...
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10660 >
2021-05-06 19:03:23 +00:00
Alyssa Rosenzweig
1378c67bcf
panfrost/blend: Inline blend constants
...
If we're going to key them in NIR, we might as well get the benefit of
constant folding them too.
Signed-off-by: Alyssa Rosenzweig <alyssa@collabora.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10652 >
2021-05-06 16:40:50 +00:00
Alyssa Rosenzweig
ba39367b96
pan/mdg: Enable nir_opt_{move, sink}
...
I felt bad about the last patch regressing Midgard perf, so here's some
moar Midgard perf for you ^^
total instructions in shared programs: 97089 -> 97036 (-0.05%)
instructions in affected programs: 5230 -> 5177 (-1.01%)
helped: 53
HURT: 31
helped stats (abs) min: 1 max: 17 x̄: 4.40 x̃: 6
helped stats (rel) min: 0.61% max: 12.24% x̄: 7.74% x̃: 11.54%
HURT stats (abs) min: 1 max: 8 x̄: 5.81 x̃: 8
HURT stats (rel) min: 1.08% max: 13.79% x̄: 9.69% x̃: 11.11%
95% mean confidence interval for instructions value: -1.89 0.63
95% mean confidence interval for instructions %-change: -3.41% 0.80%
Inconclusive result (value mean confidence interval includes 0).
total bundles in shared programs: 45612 -> 45507 (-0.23%)
bundles in affected programs: 17331 -> 17226 (-0.61%)
helped: 139
HURT: 166
helped stats (abs) min: 1 max: 21 x̄: 3.76 x̃: 2
helped stats (rel) min: 0.85% max: 18.37% x̄: 6.38% x̃: 4.55%
HURT stats (abs) min: 1 max: 10 x̄: 2.51 x̃: 1
HURT stats (rel) min: 0.79% max: 31.25% x̄: 7.54% x̃: 4.55%
95% mean confidence interval for bundles value: -0.90 0.21
95% mean confidence interval for bundles %-change: 0.05% 2.34%
Inconclusive result (value mean confidence interval includes 0).
total quadwords in shared programs: 77275 -> 76952 (-0.42%)
quadwords in affected programs: 32314 -> 31991 (-1.00%)
helped: 142
HURT: 179
helped stats (abs) min: 1 max: 28 x̄: 4.38 x̃: 2
helped stats (rel) min: 0.34% max: 13.79% x̄: 4.29% x̃: 2.78%
HURT stats (abs) min: 1 max: 6 x̄: 1.67 x̃: 2
HURT stats (rel) min: 0.44% max: 16.67% x̄: 2.93% x̃: 2.63%
95% mean confidence interval for quadwords value: -1.56 -0.45
95% mean confidence interval for quadwords %-change: -0.78% 0.25%
Inconclusive result (%-change mean confidence interval includes 0).
total registers in shared programs: 7081 -> 6771 (-4.38%)
registers in affected programs: 2217 -> 1907 (-13.98%)
helped: 193
HURT: 75
helped stats (abs) min: 1 max: 6 x̄: 2.04 x̃: 1
helped stats (rel) min: 6.25% max: 62.50% x̄: 24.32% x̃: 20.00%
HURT stats (abs) min: 1 max: 3 x̄: 1.11 x̃: 1
HURT stats (rel) min: 7.14% max: 50.00% x̄: 17.17% x̃: 14.29%
95% mean confidence interval for registers value: -1.37 -0.94
95% mean confidence interval for registers %-change: -15.53% -9.89%
Registers are helped.
total threads in shared programs: 5036 -> 5152 (2.30%)
threads in affected programs: 185 -> 301 (62.70%)
helped: 93
HURT: 19
helped stats (abs) min: 1 max: 2 x̄: 1.49 x̃: 1
helped stats (rel) min: 100.00% max: 100.00% x̄: 100.00% x̃: 100.00%
HURT stats (abs) min: 1 max: 2 x̄: 1.21 x̃: 1
HURT stats (rel) min: 50.00% max: 50.00% x̄: 50.00% x̃: 50.00%
95% mean confidence interval for threads value: 0.82 1.25
95% mean confidence interval for threads %-change: 63.96% 85.14%
Threads are helped.
total loops in shared programs: 19 -> 19 (0.00%)
loops in affected programs: 0 -> 0
helped: 0
HURT: 0
total spills in shared programs: 2 -> 0
spills in affected programs: 2 -> 0
helped: 1
HURT: 0
total fills in shared programs: 15 -> 0
fills in affected programs: 15 -> 0
helped: 1
HURT: 0
Signed-off-by: Alyssa Rosenzweig <alyssa@rosenzweig.io >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10652 >
2021-05-06 16:40:50 +00:00
Alyssa Rosenzweig
ad6e53da5c
pan/mdg: Remove midgard_opt_copy_prop_reg
...
This is known broken code, and the fix is highly nontrivial. It isn't
doing terribly much for perf, so just rip off the band-aid. Prevents a
dEQP regression, and likely fixes bugs in real apps too.
total instructions in shared programs: 96640 -> 97089 (0.46%)
instructions in affected programs: 27831 -> 28280 (1.61%)
helped: 33
HURT: 301
helped stats (abs) min: 1 max: 6 x̄: 3.64 x̃: 5
helped stats (rel) min: 1.96% max: 10.00% x̄: 6.48% x̃: 7.94%
HURT stats (abs) min: 1 max: 18 x̄: 1.89 x̃: 1
HURT stats (rel) min: 0.46% max: 15.00% x̄: 3.17% x̃: 2.38%
95% mean confidence interval for instructions value: 1.09 1.59
95% mean confidence interval for instructions %-change: 1.80% 2.63%
Instructions are HURT.
total bundles in shared programs: 45615 -> 45612 (<.01%)
bundles in affected programs: 11257 -> 11254 (-0.03%)
helped: 121
HURT: 146
helped stats (abs) min: 1 max: 7 x̄: 2.34 x̃: 1
helped stats (rel) min: 1.22% max: 23.33% x̄: 7.85% x̃: 5.26%
HURT stats (abs) min: 1 max: 17 x̄: 1.92 x̃: 2
HURT stats (rel) min: 0.42% max: 25.00% x̄: 5.17% x̃: 3.85%
95% mean confidence interval for bundles value: -0.34 0.31
95% mean confidence interval for bundles %-change: -1.69% 0.23%
Inconclusive result (value mean confidence interval includes 0).
total quadwords in shared programs: 76662 -> 77275 (0.80%)
quadwords in affected programs: 20148 -> 20761 (3.04%)
helped: 28
HURT: 275
helped stats (abs) min: 1 max: 4 x̄: 1.54 x̃: 1
helped stats (rel) min: 0.43% max: 25.00% x̄: 4.89% x̃: 2.50%
HURT stats (abs) min: 1 max: 12 x̄: 2.39 x̃: 2
HURT stats (rel) min: 0.51% max: 28.57% x̄: 5.18% x̃: 4.26%
95% mean confidence interval for quadwords value: 1.80 2.25
95% mean confidence interval for quadwords %-change: 3.64% 4.86%
Quadwords are HURT.
total registers in shared programs: 7078 -> 7081 (0.04%)
registers in affected programs: 1028 -> 1031 (0.29%)
helped: 62
HURT: 70
helped stats (abs) min: 1 max: 2 x̄: 1.11 x̃: 1
helped stats (rel) min: 8.33% max: 50.00% x̄: 15.03% x̃: 12.50%
HURT stats (abs) min: 1 max: 2 x̄: 1.03 x̃: 1
HURT stats (rel) min: 8.33% max: 66.67% x̄: 20.13% x̃: 11.25%
95% mean confidence interval for registers value: -0.17 0.21
95% mean confidence interval for registers %-change: -0.14% 7.38%
Inconclusive result (value mean confidence interval includes 0).
total threads in shared programs: 5032 -> 5036 (0.08%)
threads in affected programs: 31 -> 35 (12.90%)
helped: 12
HURT: 6
helped stats (abs) min: 1 max: 2 x̄: 1.08 x̃: 1
helped stats (rel) min: 100.00% max: 100.00% x̄: 100.00% x̃: 100.00%
HURT stats (abs) min: 1 max: 2 x̄: 1.50 x̃: 1
HURT stats (rel) min: 50.00% max: 50.00% x̄: 50.00% x̃: 50.00%
95% mean confidence interval for threads value: -0.43 0.87
95% mean confidence interval for threads %-change: 13.82% 86.18%
Inconclusive result (value mean confidence interval includes 0).
total loops in shared programs: 19 -> 19 (0.00%)
loops in affected programs: 0 -> 0
helped: 0
HURT: 0
total spills in shared programs: 0 -> 2
spills in affected programs: 0 -> 2
helped: 0
HURT: 1
total fills in shared programs: 0 -> 15
fills in affected programs: 0 -> 15
helped: 0
HURT: 1
Signed-off-by: Alyssa Rosenzweig <alyssa@rosenzweig.io >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10652 >
2021-05-06 16:40:50 +00:00
Alyssa Rosenzweig
4d9c0a32e7
pan/mdg: Use _output_ type for outmod printing
...
Fixes incorrect outmods printed for conversions.
Signed-off-by: Alyssa Rosenzweig <alyssa@rosenzweig.io >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10652 >
2021-05-06 16:40:50 +00:00
Danylo Piliaiev
b60c46b2b2
docs: mark off VK_KHR_vulkan_memory_model for turnip
...
Signed-off-by: Danylo Piliaiev <dpiliaiev@igalia.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10669 >
2021-05-06 16:15:29 +00:00
Mike Blumenkrantz
4dc17b898b
lavapipe: don't access pipeline blend state when it should be ignored
...
Reviewed-by: Dave Airlie <airlied@redhat.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10625 >
2021-05-06 14:59:32 +00:00
Mike Blumenkrantz
636a3903be
lavapipe: don't access pipeline dsa state when it should be ignored
...
Reviewed-by: Dave Airlie <airlied@redhat.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10625 >
2021-05-06 14:59:32 +00:00
Mike Blumenkrantz
6bacd2a325
lavapipe: don't access pipeline viewport state when it should be ignored
...
Reviewed-by: Dave Airlie <airlied@redhat.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10625 >
2021-05-06 14:59:32 +00:00
Mike Blumenkrantz
11261d2189
lavapipe: ignore tess pipeline info if no tess shaders in pipeline
...
Reviewed-by: Dave Airlie <airlied@redhat.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10625 >
2021-05-06 14:59:32 +00:00
Mike Blumenkrantz
4d60a646b0
lavapipe: don't unnecessarily flag dsa states for updating
...
these force a new dsa state to be created and bound, which isn't necessary
if the same value is being reset
Reviewed-by: Dave Airlie <airlied@redhat.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10625 >
2021-05-06 14:59:32 +00:00
Mike Blumenkrantz
2b1711c8fd
lavapipe: zero out the blend state info and flag for updating on null blend state
...
this still needs to be updated if there's no pipeline info available
Reviewed-by: Dave Airlie <airlied@redhat.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10625 >
2021-05-06 14:59:32 +00:00
Mike Blumenkrantz
63df2f736d
lavapipe: zero out the dsa state info and flag for updating on null dsa state
...
this still needs to be updated if there's no pipeline info available
Reviewed-by: Dave Airlie <airlied@redhat.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10625 >
2021-05-06 14:59:32 +00:00
Mike Blumenkrantz
788121158a
lavapipe: update more states on null multisample pipeline info
...
these all need to be unset to ensure expected functionality
Reviewed-by: Dave Airlie <airlied@redhat.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10625 >
2021-05-06 14:59:31 +00:00
Mike Blumenkrantz
7a955d1501
lavapipe: flag renderpasses as having color/zs attachments
...
it's useful to track this info for reuse
Reviewed-by: Dave Airlie <airlied@redhat.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10625 >
2021-05-06 14:59:31 +00:00
Mike Blumenkrantz
49f93a4c5e
lavapipe: set events to the unsignalled state on creation
...
this is otherwise uninitialized and not compliant with spec
Reviewed-by: Dave Airlie <airlied@redhat.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10625 >
2021-05-06 14:59:31 +00:00
Mike Blumenkrantz
e3e4ff0b84
lavapipe: do not read sampler descriptor info during update if layout has immutables
...
this is illegal
Reviewed-by: Dave Airlie <airlied@redhat.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10625 >
2021-05-06 14:59:31 +00:00
Mike Blumenkrantz
4b28ed0d7b
lavapipe: handle buffer sizes better in CmdBindTransformFeedbackBuffersEXT
...
according to spec, the pSizes array member is only used if the array is non-null
and the value is not VK_WHOLE_SIZE, otherwise this value is calculated based
on the buffer size - the offset
Reviewed-by: Dave Airlie <airlied@redhat.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10625 >
2021-05-06 14:59:31 +00:00
Icecream95
dbdd4bd9e9
pan/bi: Add two tuples to a clause when needed with NOSCHED
...
Fixes SuperTuxKart with BIFROST_MESA_DEBUG=nosched.
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10661 >
2021-05-06 14:45:13 +00:00
Icecream95
e241ca6e9c
panfrost: Always write reloaded tiles when making CRC data valid
...
If CRC data is currently invalid and the current batch will make it
valid, write even clean tiles to make sure CRC data is updated.
Fixes: 8ba2f9f698 ("panfrost: Create a blitter library to replace the existing preload helpers")
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10566 >
2021-05-06 13:27:46 +00:00
Icecream95
1c58614cee
panfrost: Make pan_select_crc_rt a non-static function
...
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10566 >
2021-05-06 13:27:46 +00:00
Mike Blumenkrantz
37545418cd
nir: add nir_isub_imm
...
Reviewed-by: Alyssa Rosenzweig <alyssa.rosenzweig@collabora.com >
Reviewed-by: Caio Marcelo de Oliveira Filho <caio.oliveira@intel.com >
Reviewed-by: Erik Faye-Lund <erik.faye-lund@collabora.com >
Reviewed-by: Jason Ekstrand <jason@jlekstrand.net >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10654 >
2021-05-06 13:01:03 +00:00
Mike Blumenkrantz
6db24986ca
gallium/inlines: remove atomic set from pipe_reference_init()
...
when an object is initialized with this, it should not be visible to any
other threads or contexts, so there should be no need to use an atomic set here
at the time of this commit, there are only two callers in the tree which pass
values != 1:
* zink uses a calculated number for framebuffer refcount on init (this is fine)
* aux/pb passes 0 on init (this is fine)
Reviewed-by: Marek Olšák <marek.olsak@amd.com >
Reviewed-by: Kenneth Graunke <kenneth@whitecape.org >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10650 >
2021-05-06 12:36:24 +00:00
Boris Brezillon
6cac9c748e
Revert "gallium/util: Fix depth/stencil blit shaders"
...
This reverts commit 7ca72f1726 .
Unlike what's stated in this commit, the depth or stencil components
have to be replicated on all channels, as specified in the
"Texture Sampling and Texture Formats" section of the TGSI doc
(docs/gallium/tgsi.rst).
Reviewed-by: Erik Faye-Lund <erik.faye-lund@collabora.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10649 >
2021-05-06 12:09:38 +00:00
Mike Blumenkrantz
567bdf2e8f
zink: clamp zs samplers to XXXX swizzle for all non-zero/one swizzles
...
Reviewed-by: Erik Faye-Lund <erik.faye-lund@collabora.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10649 >
2021-05-06 12:09:38 +00:00
Erik Faye-Lund
77f3dd85a2
zink: do not ask glsl-compiler to unroll
...
We don't really need loops unrolled, so let's just disable this. This is
generally recommended for NIR drivers, but we can do even better; not
even unroll in NIR. And since we don't set
nir_shader_compiler_options::max_unroll_iterations, we're already there.
Reviewed-By: Mike Blumenkrantz <michael.blumenkrantz@gmail.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10487 >
2021-05-06 11:17:29 +00:00
Erik Faye-Lund
c18ff60087
lavapipe: emit correct textures_used for texture-arrays
...
When we lower a texture-lookup with a dynamic index, we need to mark the
entire array as used, because we don't know better.
Reviewed-by: Dave Airlie <airlied@redhat.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10487 >
2021-05-06 11:17:29 +00:00
Iago Toral Quiroga
ca9e0871fb
v3d: enable NIR loop unrolling
...
The GL driver was getting loop unrolling from the GLSL compiler frontend,
but NIR unrolling is more sophisticated, so prefer that.
The only caveat is that loop unrolling is implemented in the Mesa state
tracker, so our backend won't have a chance to undo the optimization if
it causes us to lower thread count or spill, so we choose to be a bit more
conservative with the configuration than what we were doing with GLSL.
Shader-db results follow. Increase in instruction counts is expected due
to additional unrolling. We lose threads in very few shaders, but we
make up for this with the additional unrolling and reduced spilling. We
also managed to get 3 more shaders to compile successfully.
total instructions in shared programs: 13416427 -> 13461431 (0.34%)
instructions in affected programs: 96936 -> 141940 (46.43%)
helped: 58
HURT: 216
Instructions are HURT.
total threads in shared programs: 410626 -> 410598 (<.01%)
threads in affected programs: 56 -> 28 (-50.00%)
helped: 0
HURT: 14
Threads are HURT.
total loops in shared programs: 2121 -> 1708 (-19.47%)
loops in affected programs: 468 -> 55 (-88.25%)
helped: 446
HURT: 47
Loops are helped.
total uniforms in shared programs: 3676567 -> 3691185 (0.40%)
uniforms in affected programs: 25304 -> 39922 (57.77%)
helped: 23
HURT: 199
Uniforms are HURT.
total spills in shared programs: 5902 -> 5727 (-2.97%)
spills in affected programs: 285 -> 110 (-61.40%)
helped: 19
HURT: 0
total fills in shared programs: 13308 -> 13121 (-1.41%)
fills in affected programs: 301 -> 114 (-62.13%)
helped: 19
HURT: 0
total sfu-stalls in shared programs: 31860 -> 32856 (3.13%)
sfu-stalls in affected programs: 1692 -> 2688 (58.87%)
helped: 25
HURT: 196
Sfu-stalls are HURT.
total inst-and-stalls in shared programs: 13448287 -> 13494287 (0.34%)
inst-and-stalls in affected programs: 98404 -> 144404 (46.75%)
helped: 57
HURT: 217
Inst-and-stalls are HURT.
total nops in shared programs: 329276 -> 329551 (0.08%)
nops in affected programs: 2189 -> 2464 (12.56%)
helped: 58
HURT: 181
Nops are HURT.
LOST: 0
GAINED: 3
Reviewed-by: Alejandro Piñeiro <apinheiro@igalia.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10647 >
2021-05-06 12:27:42 +02:00
Iago Toral Quiroga
c11e479852
broadcom/compiler: specify maximum thread count in compile strategies
...
Once we have exhausted compile strategies at 4 threads and we start
enabling lower thread counts, there is no point in starting compiles
with 4 threads for them, we know these will fail, so let's start at
2 in these cases.
This also has another nice implication: if the driver compiles at 4
threads and fails to register allocate, we were allowing it to try
with 2 threads, but this would only retry the register allocation
process and would not really recompile the shader with 2 threads. This
is not optimal, because at 2 threads we have more TMU fifo space for
each thread and we can do more TMU pipelining, so we were missing that
opportunity.
This improves performance in Sponza by ~1.5% and also seems to help
UE4 slightly.
Reviewed-by: Alejandro Piñeiro <apinheiro@igalia.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10647 >
2021-05-06 12:27:06 +02:00
Iago Toral Quiroga
d19ce36ff2
broadcom/compiler: refactor compile strategies
...
Until now, if we can't compile at 4 threads we would lower thread count
with optimizations disabled, however, lowering thread count doubles the
amount of registers available per thread, so that alone is already a big
relief for register pressure so it makes sense to enable optimizations
when we do that, and progressively disable them until we enable spilling
as a last resort.
This can slightly improve performance for some applications. Sponza,
for example, gets a ~1.5% boost. I see several UE4 shaders that also get
compiled to better code at 2 threads with this, but it is more difficult
to assess how much this improves performance in practice due to the large
variance in frame times that we observe with UE4 demos.
Also, if a compiler strategy disables an optimization that did not make
any progress in the previous compile attempt, we would end up re-compiling
the exact same shader code and failing again. This, patch keeps track of
which strategies won't make progress and skips them in that case to save
some CPU time during shader compiles.
Care should be taken to ensure that we try to compile with the default
NIR scheduler at minimum thread count at least once though, so a specific
strategy for this is added, to prevent the scenario where no optimizations
are used and we skip directly to the fallback scheduler if the default
strategy fails at 4 threads.
Similarly, we now also explicitly specify which strategies are allowed to do
TMU spills and make sure we take this into account when deciding to skip
strategies. This prevents the case where no optimizations are used in a
shader and we skip directly to the fallback scheduler after failing
compilation at 2 threads with the default NIR scheduler but without trying
to spill first.
Reviewed-by: Alejandro Piñeiro <apinheiro@igalia.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10647 >
2021-05-06 12:27:06 +02:00
Iago Toral Quiroga
296fe4daa6
broadcom/compiler: add a compiler strategy to disable loop unrolling
...
Loop unrolling can increase register pressure significantly, leading to
lower thread counts and spilling.
Reviewed-by: Alejandro Piñeiro <apinheiro@igalia.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10647 >
2021-05-06 12:27:06 +02:00
Iago Toral Quiroga
4742300e6b
v3d: move NIR compiler options to GL driver
...
The Vulkan driver was already creating and using its own set of options, so
the ones defined in the compiler are only used with GL, which is confusing.
Move them to the GL driver.
Reviewed-by: Alejandro Piñeiro <apinheiro@igalia.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10647 >
2021-05-06 12:27:06 +02:00
Iago Toral Quiroga
db3fa1cc8c
v3dv: setup loop unrolling
...
We set the maximum at 16 iterations (the GL compiler chooses 32
iterations for the GLSL front-end loop unrolling pass) because we
have observed a bunch of shaders from Sascha Willems that spill
significantly with 32, leading to massive performance degradation,
while 16 avoids spilling and doesn't seem to cause visible
performance degradation compared to cases that unroll 32 without
spilling.
Reviewed-by: Alejandro Piñeiro <apinheiro@igalia.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10647 >
2021-05-06 12:25:22 +02:00
Iago Toral Quiroga
ec72b876fe
broadcom/compiler: add a loop unrolling pass
...
Right now this is useful for Vulkan onnly, because GL gets loop
unrolling from the GLSL compiler and/or mesa state tracker
NIR front-ends.
Reviewed-by: Alejandro Piñeiro <apinheiro@igalia.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10647 >
2021-05-06 12:24:29 +02:00
Tomeu Vizoso
43dd023bd1
Revert "CI: Disable Panfrost and radeonsi"
...
Lab is up and running again.
This reverts commit de1a20f4be .
Signed-off-by: Tomeu Vizoso <tomeu.vizoso@collabora.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10663 >
2021-05-06 10:32:35 +02:00
Samuel Pitoiset
33ede796d5
radv: fix missing ITERATE_256 for D/S MSAA images that are TC-compat HTILE
...
To make them readable by shaders, only needed on GFX10+.
This also fixes corruption with Control and MSAA.
Cc: 21.1 mesa-stable
Signed-off-by: Samuel Pitoiset <samuel.pitoiset@gmail.com >
Reviewed-by: Bas Nieuwenhuizen <bas@basnieuwenhuizen.nl >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10610 >
2021-05-06 06:30:05 +00:00
Tapani Pälli
ba11f673a2
i965: support only color formats with memory objects
...
There are issues with depth support and lack of support for
combined depth+stencil, let's support only color formats for now.
Closes: https://gitlab.freedesktop.org/mesa/mesa/-/issues/4712
Fixes: f73aeca0ce ("i965: Initial implementation for EXT_memory_object_*")
Signed-off-by: Tapani Pälli <tapani.palli@intel.com >
Reviewed-by: Rohan Garg <rohan.garg@collabora.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10646 >
2021-05-06 07:24:43 +03:00
Emma Anholt
0cd63e891d
turnip: Move the extension tables to tu_device.c
...
Following intel's lead in 27d49670 . In the dEQP-VK.info.* tests, this
bumps apiVersion from 1.1.128 to 1.1.177.
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10635 >
2021-05-06 00:14:12 +00:00
Emma Anholt
c5438450ad
turnip: Switch to the shared vulkan ICD generator.
...
One less python script to maintain.
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10635 >
2021-05-06 00:14:12 +00:00
Eric Anholt
3424318ec3
gallium/tgsi_exec: Simplify bounds checks on the const file.
...
We were doing two < 0 checks, when we can just treat the value as unsigned
and check against our unsigned size limit. Cuts 2k of text from the
various inlined copies of this function.
Reviewed-by: Adam Jackson <ajax@redhat.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10605 >
2021-05-05 23:55:17 +00:00
Eric Anholt
e500e6cd25
tgsi_exec: Mark the store file default case as unreachable.
...
It isn't reached, and shouldn't be, and it's not like returning NULL
(instead of the &null case for TGSI_FILE_NULL) will do anything good.
Shaves another tiny bit of dead code off of release builds.
Reviewed-by: Adam Jackson <ajax@redhat.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10605 >
2021-05-05 23:55:17 +00:00
Eric Anholt
367729a732
tgsi_exec: Drop unused destination dimension support.
...
As you can see, nothing used the index2d value we computed. Turns out
this does remove some unused code from release builds.
Reviewed-by: Adam Jackson <ajax@redhat.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10605 >
2021-05-05 23:55:17 +00:00
Eric Anholt
31369987ff
gallium/tgsi_exec: Drop the unused dst_datatypes from dest stores.
...
It was just for the disabled check_inf_or_nan debugging, and if you want
to do that then you should do it with an assert at the end of
exec_instruction using tgsi_opcode_infer_type().
Despite the fact that this operand was dead, it actually reduces generated
code in release builds.
Reviewed-by: Adam Jackson <ajax@redhat.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10605 >
2021-05-05 23:55:17 +00:00
Erik Faye-Lund
26b28bf0a6
zink: remove incorrect border-swizzle assumption
...
According to the Khronos issue[1], it seems like RADV and NVIDIA is in
the wrong, so let's turn the logic around here.
This makes us do the right thing for Lavapipe, and we should probablt
remove RADV from this list once !9731 lands.
[1]: https://github.com/KhronosGroup/Vulkan-Docs/issues/1421
Fixes: cdb9a4775b ("zink: set PIPE_CAP_TEXTURE_BORDER_COLOR_QUIRK")
Reviewed-By: Mike Blumenkrantz <michael.blumenkrantz@gmail.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10321 >
2021-05-05 23:44:13 +00:00
Jesse Natalie
d8bac1002c
vtn: Use relaxed 24bit opcodes for CL 24bit math
...
Reviewed-by: Jason Ekstrand <jason@jlekstrand.net >
Reviewed-by: Karol Herbst <kherbst@redhat.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10549 >
2021-05-05 22:06:42 +00:00
Jesse Natalie
d7ca0319d7
nir: Add relaxed 24bit opcodes
...
These are equivalent to the 32bit opcodes if there are no more efficient
24bit opcodes available, but inputs are guaranteed to already be 24bit,
so the 24bit opcodes can be used instead if they exist and are efficient.
Reviewed-by: Jason Ekstrand <jason@jlekstrand.net >
Reviewed-by: Karol Herbst <kherbst@redhat.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10549 >
2021-05-05 22:06:42 +00:00
Jesse Natalie
9410eb7e39
llvmpipe: Fix optimization loop to actually loop
...
Reviewed-by: Dave Airlie <airlied@redhat.com >
Acked-by: Erik Faye-Lund <erik.faye-lund@collabora.com >
Acked-by: Jason Ekstrand <jason@jlekstrand.net >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10549 >
2021-05-05 22:06:42 +00:00
Eric Anholt
cc5df4398a
freedreno/a5xx: Fix up border color pointers.
...
We were forgetting to increment in the loop, but also it looks from blob
dumps on Pixel 2 like all the pointers it emitted were shifted up by 3
compared to our xml, and that's the same shift that a6xx uses for its
pointers. None of the tests seem to use more than one
border-color-requiring texture, so it's hard to tell.
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/9904 >
2021-05-05 21:28:03 +00:00
Daniel Stone
de1a20f4be
CI: Disable Panfrost and radeonsi
...
The Cambridge office is having connection difficulty; disable the jobs
until it comes back.
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10658 >
2021-05-05 22:10:16 +01:00
Rob Clark
b447db41fc
freedreno/tools: Fix async flush vs fdperf/computerator
...
They need to wait on the ready fence to ensure the submit has been
flushed to the kernel.
Signed-off-by: Rob Clark <robdclark@chromium.org >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10626 >
2021-05-05 20:32:31 +00:00
Jordan Justen
a1c56b8091
mesa: NOTE! Default branch is now main
...
To update your local repository to use the new default branch, these
commands may help:
$ git fetch origin
$ git checkout master
$ git branch -m main
$ git branch --set-upstream-to=origin/main
$ git remote set-head origin --auto
Signed-off-by: Jordan Justen <jordan.l.justen@intel.com >
Reviewed-by: Eric Engestrom <eric@engestrom.ch >
2021-05-05 12:21:02 -07:00
Jordan Justen
57897b4095
docs: Rename master branch to main
...
Signed-off-by: Jordan Justen <jordan.l.justen@intel.com >
Reviewed-by: Eric Engestrom <eric@engestrom.ch >
2021-05-05 12:21:00 -07:00
Jordan Justen
2ec9cd3104
docs/releasing.rst: Rename master branch to main
...
Signed-off-by: Jordan Justen <jordan.l.justen@intel.com >
Reviewed-by: Eric Engestrom <eric@engestrom.ch >
2021-05-05 12:20:11 -07:00
Jordan Justen
26a1ddd202
issue_templates/Bug Report: Rename master branch to main
...
Signed-off-by: Jordan Justen <jordan.l.justen@intel.com >
Reviewed-by: Rhys Perry <pendingchaos02@gmail.com >
Reviewed-by: Eric Engestrom <eric@engestrom.ch >
2021-05-05 12:20:11 -07:00
Jordan Justen
3356488c8a
.gitlab-ci.yml: Use main branch for gitlab ci
...
Reworks:
* Fix mesa/mesamaster typo to mesa/mesa main (anholt)
* Use $CI_DEFAULT_BRANCH (eric_engestrom)
Signed-off-by: Jordan Justen <jordan.l.justen@intel.com >
Reviewed-by: Eric Anholt <eric@anholt.net >
Reviewed-by: Eric Engestrom <eric@engestrom.ch >
2021-05-05 12:20:11 -07:00
Jordan Justen
6e86d1f503
bin/pick: Rename master branch to main
...
Signed-off-by: Jordan Justen <jordan.l.justen@intel.com >
Reviewed-by: Dylan Baker <dylan@pnwbakers.com >
Reviewed-by: Eric Engestrom <eric@engestrom.ch >
2021-05-05 12:20:11 -07:00
Jordan Justen
82f73775ef
commit_in_branch_test.py: Rename branch master to main
...
Signed-off-by: Jordan Justen <jordan.l.justen@intel.com >
Reviewed-by: Dylan Baker <dylan@pnwbakers.com >
Reviewed-by: Eric Engestrom <eric@engestrom.ch >
2021-05-05 12:20:07 -07:00
Erik Faye-Lund
44a4e34d52
docs: remove doxygen support
...
It seems building the doxygen docs has bit-rotted over time, and now
generates a set of empty modules, apart from some basic descriptions.
Since Mesa is mostly implementing externally documented APIs, I don't
think it makes a whole lot of sense trying to fix this, and I think the
presence of these files might confuse users who try them out.
So let's just get rid of this.
Reviewed-by: Jose Fonseca <jfonseca@vmware.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10611 >
2021-05-05 18:53:08 +00:00
Emma Anholt
e20897a8aa
ci/lavapipe: Add fractional NIR stress test job.
...
I think between the disk cache unit tests and testing that we can really
serialize/deserialize NIR, this covers what I cared about for testing disk
caching.
Closes : #3597
Reviewed-by: Adam Jackson <ajax@redhat.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10629 >
2021-05-05 17:36:00 +00:00
Emma Anholt
f2cb18abd9
ci/llvmpipe: Add testing of gles3/31/gl.
...
llvmpipe is a pretty important driver, we should be fully testing it.
Also, enable some options to stress test some NIR internals.
Reviewed-by: Adam Jackson <ajax@redhat.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10629 >
2021-05-05 17:36:00 +00:00
Eric Anholt
7bcda21441
turnip: Demote API version to 1.1.
...
We don't support major 1.2 required extensions like timeline semaphores.
Fixes many complaints in the dEQP-VK.info.vulkan1p2.* group.
We were originally bumped to 1.2 in 75755e0eba ("turnip: Pretend to
support Vulkan 1.2") but hopefully that build issue has been fixed in the
entrypoint reworks since then.
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10471 >
2021-05-05 17:09:09 +00:00
Yiwei Zhang
0c94b3f55b
venus: populate VK_ERROR_OUT_OF_HOST_MEMORY if applied
...
Fix dEQP-VK.wsi.android.swapchain.simulate_oom.* failures.
Signed-off-by: Yiwei Zhang <zzyiwei@chromium.org >
Reviewed-by: Chia-I Wu <olvaffe@gmail.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10639 >
2021-05-05 16:57:42 +00:00
Erik Faye-Lund
13667b157a
freedreno/a5xx: Remove ppgtt hack
...
This should no longer be needed after !7773 , which fixes the issue that
lead to the crash. Sorry for not fixing the issue earlier ;)
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10645 >
2021-05-05 14:25:25 +00:00
Mike Blumenkrantz
ace28308bb
aux/cso_cache: add handling for save/restore of compute states
...
just shader and samplers for now
Reviewed-by: Marek Olšák <marek.olsak@amd.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10616 >
2021-05-05 13:43:34 +00:00
Boris Brezillon
f08c14138a
panfrost: Fix format definitions to match gallium expectations
...
Gallium wants the depth or stencil component replicated on all .XYZW.
That's easily done on pre-v7 since we can forge all the swizzles we
want, but Bifrost v7 only supports a few combinations, so we have to
combine the user swizzle with our own 'replicate' swizzle to make it
work. Note that v7 has a trick to make border color work when the GRBA
order is chosen: they apply the red border color to the green component.
Signed-off-by: Boris Brezillon <boris.brezillon@collabora.com >
Reviewed-by: Alyssa Rosenzweig <alyssa@collabora.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10612 >
2021-05-05 13:23:22 +00:00
Mauro Rossi
9235c2cd8f
android: pan/bi: add bi_opt_constant_fold.c to Makefile.sources
...
Fixes the following building error:
FAILED: out/target/product/x86_64/obj/SHARED_LIBRARIES/gallium_dri_intermediates/LINKED/gallium_dri.so
...
ld.lld: error: undefined symbol: bi_opt_constant_fold
>>> referenced by bifrost_compile.c:3105 (external/mesa/src/panfrost/bifrost/bifrost_compile.c:3105)
Fixes: 1cb11969be ("pan/bi: Add simple constant folding pass")
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10603 >
2021-05-05 13:02:29 +00:00
Jason Ekstrand
b13d0eea12
anv: Allow storage on all formats that support typed writes
...
In particular, this gives us B8G8R8A8_UNORM storage support which is
useful for writing WSI images from compute shaders. These formats can
only be accessed in a spec-compliant way by decorating the variable
NonReadable in the SPIR-V (writeonly in GLSL). If the client doesn't so
decorate the variable, it'll get the null surface state where reads
return 0 and writes are ignored.
Tested-by: Simon Ser <contact@emersion.fr >
Reviewed-by: Lionel Landwerlin <lionel.g.landwerlin@intel.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10624 >
2021-05-05 12:20:09 +00:00
Lionel Landwerlin
df0580312a
isl: document format fields
...
Signed-off-by: Lionel Landwerlin <lionel.g.landwerlin@intel.com >
Reviewed-by: Jason Ekstrand <jason@jlekstrand.net >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10624 >
2021-05-05 12:20:09 +00:00
Jason Ekstrand
9301b637cf
anv: Check offset instead of alloc_size for freeing surface states
...
Reviewed-by: Lionel Landwerlin <lionel.g.landwerlin@intel.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10624 >
2021-05-05 12:20:09 +00:00
Erik Faye-Lund
a2d091694f
gallium/u_vbuf: avoid dereferencing NULL pointer
...
When I last time fixed this, I missed that continuing here would make us
leak pointers in the translate state, which is what made this avoid a
crash in the first place.
That's not great, we need to set *some* pointer in this case. The
obvious option would be NULL, but that means that the translate-code
also needs to support NULL-pointers here.
Instead, let's point to a small, static buffer that contains enough
zero-data for the largest possible vertex attribute. This avoids having
to add more NULL-checks.
Fixes: a8e8204b18 ("gallium/u_vbuf: support NULL-resources")
Reviewed-by: Marek Olšák <marek.olsak@amd.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/7773 >
2021-05-05 11:16:42 +00:00
Bas Nieuwenhuizen
c05e48308b
radeon/vcn: Use the correct pitch for chroma surface.
...
The pitch of the chroma plane isn't necessarily half that of the
luma plane, as tiling (and presumably even linear) swizzle modes
apply some alignment.
Fixes: 35e25ea1d0 ("ac/surface: allow non-DCC modifiers for YUV on GFX9+")
Reviewed-by: James Zhu <James.Zhu@amd.com >
Reviewed-by: Leo Liu <leo.liu@amd.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10638 >
2021-05-05 11:05:19 +00:00
Danylo Piliaiev
d8ab0ec8e4
turnip: implement VK_KHR_vulkan_memory_model
...
No handling of Acquire/Release because at the moment scheduler
works as if any barrier is Acq+Rel.
Instead of removing scoped_barrier with scope/mode that for TCS
corresponds to a control_barrier or a memory_barrier_tcs_patch in
ir3_nir_lower_tess_ctrl - remove them in emit_intrinsic_barrier.
And do the same for memory_barrier_tcs_patch and control_barrier.
While in any case hw fence/barrier shouldn't be emitted for them,
they still affect ordering of stores, and in feature ir3 backend
may want to have that information.
Signed-off-by: Danylo Piliaiev <dpiliaiev@igalia.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/9054 >
2021-05-05 10:05:38 +00:00
Danylo Piliaiev
a898828a63
ir3: update bar/fence bits in accordance to blob
...
On a6xx blob uses .l rather differently from a5xx.
Signed-off-by: Danylo Piliaiev <dpiliaiev@igalia.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/9054 >
2021-05-05 10:05:38 +00:00
Danylo Piliaiev
cb8a00791c
ir3: memory_barrier also controls shared memory access order
...
nir_intrinsic_memory_barrier has the same semantic as memoryBarrier()
in GLSL, which is:
GLSL 4.60, 4.10. "Memory Qualifiers":
"The built-in function memoryBarrier() can be used if needed to
guarantee the completion and relative ordering of memory accesses
performed by a single shader invocation."
GLSL 4.60, 8.17. "Shader Memory Control Functions":
"The built-in functions memoryBarrier() and groupMemoryBarrier() wait
for the completion of accesses to all of the above variable types."
Fixes tests:
dEQP-VK.memory_model.message_passing.core11.u32.coherent.fence_fence.atomicwrite.device.payload_local.image.guard_nonlocal.workgroup.comp
dEQP-VK.memory_model.message_passing.core11.u32.coherent.fence_fence.atomicwrite.device.payload_nonlocal.workgroup.guard_local.image.comp
Fixes: 819a613a ("freedreno/ir3: moar better scheduler")
Signed-off-by: Danylo Piliaiev <dpiliaiev@igalia.com >
Reviewed-by: Samuel Iglesias Gonsálvez <siglesias@igalia.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/9054 >
2021-05-05 10:05:38 +00:00
Erik Faye-Lund
2736370294
docs: do not generate redirects on error
...
The build-finished event is also triggered when there's an error. I
somehow got the second argument wrong, and ended up ignoring the case.
This can lead to new exceptions being thrown due to missing files, that
ends up hiding the real problem.
Fixes: 64a4ba9e1c ("docs: add an extension to generate redirects")
Reviewed-by: Eric Engestrom <eric@engestrom.ch >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10407 >
2021-05-05 09:37:18 +00:00
Erik Faye-Lund
5a1675a030
zink: only emit ImageBuffer cap if needed
...
Reviewed-By: Mike Blumenkrantz <michael.blumenkrantz@gmail.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10371 >
2021-05-05 10:51:02 +02:00
Erik Faye-Lund
dcb9e4ddb4
zink: emit cap early
...
Reviewed-By: Mike Blumenkrantz <michael.blumenkrantz@gmail.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10371 >
2021-05-05 10:51:02 +02:00
Erik Faye-Lund
9e460570f2
zink: emit sample-shading cap early
...
Reviewed-By: Mike Blumenkrantz <michael.blumenkrantz@gmail.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10371 >
2021-05-05 10:51:02 +02:00
Erik Faye-Lund
30eca96a86
zink: remove needless shader-info from context
...
There's no longer any code reading this, so let's get rid of it. It
always rubbed me a bit the wrong way, because this repeated some
information already present in the context.
Reviewed-By: Mike Blumenkrantz <michael.blumenkrantz@gmail.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10371 >
2021-05-05 10:51:02 +02:00
Erik Faye-Lund
74f9f3937a
zink: emit cap early
...
We have enough information to emit this cap early, so let's do that.
Reviewed-By: Mike Blumenkrantz <michael.blumenkrantz@gmail.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10371 >
2021-05-05 10:51:02 +02:00
Erik Faye-Lund
c87802f658
zink: do not check for varying output for fragment shaders
...
This will make us emit these caps needlessly, possibly on implementations
not supporting the enabling features.
Reviewed-By: Mike Blumenkrantz <michael.blumenkrantz@gmail.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10371 >
2021-05-05 10:51:02 +02:00
Erik Faye-Lund
567699f048
zink: always enable fixed shader-caps
...
This is required for a bunch of stuff that can occur in any Vulkan
shader stage, not just these few. So let's always emit this cap.
Reviewed-By: Mike Blumenkrantz <michael.blumenkrantz@gmail.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10371 >
2021-05-05 10:51:00 +02:00
Dave Airlie
922f71b819
intel/decoder: add gen4/5 geometry state decode
...
Reviewed-by: Lionel Landwerlin <lionel.g.landwerlin@intel.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10642 >
2021-05-05 07:28:34 +00:00
Dave Airlie
d91d3613ad
intel/decoder: fixup batch decoder for binding tables on gen4/5
...
Reviewed-by: Lionel Landwerlin <lionel.g.landwerlin@intel.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10642 >
2021-05-05 07:28:34 +00:00
Samuel Pitoiset
08d162f0b5
radv: expose 2/3rd of total memory as VRAM and 1/3rd as GTT on APUs
...
A bunch of games complain when the VRAM size is too small. The most
compatible solution seems to return memory heaps like a dGPU.
Closes: https://gitlab.freedesktop.org/mesa/mesa/-/issues/3423
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/9774 >
2021-05-05 08:44:17 +02:00
Samuel Pitoiset
986a3243cf
radv: adjust the computation of the total usage of memory used
...
internal_usage is the memory allocated by the current process (intent)
while system_usage is the memory allocated globally (actual).
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/9774 >
2021-05-05 08:44:17 +02:00
Marek Olšák
340703e044
gallium/u_threaded: don't set resource pointers to NULL after driver calls
...
The pointers won't be used at that point. Just decrement the refcounts.
Reviewed-by: Pierre-Eric Pelloux-Prayer <pierre-eric.eric.pelloux-prayer@amd.com >
Acked-By: Mike Blumenkrantz <michael.blumenkrantz@gmail.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10606 >
2021-05-05 05:17:25 +00:00
Marek Olšák
1233c90ab4
gallium/u_threaded: rewrite slot layout to reduce wasted space
...
A lot of space was wasted due to 16-byte alignment for slots. This new
layout tries to match glthread. Highlights:
- the slot size changed to 8 bytes (was 16), so less padding
- the header size changed to 4 bytes (was 8), so some calls can use
the remaining 4 bytes in the slot for parameters
- draw merging merges up to 307 draws (was 256) due to space savings
- parameters in structures are sorted based on implicit type alignment
(uint8_t first, pointers last) to make it easier to utilize the 4 bytes
after the header and to remove holes
- some structures use smaller types for parameters than pipe_context where
it's safe (e.g. clear uses float instead of double for depth)
Reviewed-by: Pierre-Eric Pelloux-Prayer <pierre-eric.eric.pelloux-prayer@amd.com >
Acked-By: Mike Blumenkrantz <michael.blumenkrantz@gmail.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10606 >
2021-05-05 05:17:25 +00:00
Marek Olšák
9ee2b8209a
gallium/u_threaded: handle sampler views == NULL better
...
Reviewed-by: Pierre-Eric Pelloux-Prayer <pierre-eric.eric.pelloux-prayer@amd.com >
Acked-By: Mike Blumenkrantz <michael.blumenkrantz@gmail.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10606 >
2021-05-05 05:17:25 +00:00
Marek Olšák
e7a15973bb
gallium/u_threaded: move base_valid_buffer_range to transfer where it belongs
...
This saves 8 bytes per resource.
Reviewed-by: Pierre-Eric Pelloux-Prayer <pierre-eric.eric.pelloux-prayer@amd.com >
Acked-By: Mike Blumenkrantz <michael.blumenkrantz@gmail.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10606 >
2021-05-05 05:17:25 +00:00
Marek Olšák
954f59f2af
Revert "gallium/u_threaded: align batches and call slots to 16 bytes"
...
This reverts commit 3b1ce49bc1 .
It will be completely rewritten, but let's revert this first.
Reviewed-by: Pierre-Eric Pelloux-Prayer <pierre-eric.eric.pelloux-prayer@amd.com >
Acked-By: Mike Blumenkrantz <michael.blumenkrantz@gmail.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10606 >
2021-05-05 05:17:25 +00:00
Adam Jackson
20538b50c7
gallium: Reset attachments to ST_ATTACHMENT_INVALID when revalidating
...
It is *super* *confusing* to leave this initialized to zero, i.e.
ST_ATTACHMENT_FRONT_LEFT.
Reviewed-by: Marek Olšák <marek.olsak@amd.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10491 >
2021-05-05 03:23:58 +00:00
Adam Jackson
64e7248bfb
mesa: Ignore the depth buffer when computing framebuffer floatness
...
Not that Z32F is especially common, but we shouldn't consider it to
imply that the color buffers are also float, which is what floatMode
is meant to mean.
Reviewed-by: Marek Olšák <marek.olsak@amd.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10491 >
2021-05-05 03:23:58 +00:00
Adam Jackson
d7888294ac
mesa: Remove unused _mesa_{create,destroy}_visual
...
Reviewed-by: Marek Olšák <marek.olsak@amd.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10491 >
2021-05-05 03:23:58 +00:00
Samuel Pitoiset
75831d5fce
util/math: change ROUND_DOWN_TO to return a uint64_t
...
For 32-bit builds.
Signed-off-by: Samuel Pitoiset <samuel.pitoiset@gmail.com >
Reviewed-by: Adam Jackson <ajax@redhat.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10622 >
2021-05-05 03:03:45 +00:00
Dave Airlie
4d80ec8fcf
intel/genxml: fix raster op fields on gen4/5
...
These should be unsigned integers
Reviewed-by: Kenneth Graunke <kenneth@whitecape.org >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10636 >
2021-05-05 02:56:20 +00:00
Dave Airlie
e5169714ea
intel/gemxml: move blitter command to render on gen4/5
...
The blitter commands don't show up in INTEL_DEBUG=bat, but on
gen4/5 they are emitted on the render engine ring so just change
the XML to reflect that.
Reviewed-by: Kenneth Graunke <kenneth@whitecape.org >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10636 >
2021-05-05 02:56:20 +00:00
Dave Airlie
c6f34e9fda
intel/genxml: rewrite the prefilterop xml to be more consistent.
...
This uses a prefix at Ken's suggestion and aligns it across gens
Reviewed-by: Kenneth Graunke <kenneth@whitecape.org >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10636 >
2021-05-05 02:56:20 +00:00
Dave Airlie
04ed882046
intel/genxml: align gen4/5 xml for store data immediate
...
Just align with the gen6 and later xml
Reviewed-by: Kenneth Graunke <kenneth@whitecape.org >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10636 >
2021-05-05 02:56:20 +00:00
Ilia Mirkin
10abc09a04
intel: fix MI builder for pre-gen7
...
MI_LOAD_REGISTER_MEM is only available on gen7+, so avoid build errors
on earlier generations.
Signed-off-by: Ilia Mirkin <imirkin@alum.mit.edu >
Reviewed-by: Kenneth Graunke <kenneth@whitecape.org >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10636 >
2021-05-05 02:56:20 +00:00
Mike Blumenkrantz
26feb45810
zink: export PIPE_CAP_SPARSE_BUFFER_PAGE_SIZE
...
Reviewed-by: Dave Airlie <airlied@redhat.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10509 >
2021-05-05 02:46:06 +00:00
Mike Blumenkrantz
c90246b682
zink: implement sparse buffer creation/mapping
...
sparse buffers are not cpu-readable, so any mapping requires that they
use a staging buffer, either the stream uploader for writes or a manual
copy for readback
future work here should attempt to resolve two perf issues:
* sparse allocations should be allocated dynamically using a suballocator
or some other, more useful strategy
* readback shouldn't allocate a huge staging buffer
Reviewed-by: Dave Airlie <airlied@redhat.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10509 >
2021-05-05 02:46:06 +00:00
Mike Blumenkrantz
dcbdb6820f
zink: add a pipe_context::resource_commit hook
...
so many structs
Reviewed-by: Dave Airlie <airlied@redhat.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10509 >
2021-05-05 02:46:06 +00:00
Mike Blumenkrantz
49fdb57b9c
zink: use new ctx device lost checker function
...
make this handling more consistent
Reviewed-by: Dave Airlie <airlied@redhat.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10509 >
2021-05-05 02:46:06 +00:00
Mike Blumenkrantz
30be8799a5
zink: add a ctx function for handling device lost resets
...
ensure the reset function is only called once when the screen flag is set
Reviewed-by: Dave Airlie <airlied@redhat.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10509 >
2021-05-05 02:46:06 +00:00
Mike Blumenkrantz
01c62fca0a
zink: use zink_screen_handle_vkresult() for fence and timeline waiting
...
more consistent handling and some code size reduction
Reviewed-by: Dave Airlie <airlied@redhat.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10509 >
2021-05-05 02:46:06 +00:00
Mike Blumenkrantz
00bd74fb6c
zink: add a screen util function for handling VkResults
...
enforce device lost status always
Reviewed-by: Dave Airlie <airlied@redhat.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10509 >
2021-05-05 02:46:06 +00:00
Mike Blumenkrantz
480b2b6508
zink: minor refactoring of buffer map for read case
...
make this a little more flexible for the non-DONTBLOCK case
Reviewed-by: Dave Airlie <airlied@redhat.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10509 >
2021-05-05 02:46:06 +00:00
Alyssa Rosenzweig
a67347d496
pan/bi: Use nir_lower_to_bit_size
...
Last holdout of the backend algebraic pass. Delete it.
Signed-off-by: Alyssa Rosenzweig <alyssa@collabora.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10627 >
2021-05-05 02:19:04 +00:00
Alyssa Rosenzweig
2db8048aaa
pan/bi: Switch to 1-bit bools
...
In prep for FP16.
Signed-off-by: Alyssa Rosenzweig <alyssa@collabora.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10627 >
2021-05-05 02:19:04 +00:00
Alyssa Rosenzweig
f21248c3c2
pan/bi: Don't swizzle scalars
...
Pointless, already replicated.
Signed-off-by: Alyssa Rosenzweig <alyssa@collabora.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10627 >
2021-05-05 02:19:04 +00:00
Alyssa Rosenzweig
578f5d0000
pan/bi: Track scalarness of 16-bit ALU
...
Needed for optimal swizzle lowering.
Signed-off-by: Alyssa Rosenzweig <alyssa@collabora.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10627 >
2021-05-05 02:19:03 +00:00
Alyssa Rosenzweig
59afff8708
pan/bi: Handle b2i8/16
...
Missing from the algebraic rules, get it right this time.
Signed-off-by: Alyssa Rosenzweig <alyssa@collabora.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10627 >
2021-05-05 02:19:03 +00:00
Alyssa Rosenzweig
1c17a91731
pan/bi: Handle b2f ourselves
...
Signed-off-by: Alyssa Rosenzweig <alyssa@collabora.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10627 >
2021-05-05 02:19:03 +00:00
Alyssa Rosenzweig
0906d75479
pan/bi: Handle ineg
...
Signed-off-by: Alyssa Rosenzweig <alyssa@collabora.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10627 >
2021-05-05 02:19:03 +00:00
Alyssa Rosenzweig
ab56471955
pan/bi: Handle integer min/max ourselves
...
total instructions in shared programs: 158197 -> 158181 (-0.01%)
instructions in affected programs: 169 -> 153 (-9.47%)
helped: 3
HURT: 0
total nops in shared programs: 116393 -> 116397 (<.01%)
nops in affected programs: 60 -> 64 (6.67%)
helped: 0
HURT: 2
total clauses in shared programs: 28628 -> 28627 (<.01%)
clauses in affected programs: 10 -> 9 (-10.00%)
helped: 1
HURT: 0
total quadwords in shared programs: 124146 -> 124140 (<.01%)
quadwords in affected programs: 127 -> 121 (-4.72%)
helped: 3
Signed-off-by: Alyssa Rosenzweig <alyssa@collabora.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10627 >
2021-05-05 02:19:03 +00:00
Alyssa Rosenzweig
5e55824c62
pan/bi: Add imm_uintN helper
...
Signed-off-by: Alyssa Rosenzweig <alyssa@collabora.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10627 >
2021-05-05 02:19:03 +00:00
Mike Blumenkrantz
ff4ba3d4a7
zink: support PIPE_CAP_QUERY_MEMORY_INFO
...
Acked-by: Dave Airlie <airlied@redhat.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10511 >
2021-05-05 02:08:44 +00:00
Mike Blumenkrantz
ce1e05de8a
zink: hook up VK_EXT_memory_budget
...
Acked-by: Dave Airlie <airlied@redhat.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10511 >
2021-05-05 02:08:44 +00:00
Mike Blumenkrantz
d050be4b26
zink: grab GetPhysicalDeviceMemoryProperties2 from instance
...
Acked-by: Dave Airlie <airlied@redhat.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10511 >
2021-05-05 02:08:44 +00:00
Eric Anholt
c19801c939
ci/freedreno: Mark a5xx texture gather as flaky.
...
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10633 >
2021-05-04 23:37:00 +00:00
Jason Ekstrand
e1edf74dde
nir/builder: Move clamp helpers to nir_builder.h
...
Reviewed-By: Mike Blumenkrantz <michael.blumenkrantz@gmail.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10631 >
2021-05-04 22:51:34 +00:00
Erik Kurzinger
f4eb13dc55
vulkan/device_select: avoid segfault on Wayland if wl_drm is unavailable
...
On Wayland, if the wl_drm interface is not available, for example if the
compositor is using the proprietary NVIDIA driver along with their egl-wayland
library, the device_select layer will fail to initialize. However, the failure
path will unconditionally call wl_drm_destroy even though info.wl_drm would be
NULL in that case. This can cause a segfault in libwayland-client.so.
To fix this, check if info.wl_drm is NULL before calling wl_drm_destroy. This
way, initialization will fail gracefully even if that interface is not present.
Signed-off-by: Erik Kurzinger <ekurzinger@nvidia.com >
Reviewed-by: Lionel Landwerlin <lionel.g.landwerlin@intel.com >
Reviewed-by: Eric Engestrom <eric@engestrom.ch >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10598 >
2021-05-04 21:26:21 +00:00
Caio Marcelo de Oliveira Filho
dd48683cfd
nir: Move shared_memory_explicit_layout bit into common shader_info
...
Move it out of the "cs" sub-struct, since the bit can be used for
other shader stages in the future.
This also removes a subtle issue in spirv_to_nir:
info.cs.shared_memory_explicit_layout was used without checking for
the CS shader stage. It ended up being "harmless" since the effects
also depended on presence of shared variables.
Fixes: 5de6c5973a ("spirv: Implement SPV_KHR_workgroup_memory_explicit_layout")
Reviewed-by: Jason Ekstrand <jason@jlekstrand.net >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10529 >
2021-05-04 20:54:58 +00:00
Eric Anholt
89114225b5
tunrip: Add support for VK_EXT_separate_stencil_usage.
...
We were implictly including it in exposing VK 1.2, but we weren't making
use of the supplied struct. Actually enabling it gives us a chance to do
slightly better at Z/S UBWC, and means we won't lose the separate usage
test coverage when switching back to exposing VK 1.1.
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10594 >
2021-05-04 20:30:50 +00:00
Erik Faye-Lund
1d00e86078
zink: cache SpvId for aggregate glsl_types
...
This should reduce the amount of types we re-emit while producing
SPIR-V.
Reviewed-By: Mike Blumenkrantz <michael.blumenkrantz@gmail.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10372 >
2021-05-04 20:19:30 +00:00
Erik Faye-Lund
3d3867e7b1
zink: handle matrix-types after vectors
...
This makes us handle all non-aggregate types before we handle aggregate
types. This is going to matter in the next commit.
Reviewed-By: Mike Blumenkrantz <michael.blumenkrantz@gmail.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10372 >
2021-05-04 20:19:30 +00:00
Alyssa Rosenzweig
a9621c4493
pan/mdg: Don't print zero
...
Signed-off-by: Alyssa Rosenzweig <alyssa@collabora.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10393 >
2021-05-04 20:04:03 +00:00
Alyssa Rosenzweig
cb10a8e2f1
pan/mdg: Reduced printed parens
...
Signed-off-by: Alyssa Rosenzweig <alyssa@collabora.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10393 >
2021-05-04 20:04:03 +00:00
Alyssa Rosenzweig
0b45d4b6b5
pan/mdg: Don't print mem addr brackets
...
Already comma separated.
Signed-off-by: Alyssa Rosenzweig <alyssa@collabora.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10393 >
2021-05-04 20:04:03 +00:00
Alyssa Rosenzweig
d0fc23b7bd
pan/mdg: Don't print explicit .rte
...
Default round mode.
Signed-off-by: Alyssa Rosenzweig <alyssa@collabora.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10393 >
2021-05-04 20:04:03 +00:00
Alyssa Rosenzweig
9bd3ebf829
pan/mdg: Suppress most attribute tables
...
Signed-off-by: Alyssa Rosenzweig <alyssa@collabora.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10393 >
2021-05-04 20:04:03 +00:00
Alyssa Rosenzweig
07740e78b4
pan/mdg: Don't print zero shifts
...
Signed-off-by: Alyssa Rosenzweig <alyssa@collabora.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10393 >
2021-05-04 20:04:03 +00:00
Alyssa Rosenzweig
fa68c8bca9
pan/mdg: More concise RMU name
...
Signed-off-by: Alyssa Rosenzweig <alyssa@collabora.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10393 >
2021-05-04 20:04:03 +00:00
Alyssa Rosenzweig
7752b09ade
pan/mdg: Hide units behind MIDGARD_MESA_DEBUG=verbose
...
Not usually interesting unless debugging bundling.
Signed-off-by: Alyssa Rosenzweig <alyssa@collabora.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10393 >
2021-05-04 20:04:03 +00:00
Alyssa Rosenzweig
93a176b6cf
panfrost: Key blend shaders to the input types
...
On Bifrost, fragment shaders might output either FP16 or FP32. The blend
shader will access the output as-is within the register, so depending on
the precision of the blend shader's logic, it may need to insert a
f2f16 or f2f32 conversion. This requires expanding the blend shader key.
Signed-off-by: Alyssa Rosenzweig <alyssa@collabora.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10393 >
2021-05-04 20:04:03 +00:00
Alyssa Rosenzweig
9df1d1306e
pan/blend: Emit explicit conversions for all types
...
Needed so we can mix and match.
Signed-off-by: Alyssa Rosenzweig <alyssa@collabora.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10393 >
2021-05-04 20:04:03 +00:00
Alyssa Rosenzweig
30423b0c36
panfrost/lower_framebufffer: Don't use i2imp
...
Fails when converting from i2i8, which is possible.
Signed-off-by: Alyssa Rosenzweig <alyssa@collabora.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10393 >
2021-05-04 20:04:03 +00:00
Alyssa Rosenzweig
03e3e65cd4
panfrost: Assume lower_fragcolor has been called
...
Allows us to clean up quite a bit.
Signed-off-by: Alyssa Rosenzweig <alyssa@collabora.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10393 >
2021-05-04 20:04:03 +00:00
Alyssa Rosenzweig
28ac4d1e00
panfrost: Call nir_lower_fragcolor based on key
...
We only want it to trigger if MRT is actually in use. This is a cheap
key (only require multiple variants for an obscure edge case) and avoids
the perf regression of using this pass which is needed for conformance.
Signed-off-by: Alyssa Rosenzweig <alyssa@collabora.com >
Cc: mesa-stable
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10393 >
2021-05-04 20:04:03 +00:00
Alyssa Rosenzweig
6a4482df98
panfrost/blend: Prepare for lower_fragcolor
...
FRAG_RESULT_COLOR means something a bit different.
Signed-off-by: Alyssa Rosenzweig <alyssa@collabora.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10393 >
2021-05-04 20:04:03 +00:00
Alyssa Rosenzweig
120dd92e86
panfrost/blend: Distribute to_c_factor
...
Easier to understand, I think.
Signed-off-by: Alyssa Rosenzweig <alyssa@collabora.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10393 >
2021-05-04 20:04:03 +00:00
Alyssa Rosenzweig
613722e046
panfrost/blend: Workaround a v7 implementation-detail
...
Signed-off-by: Alyssa Rosenzweig <alyssa@collabora.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10393 >
2021-05-04 20:04:03 +00:00
Alyssa Rosenzweig
392bf00019
panfrost/blend: Fix outdated comments
...
Signed-off-by: Alyssa Rosenzweig <alyssa@collabora.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10393 >
2021-05-04 20:04:03 +00:00
Alyssa Rosenzweig
86b0eddf2b
pan/lower_blend: Rename is_bifrost->scalar
...
Don't leak ISA details.
Signed-off-by: Alyssa Rosenzweig <alyssa@collabora.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10393 >
2021-05-04 20:04:03 +00:00
Alyssa Rosenzweig
f5211fcbed
pan/lower_blend: Use NIR helpers
...
Deletes a bunch of indentations.
Signed-off-by: Alyssa Rosenzweig <alyssa@collabora.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10393 >
2021-05-04 20:04:03 +00:00
Alyssa Rosenzweig
5fc1aed036
pan/lower_blend: Clean up type size handling
...
Signed-off-by: Alyssa Rosenzweig <alyssa@collabora.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10393 >
2021-05-04 20:04:03 +00:00
Alyssa Rosenzweig
dad599f15e
panfrost: Don't clobber RT0 if RTn is disabled
...
Fixes: a124c47b9f ("panfrost: Fix NULL derefs in pan_cmdstream.c")
Signed-off-by: Alyssa Rosenzweig <alyssa@collabora.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10393 >
2021-05-04 20:04:03 +00:00
Alyssa Rosenzweig
5268a8500a
panfrost: Minor cleanup of blend CSO
...
No need to cast.
Signed-off-by: Alyssa Rosenzweig <alyssa@collabora.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10393 >
2021-05-04 20:04:03 +00:00
Alyssa Rosenzweig
3968f03754
panfrost: Support alpha_to_one
...
Gets rid of a bogus assert in the blend CSO create.
Signed-off-by: Alyssa Rosenzweig <alyssa@collabora.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10393 >
2021-05-04 20:04:03 +00:00
Alyssa Rosenzweig
a368cc022d
panfrost: Make comment less confusing
...
Signed-off-by: Alyssa Rosenzweig <alyssa@collabora.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10393 >
2021-05-04 20:04:03 +00:00
Alyssa Rosenzweig
c6bb55ffcf
pan/bi: Lower 8-bit fragment input
...
Same reasons/technique as fragment output lowering, just need the NIR.
Signed-off-by: Alyssa Rosenzweig <alyssa@collabora.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10393 >
2021-05-04 20:04:03 +00:00
Alyssa Rosenzweig
3cc6a4c5d0
pan/bi: Handle swizzles in i2i8
...
Otherwise they get copypropped away.
Signed-off-by: Alyssa Rosenzweig <alyssa@collabora.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10393 >
2021-05-04 20:04:03 +00:00
Alyssa Rosenzweig
e180374ab1
pan/bi: Add single-component 8-bit mkvec lowering
...
So we can implement scalar i2i8.
Signed-off-by: Alyssa Rosenzweig <alyssa@collabora.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10393 >
2021-05-04 20:04:03 +00:00
Alyssa Rosenzweig
ba17342a1f
pan/bi: Handle different sizes of LD_TILE
...
v2: Fix overflow.
Signed-off-by: Alyssa Rosenzweig <alyssa@collabora.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10393 >
2021-05-04 20:04:03 +00:00
Alyssa Rosenzweig
f412801768
pan/bi: Track dual-src blend type
...
Will be needed for fp16 outputs. I am acutely aware dual-src blending is
broken on Bifrost right now anyway.
Signed-off-by: Alyssa Rosenzweig <alyssa@collabora.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10393 >
2021-05-04 20:04:03 +00:00
Yiwei Zhang
e44b4feb33
venus: query extended resource info from gralloc
...
Creating Android swapchain image from gralloc buffer requires to use
VkImageDrmFormatModifierExplicitCreateInfoEXT. To fill the struct info,
we need to query extended resource info from gralloc.
With the queried modifier from gralloc, we can ask the driver for the
plane count of the given format and modifier pair.
Signed-off-by: Yiwei Zhang <zzyiwei@chromium.org >
Reviewed-by: Chia-I Wu <olvaffe@gmail.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10553 >
2021-05-04 19:52:13 +00:00
Eric Anholt
a2efa2e833
tgsi: Mark the tgsi_exec_channel and tgsi_double_channel ALIGN16.
...
We allocate them all align16, so mark the unions (and their container
structs) that way so the compiler can do aligned SSE load/stores.
glmark2 -b loop FPS +0.197265% +/- 0.117633% (n=1906)
Reviewed-by: Adam Jackson <ajax@redhat.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10604 >
2021-05-04 18:58:51 +00:00
Charlie Turner
1d418e79b8
radv: Add a STONEY baseline for dEQP.
...
See:
https://gitlab.freedesktop.org/tanty/mesa-valve-ci/-/jobs/9286188
https://gitlab.freedesktop.org/tanty/mesa-valve-ci/-/jobs/9297109
https://gitlab.freedesktop.org/tanty/mesa-valve-ci/-/jobs/9297110
v2.
- Clarify that the dEQP-VK.texture.explicit_lod.2d tests are skipped
due to slow APU-based STONEY test devices.
Reviewed-by: Samuel Pitoiset <samuel.pitoiset@gmail.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10559 >
2021-05-04 16:42:57 +00:00
Iago Toral Quiroga
f099fc3e07
v3d: choose a larger CSD supergroup size if possible
...
Reviewed-by: Alejandro Piñeiro <apinheiro@igalia.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10541 >
2021-05-04 15:53:23 +00:00
Iago Toral Quiroga
3ce249e65e
broadcom/common: move CSD supergroup sizing to a common helper
...
We want to use this in GL too.
Reviewed-by: Alejandro Piñeiro <apinheiro@igalia.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10541 >
2021-05-04 15:53:23 +00:00
Iago Toral Quiroga
afc33a7430
v3dv: limit supergroup size in presence of TSY barriers
...
When a TSY barrier is hit, the entire supergroup will be synchronized.
If the supergoup is large and uses all available QPU threads it would
mean that we would sychronize and stall all running threads until all
of them reach the barrier, which may be inefficient.
This patch makes it so that if the compute shader has any such barriers
we limit the supergroup size so each supergroup only takes half of the
QPU threads available at most, so that if one supergroup hits a
barrier we have at least one other supergroup we can run, reducing
idle QPU time.
Reviewed-by: Alejandro Piñeiro <apinheiro@igalia.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10541 >
2021-05-04 15:53:23 +00:00
Iago Toral Quiroga
f514280524
broadcom/compiler: track if a shader has control barriers in prog_data
...
Reviewed-by: Alejandro Piñeiro <apinheiro@igalia.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10541 >
2021-05-04 15:53:23 +00:00
Iago Toral Quiroga
2e0f6e5705
v3dv: choose a larger CSD supergroup size if possible
...
Each supergroup executes a number batches. Each batch has 16 elements
(one per QPU lane), except possibly the last batch which might be
incomplete. Until now, we packed a single workgroup in each supergroup,
which can lead to more incomplete batches and less efficient use
of the QPUs depending on the configuration of workgroups being dispatched.
This patch computes a number of workgroups per supergroup so that
we reduce or completely eliminate incomplete batches if possible.
It should be noted however, that TSY barriers act on supergroups,
so larger supergroups lead to larger syncpoints on barriers too.
A follow-up patch will try to find a good balance for compute shaders
that use such barriers.
This improves performance of the Sascha Willem's computecloth demo
by ~13%.
Reviewed-by: Alejandro Piñeiro <apinheiro@igalia.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10541 >
2021-05-04 15:53:23 +00:00
Iago Toral Quiroga
aebb47b7d1
compiler/nir: add a divergence analysis option for non-uniform workgroup id
...
The V3D hardware allows us to pack multiple workgroups together to avoid
wasting execution lanes in shader cores.
For example, if we dispatch 16 workgroups with a local size of 1 element, we
can pack all 16 workgroups in a single 16-wide dispatch where each lane
executes a different workgroup, instead of 16 1-wide dispatches.
When we do this, we don't have a uniform workgroup id any more.
Reviewed-by: Jason Ekstrand <jason@jlekstrand.net >
Reviewed-by: Alejandro Piñeiro <apinheiro@igalia.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10541 >
2021-05-04 15:53:23 +00:00
Caio Marcelo de Oliveira Filho
caf9fb1a10
intel/compiler: Remove unused exported functions
...
Now that all drivers are using brw_cs_get_dispatch_info() we can
remove one function (which is now unused) and reduce the scope of the
other.
Reviewed-by: Marcin Ślusarz <marcin.slusarz@intel.com >
Reviewed-by: Jason Ekstrand <jason@jlekstrand.net >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10504 >
2021-05-04 08:15:19 -07:00
Caio Marcelo de Oliveira Filho
313c80c158
i965: Use brw_cs_get_dispatch_info()
...
Reviewed-by: Marcin Ślusarz <marcin.slusarz@intel.com >
Reviewed-by: Jason Ekstrand <jason@jlekstrand.net >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10504 >
2021-05-04 08:15:19 -07:00
Caio Marcelo de Oliveira Filho
279acf1031
anv: Use brw_cs_get_dispatch_info()
...
And since right_mask is already provided as part of dispatch_info,
just use that instead of storing it.
Reviewed-by: Marcin Ślusarz <marcin.slusarz@intel.com >
Reviewed-by: Jason Ekstrand <jason@jlekstrand.net >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10504 >
2021-05-04 08:15:19 -07:00
Caio Marcelo de Oliveira Filho
59cbd50bfa
iris: Use brw_cs_get_dispatch_info()
...
Reviewed-by: Marcin Ślusarz <marcin.slusarz@intel.com >
Reviewed-by: Jason Ekstrand <jason@jlekstrand.net >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10504 >
2021-05-04 08:15:19 -07:00
Caio Marcelo de Oliveira Filho
5cc758558d
intel/compiler: Add common function for CS dispatch info
...
We have this small calculations repeated in each Intel driver, so move
them to a single place to be reused. Also includes "right_mask" since
is always used in the same context and depends on the dispatch info
values.
Reviewed-by: Marcin Ślusarz <marcin.slusarz@intel.com >
Reviewed-by: Jason Ekstrand <jason@jlekstrand.net >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10504 >
2021-05-04 08:15:19 -07:00
Caio Marcelo de Oliveira Filho
7cc846788c
nir: Remove now unnecessary conditions from emit_load/store helpers
...
The mode one was used before 0bc5a829dd ("nir: Remove shared support from
lower_io").
The others were used before 5f7c7c9a7f ("nir: add src and dest types
to all IO loads and stores for mediump").
All conditions now are always true, so drop them.
Reviewed-by: Alyssa Rosenzweig <alyssa.rosenzweig@collabora.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10533 >
2021-05-04 06:33:24 -07:00
Boris Brezillon
693ae0d3e9
panfrost/ci: Run the full deqp-gles3 testsuite
...
We recently added 5 more VIM3s to the lavalab, this should be more than
enough to run the full GLES 3.0 testsuite on G52.
Signed-off-by: Boris Brezillon <boris.brezillon@collabora.com >
Reviewed-by: Tomeu Vizoso <tomeu.vizoso@collabora.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10614 >
2021-05-04 11:22:15 +00:00
Erik Faye-Lund
a2140e29c5
docs: update gallium doxygen docs
...
Gallium's background as a Tungstend Graphics technology is no longer
significant; it's a historical detail. Besides, since Tungsten Graphics
were acquired by VMware more than a decade ago, the website no longer
exists.
While we're at it, replace the docs link with a link to the mesa docs,
and point to archive.org copy of the Tungsten Graphics paper.
Closes: https://gitlab.freedesktop.org/mesa/mesa/-/issues/2770
Reviewed-by: Jose Fonseca <jfonseca@vmware.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10452 >
2021-05-04 08:38:45 +00:00
Gert Wollny
a199697642
nir/opt_algebraic: optimizations for add umax/umin with zero
...
For unsigned comparisons with zero these ops can be eliminated.
v2: Add comparison optimizations with -1 (Rhys Perry)
Signed-off-by: Gert Wollny <gert.wollny@collabora.com >
Reviewed-by: Eric Anholt <eric@anholt.net > (v1)
Reviewed-by: Rhys Perry <pendingchaos02@gmail.com >
Reviewed-by: Jason Ekstrand <jason@jlekstrand.net >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10583 >
2021-05-04 09:33:32 +02:00
Erik Faye-Lund
301ceab7ce
lavapipe: consistently use nir macros
...
NIR provides two helper macros to run transformation passes correctly,
NIR_PASS() and NIR_PASS_V(). So far we've seemingly been a bit haphazard
about when to use them.
Let's correct that, and consistently use the NIR helpers here. This
helps us in two ways:
1. We now run nir_validate_shader after each pass, ensuring we didn't
break the shader
2. We now respect the NIR_PRINT environment variable for all NIR passes,
making debugging much less surprising.
In addition, we had an OPT()-macro that doesn't seem to provide much
help other than to hiding some trivial details. But they make our code
different to other users of NIR, which doesn't seem ideal. So let's drop
that macro while we're at it.
Reviewed-By: Mike Blumenkrantz <michael.blumenkrantz@gmail.com >
Reviewed-by: Dave Airlie <airlied@redhat.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10585 >
2021-05-04 07:18:55 +00:00
Samuel Pitoiset
53fe74bbb1
radv: implement RADV_FORCE_VRS for the LLVM backend
...
Just to make it consistent compared to ACO.
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/10432 >
2021-05-04 08:23:56 +02:00
Marek Olšák
48d2ac4e88
util: fix (re-enable) L3 cache pinning
...
cores_per_L3 was uninitialized, so it was always disabled.
Remove the variable and do it differently.
Fixes: 11d2db17c5 - util: rework AMD cpu L3 cache affinity code.
Reviewed-by: Dave Airlie <airlied@redhat.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10526 >
2021-05-04 01:02:07 -04:00
Marek Olšák
9b58e31f2d
util: print CPU caps in release builds too
...
Reviewed-by: Dave Airlie <airlied@redhat.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10526 >
2021-05-04 01:02:07 -04:00
Dave Airlie
897bcc1e6b
i965: drop old brw ff gs code.
...
This isn't needed anymore.
Reviewed-by: Eric Anholt <eric@anholt.net >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/9721 >
2021-05-04 03:39:45 +00:00
Dave Airlie
8d5f36fe14
i965: port fixed function geom shader to use compiler paths
...
This just moves to the common code in the compiler.
Reviewed-by: Eric Anholt <eric@anholt.net >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/9721 >
2021-05-04 03:39:45 +00:00
Dave Airlie
52e426fd8b
intel/compiler: add support for compiling fixed function gs
...
This is ported from i965, but the interface is cleaned up
Reviewed-by: Eric Anholt <eric@anholt.net >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/9721 >
2021-05-04 03:39:45 +00:00
Dave Airlie
ac33e2b66b
intel: move brw_ff_gs_prog_key/data to compiler.
...
Step one to moving the ff_gs emitter to compiler for sharing,
move BRW_MAX_SOL_BINDINGS up so the keys are in same area
Reviewed-by: Eric Anholt <eric@anholt.net >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/9721 >
2021-05-04 03:39:45 +00:00
Eric Anholt
7c52a79057
ci/freedreno: Add another db820c flake that's appeared in the last few months.
...
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10597 >
2021-05-04 01:03:50 +00:00
Eric Anholt
4c85d47df5
ci/freedreno: Fix the recent-a5xx-texture-flakes matches.
...
We've had about 1/day of the texelfetch group in the IRC flake reports
since apr 23, and tex-miplevel-selection that I marked before is actually
all the subtests it looks like. Also, you can't include the ",Fail" if
you want to actually match a test name.
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10597 >
2021-05-04 01:03:50 +00:00
Ian Romanick
2d5b64818f
gallivm: Remove unused GALLIVM_NAN_RETURN_NAN
...
In the review, Roland says, "I think the unused nan behaviors was there
just for completeness, so it can easily go."
Reviewed-by: Roland Scheidegger <sroland@vmware.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10532 >
2021-05-04 00:13:34 +00:00
Ian Romanick
61624934f6
gallivm: Use GALLIVM_NAN_RETURN_OTHER_SECOND_NONNAN for norm clamping
...
Since the second source is always a constant that is known to be a
number, this should have the same performance as
GALLIVM_NAN_BEHAVIOR_UNDEFINED.
A lofty goal is to eventually remove GALLIVM_NAN_BEHAVIOR_UNDEFINED.
There's still a lot of (mostly implicit) users, and I don't feel like
tackling that right now. :)
Reviewed-by: Roland Scheidegger <sroland@vmware.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10532 >
2021-05-04 00:13:34 +00:00
Ian Romanick
aaeff52bbe
gallivm: Use range analysis to generate better fmin and fmax code
...
If it is known that one of the source must be a number, then the (more
efficient) GALLIVM_NAN_RETURN_OTHER_SECOND_NONNAN path can be used.
v2: s/know to be/known to be/. Noticed by Roland.
Reviewed-by: Roland Scheidegger <sroland@vmware.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10532 >
2021-05-04 00:13:34 +00:00
Ian Romanick
b3f3287eac
gallivm: Fix NaN behavior of min and max
...
Like softpipe in mesa!10419, llvmpipe suffers from improper handling
of NaN in nir_op_fmax and nir_op_fmin. nir_op_fsat is already handled
correctly. OpenCL strictly requires the "NaN cleansing" behavior, so
all of the functionality is in place. Just make the graphics APIs use
the OpenCL path.
The majority of the possible performance penalty incurred here should
be resolved in the next commit.
v2: Add updated checksum for bgfx/39-assao.rdc trace. Rendering goes
from mostly garbage to looking correct to me.
Reviewed-by: Roland Scheidegger <sroland@vmware.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10532 >
2021-05-04 00:13:34 +00:00
Ian Romanick
8af325d192
tgsi_exec: Use C99 functions for min and max instead of open coding
...
I don't know what I was thinking when I wrote 939bf7a419 ("tgsi_exec:
Fix NaN behavior of min and max") and d1c0f62b42 ("tgsi_exec: Fix NaN
behavior of saturate"). I knew that C99 had fmin and fmax... I just
forgot to use them.
Reviewed-by: Roland Scheidegger <sroland@vmware.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10532 >
2021-05-04 00:13:34 +00:00
Jason Ekstrand
05a37e2422
intel/nir: Set lower txs with non-zero LOD
...
There's a recently discovered HW bug affecting hardware at least as far
back as Skylake where, if the LOD is out-of-bounds for any SIMD lane,
then garbage may be returned in all SIMD lanes. The easy solution is to
set lower_txs_lod so that we always have a constant LOD of 0 which we
know a priori is always in-bounds. Fortunately, not many shaders
actually use textureSize() with LOD.
Shader-db results on Ice Lake:
total instructions in shared programs: 19948537 -> 19948564 (<.01%)
instructions in affected programs: 3859 -> 3886 (0.70%)
helped: 0
HURT: 7
One of the shaders is in Civilization: Beyond Earth, and the rest are
all in Civilization VI.
Reviewed-by: Francisco Jerez <currojerez@riseup.net >
Reviewed-by: Anuj Phogat <anuj.phogat@gmail.com >
Cc: mesa-stable@lists.freedesktop.org
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10538 >
2021-05-04 00:02:43 +00:00
Jason Ekstrand
3f36e027d3
intel/fs: Don't use pixel_z for Gen4-5 source_depth_to_render_target
...
The source_depth_to_render_target flag can get set on old gen4-5 HW in a
few cases which are independent of the app writing gl_FragDepth. It
should be safe to just use fetch_payload_reg in that case instead of
depending in interpolation setup. This fixes a bug with certain very
simple shaders where we might end up not including the depth when we
should have.
While we're here, rework the logic around setting src_depth and add a
comment so it's more clear what's going on.
Fixes: 6d4070f3dd "intel/compiler: add support for fragment coordinate..."
Reviewed-by: Lionel Landwerlin <lionel.g.landwerlin@intel.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10596 >
2021-05-03 23:51:51 +00:00
Rob Clark
71cff8171c
freedreno/query/acc: Set needs_flush
...
Somehow this was missed, but when we emit a query start/stop we need
have something that will need to be flushed in the batch.
Detected due to TC assert, but this had the potential to cause problems
in the non-TC case as well.
Signed-off-by: Rob Clark <robdclark@chromium.org >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10599 >
2021-05-03 23:27:31 +00:00
Rob Clark
a9c9a9938d
freedreno: Consolidate needs_flush and clearing last_fence
...
Add a helper to both set batch->needs_flush and clear ctx->last_fence so
that the two related bits of state do not get out of sync.
Signed-off-by: Rob Clark <robdclark@chromium.org >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10599 >
2021-05-03 23:27:31 +00:00
Adam Jackson
ceba7f6952
i915c: Add a symlink for i830_dri.so
...
The gallium driver doesn't support gen2, so let's make it possible to
keep both i915g and i830 drivers installed in parallel.
Reviewed-by: Eric Anholt <eric@anholt.net >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10554 >
2021-05-03 23:03:09 +00:00
Adam Jackson
61b7e6578a
include: Remove unused i810_pci_ids.h
...
Reviewed-by: Eric Anholt <eric@anholt.net >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10554 >
2021-05-03 23:03:09 +00:00
Antonio Caggiano
1b87a7d5e0
panfrost: Meson dependency
...
Declare a meson dependency for libpanfrost and wrap some key functions
within an extern C block allowing proper compilation by C++ compilers.
Signed-off-by: Antonio Caggiano <antonio.caggiano@collabora.com >
Acked-by: Alyssa Rosenzweig <alyssa.rosenzweig@collabora.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10462 >
2021-05-03 21:08:47 +00:00
Chia-I Wu
390722620e
venus: clean up vn_device_fix_create_info
...
The extension list should be more correct now.
Signed-off-by: Chia-I Wu <olvaffe@gmail.com >
Reviewed-by: Yiwei Zhang <zzyiwei@chromium.org >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10556 >
2021-05-03 20:51:46 +00:00
Chia-I Wu
9171b981bf
venus: add extension check for ANDROID_native_buffer
...
We only do it on Android for now, to keep the driver working with older
renderers on X11.
Signed-off-by: Chia-I Wu <olvaffe@gmail.com >
Reviewed-by: Yiwei Zhang <zzyiwei@chromium.org >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10556 >
2021-05-03 20:51:46 +00:00
Chia-I Wu
203e64eadd
venus: init supported extensions in one place
...
This also guarantees that physical_dev->extension_spec_versions[X] is
set when extension X is supported.
Signed-off-by: Chia-I Wu <olvaffe@gmail.com >
Reviewed-by: Yiwei Zhang <zzyiwei@chromium.org >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10556 >
2021-05-03 20:51:46 +00:00
Chia-I Wu
dc73489a38
venus: refactor vn_physical_device_init_supported_extensions
...
Native extensions are those do not require direct renderer support.
Passthrough extensions are those require direct renderer support.
Native extensions usually require translation to other extensions that
the renderer supports.
Signed-off-by: Chia-I Wu <olvaffe@gmail.com >
Reviewed-by: Yiwei Zhang <zzyiwei@chromium.org >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10556 >
2021-05-03 20:51:46 +00:00
Chia-I Wu
c44225c20b
venus: avoid strcmp for spec version override
...
Add VN_EXTENSION_TABLE_INDEX for use with VK_ANDROID_native_buffer spec
version override.
Signed-off-by: Chia-I Wu <olvaffe@gmail.com >
Reviewed-by: Yiwei Zhang <zzyiwei@chromium.org >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10556 >
2021-05-03 20:51:46 +00:00
Chia-I Wu
14ce47e04a
venus: refactor vn_physical_device_init_extensions
...
Split up into two functions, one initializes the renderer extension
table and one initializes the supported extension table.
Signed-off-by: Chia-I Wu <olvaffe@gmail.com >
Reviewed-by: Yiwei Zhang <zzyiwei@chromium.org >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10556 >
2021-05-03 20:51:46 +00:00
Chia-I Wu
d69f7b3e6a
venus: clarify/fix device renderer version
...
Mostly docs and cleanups, except that renderer_version is now also
capped by the xml version.
Signed-off-by: Chia-I Wu <olvaffe@gmail.com >
Reviewed-by: Yiwei Zhang <zzyiwei@chromium.org >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10556 >
2021-05-03 20:51:46 +00:00
Chia-I Wu
7f7742998e
venus: clarify/fix instance renderer versions
...
Add vn_instance::renderer_version to indicate the maximum renderer
instance version we can use internally. It is not all that useful
because we only use 1.1 instance features and VN_MIN_RENDERER_VERSION is
set to 1.1, but whatever.
Signed-off-by: Chia-I Wu <olvaffe@gmail.com >
Reviewed-by: Yiwei Zhang <zzyiwei@chromium.org >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10556 >
2021-05-03 20:51:46 +00:00
Chia-I Wu
7a0b0dd931
venus: rename vn_instance::renderer_version
...
Rename renderer_version to renderer_api_version.
Signed-off-by: Chia-I Wu <olvaffe@gmail.com >
Reviewed-by: Yiwei Zhang <zzyiwei@chromium.org >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10556 >
2021-05-03 20:51:46 +00:00
Chia-I Wu
773e318569
venus: add VN_MAX_API_VERSION
...
Use VN_MAX_API_VERSION for the instance version such that we don't
suddenly advertise 1.3 when the header is updated to 1.3 for example.
Use it to cap the device version as well.
Signed-off-by: Chia-I Wu <olvaffe@gmail.com >
Reviewed-by: Yiwei Zhang <zzyiwei@chromium.org >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10556 >
2021-05-03 20:51:45 +00:00
Chia-I Wu
38e0067643
venus: fix dmabuf import fail path
...
When we fail, we should not close gem_handle when there is already a bo
with the same gem handle.
Signed-off-by: Chia-I Wu <olvaffe@gmail.com >
Reviewed-by: Yiwei Zhang <zzyiwei@chromium.org >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10592 >
2021-05-03 20:40:14 +00:00
Chia-I Wu
40fbfd8b5b
venus: fix dmabuf import mmap_size check
...
Do not set mmap_size to info.size. We do not track the size of the BO
anymore.
This fixes
dEQP-VK.api.external.memory.dma_buf.suballocated.device_only.fd_properties
where the test allocates a 1KB VkDeviceMemory, export and call
vkGetMemoryFdPropertiesKHR. It can happen that bo->mmap_size is less
than the aligned info.size.
FWIW, the test fails because it violates a VU:
VUID-vkGetMemoryFdPropertiesKHR-fd-00673
fd must be an external memory handle created outside of the Vulkan API
Fixes: 88f481dd74 ("venus: make sure gem_handle and vn_renderer_bo are 1:1")
Signed-off-by: Chia-I Wu <olvaffe@gmail.com >
Reviewed-by: Yiwei Zhang <zzyiwei@chromium.org >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10592 >
2021-05-03 20:40:14 +00:00
Chia-I Wu
a9a75edc24
venus: fix render pass without attachments
...
It was treated as VK_ERROR_OUT_OF_HOST_MEMORY because
vn_get_intercepted_attachments would return NULL. This fixes various
dEQP tests.
Fixes: 174fca5498 ("venus: handle VK_IMAGE_LAYOUT_PRESENT_SRC_KHR transfer")
Signed-off-by: Chia-I Wu <olvaffe@gmail.com >
Reviewed-by: Yiwei Zhang <zzyiwei@chromium.org >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10592 >
2021-05-03 20:40:14 +00:00
Connor Abbott
9fa587ae96
ir3: Don't assume regs[1] exists in ir3_fixup_src_type()
...
It won't exist for phi nodes because they are only partially constructed
beforehand. Move it into the switch arguments where we know it's needed.
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10591 >
2021-05-03 19:52:31 +00:00
Connor Abbott
3c8a5d7e17
ir3: Rework outputs
...
Instead of using a separate outputs array, make the "end" instruction
(or chmask) take the outputs as sources. This works better for the new
RA, because it better models the fact that outputs are consumed all at
the same time. With the old model, each output collect would be assumed
dead after it was processed and subsequent collects could use it when
inserting shuffle code, which wouldn't work, and the new RA also deletes
collect instructions after lowering them to moves so the information
would be gone after RA.
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10591 >
2021-05-03 19:52:31 +00:00
Connor Abbott
dd55bd8f68
ir3: Make predecessors an array
...
We need a stable order in order to create phi instructions. In the
future we can make this more sophisticated in order to make manipulating
the CFG easier, but for now that only happens after RA, so we won't have
to worry about it.
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10591 >
2021-05-03 19:52:31 +00:00
Connor Abbott
0bd68b8386
ir3: Refactor nir->ir3 block handling
...
Originally I wrote this to support multiple ir3 blocks per NIR block,
but this turned out to be more useful for creating a stable ordering to
the predecessors. We compute the predecessors ourselves, rather than
relying on NIR, so that the array of predecessors we create in the next
commit has a stable order we can rely on when creating phi nodes.
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10591 >
2021-05-03 19:52:31 +00:00
Connor Abbott
d28b22374c
ir3/cp_postsched: Fixup SSA use pointer for direct reads
...
There's an optimization here to sink direct (i.e. not relative) reads of
an array past unrelated direct writes. However, since each write
actually reads, modifies, and then writes again to the array, this means
that we need to read the latest updated array. The old RA used the array
id instead of the SSA information, so it didn't care, but the new RA
uses ->instr instead and ignores the array id because arrays are now SSA
so it needs to be correct.
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10591 >
2021-05-03 19:52:31 +00:00
Connor Abbott
40a1c4ba2d
ir3/postsched: Fix ir3_postsched_node::delay calculation
...
This wasn't using the same calculation that add_reg_dep() was using to
get the index into state->regs, so it was using the wrong register. Fix
this by folding it into add_reg_dep().
This shouldn't fix anything, because it's just used for scheduler
priorities, but it should reduce nop's and syncs.
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10591 >
2021-05-03 19:52:31 +00:00
Connor Abbott
4b41ffc231
ir3/delay: Remove special case for array deps
...
The case it was trying to handle (array read-after-write depedendencies)
is already handled by the normal SSA source handling, so this is just
useless.
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10591 >
2021-05-03 19:52:31 +00:00
Connor Abbott
873e21f4e9
ir3/postsched: Use correct src index
...
Match what ir3_delay_calc() does. Caught by an assert later.
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10591 >
2021-05-03 19:52:31 +00:00
Connor Abbott
af7f29a78e
ir3/sched: Use correct src index
...
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10591 >
2021-05-03 19:52:31 +00:00
Connor Abbott
7df7bab03b
ir3/cp: Clone registers for compare-folding optimization
...
Sharing the same register between instructions happened to work with the
old RA, but not with the new RA because they may get different register
assignments.
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10591 >
2021-05-03 19:52:31 +00:00
Connor Abbott
e597f8b122
ir3/postsched: Fix dependencies for a0.x/p0.x
...
a0.x is written as a half-reg, but just interpreting it as "hr61.x" will
result in it overlapping with r30.z in merged mode, which is not what
the hardware does at all. This introduced a spurious dependency on
a write to r30.z which resulted in an assert tripping. Just pretend it's
a full reg instead.
This fixes
spec@arb_tessellation_shader@execution@variable-indexing@vs-output-array-vec3-index-wr-before-tcs
with the new RA.
Fixes: 0f78c32 ("freedreno/ir3: post-RA sched pass")
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10591 >
2021-05-03 19:52:31 +00:00
Alyssa Rosenzweig
3ddc7c0e15
panfrost: Remove old dEQP workaround
...
Nobody else needs it.
Signed-off-by: Alyssa Rosenzweig <alyssa@collabora.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10589 >
2021-05-03 19:29:30 +00:00
Adam Jackson
f5d6a1b916
Revert "glx: s/Display */struct glx_display */ over internal API"
...
This broke texture-from-pixmap in OBS Studio so I must have done
something wrong and also we need better tfp testing.
This reverts commit b02b26b87c .
Closes: https://gitlab.freedesktop.org/mesa/mesa/-/issues/4718
Acked-by: Eric Anholt <eric@anholt.net >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10593 >
2021-05-03 15:00:41 -04:00
Danylo Piliaiev
ea72be8b7c
ir3: do not fold cmps from different blocks with non-null address
...
Scheduling don't like address being in the different block from
the instruction.
Fixes a crash in the trace of "War Thunder" (DX11)
Signed-off-by: Danylo Piliaiev <dpiliaiev@igalia.com >
Reviewed-by: Samuel Iglesias Gonsálvez <siglesias@igalia.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10355 >
2021-05-03 17:25:05 +00:00
Mike Blumenkrantz
457a030b87
iris: fix indirect drawid
...
iteration needs to be added to the offset now
Fixes: dae3113c3d ("gallium: split drawid out of pipe_draw_info and as a separate draw_vbo param")
Tested-by: Mark Janes <markjanes@swizzler.org >
Reviewed-by: Jason Ekstrand <jason@jlekstrand.net >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10555 >
2021-05-03 17:13:18 +00:00
Jason Ekstrand
94c1e65de9
intel/eu: Set message subtype properly for SIMD8 FB fetch
...
There were two bugs which crep in here as part of 64551610d1 :
forgetting that exec sizes in HW are in log2 space and having the
exec_size condition for the subtype backwards.
Fixes: 64551610d1 "intel/compiler: rework message descriptors..."
Reviewed-by: Lionel Landwerlin <lionel.g.landwerlin@intel.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10588 >
2021-05-03 15:30:41 +00:00
Alyssa Rosenzweig
0ec27d02e1
panfrost: Don't unroll loops in GLSL
...
GLSL loop analysis is trouble. Just use NIR.
Signed-off-by: Alyssa Rosenzweig <alyssa@collabora.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10392 >
2021-05-03 15:10:20 +00:00
Alyssa Rosenzweig
8a4e735506
pan/bi: Workaround *V2F32_TO_V2F16 erratum
...
Exact conditions this workaround is needed unknown. Determined
experimentally.
Signed-off-by: Alyssa Rosenzweig <alyssa@collabora.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10392 >
2021-05-03 15:10:20 +00:00
Alyssa Rosenzweig
daeb3507c2
pan/bi: Don't schedule clamps to +FADD.v2f16
...
Signed-off-by: Alyssa Rosenzweig <alyssa@collabora.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10392 >
2021-05-03 15:10:20 +00:00
Alyssa Rosenzweig
b88cb49e4b
pan/bi: Add and use bi_negzero helper
...
-0.0 is the additive identity in IEEE 754 arithmetic, not +0.0!
Signed-off-by: Alyssa Rosenzweig <alyssa@collabora.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10392 >
2021-05-03 15:10:20 +00:00
Alyssa Rosenzweig
2a0060e63d
pan/bi: Lower swizzles on CLPER
...
Needed for vectorized FP16 derivatives.
Signed-off-by: Alyssa Rosenzweig <alyssa@collabora.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10392 >
2021-05-03 15:10:20 +00:00
Alyssa Rosenzweig
998cbe13d4
pan/bi: Fix loads and stores smaller than 32 bits
...
Spiritual successor to Icecream95's patch of the same name.
Signed-off-by: Alyssa Rosenzweig <alyssa@collabora.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10392 >
2021-05-03 15:10:20 +00:00
Icecream95
0ca7926bb6
pan/bi: Replace lane0 modifier with lane_dest for load instructions
...
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10392 >
2021-05-03 15:10:20 +00:00
Icecream95
b361a806bb
pan/bi: Add "lane_dest" modifier
...
Similar to the "lane" modifier, but for the instruction destination
instead the sources.
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10392 >
2021-05-03 15:10:20 +00:00
Alyssa Rosenzweig
5fe4f245a5
pan/bi: Implement vectorized int downcasts
...
Just MKVEC but needs the usual special handling.
Signed-off-by: Alyssa Rosenzweig <alyssa@collabora.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10392 >
2021-05-03 15:10:20 +00:00
Alyssa Rosenzweig
caebca4aa7
pan/bi: Improve assert for vector size errors
...
Signed-off-by: Alyssa Rosenzweig <alyssa@collabora.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10392 >
2021-05-03 15:10:20 +00:00
Alyssa Rosenzweig
2f4bb3d6b9
pan/bi: Fix 16-bit fsat
...
Signed-off-by: Alyssa Rosenzweig <alyssa.rosenzweig@collabora.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10392 >
2021-05-03 15:10:20 +00:00
Alyssa Rosenzweig
d43c0f35ff
pan/bi: Implement vectorized f32_to_f16
...
f2f16 needs special treatment since it can access multiple 32-bit words.
Corresponds to the two-op instruction V2F32_TO_V2F16.
Signed-off-by: Alyssa Rosenzweig <alyssa.rosenzweig@collabora.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10392 >
2021-05-03 15:10:20 +00:00
Alyssa Rosenzweig
1fb681e51d
pan/bi: Emit int CSEL instead of float by default
...
Will be needed when we use 1-bit booleans.
Signed-off-by: Alyssa Rosenzweig <alyssa@collabora.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10392 >
2021-05-03 15:10:20 +00:00
Alyssa Rosenzweig
cf2d575d63
pan/bi: Support 16-bit load_interpolated_input
...
Signed-off-by: Alyssa Rosenzweig <alyssa.rosenzweig@collabora.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10392 >
2021-05-03 15:10:20 +00:00
Alyssa Rosenzweig
d35075a7be
pan/bi: Union modifiers from across variants
...
itertools.groupby depends on sorting, so this code was quietly broken on
cases like FADD.v2f16.
Signed-off-by: Alyssa Rosenzweig <alyssa.rosenzweig@collabora.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10392 >
2021-05-03 15:10:20 +00:00
Alyssa Rosenzweig
394f3f8b74
pan/bi: Simplify Python expression
...
Signed-off-by: Alyssa Rosenzweig <alyssa.rosenzweig@collabora.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10392 >
2021-05-03 15:10:20 +00:00
Alyssa Rosenzweig
68c4a30434
pan/bi: Don't reference nir_lower_mediump_outputs
...
Nonexistant.
Signed-off-by: Alyssa Rosenzweig <alyssa@collabora.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10392 >
2021-05-03 15:10:20 +00:00
Alyssa Rosenzweig
1cb11969be
pan/bi: Add simple constant folding pass
...
Cleans up swizzle lowering, and will be used for other cleanup as
well (fancy texturing tends to create a lot of foldable code).
Signed-off-by: Alyssa Rosenzweig <alyssa@collabora.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10392 >
2021-05-03 15:10:20 +00:00
Alyssa Rosenzweig
84756b980c
pan/bi: Don't reference uninit source in ATOM_C1
...
Causes it to be live throughout the shader, causing register allocation
failures on some dEQP-GLES31 shaders.
Signed-off-by: Alyssa Rosenzweig <alyssa@collabora.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10392 >
2021-05-03 15:10:20 +00:00
Alyssa Rosenzweig
f9070f937f
pan/bi: Add missing sr_count to pseudo-atomics
...
Fixes missing prints for these.
Signed-off-by: Alyssa Rosenzweig <alyssa@collabora.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10392 >
2021-05-03 15:10:20 +00:00
Rhys Perry
d918a59d15
radv,ac/llvm: use a dword alignment for descriptor loads
...
RADV doesn't try to keep anything 16 or 32 byte aligned. RADV also seems
to create better code for some reason.
fossil-db (Sienna Cichlid):
Totals from 37693 (30.93% of 121873) affected shaders:
SGPRs: 1762792 -> 1785504 (+1.29%); split: -1.01%, +2.30%
VGPRs: 1761032 -> 1760808 (-0.01%); split: -0.09%, +0.07%
SpillSGPRs: 55793 -> 56011 (+0.39%); split: -3.49%, +3.88%
SpillVGPRs: 16766 -> 16387 (-2.26%); split: -3.99%, +1.73%
CodeSize: 82902228 -> 82781608 (-0.15%); split: -0.29%, +0.14%
Scratch: 3024896 -> 2987008 (-1.25%); split: -3.08%, +1.83%
MaxWaves: 919794 -> 920302 (+0.06%); split: +0.09%, -0.03%
shader-db (Sienna Cichlid):
Totals from affected shaders:
SGPRS: 3976 -> 3976 (0.00 %)
VGPRS: 3392 -> 3392 (0.00 %)
Spilled SGPRs: 0 -> 0 (0.00 %)
Spilled VGPRs: 0 -> 0 (0.00 %)
Private memory VGPRs: 0 -> 0 (0.00 %)
Scratch size: 0 -> 0 (0.00 %) dwords per thread
Code Size: 178792 -> 178980 (0.11 %) bytes
Max Waves: 1389 -> 1389 (0.00 %)
Signed-off-by: Rhys Perry <pendingchaos02@gmail.com >
Reviewed-by: Marek Olšák <marek.olsak@amd.com >
Cc: mesa-stable
Closes: https://gitlab.freedesktop.org/mesa/mesa/-/issues/4715
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10543 >
2021-05-03 14:52:40 +00:00
Connor Abbott
3d5c1c4989
tu: Fix SP_GS_PRIM_SIZE for large sizes
...
Based on the previous commit.
Fixes: 012773b ("turnip: Configure VPC for geometry shaders")
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10551 >
2021-05-03 14:06:24 +00:00
Connor Abbott
e7b7908f87
freedreno/a6xx: Fix SP_GS_PRIM_SIZE for large sizes
...
This fixes a few piglit hangs.
Fixes: 0eebedb ("freedreno/a6xx: Emit program state for GS")
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10551 >
2021-05-03 14:06:24 +00:00
Connor Abbott
0157076982
freedreno/a6xx: Better document SP_GS_PRIM_SIZE
...
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10551 >
2021-05-03 14:06:24 +00:00
Bas Nieuwenhuizen
edc600d025
radv: Only require DRM 3.23.
...
Turns out kernel 4.15 only goes up to amdgpu 3.23 . 3.35 is way
too new. Too new for e.g. ChromeOS.
Fixes: 1df4f11eb5 ("radv: require DRM 3.35+")
Closes: https://gitlab.freedesktop.org/mesa/mesa/-/issues/4728
Reviewed-by: Samuel Pitoiset <samuel.pitoiset@gmail.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10576 >
2021-05-03 13:55:48 +00:00
Michel Zou
ff58ea7d91
vulkan/wsi: avoid wsi_x11_check_for_dri3 for sw device
...
Disabling the check allows swapchains to be created on a remote
X Server using the xlib backend, which in turn allows Vulkan apps,
such as swapchain_images in Vulkan Samples, to run.
Closes #4323
Reviewed-by: Adam Jackson <ajax@redhat.com >
Acked-by: Michel Dänzer <mdaenzer@redhat.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10349 >
2021-05-03 13:33:08 +00:00
Antonio Caggiano
a67ea63718
panfrost: Fix invalid conversions
...
When compiling with a C++ compiler, invalid conversions are treated as
errors unless the fpermissive flag is provided. These changes fix all
invalid conversions encountered while including libpanfrost in a C++
project.
Signed-off-by: Antonio Caggiano <antonio.caggiano@collabora.com >
Reviewed-by: Boris Brezillon <boris.brezillon@collabora.com >
Acked-by: Alyssa Rosenzweig <alyssa.rosenzweig@collabora.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10468 >
2021-05-03 13:17:08 +00:00
Alyssa Rosenzweig
a976101da5
nir/opcodes: Reword confusing comment
...
Signed-off-by: Alyssa Rosenzweig <alyssa@collabora.com >
Reviewed-by: Jason Ekstrand <jason@jlekstrand.net >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10578 >
2021-05-03 12:51:47 +00:00
Samuel Pitoiset
12a00da800
radv/winsys: fix executing huge secondary command buffers on GFX6
...
If the secondary has a list of CS buffers, it should be copied to
the primary.
Fixes dEQP-VK.api.command_buffers.record_many_draws_secondary_2.
Cc: 21.1 mesa-stable
Signed-off-by: Samuel Pitoiset <samuel.pitoiset@gmail.com >
Reviewed-by: Bas Nieuwenhuizen <bas@basnieuwenhuizen.nl >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10547 >
2021-05-03 12:59:21 +02:00
Samuel Pitoiset
92f5ab55f4
radv/winsys: add GFX6_MAX_CS_SIZE instead of using a magic value
...
Signed-off-by: Samuel Pitoiset <samuel.pitoiset@gmail.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10547 >
2021-05-03 12:58:32 +02:00
Tony Wasserka
741e84f554
aco/spill: Fix improper handling of exec phis
...
The "continue" was placed in the wrong loop, leading to exec being
counted as a spilled register when it wasn't.
Reviewed-by: Daniel Schürmann <daniel@schuermann.dev >
Fixes: a56ddca4e8 ('aco: make all exec accesses non-temporaries')
Closes: https://gitlab.freedesktop.org/mesa/mesa/-/issues/4533
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10486 >
2021-05-03 10:31:07 +00:00
Karol Herbst
0c591ace9e
nvc0: fix implicit-fallthrough gcc warning
...
gcc warning:
../src/gallium/drivers/nouveau/nvc0/nvc0_screen.c: In function ‘nvc0_screen_get_compute_param’:
../src/gallium/drivers/nouveau/nvc0/nvc0_screen.c:623:7: warning: this statement may fall through [-Wimplicit-fallthrough=]
623 | switch (obj_class) {
| ^~~~~~
../src/gallium/drivers/nouveau/nvc0/nvc0_screen.c:634:4: note: here
634 | case PIPE_COMPUTE_CAP_MAX_PRIVATE_SIZE: /* l[] */
| ^~~~
Signed-off-by: Karol Herbst <kherbst@redhat.com >
Reviewed-by: Pierre Moreau <dev@pmoreau.org >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10544 >
2021-05-03 10:21:05 +00:00
Karol Herbst
99d4b13a32
nv50/query: fix stringop-overflow gcc warning
...
gcc warning:
../src/gallium/drivers/nouveau/nv50/nv50_query_hw_metric.c: In function ‘nv50_hw_metric_get_query_result’:
../src/gallium/drivers/nouveau/nv50/nv50_query_hw_metric.c:140:26: warning: ‘sm11_hw_metric_calc_result’ accessing 64 bytes in a region of size 32 [-Wstringop-overflow=]
140 | *(uint64_t *)result = sm11_hw_metric_calc_result(hq, res64);
| ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
../src/gallium/drivers/nouveau/nv50/nv50_query_hw_metric.c:140:26: note: referencing argument 2 of type ‘uint64_t *’ {aka ‘long unsigned int *’}
../src/gallium/drivers/nouveau/nv50/nv50_query_hw_metric.c:105:1: note: in a call to function ‘sm11_hw_metric_calc_result’
105 | sm11_hw_metric_calc_result(struct nv50_hw_query *hq, uint64_t res64[8])
| ^~~~~~~~~~~~~~~~~~~~~~~~~~
Signed-off-by: Karol Herbst <kherbst@redhat.com >
Reviewed-by: Pierre Moreau <dev@pmoreau.org >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10544 >
2021-05-03 10:21:05 +00:00
Icecream95
64246c3ae4
panfrost: Split panfrost_batch_submit to prevent stack overflows
...
panfrost_batch_submit can recurse to hundreds of levels to submit
dependencies, so split the actual submit code from the dependency
recursion, saving over a kilobyte of stack space per recursion
level. Enforce this with ATTRIBUTE_NOINLINE.
Use ATTRIBUTE_NOINLINE on panfrost_batch_submit itself as well to
prevent GCC from inlining the function into itself, which would use a
few hundred bytes of stack.
Reviewed-by: Boris Brezillon <boris.brezillon@collabora.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10574 >
2021-05-03 08:58:58 +00:00
Samuel Pitoiset
8b31092bcd
radv: only keep concurrent MSAA images compressed if TC-compat CMASK
...
Otherwise, we need a FMASK_DECOMPRESS which is only supported
on the gfx queue.
Fixes rendering with Forza Horizon 4 on Polaris10.
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/10482 >
2021-05-03 08:38:31 +00:00
Samuel Pitoiset
80f55e5163
radv: check if DCC is enabled when resolving different levels
...
Fixes an assertion triggered by new CTS:
dEQP-VK.renderpass2.suballocation.multisample_resolve.*_resolve_level_*
Looks like the driver should pass a range to radv_layout_dcc_compressed().
Cc: 21.1 mesa-stable
Signed-off-by: Samuel Pitoiset <samuel.pitoiset@gmail.com >
Reviewed-by: Bas Nieuwenhuizen <bas@basnieuwenhuizen.nl >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10502 >
2021-05-03 08:23:54 +02:00
Timothy Arceri
40c93e2f45
util: disable glthread in CSGO
...
Users have reported a rise in trust factor problems [1] since using
mesa builds containing 6f2017205e . Until we confirm its not a problem
disable glthread.
[1] https://github.com/ValveSoftware/csgo-osx-linux/issues/2630
Fixes: 6f2017205e ("dri: enable glthread + radeonsi workaround for CS:GO")
Closes: https://gitlab.freedesktop.org/mesa/mesa/-/issues/4710
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/10540 >
2021-05-03 05:40:19 +00:00
Alyssa Rosenzweig
080b05e29e
asahi: Add Gallium driver
...
Forked from noop, with some code from Panfrost.
Signed-off-by: Alyssa Rosenzweig <alyssa@rosenzweig.io >
Acked-by: Jason Ekstrand <jason@jlekstrand.net >
Acked-by: Bas Nieuwenhuizen <bas@basnieuwenhuizen.nl >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10582 >
2021-05-02 17:54:05 -04:00
Alyssa Rosenzweig
0ad6bacb73
asahi: Add vertex formats table
...
This all gets lowers anyway so it's not entirely clear if this is the
best approach, but these map formats that have native device_load
encodings. (and don't need shader unpack code)
Signed-off-by: Alyssa Rosenzweig <alyssa@rosenzweig.io >
Acked-by: Jason Ekstrand <jason@jlekstrand.net >
Acked-by: Bas Nieuwenhuizen <bas@basnieuwenhuizen.nl >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10582 >
2021-05-02 17:41:22 -04:00
Alyssa Rosenzweig
13f5b17078
asahi: Add some magic IOGPU routines
...
These turned out to be software defined structures consumed by the macOS
kernel (specifically, by IOGPUCommandQueue). I'm a bit bothered by the
sheer amount of random hex flying about, though Hector made some
progress on deciphering the structure. Nevertheless there's some comfort
knowing it's not actual hardware magic.
Signed-off-by: Alyssa Rosenzweig <alyssa@rosenzweig.io >
Acked-by: Jason Ekstrand <jason@jlekstrand.net >
Acked-by: Bas Nieuwenhuizen <bas@basnieuwenhuizen.nl >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10582 >
2021-05-02 17:41:22 -04:00
Alyssa Rosenzweig
7949fa4f9f
asahi: Add uniform upload routines
...
Effectively everything is treated as a sysval.
Signed-off-by: Alyssa Rosenzweig <alyssa@rosenzweig.io >
Acked-by: Jason Ekstrand <jason@jlekstrand.net >
Acked-by: Bas Nieuwenhuizen <bas@basnieuwenhuizen.nl >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10582 >
2021-05-02 17:41:22 -04:00
Alyssa Rosenzweig
c6cde558b5
asahi: Add pool data structure
...
Lifted from Panfrost.
Signed-off-by: Alyssa Rosenzweig <alyssa@rosenzweig.io >
Acked-by: Jason Ekstrand <jason@jlekstrand.net >
Acked-by: Bas Nieuwenhuizen <bas@basnieuwenhuizen.nl >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10582 >
2021-05-02 17:41:22 -04:00
Alyssa Rosenzweig
26b19bda30
asahi: Add device abstraction
...
Over IOKit or DRM, primarily for memory allocation. Common between
Gallium and Vulkan.
Signed-off-by: Alyssa Rosenzweig <alyssa@rosenzweig.io >
Acked-by: Jason Ekstrand <jason@jlekstrand.net >
Acked-by: Bas Nieuwenhuizen <bas@basnieuwenhuizen.nl >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10582 >
2021-05-02 17:41:21 -04:00
Alyssa Rosenzweig
67dd70395f
asahi: Add tiling routines
...
For the 64x64 Morton order pattern we know how to use for textures and
framebuffers. (AGX also supports a framebuffer compression scheme. This
is not that.)
Signed-off-by: Alyssa Rosenzweig <alyssa@rosenzweig.io >
Acked-by: Jason Ekstrand <jason@jlekstrand.net >
Acked-by: Bas Nieuwenhuizen <bas@basnieuwenhuizen.nl >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10582 >
2021-05-02 17:41:21 -04:00
Alyssa Rosenzweig
a426abcb46
asahi: Add command buffer decode helpers
...
Forked from Panfrost's pandecode. Like pandecode, most of the
heavylifting is generated with GenXML, so this is relatively simple.
Signed-off-by: Alyssa Rosenzweig <alyssa@rosenzweig.io >
Acked-by: Jason Ekstrand <jason@jlekstrand.net >
Acked-by: Bas Nieuwenhuizen <bas@basnieuwenhuizen.nl >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10582 >
2021-05-02 17:41:21 -04:00
Alyssa Rosenzweig
55c0956fd0
asahi: Add (clean room) IOKit uABI header
...
This only builds on macOS (depends on IOKit), where it is required for
command buffer submission and tracing the Metal blob.
Signed-off-by: Alyssa Rosenzweig <alyssa@rosenzweig.io >
Acked-by: Jason Ekstrand <jason@jlekstrand.net >
Acked-by: Bas Nieuwenhuizen <bas@basnieuwenhuizen.nl >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10582 >
2021-05-02 17:41:21 -04:00
Alyssa Rosenzweig
b67f148db7
asahi: Add a GenXML fork
...
Via Panfrost via v3d via Intel. Sour dough!
Signed-off-by: Alyssa Rosenzweig <alyssa@rosenzweig.io >
Acked-by: Jason Ekstrand <jason@jlekstrand.net >
Acked-by: Bas Nieuwenhuizen <bas@basnieuwenhuizen.nl >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10582 >
2021-05-02 17:41:21 -04:00
Alyssa Rosenzweig
0f556dbdc0
asahi: Add allocation data structure
...
Something half-way between what IOKit (macOS) and DRM (Linux) want.
Signed-off-by: Alyssa Rosenzweig <alyssa@rosenzweig.io >
Acked-by: Jason Ekstrand <jason@jlekstrand.net >
Acked-by: Bas Nieuwenhuizen <bas@basnieuwenhuizen.nl >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10582 >
2021-05-02 17:41:20 -04:00
Alyssa Rosenzweig
cad54e2721
asahi: Add command buffer XML definitions
...
Formatted for GenXML. Incomplete and probably riddled with errors, but a
good start.
Signed-off-by: Alyssa Rosenzweig <alyssa@rosenzweig.io >
Acked-by: Jason Ekstrand <jason@jlekstrand.net >
Acked-by: Bas Nieuwenhuizen <bas@basnieuwenhuizen.nl >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10582 >
2021-05-02 17:41:20 -04:00
Alyssa Rosenzweig
8cca28c9f1
asahi: Add hexdump utility
...
Used in our decoder.
Signed-off-by: Alyssa Rosenzweig <alyssa@rosenzweig.io >
Acked-by: Jason Ekstrand <jason@jlekstrand.net >
Acked-by: Bas Nieuwenhuizen <bas@basnieuwenhuizen.nl >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10582 >
2021-05-02 17:41:20 -04:00
Alyssa Rosenzweig
87ad9439d3
agx: Support bcsel
...
We're already using cmpsel in lots of places, pipe through the real
thing!
Signed-off-by: Alyssa Rosenzweig <alyssa@rosenzweig.io >
Acked-by: Jason Ekstrand <jason@jlekstrand.net >
Acked-by: Bas Nieuwenhuizen <bas@basnieuwenhuizen.nl >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10582 >
2021-05-02 17:41:20 -04:00
Alyssa Rosenzweig
e36a7f08df
agx: Pack cmpsel
...
Signed-off-by: Alyssa Rosenzweig <alyssa@rosenzweig.io >
Acked-by: Jason Ekstrand <jason@jlekstrand.net >
Acked-by: Bas Nieuwenhuizen <bas@basnieuwenhuizen.nl >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10582 >
2021-05-02 17:41:19 -04:00
Alyssa Rosenzweig
d3abe997ca
agx: Add b2i implementation
...
Another icmpsel variant.
Signed-off-by: Alyssa Rosenzweig <alyssa@rosenzweig.io >
Acked-by: Jason Ekstrand <jason@jlekstrand.net >
Acked-by: Bas Nieuwenhuizen <bas@basnieuwenhuizen.nl >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10582 >
2021-05-02 17:41:19 -04:00
Alyssa Rosenzweig
80edb8124d
agx: Implement b2f
...
Signed-off-by: Alyssa Rosenzweig <alyssa@rosenzweig.io >
Acked-by: Jason Ekstrand <jason@jlekstrand.net >
Acked-by: Bas Nieuwenhuizen <bas@basnieuwenhuizen.nl >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10582 >
2021-05-02 17:41:19 -04:00
Alyssa Rosenzweig
5a5abdc8d8
agx: Support 1-bit booleans
...
Signed-off-by: Alyssa Rosenzweig <alyssa@rosenzweig.io >
Acked-by: Jason Ekstrand <jason@jlekstrand.net >
Acked-by: Bas Nieuwenhuizen <bas@basnieuwenhuizen.nl >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10582 >
2021-05-02 17:41:19 -04:00
Alyssa Rosenzweig
9201d31eac
agx: Add min/max support
...
Signed-off-by: Alyssa Rosenzweig <alyssa@rosenzweig.io >
Acked-by: Jason Ekstrand <jason@jlekstrand.net >
Acked-by: Bas Nieuwenhuizen <bas@basnieuwenhuizen.nl >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10582 >
2021-05-02 17:41:19 -04:00
Alyssa Rosenzweig
9f55538834
agx: Pack texture ops
...
Signed-off-by: Alyssa Rosenzweig <alyssa@rosenzweig.io >
Acked-by: Jason Ekstrand <jason@jlekstrand.net >
Acked-by: Bas Nieuwenhuizen <bas@basnieuwenhuizen.nl >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10582 >
2021-05-02 17:41:18 -04:00
Alyssa Rosenzweig
257a8cc111
agx: Emit texture ops
...
Signed-off-by: Alyssa Rosenzweig <alyssa@rosenzweig.io >
Acked-by: Jason Ekstrand <jason@jlekstrand.net >
Acked-by: Bas Nieuwenhuizen <bas@basnieuwenhuizen.nl >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10582 >
2021-05-02 17:41:18 -04:00
Alyssa Rosenzweig
d555849c3c
agx: Add agx_tex_dim helper
...
Signed-off-by: Alyssa Rosenzweig <alyssa@rosenzweig.io >
Acked-by: Jason Ekstrand <jason@jlekstrand.net >
Acked-by: Bas Nieuwenhuizen <bas@basnieuwenhuizen.nl >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10582 >
2021-05-02 17:41:18 -04:00
Alyssa Rosenzweig
1455f33f9b
agx: Implement vertex_id
...
Preloaded to r5 in vertex shaders.
Signed-off-by: Alyssa Rosenzweig <alyssa@rosenzweig.io >
Acked-by: Jason Ekstrand <jason@jlekstrand.net >
Acked-by: Bas Nieuwenhuizen <bas@basnieuwenhuizen.nl >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10582 >
2021-05-02 17:41:18 -04:00
Alyssa Rosenzweig
7566466354
agx: Lower load_attr to device memory accesses
...
This is pretty annoying but not as catastrophic as I feared... at least,
until we need to support indirect access, non-native formats, or instancing.
Signed-off-by: Alyssa Rosenzweig <alyssa@rosenzweig.io >
Acked-by: Jason Ekstrand <jason@jlekstrand.net >
Acked-by: Bas Nieuwenhuizen <bas@basnieuwenhuizen.nl >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10582 >
2021-05-02 17:41:17 -04:00
Alyssa Rosenzweig
1c6f34f611
agx: Set flag on last st_vary instruction
...
Not sure what the point is but let's match the blob.
Signed-off-by: Alyssa Rosenzweig <alyssa@rosenzweig.io >
Acked-by: Jason Ekstrand <jason@jlekstrand.net >
Acked-by: Bas Nieuwenhuizen <bas@basnieuwenhuizen.nl >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10582 >
2021-05-02 17:41:17 -04:00
Alyssa Rosenzweig
033d4d09fc
agx: Implement load_ubo/kernel_input
...
Lower to a read from global memory at a base address specified in a
sysval.
Signed-off-by: Alyssa Rosenzweig <alyssa@rosenzweig.io >
Acked-by: Jason Ekstrand <jason@jlekstrand.net >
Acked-by: Bas Nieuwenhuizen <bas@basnieuwenhuizen.nl >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10582 >
2021-05-02 17:41:17 -04:00
Alyssa Rosenzweig
1f23e9c06e
agx: Add sysval management helper
...
Will be used for lowering UBO loads, among other applications.
Signed-off-by: Alyssa Rosenzweig <alyssa@rosenzweig.io >
Acked-by: Jason Ekstrand <jason@jlekstrand.net >
Acked-by: Bas Nieuwenhuizen <bas@basnieuwenhuizen.nl >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10582 >
2021-05-02 17:41:17 -04:00
Alyssa Rosenzweig
77e7168ae2
agx: Implement limited case of i2i16/i2i32 as iadd
...
Signed-off-by: Alyssa Rosenzweig <alyssa@rosenzweig.io >
Acked-by: Jason Ekstrand <jason@jlekstrand.net >
Acked-by: Bas Nieuwenhuizen <bas@basnieuwenhuizen.nl >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10582 >
2021-05-02 17:41:17 -04:00
Alyssa Rosenzweig
e444e3450d
agx: Propagate immediates
...
8-bit integers can be inlined to immediates on integer ops. Likewise,
floats with simple representations can be converted to 8-bit minifloats
and inlined on float ops.
Signed-off-by: Alyssa Rosenzweig <alyssa@rosenzweig.io >
Acked-by: Jason Ekstrand <jason@jlekstrand.net >
Acked-by: Bas Nieuwenhuizen <bas@basnieuwenhuizen.nl >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10582 >
2021-05-02 17:41:16 -04:00
Alyssa Rosenzweig
b077a73bfe
agx: Propagate fmov backwards as well
...
Primarily for fsat. Also folds conversions but this is more of an
accident, and it doesn't do so optimally (due to the f2f16/f2f32
orientation issue outlined in the pass comments).
Signed-off-by: Alyssa Rosenzweig <alyssa@rosenzweig.io >
Acked-by: Jason Ekstrand <jason@jlekstrand.net >
Acked-by: Bas Nieuwenhuizen <bas@basnieuwenhuizen.nl >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10582 >
2021-05-02 17:41:16 -04:00
Alyssa Rosenzweig
0f58e8dabe
agx: Add dead code eliminator
...
Signed-off-by: Alyssa Rosenzweig <alyssa@rosenzweig.io >
Acked-by: Jason Ekstrand <jason@jlekstrand.net >
Acked-by: Bas Nieuwenhuizen <bas@basnieuwenhuizen.nl >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10582 >
2021-05-02 17:41:16 -04:00
Alyssa Rosenzweig
28801b4849
agx: Add forward optimizing pass for fmov
...
Explain the ideas behind our SSA-based optimizer (inspired by ACO's,
thank you to Daniel Schuermann for discussing this with me in the
context of Bifrost), and implement the subset needed to propagate
abs/neg through.
Signed-off-by: Alyssa Rosenzweig <alyssa@rosenzweig.io >
Acked-by: Jason Ekstrand <jason@jlekstrand.net >
Acked-by: Bas Nieuwenhuizen <bas@basnieuwenhuizen.nl >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10582 >
2021-05-02 17:41:16 -04:00
Alyssa Rosenzweig
e50bae00f4
agx: Add 32-bit bitwise shifts
...
Only ishr has an actual native instruction, the others are special cases
of the bitfield insertion/extraction ops.
Signed-off-by: Alyssa Rosenzweig <alyssa@rosenzweig.io >
Acked-by: Jason Ekstrand <jason@jlekstrand.net >
Acked-by: Bas Nieuwenhuizen <bas@basnieuwenhuizen.nl >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10582 >
2021-05-02 17:41:16 -04:00
Alyssa Rosenzweig
17bb5a067a
agx: Add saturated integer add/subtract support
...
Just a flag on the regular iadd instruction.
Signed-off-by: Alyssa Rosenzweig <alyssa@rosenzweig.io >
Acked-by: Jason Ekstrand <jason@jlekstrand.net >
Acked-by: Bas Nieuwenhuizen <bas@basnieuwenhuizen.nl >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10582 >
2021-05-02 17:41:15 -04:00
Alyssa Rosenzweig
86ae965ea4
agx: Add iadd/imad integer arithmetic
...
Lots of optimizations will be possible later on.
Signed-off-by: Alyssa Rosenzweig <alyssa@rosenzweig.io >
Acked-by: Jason Ekstrand <jason@jlekstrand.net >
Acked-by: Bas Nieuwenhuizen <bas@basnieuwenhuizen.nl >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10582 >
2021-05-02 17:41:15 -04:00
Alyssa Rosenzweig
0c21513693
agx: Add bitwise operations
...
This get translated to bitop with the corresponding truth table with
some builder syntax sugar.
Signed-off-by: Alyssa Rosenzweig <alyssa@rosenzweig.io >
Acked-by: Jason Ekstrand <jason@jlekstrand.net >
Acked-by: Bas Nieuwenhuizen <bas@basnieuwenhuizen.nl >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10582 >
2021-05-02 17:41:15 -04:00
Alyssa Rosenzweig
c06dcaf0a0
agx: Implement native int->float conversions
...
This time 8, 16, and 32-bit sources are supported natively, but not
64-bit.
Signed-off-by: Alyssa Rosenzweig <alyssa@rosenzweig.io >
Acked-by: Jason Ekstrand <jason@jlekstrand.net >
Acked-by: Bas Nieuwenhuizen <bas@basnieuwenhuizen.nl >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10582 >
2021-05-02 17:41:15 -04:00
Alyssa Rosenzweig
2126848771
agx: Implement native float->int conversions
...
No 8-bit or 64-bit yet since those need lowerings.
Signed-off-by: Alyssa Rosenzweig <alyssa@rosenzweig.io >
Acked-by: Jason Ekstrand <jason@jlekstrand.net >
Acked-by: Bas Nieuwenhuizen <bas@basnieuwenhuizen.nl >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10582 >
2021-05-02 17:41:14 -04:00
Alyssa Rosenzweig
8191adb0d9
agx: Add minifloat tests
...
Signed-off-by: Alyssa Rosenzweig <alyssa@rosenzweig.io >
Acked-by: Jason Ekstrand <jason@jlekstrand.net >
Acked-by: Bas Nieuwenhuizen <bas@basnieuwenhuizen.nl >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10582 >
2021-05-02 17:41:14 -04:00
Alyssa Rosenzweig
c89ab07996
agx: Add 8-bit AGX minifloat routines
...
Signed-off-by: Alyssa Rosenzweig <alyssa@rosenzweig.io >
Acked-by: Jason Ekstrand <jason@jlekstrand.net >
Acked-by: Bas Nieuwenhuizen <bas@basnieuwenhuizen.nl >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10582 >
2021-05-02 17:41:14 -04:00
Alyssa Rosenzweig
1f77aa95ec
agx: Implement fsin/fcos
...
First, we lower to fsin_agx and some ALU in NIR. Then, we implement
fsin_agx with the underlying transcental ops.
Signed-off-by: Alyssa Rosenzweig <alyssa@rosenzweig.io >
Acked-by: Jason Ekstrand <jason@jlekstrand.net >
Acked-by: Bas Nieuwenhuizen <bas@basnieuwenhuizen.nl >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10582 >
2021-05-02 17:41:14 -04:00
Alyssa Rosenzweig
b5a3845f9a
agx: Implement simple floating point ops
...
These are all direct translations of NIR->AIR.
Signed-off-by: Alyssa Rosenzweig <alyssa@rosenzweig.io >
Acked-by: Jason Ekstrand <jason@jlekstrand.net >
Acked-by: Bas Nieuwenhuizen <bas@basnieuwenhuizen.nl >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10582 >
2021-05-02 17:41:14 -04:00
Alyssa Rosenzweig
8648b2be0b
agx: Implement ld_vary
...
Signed-off-by: Alyssa Rosenzweig <alyssa@rosenzweig.io >
Acked-by: Jason Ekstrand <jason@jlekstrand.net >
Acked-by: Bas Nieuwenhuizen <bas@basnieuwenhuizen.nl >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10582 >
2021-05-02 17:41:13 -04:00
Alyssa Rosenzweig
e54fdc0fac
agx: Terminate programs with stop and traps
...
The function of stop is clear. The function of trap, let alone a whole
sled of them, is less so. Maybe a debugging feature for later.
Signed-off-by: Alyssa Rosenzweig <alyssa@rosenzweig.io >
Acked-by: Jason Ekstrand <jason@jlekstrand.net >
Acked-by: Bas Nieuwenhuizen <bas@basnieuwenhuizen.nl >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10582 >
2021-05-02 17:41:13 -04:00
Alyssa Rosenzweig
5b34cc40ca
agx: Add st_vary(_final) instruction packing
...
Signed-off-by: Alyssa Rosenzweig <alyssa@rosenzweig.io >
Acked-by: Jason Ekstrand <jason@jlekstrand.net >
Acked-by: Bas Nieuwenhuizen <bas@basnieuwenhuizen.nl >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10582 >
2021-05-02 17:41:13 -04:00
Alyssa Rosenzweig
7832945747
agx: Add packing for memory loads/stores
...
Encoding is dramatically different from ALU.
Signed-off-by: Alyssa Rosenzweig <alyssa@rosenzweig.io >
Acked-by: Jason Ekstrand <jason@jlekstrand.net >
Acked-by: Bas Nieuwenhuizen <bas@basnieuwenhuizen.nl >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10582 >
2021-05-02 17:41:13 -04:00
Alyssa Rosenzweig
f2d264e191
agx: Add instruction packing
...
Signed-off-by: Alyssa Rosenzweig <alyssa@rosenzweig.io >
Acked-by: Jason Ekstrand <jason@jlekstrand.net >
Acked-by: Bas Nieuwenhuizen <bas@basnieuwenhuizen.nl >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10582 >
2021-05-02 17:41:13 -04:00
Alyssa Rosenzweig
c215895eae
agx: Add a trivial register allocator
...
Signed-off-by: Alyssa Rosenzweig <alyssa@rosenzweig.io >
Acked-by: Jason Ekstrand <jason@jlekstrand.net >
Acked-by: Bas Nieuwenhuizen <bas@basnieuwenhuizen.nl >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10582 >
2021-05-02 17:41:12 -04:00
Alyssa Rosenzweig
583684b5a7
agx: Add instruction printing
...
Signed-off-by: Alyssa Rosenzweig <alyssa@rosenzweig.io >
Acked-by: Jason Ekstrand <jason@jlekstrand.net >
Acked-by: Bas Nieuwenhuizen <bas@basnieuwenhuizen.nl >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10582 >
2021-05-02 17:41:12 -04:00
Alyssa Rosenzweig
8af9822d14
agx: Implement fragment_out
...
For a single colour render target.
Signed-off-by: Alyssa Rosenzweig <alyssa@rosenzweig.io >
Acked-by: Jason Ekstrand <jason@jlekstrand.net >
Acked-by: Bas Nieuwenhuizen <bas@basnieuwenhuizen.nl >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10582 >
2021-05-02 17:41:12 -04:00
Alyssa Rosenzweig
0079783428
agx: Implement vec2/vec3/vec4 ops
...
As p_combine, to un-stub emit_alu.
Signed-off-by: Alyssa Rosenzweig <alyssa@rosenzweig.io >
Acked-by: Jason Ekstrand <jason@jlekstrand.net >
Acked-by: Bas Nieuwenhuizen <bas@basnieuwenhuizen.nl >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10582 >
2021-05-02 17:41:12 -04:00
Alyssa Rosenzweig
7ad11e3923
agx: Add agx_alu_src_index helper for emit_alu
...
Since we don't use abs/neg in NIR, this just needs to construct
p_extract ops to deal with swizzles.
Signed-off-by: Alyssa Rosenzweig <alyssa@rosenzweig.io >
Acked-by: Jason Ekstrand <jason@jlekstrand.net >
Acked-by: Bas Nieuwenhuizen <bas@basnieuwenhuizen.nl >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10582 >
2021-05-02 17:41:12 -04:00
Alyssa Rosenzweig
22886f50f9
agx: Implement direct st_vary
...
Indirection can come later, if at all..
Signed-off-by: Alyssa Rosenzweig <alyssa@rosenzweig.io >
Acked-by: Jason Ekstrand <jason@jlekstrand.net >
Acked-by: Bas Nieuwenhuizen <bas@basnieuwenhuizen.nl >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10582 >
2021-05-02 17:41:11 -04:00
Alyssa Rosenzweig
fde66f0aa8
agx: Implement load_const as mov
...
Signed-off-by: Alyssa Rosenzweig <alyssa@rosenzweig.io >
Acked-by: Jason Ekstrand <jason@jlekstrand.net >
Acked-by: Bas Nieuwenhuizen <bas@basnieuwenhuizen.nl >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10582 >
2021-05-02 17:41:11 -04:00
Alyssa Rosenzweig
2bfe1a61c5
agx: Stub emit_intrinsic
...
Signed-off-by: Alyssa Rosenzweig <alyssa@rosenzweig.io >
Acked-by: Jason Ekstrand <jason@jlekstrand.net >
Acked-by: Bas Nieuwenhuizen <bas@basnieuwenhuizen.nl >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10582 >
2021-05-02 17:41:11 -04:00
Alyssa Rosenzweig
075e6be90c
agx: Stub NIR instruction iteration
...
Signed-off-by: Alyssa Rosenzweig <alyssa@rosenzweig.io >
Acked-by: Jason Ekstrand <jason@jlekstrand.net >
Acked-by: Bas Nieuwenhuizen <bas@basnieuwenhuizen.nl >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10582 >
2021-05-02 17:41:11 -04:00
Alyssa Rosenzweig
186c56a2d4
agx: Stub control flow walking
...
From Bifrost. We'll need to diverge (no pun intended) due to exec_mask
handling specific to Apple.
Signed-off-by: Alyssa Rosenzweig <alyssa@rosenzweig.io >
Acked-by: Jason Ekstrand <jason@jlekstrand.net >
Acked-by: Bas Nieuwenhuizen <bas@basnieuwenhuizen.nl >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10582 >
2021-05-02 17:41:10 -04:00
Alyssa Rosenzweig
8b8c1a2827
agx: Remap varyings to match AGX ABI
...
It's not clear if this is software or hardware defined, but until we
know more about linkage, let's match the blob. Fixes dEQP issues with
gl_PointSize.
Signed-off-by: Alyssa Rosenzweig <alyssa@rosenzweig.io >
Acked-by: Jason Ekstrand <jason@jlekstrand.net >
Acked-by: Bas Nieuwenhuizen <bas@basnieuwenhuizen.nl >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10582 >
2021-05-02 17:41:10 -04:00
Alyssa Rosenzweig
2470a080d2
agx: Stub NIR backend compiler
...
A fork of the Bifrost compiler, tailored to AGX. nir_register support is
removed, as I want to use an SSA-based allocator for AGX. (There are no
VLIW-like requirements and extremely limited vector semantics, so we can
use an ACO approach with ease.)
Signed-off-by: Alyssa Rosenzweig <alyssa@rosenzweig.io >
Acked-by: Jason Ekstrand <jason@jlekstrand.net >
Acked-by: Bas Nieuwenhuizen <bas@basnieuwenhuizen.nl >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10582 >
2021-05-02 17:41:10 -04:00
Alyssa Rosenzweig
719bf5152f
agx: Generate builder routines
...
Signed-off-by: Alyssa Rosenzweig <alyssa@rosenzweig.io >
Acked-by: Jason Ekstrand <jason@jlekstrand.net >
Acked-by: Bas Nieuwenhuizen <bas@basnieuwenhuizen.nl >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10582 >
2021-05-02 17:41:10 -04:00
Alyssa Rosenzweig
07f87500e3
agx: Generate runtime-accessible opcode table
...
Signed-off-by: Alyssa Rosenzweig <alyssa@rosenzweig.io >
Acked-by: Jason Ekstrand <jason@jlekstrand.net >
Acked-by: Bas Nieuwenhuizen <bas@basnieuwenhuizen.nl >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10582 >
2021-05-02 17:41:10 -04:00
Alyssa Rosenzweig
c9fe9ce998
agx: Generate opcode list
...
Signed-off-by: Alyssa Rosenzweig <alyssa@rosenzweig.io >
Acked-by: Jason Ekstrand <jason@jlekstrand.net >
Acked-by: Bas Nieuwenhuizen <bas@basnieuwenhuizen.nl >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10582 >
2021-05-02 17:41:09 -04:00
Alyssa Rosenzweig
50b5c94885
agx: Add opcode descriptions as Python
...
Pattern lifted from NIR.
Signed-off-by: Alyssa Rosenzweig <alyssa@rosenzweig.io >
Acked-by: Jason Ekstrand <jason@jlekstrand.net >
Acked-by: Bas Nieuwenhuizen <bas@basnieuwenhuizen.nl >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10582 >
2021-05-02 17:41:09 -04:00
Alyssa Rosenzweig
972409dacb
asahi: Stub command-line compiler for AGX G13B
...
Based on the Bifrost standalone compiler, which was based on Midgard's
standalone compiler, which was based on Freedreno's standalone compiler,
which was.....
It's like sour dough!
Signed-off-by: Alyssa Rosenzweig <alyssa@rosenzweig.io >
Acked-by: Jason Ekstrand <jason@jlekstrand.net >
Acked-by: Bas Nieuwenhuizen <bas@basnieuwenhuizen.nl >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10582 >
2021-05-02 17:41:09 -04:00
Alyssa Rosenzweig
0ea67e57e5
nir: Add fsin_agx opcode
...
Used to split up the fsin/fcos lowering for AGX between NIR and the
backend, to permit algebraic optimizations without polluting NIR with
too many hardware details. The backend NIR lowering produces an
fmul/ffma of the input so we can optimize code like sin(2*x).
Signed-off-by: Alyssa Rosenzweig <alyssa@rosenzweig.io >
Reviewed-by: Jason Ekstrand <jason@jlekstrand.net >
Acked-by: Bas Nieuwenhuizen <bas@basnieuwenhuizen.nl >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10582 >
2021-05-02 17:41:09 -04:00
Alyssa Rosenzweig
e07a2a0f18
util/bitset: Add BITSET_COUNT helper
...
Expressible as a prefix sum but that's a bit unnatural, so add a
convenience helper.
Signed-off-by: Alyssa Rosenzweig <alyssa@rosenzweig.io >
Reviewed-by: Mike Blumenkrants <michael.blumenkrantz@gmail.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10581 >
2021-05-02 20:38:28 +00:00
Lionel Landwerlin
231651fd89
anv: implement VK_KHR_fragment_shading_rate
...
Available on Gen11+.
v2: Order shading rate in correct order (Samuel)
v3: Move CPS_STATE emission to genX_state.c
v4: Don't override various output structures (Jason)
v5: Rebase on top master (Lionel)
v6: Fix invalid VkPhysicalDeviceFragmentShadingRatePropertiesKHR
(min|max)FragmentShadingRateAttachmentTexelSize values (Ken)
Drop #endif comment
v7: Limit extension to Gfx11+ (Lionel)
Support conservative raster (Lionel)
Signed-off-by: Lionel Landwerlin <lionel.g.landwerlin@intel.com >
Reviewed-by: Kenneth Graunke <kenneth@whitecape.org >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/7455 >
2021-05-02 20:20:06 +00:00
Jason Ekstrand
34c560ae95
intel/fs: Stop using brw_dp_read/write_desc in Gen7+ only code
...
Those helpers exist primarily to sort out some of the weirdness around
Gen4-6 dataport access. On Gen5 and earlier, everything was called
"dataport" and, instead of the SFID we have today there was a "target
cache" parameter in the descriptor. There are also some bits that moved
around on various gens depending on read vs. write. Starting with Gen6,
most things which target one of the data cache SFIDs should use
brw_dp_desc() instead.
v2: Drop backward comment (Ken)
Reviewed-by: Lionel Landwerlin <lionel.g.landwerlin@intel.com >
Reviewed-by: Kenneth Graunke <kenneth@whitecape.org >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/7455 >
2021-05-02 20:20:06 +00:00
Jason Ekstrand
2e7656ae2f
intel/eu: SVB writes only happen on Gen6
...
It's a Gen6 XFB thing. It's never used for anything else so there's no
point in having a target cache switch.
Reviewed-by: Lionel Landwerlin <lionel.g.landwerlin@intel.com >
Reviewed-by: Kenneth Graunke <kenneth@whitecape.org >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/7455 >
2021-05-02 20:20:06 +00:00
Lionel Landwerlin
0421690f83
intel/compiler: add restrictions related to coarse pixel shading
...
v2: Update to BITSET_TEST()
Signed-off-by: Lionel Landwerlin <lionel.g.landwerlin@intel.com >
Reviewed-by: Kenneth Graunke <kenneth@whitecape.org >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/7455 >
2021-05-02 20:20:06 +00:00
Lionel Landwerlin
81f369c93b
intel/compiler: add coarse pixel offset on Gfx12.5+
...
Gfx12.5 has a slightly different code path.
v2: Document the oddness
Signed-off-by: Lionel Landwerlin <lionel.g.landwerlin@intel.com >
Reviewed-by: Kenneth Graunke <kenneth@whitecape.org >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/7455 >
2021-05-02 20:20:06 +00:00
Lionel Landwerlin
6d4070f3dd
intel/compiler: add support for fragment coordinate with coarse pixels
...
v2: Drop new internal opcodes (Jason)
Simplify code (Jason)
v3: Add Z computation for coarse pixels
v4: Document things a little
Signed-off-by: Lionel Landwerlin <lionel.g.landwerlin@intel.com >
Reviewed-by: Kenneth Graunke <kenneth@whitecape.org >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/7455 >
2021-05-02 20:20:06 +00:00
Lionel Landwerlin
a297061524
intel/compiler: add support for fragment shading rate variable
...
v2: Drop old register type initializers (Jason)
Simplify instruction snippet (Jason)
Signed-off-by: Lionel Landwerlin <lionel.g.landwerlin@intel.com >
Reviewed-by: Kenneth Graunke <kenneth@whitecape.org >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/7455 >
2021-05-02 20:20:06 +00:00
Lionel Landwerlin
b6332fc4a8
intel/compiler: handle coarse pixel in render target writes descriptors
...
v2: Use the new inst->ex_desc field (Jason)
v3: Drop CPS LoD compensation from sampler messages (Lionel)
v4: Drop useless uses_rate_shading (Ken)
Signed-off-by: Lionel Landwerlin <lionel.g.landwerlin@intel.com >
Reviewed-by: Kenneth Graunke <kenneth@whitecape.org >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/7455 >
2021-05-02 20:20:06 +00:00
Lionel Landwerlin
d665c2dcf0
intel/compiler: use existing helpers to pull bits of descriptors
...
v2: Use new RT descriptor helper
Signed-off-by: Lionel Landwerlin <lionel.g.landwerlin@intel.com >
Reviewed-by: Kenneth Graunke <kenneth@whitecape.org >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/7455 >
2021-05-02 20:20:06 +00:00
Lionel Landwerlin
64551610d1
intel/compiler: rework message descriptors for render targets
...
Render target message descriptors are slightly different from the
dataport ones. In particular the msg_type field is on bits 14:17 for
RT while bits 14:18 for DP.
v2: Drop unused send_commit_msg field in brw_fb_write_desc() (Ken)
v3: Rebase on top renaming (Lionel)
Signed-off-by: Lionel Landwerlin <lionel.g.landwerlin@intel.com >
Suggested-by: Jason Ekstrand <jason@jlekstrand.net >
Reviewed-by: Kenneth Graunke <kenneth@whitecape.org >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/7455 >
2021-05-02 20:20:06 +00:00
Lionel Landwerlin
dabaaaf6c7
intel/compiler: make sure we keep the lowest dispatch limit
...
Signed-off-by: Lionel Landwerlin <lionel.g.landwerlin@intel.com >
Reviewed-by: Jason Ekstrand <jason@jlekstrand.net >
Reviewed-by: Kenneth Graunke <kenneth@whitecape.org >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/7455 >
2021-05-02 20:20:06 +00:00
Lionel Landwerlin
4dcfb18a82
intel/decoder: decode CPS_STATE
...
Signed-off-by: Lionel Landwerlin <lionel.g.landwerlin@intel.com >
Reviewed-by: Jason Ekstrand <jason@jlekstrand.net >
Reviewed-by: Kenneth Graunke <kenneth@whitecape.org >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/7455 >
2021-05-02 20:20:06 +00:00
Lionel Landwerlin
b1622af394
intel/genxml: Add coarse pixel shading instructions
...
v2: Add Gen12.5
Signed-off-by: Lionel Landwerlin <lionel.g.landwerlin@intel.com >
Reviewed-by: Kenneth Graunke <kenneth@whitecape.org >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/7455 >
2021-05-02 20:20:06 +00:00
Lionel Landwerlin
bbfc959d03
intel/dev: printout correct subslice/dualsubslice name
...
Signed-off-by: Lionel Landwerlin <lionel.g.landwerlin@intel.com >
Reviewed-by: Jason Ekstrand <jason@jlekstrand.net >
Reviewed-by: Kenneth Graunke <kenneth@whitecape.org >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/7455 >
2021-05-02 20:20:06 +00:00
Rob Clark
f3d2fade82
freedreno: Fix TC last_fence optimization
...
Grabbing the fence value in fd_fence_repopulate() without waiting on
fd_submit_fence::ready doesn't work with async flushes, since we are
waiting for the first flush to complete (ie. we don't have the kernel-
side fence value yet). Just simplify it and make the "repopulated"
fence delagate to the original fence.
Fixes: e9a9ac6f77 ("freedreno/drm: Async submit support")
Closes: https://gitlab.freedesktop.org/mesa/mesa/-/issues/4726
Signed-off-by: Rob Clark <robdclark@chromium.org >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10567 >
2021-05-02 15:17:25 +00:00
Rob Clark
c554757bc2
freedreno/drm: Initialize control->fence
...
Don't rely on getting a zero'd out buffer, we could hit the bo-cache.
Fixes: 7dabd62464 ("freedreno/drm: Userspace fences")
Signed-off-by: Rob Clark <robdclark@chromium.org >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10567 >
2021-05-02 15:17:25 +00:00
Vasily Khoruzhick
636a7cf84b
lima: switch resource to linear layout if there's to many full updates
...
Overwriting entire resource multiple times indicates streaming and in this
case it's more efficient to use linear layout to avoid expensive linear->tiled
conversions.
Reviewed-by: Erico Nunes <nunes.erico@gmail.com >
Signed-off-by: Vasily Khoruzhick <anarsoul@gmail.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10572 >
2021-05-02 14:55:13 +00:00
Vinson Lee
d6356b81a4
glx: Fix macOS build.
...
In file included from ../src/glx/apple/apple_glx_context.c:49:
../src/glx/glxclient.h:56:10: fatal error: 'loader.h' file not found
^~~~~~~~~~
Fixes: 1cb664c15c ("glx: s/dri_message/glx_message/")
Closes: https://gitlab.freedesktop.org/mesa/mesa/-/issues/4702
Signed-off-by: Vinson Lee <vlee@freedesktop.org >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10568 >
2021-05-02 14:16:07 +00:00
Bastian Beranek
960c86d678
glx: Assign unique serial number to GLXBadFBConfig error
...
Since commit f39fd3dce7 a new GLX error is issued in case context creation
fails. This broke wine on certain hardware: While wine installs an error handler
to ignore this kind of error, it does not function because it expects the
dpy->request serial number of the error to be incremented since the installation
of the handler.
Workaround this by artificially increasing the request number. This also
guarantees a unique serial number for the error.
Fixes: f39fd3dce7
Closes: https://gitlab.freedesktop.org/mesa/mesa/-/issues/3969
Signed-off-by: Bastian Beranek <bastian.beischer@rwth-aachen.de >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10565 >
2021-05-02 00:36:03 +00:00
Ilia Mirkin
3326861f4f
nv50: add indirect compute support
...
There's no hardware support for anything indirect, so just read the
parameters out.
Signed-off-by: Ilia Mirkin <imirkin@alum.mit.edu >
Reviewed-by: Karol Herbst <kherbst@redhat.com >
Reviewed-by: Pierre Moreau <dev@pmoreau.org >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10164 >
2021-05-01 20:04:21 +00:00
Ilia Mirkin
b53b96a86a
nv50: add support for doing membars
...
This requires an address that's safe to read from.
Signed-off-by: Ilia Mirkin <imirkin@alum.mit.edu >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10164 >
2021-05-01 20:04:21 +00:00
Ilia Mirkin
f451854f39
nv50: add remapping of buffers/images into unified space
...
This allows us to use up to 15 images or buffers (but not both). GL
supports the concept of combined resource maximums though.
Signed-off-by: Ilia Mirkin <imirkin@alum.mit.edu >
Acked-by: Pierre Moreau <dev@pmoreau.org >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10164 >
2021-05-01 20:04:21 +00:00
Ilia Mirkin
58d47ca324
nv50: add compute invocations counter
...
This is a purely software counter alongside the other hardware counters
for ease of use and consistency. However we have to make room for it in
the allocated query space. Use this opportunity to make the nv50 queries
work like the nvc0 ones in terms of space allocation.
Signed-off-by: Ilia Mirkin <imirkin@alum.mit.edu >
Reviewed-by: Pierre Moreau <dev@pmoreau.org >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10164 >
2021-05-01 20:04:21 +00:00
Ilia Mirkin
bd2f14a5ea
nv50/ir: add lowering for shared atomics
...
This is best-effort for pre-nva0 ... works with a single invocation,
i.e. no locking.
Signed-off-by: Ilia Mirkin <imirkin@alum.mit.edu >
Acked-by: Pierre Moreau <dev@pmoreau.org >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10164 >
2021-05-01 20:04:21 +00:00
Ilia Mirkin
6b1a526ac5
nv50/ir: add surface op lowering
...
This handles BUFQ, SUQ, as well as all the various texture types and
formats, driven by data supplied by the driver (and shader itself).
TODO:
- 2d linear surfaces
- format via key for writeonly
These will be included in a later change. ES3.1 doesn't require
writeonly, and it's very hard to generate a 2d linear surface.
Signed-off-by: Ilia Mirkin <imirkin@alum.mit.edu >
Acked-by: Pierre Moreau <dev@pmoreau.org >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10164 >
2021-05-01 20:04:21 +00:00
Ilia Mirkin
67f98497af
nv50: pass surface/buffer parameters to shader via aux buffer
...
These are needed to implement things like imageSize() as well as feed
data into lowering logic for various access types not handled by the
hardware.
Signed-off-by: Ilia Mirkin <imirkin@alum.mit.edu >
Reviewed-by: Pierre Moreau <dev@pmoreau.org >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10164 >
2021-05-01 20:04:21 +00:00
Ilia Mirkin
e762061127
nv50/ir: optimize shift of 0 bits
...
Signed-off-by: Ilia Mirkin <imirkin@alum.mit.edu >
Reviewed-by: Karol Herbst <kherbst@redhat.com >
Reviewed-by: Pierre Moreau <dev@pmoreau.org >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10164 >
2021-05-01 20:04:21 +00:00
Ilia Mirkin
dbdc2b160c
nv50/ir: wipe any info about memory when seeing a locking op
...
Signed-off-by: Ilia Mirkin <imirkin@alum.mit.edu >
Reviewed-by: Pierre Moreau <dev@pmoreau.org >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10164 >
2021-05-01 20:04:21 +00:00
Ilia Mirkin
1cf864ef9e
nv50/ir: mark ATOM as having 3 arguments
...
Otherwise the final argument doesn't get emitted for CAS in the nv50
emitter.
Signed-off-by: Ilia Mirkin <imirkin@alum.mit.edu >
Reviewed-by: Karol Herbst <kherbst@redhat.com >
Reviewed-by: Pierre Moreau <dev@pmoreau.org >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10164 >
2021-05-01 20:04:21 +00:00
Ilia Mirkin
348db055dd
nv50/ir: "zero" register does not work with g[] memory
...
Evidence suggests that having it anywhere, even as a regular e.g. atom
argument, causes issues.
Signed-off-by: Ilia Mirkin <imirkin@alum.mit.edu >
Reviewed-by: Karol Herbst <kherbst@redhat.com >
Acked-by: Pierre Moreau <dev@pmoreau.org >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10164 >
2021-05-01 20:04:21 +00:00
Ilia Mirkin
21f9b1cbe7
nv50/ir: refine limitation on load/store loading offsets, include atomics
...
Note that shared memory loads can actually do offsets. The restrictions
vary by generation, this will be added in a later change.
Signed-off-by: Ilia Mirkin <imirkin@alum.mit.edu >
Reviewed-by: Karol Herbst <kherbst@redhat.com >
Reviewed-by: Pierre Moreau <dev@pmoreau.org >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10164 >
2021-05-01 20:04:21 +00:00
Ilia Mirkin
c95d2a86d3
nv50/ir: offset accesses to shared memory
...
Ideally this should include the size of the inputs as well. This will be
updated when we add support for kernels which take actual inputs.
Signed-off-by: Ilia Mirkin <imirkin@alum.mit.edu >
Reviewed-by: Karol Herbst <kherbst@redhat.com >
Reviewed-by: Pierre Moreau <dev@pmoreau.org >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10164 >
2021-05-01 20:04:21 +00:00
Marek Olšák
967757a208
gallium+(u_threaded,r300,r600,radeonsi): move transfer offset into pipe_transfer
...
Let's use the 4 bytes of unused padding usefully in pipe_transfer.
Reviewed-By: Mike Blumenkrantz <michael.blumenkrantz@gmail.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10527 >
2021-05-01 17:38:42 +00:00
Marek Olšák
6005b86893
gallium: remove 4 bytes from pipe_transfer
...
Reviewed-By: Mike Blumenkrantz <michael.blumenkrantz@gmail.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10527 >
2021-05-01 17:38:42 +00:00
Marek Olšák
00c30dad78
gallium: renumber PIPE_MAP_* enums to remove holes
...
We could change the type into 16 bits if needed.
PB_USAGE flags need to match PIPE_MAP flags due to static assertions.
Reviewed-By: Mike Blumenkrantz <michael.blumenkrantz@gmail.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10527 >
2021-05-01 17:38:42 +00:00
Rob Clark
22575a7b11
freedreno/ci: Update piglit skips/fails
...
Add spec@arb_pixel_buffer_object@texsubimage cube_map_array pbo to a530
fails for the same reason as spec@arb_texture_cube_map_array@texsubimage cube_map_array
(it is sometimes triggering gpu hangs that cause other flakes).
And remove two a630 xfails that started showing up as UnexpectedPass.
Signed-off-by: Rob Clark <robdclark@chromium.org >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10530 >
2021-05-01 08:47:50 -07:00
Rob Clark
928453ccb2
freedreno/ci: Mark client_wait_sync_finish as flake
...
This one has shown up a couple times since fd/go-fast, I'm still trying
to reproduce/debug.
Signed-off-by: Rob Clark <robdclark@chromium.org >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10530 >
2021-05-01 08:47:50 -07:00
Rob Clark
bc3f66311d
freedreno: Flush resources harder
...
pctx->flush_resource() has the same expectations that the resource can
be shared with an external client as pctx->flush(), but without the
convenience of a fence to know *when* the resource must be visible to
that external client. So we need to ensure the batch is flushed all the
way to the kernel so that implicit-sync can do it's job.
Fixes: e9a9ac6f77 ("freedreno/drm: Async submit support")
Signed-off-by: Rob Clark <robdclark@chromium.org >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10530 >
2021-05-01 08:46:27 -07:00
Rob Clark
5181f40670
freedreno/drm: Allow FD_BO_PREP_FLUSH without _NOSYNC
...
This provides the upper layer (gallium, etc) a way to ensure that
rendering involving the bo has been flushed all the way to the kernel.
Signed-off-by: Rob Clark <robdclark@chromium.org >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10530 >
2021-05-01 08:46:27 -07:00
Rob Clark
dbdc979320
freedreno: Remove samples-per-tex tracking
...
Looks like this was unused, and only served to segfault when unbinding
textures.
Signed-off-by: Rob Clark <robdclark@chromium.org >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10530 >
2021-05-01 08:46:27 -07:00
Rob Clark
9fa3312773
freedreno/ci: Isolate dEQP-EGL reset_context tests
...
To reduce flakes, separate out the dEQP-EGL tests that are intentionally
triggering GPU hangs. This avoids some kernel side issues with bad
handling of ringbuffer-full scenarios, causing innocent tests to flake.
Signed-off-by: Rob Clark <robdclark@chromium.org >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10560 >
2021-05-01 02:37:05 +00:00
Rob Clark
cee1673684
ci: Add DEQP_CASELIST_INV_FILTER
...
Inverts the match compared to DEQP_CASELIST_FILTER
Signed-off-by: Rob Clark <robdclark@chromium.org >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10560 >
2021-05-01 02:37:05 +00:00
Eric Anholt
ec7923bd97
ci/freedreno: Mark another recent piglit flake.
...
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10552 >
2021-04-30 16:47:09 -07:00
Eric Anholt
fc9ba9a911
ci/freedreno: Mark new flakes from the go-fast branch.
...
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10552 >
2021-04-30 16:47:02 -07:00
Eric Anholt
0987df6a3e
ci/freedreno: Mark dEQP-EGL flakes reported on IRC since its introduction.
...
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10552 >
2021-04-30 16:44:20 -07:00
Icecream95
ab8e531cf0
panfrost: Fix viewport scissor for preload draws
...
The max values are inclusive, so add 1 before aligning. This means
that a max of 32 will be aligned up to 64 then be decremented to 63.
Add a comment to the pan_fb_info struct to document maxx and maxy as
inclusive.
Fixes: 8ba2f9f698 ("panfrost: Create a blitter library to replace the existing preload helpers")
Reviewed-by: Boris Brezillon <boris.brezillon@collabora.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10542 >
2021-04-30 22:24:58 +00:00
Icecream95
9910a14a1a
panfrost: Remove incorrect comment
...
The comment was wrong in its original location and is wrong here, just
remove it.
Reviewed-by: Boris Brezillon <boris.brezillon@collabora.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10542 >
2021-04-30 22:24:58 +00:00
Dylan Baker
f03da01fe3
meson/vulkan: fix linkage on windows
...
The current approach likley breaks icl and clang-cl, but it seems that
the problem isn't even really related to MSVC, but to Meson's Visual
Studio backend, as such, let's use link-whole unless we're using a
Visual Studio backend.
Fixes: 48d31a6280
("meson: link vulkan_util with link_whole on mingw")
Reviewed-by: Jesse Natalie <jenatali@microsoft.com >
Acked-by: James Park <jpark37@lagfreegames.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10506 >
2021-04-30 18:49:20 +00:00
Gustavo Padovan
d47c2af8d2
gitlab-ci: enable all 3 intel devices as manual in MR pipelines
...
This uses the rule created by .test-manual-mr that enables experimental
devices in MR pipelines, but not for Marge.
The goal is to expose the devices to more possibility of testing before
we enable them automatically.
Signed-off-by: Gustavo Padovan <gustavo.padovan@collabora.com >
Reviewed-by: Eric Anholt <eric@anholt.net >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10405 >
2021-04-30 17:15:06 +00:00
Gustavo Padovan
c5e06bb894
gitlab-ci: rule anchor for experimental devices as manual in MRs
...
We want to give developers the option to run their jobs on devices
that are still being stabilized in the CI infrastructure.
These jobs should be optional and not prevent merging from happening.
The is-forked-branch-or-pre-merge anchor was not being used anywhere,
so it was changed to is-forked-branch-or-pre-merge-not-for-marge to
create this new rule.
Signed-off-by: Gustavo Padovan <gustavo.padovan@collabora.com >
Reviewed-by: Eric Anholt <eric@anholt.net >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10405 >
2021-04-30 17:15:06 +00:00
Jason Ekstrand
b80720acb1
intel/isl: Fix isl_color_value_unpack to match the prototype
...
The prototype uses a pointer and the actual function definition had an
array. For some reason, GCC never complained about this until GCC 11.
This fixes a compile warning when building with GCC 11.
Fixes: 09ced65420 "intel/isl: Add format conversion code"
Reviewed-by: Tapani Pälli <tapani.palli@intel.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10537 >
2021-04-30 17:01:05 +00:00
Danylo Piliaiev
1201aa9332
ir3: do not move varying inputs that depend on unmovable instrs
...
Not all varying fetches could be pulled into the start block.
If there are fetches we couldn't pull, like load_interpolated_input
with offset which depends on a non-reorderable ssbo load or on a
phi node, this pass is skipped since it would be hard to find a place
to set (ei) flag (beside at the very end).
We also don't have to manually set (ei) in such cases since a5xx and
a6xx do automatically release varying storage at the end.
Earlier gens need further testing, however they do not support
interpolateAt* functions at moment, so unless we would like to support
sample shading on them - they are fine.
Fixes crash in GTA V.
Signed-off-by: Danylo Piliaiev <dpiliaiev@igalia.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10483 >
2021-04-30 14:49:18 +00:00
Martin Peres
5d5f7c79a5
ci: add the dEQP expectations for radv on Renoir
...
This patch should not be backported directly to 21.1, as master already
fixed one failure. I'll post a backport of this series with the
additional failure documented when this one gets merged.
v2:
- remove dEQP-VK.synchronization.* from the skip list (Hakzsam)
- drop dEQP-VK.memory.pipeline_barrier.* from the skip list (Hakzsam, me)
v3:
- re-introduce dEQP-VK.memory.pipeline_barrier.transfer_src_transfer_dst.1048576
Signed-off-by: Martin Peres <martin.peres@mupuf.org >
Reviewed-by: Samuel Pitoiset <samuel.pitoiset@gmail.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10539 >
2021-04-30 16:53:39 +03:00
Erik Faye-Lund
91727182dc
zink: also enable float16 from KHR extension
...
This allows us to use 16 bit floats on pre Vulkan 1.2 drivers as well.
Reviewed-By: Mike Blumenkrantz <michael.blumenkrantz@gmail.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10101 >
2021-04-30 12:02:04 +00:00
Erik Faye-Lund
8966029f95
zink/codegen: prefer first definition of prop/feature structs
...
Some extensions have renamed their property and/or feature structs,
listing the "correct" type first. So we should prefer that one rather
than overwriting it with a later one.
Reviewed-By: Mike Blumenkrantz <michael.blumenkrantz@gmail.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10101 >
2021-04-30 12:02:04 +00:00
Erik Faye-Lund
b59b42ec5e
zink: enable 16-bit float support
...
This finally enables the 16-bit float feature.
Ideally we would also check VK_KHR_shader_float16_int8, but the python
code for that is giving me some issues now, so let's deal with that
later.
Reviewed-By: Mike Blumenkrantz <michael.blumenkrantz@gmail.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10101 >
2021-04-30 12:02:04 +00:00
Erik Faye-Lund
903b6af298
zink: perform fp16 texture-lookups as fp32 and then convert
...
SPIR-V doesn't seem to have any opcodes to sample textures using lower
precision directly, so let's sample and downcast later instead.
Ideally, we'd do this as a NIR-pass first, but this does the trick for
now.
Reviewed-By: Mike Blumenkrantz <michael.blumenkrantz@gmail.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10101 >
2021-04-30 12:02:04 +00:00
Erik Faye-Lund
1971efe5ba
zink: support emitting 16-bit float types
...
This prepares us for being able to support using 16-bit float types
in shaders, which might help performance in some cases.
Reviewed-By: Mike Blumenkrantz <michael.blumenkrantz@gmail.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10101 >
2021-04-30 12:02:04 +00:00
Erik Faye-Lund
404521529c
zink: enable 16-bit int support
...
The mysterious support_16bit_int_alu-option doesn't really mean what it
says. Instead it means "we support 16 bit compares, if 16 bit ALU
operations occur". And since 16 bit operations only appear if we're
lowering mediump/lowp, we can always set this option.
Reviewed-By: Mike Blumenkrantz <michael.blumenkrantz@gmail.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10101 >
2021-04-30 12:02:04 +00:00
Erik Faye-Lund
0b45dbea13
zink: support emitting 16-bit int types
...
This prepares us for being able to support using 16-bit int types in
shaders, which might help performance in some cases.
Reviewed-By: Mike Blumenkrantz <michael.blumenkrantz@gmail.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10101 >
2021-04-30 12:02:04 +00:00
Erik Faye-Lund
6f2d6b9d4f
zink: always lower function-temp derefs
...
We're about to need this in order to support 16-bit floats, because the
lowering code for that emits function-temp derefs, and we don't handle
it.
A better long-term solution would be to just support function-temp
variables and indirect derefs. But that's more work, and kinda
orthogonal to what this patchset tries to accomplish, so let's save that
for another day.
Fixes the following piglit:
- spec@arb_gl_spirv@execution@ubo@array-inside-ubo-copy
Reviewed-By: Mike Blumenkrantz <michael.blumenkrantz@gmail.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10101 >
2021-04-30 12:02:04 +00:00
Erik Faye-Lund
3f4eacb38a
zink: run nir_opt_algebraic_late
...
This pass is needed to finish off the [ui]2imp lowering. Follow what
other drivers do and perform some dead-code elimimation etc when
lowering happens.
Reviewed-By: Mike Blumenkrantz <michael.blumenkrantz@gmail.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10101 >
2021-04-30 12:02:04 +00:00
Erik Faye-Lund
204cd1b893
zink: respect bit-size of dref-result
...
Reviewed-By: Mike Blumenkrantz <michael.blumenkrantz@gmail.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10101 >
2021-04-30 12:02:04 +00:00
Erik Faye-Lund
ab1fc9e32c
zink: use UINT32_MAX instead of UINT_MAX
...
This is a 32-bit argument, so on platforms where UINT_MAX is larger,
this is going to... well, do exactly the same thing, but this is
slightly clearer why.
Reviewed-By: Mike Blumenkrantz <michael.blumenkrantz@gmail.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10101 >
2021-04-30 12:02:04 +00:00
Icecream95
f85b7aa5d4
pan/mdg: Fix calculation of available work registers
...
Make the rmu variable signed; otherwise the MAX2 has no effect and
work_count can end up being larger than 16.
Fixes INSTR_OPERAND_FAULTs in SuperTuxKart.
Closes: https://gitlab.freedesktop.org/mesa/mesa/-/issues/4707
Fixes: c6ed8bf77c ("panfrost: Fix uniform_count on Midgard")
Reviewed-by: Boris Brezillon <boris.brezillon@collabora.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10507 >
2021-04-30 10:38:35 +00:00
Jordan Justen
3f04383521
intel/compiler: Fix INTEL_DEBUG=hex
...
With the missing else, this prints the compacted hex followed by hex
for an uncompacted version of the compacted instruction. It also
doesn't print hex for instructions that are not compacted.
Fixes: bc4a127d6e ("intel/disasm: Label support in shader disassembly for UIP/JIP")
Fixes: https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/4245
Signed-off-by: Jordan Justen <jordan.l.justen@intel.com >
Reviewed-by: Sagar Ghuge <sagar.ghuge@intel.com >
Reviewed-by: Danylo Piliaiev <dpiliaiev@igalia.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10535 >
2021-04-30 01:51:23 -07:00
Jose Maria Casanova Crespo
ab1d66a111
ci/v3d: Update piglit expectations.
...
As piglit job is manual, I forgot to update three new test passing at
spec@ext_image_dma_buf_import subgroup after merging
https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10524
Reviewed-by: Juan A. Suarez <jasuarez@igalia.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10536 >
2021-04-30 10:22:53 +02:00
Mike Blumenkrantz
86c8db6009
util/tc: split out drawid-using draws into a separate call
...
we can pre-filter these to reduce merge overhead
Reviewed-by: Marek Olšák <marek.olsak@amd.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10166 >
2021-04-30 03:59:19 +00:00
Mike Blumenkrantz
1d8f8cfec9
gallium: remove padding members from pipe_draw_info
...
these are no longer used, and the tc usage can be moved to the tc struct
Reviewed-by: Marek Olšák <marek.olsak@amd.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10166 >
2021-04-30 03:59:19 +00:00
Mike Blumenkrantz
dae3113c3d
gallium: split drawid out of pipe_draw_info and as a separate draw_vbo param
...
the only case in which this is nonzero is if a multidraw gets split by the frontend,
i.e., mesa core, and in all other cases it can be ignored. the value can also be ignored
for all indirect draws, though it seems many (most?) gallium drivers are not aware of this
Reviewed-by: Marek Olšák <marek.olsak@amd.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10166 >
2021-04-30 03:59:19 +00:00
Mike Blumenkrantz
7ed8e5db3a
mesa/st: rename DrawGalliumComplex -> DrawGalliumMultiMode
...
Reviewed-by: Marek Olšák <marek.olsak@amd.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10166 >
2021-04-30 03:59:19 +00:00
Mike Blumenkrantz
4566383ae4
gallium: move pipe_draw_info::index_bias to pipe_draw_start_count_bias
...
this moves index_bias into the multidraw struct, enabling draws where the value
changes to be merged; the draw_info struct member is renamed and moved to the end
of the struct for tc use
u_vbuf still has some checks to split draws if index_bias changes, maybe
this can be removed at some point?
Reviewed-by: Marek Olšák <marek.olsak@amd.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10166 >
2021-04-30 03:59:19 +00:00
Mike Blumenkrantz
4fe6c85526
gallium: rename pipe_draw_start_count -> pipe_draw_start_count_bias
...
and add an index_bias member
no functional changes yet, just the rename and unused struct member
Reviewed-by: Marek Olšák <marek.olsak@amd.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10166 >
2021-04-30 03:59:19 +00:00
Timothy Arceri
60fa555e61
mesa: fix glShaderSource() error handling
...
Section 7.1 (SHADER OBJECTS) of the OpenGL 4.6 spec says:
"An INVALID_VALUE error is generated if count is negative."
However a count of 0 is not an error. Previously it would cause a
GL_OUT_OF_MEMORY error.
Reviewed-by: Tapani Pälli <tapani.palli@intel.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10477 >
2021-04-30 01:18:47 +00:00
Michael Tang
58f843a193
microsoft/compiler: Maintain sorting of resource type in the context
...
This change moves the SRVs associated with read-only SSBOs to be emitted
before any other UAV. We do this because the validator expects resources
to be emitted in a specific order, as noted by `emit_module`.
Previously, we emitted SSBOs as SRVs (read-only) or UAVs (read-write)
after other UAVs.
Reviewed-by: Jesse Natalie <jenatali@microsoft.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10514 >
2021-04-29 23:55:02 +00:00
Jose Maria Casanova Crespo
5a503727f2
v3d: DRM_FORMAT_MOD_BROADCOM_SAND128 only available for NV12 format.
...
We were exposing as available DRM_FORMAT_MOD_BROADCOM_SAND128 for
any format.
Fixes: 95c4f0f910 "v3d: Enables DRM_FORMAT_MOD_BROADCOM_SAND128 support"
Reviewed-by: Alejandro Piñeiro <apinheiro@igalia.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10524 >
2021-04-30 01:03:12 +02:00
Jose Maria Casanova Crespo
9094ad7c6a
v3d: YUV formats at query_dmabuf_modifiers are external_only
...
This fixes Issue https://github.com/Igalia/meta-webkit/issues/185
"Issue Raspberry 4-64 + Mesa VC4 driver + Gstreamer = red Label on video"
Fixes: 95c4f0f910 "v3d: Enables DRM_FORMAT_MOD_BROADCOM_SAND128 support"
Reviewed-by: Alejandro Piñeiro <apinheiro@igalia.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10524 >
2021-04-30 01:03:12 +02:00
Jose Maria Casanova Crespo
3d7b378980
v3d: YUV formats at is_dmabuf_modifier_supported are external_only
...
This fixes Issue https://github.com/Igalia/meta-webkit/issues/185
"Issue Raspberry 4-64 + Mesa VC4 driver + Gstreamer = red Label on video"
Fixes: 6ee10ab3de "gallium: Add pipe_screen::is_dmabuf_modifier_supported"
Reviewed-by: Alejandro Piñeiro <apinheiro@igalia.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10524 >
2021-04-30 01:03:12 +02:00
Pierre-Eric Pelloux-Prayer
af00c92586
glx: init __GLXvendorInfo to NULL
...
Since 01ba8a8d02 the dd variable isn't necessarly initialized,
so the compiler complains:
warning: ‘dd’ may be used uninitialized in this function
Initialize dd to NULL to fix this.
Fixes: 01ba8a8d02 ("glx: Implement GLX_EXT_no_config_context")
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10418 >
2021-04-29 20:34:25 +00:00
Adam Jackson
53e6ff4d64
glx: Remove some dead declarations from glxclient.h
...
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10418 >
2021-04-29 20:34:25 +00:00
Adam Jackson
b02b26b87c
glx: s/Display */struct glx_display */ over internal API
...
We'd like to avoid __glXInitialize as much as possible since it involves
taking a global lock. This means converting internal APIs to operate as
much as possible in terms of something other than a Display *, since if
that's all you have then you're forced to call __glXInitialize to get to
the glx_display.
The contortions in DRI2 displease me, but DRI2 displeases me, so.
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10418 >
2021-04-29 20:34:25 +00:00
Adam Jackson
21411368a3
glx: Move server GLX vendor and version strings to glx_screen
...
These can in fact vary between screens.
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10418 >
2021-04-29 20:34:25 +00:00
Adam Jackson
b91e58ad79
glx: Simplify some overuse of GetGLXScreenConfigs
...
If you call this on your current display and screen you're just going to
look up the same value we already stored in your context when we created
it.
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10418 >
2021-04-29 20:34:25 +00:00
Adam Jackson
2c8a85b712
glx: Stash a copy of the XExtCodes in the glx_display
...
Instead of a pointer into xlib's state for it. Mostly because it lets us
remove our copy of majorOpcode from the display without taking another
pointer indirection.
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10418 >
2021-04-29 20:34:25 +00:00
Adam Jackson
1f096b51c6
glx: Remove unused opcode argument to __glX{Get,QueryServer}String
...
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10418 >
2021-04-29 20:34:25 +00:00
Adam Jackson
8f853135e6
glx: Remove warn-once-ery around GLX 1.3 functions
...
Like, yes, this is an app bug, but we kinda emulate 1.3 anyway already
and are moving further in that direction, and at this point the app is
not going to get fixed. Just hush.
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10418 >
2021-04-29 20:34:25 +00:00
Adam Jackson
8edbe8761f
glx: Simplify glXIsDirect
...
This answer is cached for us at context creation, we never really need
to generate protocol here.
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10418 >
2021-04-29 20:34:25 +00:00
Adam Jackson
416e6b174c
glx: Stop force-enabling extensions "implied" by GLX 1.3
...
1.3 has been ubiquitous since xserver 1.2 in early 2007, and has always
been supported with DRI2.
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10418 >
2021-04-29 20:34:25 +00:00
Adam Jackson
e716088c24
glx: Stop pretending the GLX major number isn't 1
...
Clarify the comments and logic accordingly.
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10418 >
2021-04-29 20:34:25 +00:00
Yiwei Zhang
96ec6b3d8f
venus: handle wsi image queue ownership transfer for Android
...
1. pre-allocate command pools at device creation if anb enabled
2. force VK_SHARING_MODE_CONCURRENT for wsi image if necessary
3. pre-allocate and record command buffers at android wsi image creation
4. transfer in the ownership at vkAcquireImageANDROID
5. transfer out the ownership at vkQueueSignalReleaseImageANDROID
Signed-off-by: Yiwei Zhang <zzyiwei@chromium.org >
Reviewed-by: Chia-I Wu <olvaffe@gmail.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10335 >
2021-04-29 17:33:52 +00:00
Yiwei Zhang
174fca5498
venus: handle VK_IMAGE_LAYOUT_PRESENT_SRC_KHR transfer
...
Whenver VK_IMAGE_LAYOUT_PRESENT_SRC_KHR is used, replace it with
VK_IMAGE_LAYOUT_GENERAL as required for proper layout and ownership
transfer for external memory backed swapchain images.
This will be Android only until common WSI is fixed.
Signed-off-by: Yiwei Zhang <zzyiwei@chromium.org >
Reviewed-by: Chia-I Wu <olvaffe@gmail.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10335 >
2021-04-29 17:33:52 +00:00
Yiwei Zhang
293255889c
venus: enable VK_EXT_queue_family_foreign
...
Signed-off-by: Yiwei Zhang <zzyiwei@chromium.org >
Reviewed-by: Chia-I Wu <olvaffe@gmail.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10335 >
2021-04-29 17:33:52 +00:00
Yiwei Zhang
1846f0cead
venus: update venus-protocol headers
...
Advertise VK_EXT_queue_family_foreign
Signed-off-by: Yiwei Zhang <zzyiwei@chromium.org >
Reviewed-by: Chia-I Wu <olvaffe@gmail.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10335 >
2021-04-29 17:33:52 +00:00
Mike Blumenkrantz
ede0b3c643
docs: mark off GL_ARB_shader_clock for zink
...
Reviewed-by: Adam Jackson <ajax@redhat.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10521 >
2021-04-29 15:52:10 +00:00
Rhys Perry
5ec25d54cf
radv: fix possible use-after-free when inserting GS copy shader from cache
...
If we give radv_pipeline_cache_insert_shaders() a variant which was
retrived from the cache, it will free it.
I haven't encountered this issue, but it seems possible.
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/10433 >
2021-04-29 14:06:49 +00:00
Rhys Perry
d6894b643b
radv: fix use-after-free upon GS copy shader cache hits
...
If radv_pipeline_cache_insert_shaders() finds a GS copy shader in the
cache, it will free the variant in gs_variants and replace it with the one
in the cache.
Signed-off-by: Rhys Perry <pendingchaos02@gmail.com >
Reviewed-by: Samuel Pitoiset <samuel.pitoiset@gmail.com >
Cc: mesa-stable
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10433 >
2021-04-29 14:06:49 +00:00
Rhys Perry
32ebbd8c23
vulkan: fix use-after-free in vk_common_DestroyDebugReportCallbackEXT
...
Signed-off-by: Rhys Perry <pendingchaos02@gmail.com >
Reviewed-by: Lionel Landwerlin <lionel.g.landwerlin@intel.com >
Reviewed-by: Jason Ekstrand <jason@jlekstrand.net >
Reviewed-by: Samuel Pitoiset <samuel.pitoiset@gmail.com >
Fixes: bd1705a480 ("vulkan: Make vk_debug_report_callback derive from vk_object_base")
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10433 >
2021-04-29 14:06:49 +00:00
Samuel Pitoiset
c425b67c76
radv: fix computation of the number of user SGPRS for NGG GS state
...
The NGG GS state uses one user SGPR.
Cc: 21.1 mesa-stable
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/10485 >
2021-04-29 13:45:39 +00:00
Mike Blumenkrantz
4b52a7f245
zink: hook up EXT_image_drm_format_modifier
...
Reviewed-by: Erik Faye-Lund <erik.faye-lund@collabora.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10520 >
2021-04-29 12:32:59 +00:00
Mike Blumenkrantz
4df25407e9
zink: hook up VK_EXT_shader_subgroup_ballot
...
Reviewed-by: Erik Faye-Lund <erik.faye-lund@collabora.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10520 >
2021-04-29 12:32:59 +00:00
Mike Blumenkrantz
b1aef8ccc6
zink: hook up VK_EXT_conservative_rasterization
...
just the ext bits
Reviewed-by: Erik Faye-Lund <erik.faye-lund@collabora.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10520 >
2021-04-29 12:32:59 +00:00
Mike Blumenkrantz
817a8fa22f
zink: hook up VK_EXT_sample_locations
...
Reviewed-by: Erik Faye-Lund <erik.faye-lund@collabora.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10520 >
2021-04-29 12:32:59 +00:00
Pierre-Eric Pelloux-Prayer
0477fbc655
driconf: add workaround for Golf With Friends
...
The game has a shader that uses texture functions that rely on implicit
derivatives after a discard.
Cc: mesa-stable
Closes: https://gitlab.freedesktop.org/mesa/mesa/-/issues/4547
Reviewed-by: Timothy Arceri <tarceri@itsqueeze.com >
Reviewed-by: Marek Olšák <marek.olsak@amd.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10278 >
2021-04-29 12:10:55 +00:00
Juan A. Suarez Romero
e532a47f76
util/hash_table: do not leak u64 struct key
...
For non 64bit devices the key stored in hash_table_u64 is wrapped in
hash_key_u64 structure, which is never free.
This commit fixes this issue by just removing the user-defined
`delete_function` parameter in hash_table_u64_{destroy,clear} (which
nobody is using) and using instead a delete function to free this
structure.
Fixes: 608257cf82 ("i965: Fix INTEL_DEBUG=bat")
Reviewed-by: Ian Romanick <ian.d.romanick@intel.com >
Signed-off-by: Juan A. Suarez Romero <jasuarez@igalia.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10480 >
2021-04-29 12:58:23 +02:00
Juan A. Suarez Romero
33f9b06b0e
v3dv: check dest bitsize in color blit
...
Otherwise, if src_bit_size > 0 and dst_bit_size == 0, we end up doing a
bad shift in `1 << (dst_bit_size - 1)`, as `dst_bit_size - 1` is a
negative value (in this case would be MAX_UINT32).
Fixes CID#1468134 "Bad bit shift operation (BAD_SHIFT)":
"large_shift: In expression 1 << dst_bit_size - 1U, left shifting by
more than 31 bits has undefined behavior. The shift amount,
dst_bit_size - 1U, is 4294967295."
v2:
- Use an assertion instead (Iago)
Reviewed-by: Iago Toral Quiroga <itoral@igalia.com >
Signed-off-by: Juan A. Suarez Romero <jasuarez@igalia.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10251 >
2021-04-29 10:31:11 +00:00
Juan A. Suarez Romero
fd8d71ce41
v3dv: rename VC5 to V3D
...
As we are not using anymore references to the old VC5, let's rename
definitions from VC5 to V3D in the Vulkan driver.
Reviewed-by: Alejandro Piñeiro <apinheiro@igalia.com >
Signed-off-by: Juan A. Suarez Romero <jasuarez@igalia.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10402 >
2021-04-29 11:22:12 +02:00
Juan A. Suarez Romero
26618dfb87
broadcom/simulator: change references to VC5
...
We are referring the driver as V3D instead old VC5; so let's update the
references.
Reviewed-by: Alejandro Piñeiro <apinheiro@igalia.com >
Signed-off-by: Juan A. Suarez Romero <jasuarez@igalia.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10402 >
2021-04-29 11:22:12 +02:00
Juan A. Suarez Romero
a77002584d
broadcom/qpu: rename from VC5 to V3D
...
Get rid of old references to VC5.
Reviewed-by: Alejandro Piñeiro <apinheiro@igalia.com >
Signed-off-by: Juan A. Suarez Romero <jasuarez@igalia.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10402 >
2021-04-29 11:22:12 +02:00
Juan A. Suarez Romero
14b66e27dc
v3d: rename VC5 enums and definitions
...
As the driver was renamed in the past from VC5 to V3D, let's rename also
the definitions and enumerations to keep it consistent across the code.
Reviewed-by: Alejandro Piñeiro <apinheiro@igalia.com >
Signed-off-by: Juan A. Suarez Romero <jasuarez@igalia.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10402 >
2021-04-29 11:22:12 +02:00
Juan A. Suarez Romero
3c318e6335
v3d: rename header include guards
...
Long time ago VC5 was renamed to V3D, but the include guards `VC5_FOO_H`
were not.
In order to keep consistency, let's rename these guards from `VC5_FOO_H`
to `V3D_FOO_H`.
Reviewed-by: Alejandro Piñeiro <apinheiro@igalia.com >
Signed-off-by: Juan A. Suarez Romero <jasuarez@igalia.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10402 >
2021-04-29 11:22:12 +02:00
Caio Marcelo de Oliveira Filho
e763db4a47
spirv: Don't replicate patch bool in vtn_variable
...
When we originally added patch variable handling to spirv_to_nir, we
were splitting I/O block variables in spirv_to_nir, so we weren't
guaranteed to have a nir_variable early enough in processing.
Since b0c643d8f5 ("spirv: Use NIR per-member splitting"), we've been
using NIR per-member splitting where we have a nir_variable which has
a separate nir_variable_data per member. With this, we can drop
vtn_variable::patch and use the patch boolean on the nir_variable
instead.
Reviewed-by: Lionel Landwerlin <lionel.g.landwerlin@intel.com >
Reviewed-by: Jason Ekstrand <jason@jlekstrand.net >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10469 >
2021-04-29 06:55:29 +00:00
Vinson Lee
3cd5e1b40f
clover: Add constructor for constant_argument.
...
Fix defects reported by Coverity Scan.
member_not_init_in_gen_ctor: The compiler-generated constructor for this class does not initialize buf.
member_not_init_in_gen_ctor: The compiler-generated constructor for this class does not initialize st.
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/10399 >
2021-04-28 22:30:07 -07:00
Jason Ekstrand
656c30ac59
intel/isl: There are seven aux states
...
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10515 >
2021-04-28 23:16:03 -05:00
Mike Blumenkrantz
8243115836
zink: use first-created shader variant as the default
...
it's not really expected that most apps are going to be switching variants
all the time, so having the "default" one be more dynamic allows skipping
shader lookups more frequently
Reviewed-by: Dave Airlie <airlied@redhat.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10513 >
2021-04-29 03:43:08 +00:00
Mike Blumenkrantz
6dab5898db
zink: add fastpath for getting default shader variants
...
no need for hashing or lookups if this is the default variant
also have an alt variant for vertex stages to account for streamout and
halfz lowering
Reviewed-by: Dave Airlie <airlied@redhat.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10513 >
2021-04-29 03:43:08 +00:00
Mike Blumenkrantz
1ff40cedf0
zink: create entrypoints for descriptor variables with spirv 1.5
...
Reviewed-by: Dave Airlie <airlied@redhat.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10512 >
2021-04-29 03:33:22 +00:00
Mike Blumenkrantz
3bf52471cc
zink: generate spirv 1.5 from ntv when using vk >= 1.2
...
this has an ntv option so further tuning here should be easy enough
Reviewed-by: Dave Airlie <airlied@redhat.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10512 >
2021-04-29 03:33:22 +00:00
Mike Blumenkrantz
6398605f28
zink: export PIPE_CAP_TGSI_CLOCK
...
ARB_shader_clock
Reviewed-by: Dave Airlie <airlied@redhat.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10510 >
2021-04-28 20:04:20 -04:00
Mike Blumenkrantz
ff5e0cb1bb
zink: support nir_intrinsic_shader_clock
...
simple const unop
Reviewed-by: Dave Airlie <airlied@redhat.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10510 >
2021-04-28 20:04:14 -04:00
Mike Blumenkrantz
0fba3bc236
zink: add spirv builder for unops with a const operand
...
Reviewed-by: Dave Airlie <airlied@redhat.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10510 >
2021-04-28 20:04:11 -04:00
Mike Blumenkrantz
73210e3a99
zink: add conversion util for nir_scope -> SpvScope
...
Reviewed-by: Dave Airlie <airlied@redhat.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10510 >
2021-04-28 20:04:08 -04:00
Mike Blumenkrantz
3c06eede9c
zink: hook up VK_KHR_shader_clock
...
more extensions wooo
Reviewed-by: Dave Airlie <airlied@redhat.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10510 >
2021-04-28 20:04:06 -04:00
Ian Romanick
3572e24e74
ci: Uprev piglit to b3a9fa345 ("framework/replay: Quote resource names before signing")
...
The PIGLIT_BUILD_CL_TESTS related changes were shamelessly stolen from
https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/6441/diffs?commit_id=5742be00e6b493b5289ed8120eb06f10d341ea3a .
v2: Remove glslang-tools from arm_build.sh. Suggested by Michel.
Reviewed-by: Eric Anholt <eric@anholt.net >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10492 >
2021-04-28 21:11:34 +00:00
Chia-I Wu
1e3981f69c
venus: enable external memory support
...
This enables VK_KHR_external_memory_fd and
VK_EXT_external_memory_dma_buf support.
Signed-off-by: Chia-I Wu <olvaffe@gmail.com >
Reviewed-by: Yiwei Zhang <zzyiwei@chromium.org >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10437 >
2021-04-28 12:59:19 -07:00
Chia-I Wu
efa185ed5c
venus: rework external memory capability queries
...
The idea is to allow the renderer to use a completely different external
memory handle type (e.g., OPAQUE_WIN32!?) than the driver (always
OPAQUE_FD and DMA_BUF). It hides the mismatch by doing translations in
vkGetPhysicalDevice*.
Signed-off-by: Chia-I Wu <olvaffe@gmail.com >
Reviewed-by: Yiwei Zhang <zzyiwei@chromium.org >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10437 >
2021-04-28 12:59:19 -07:00
Chia-I Wu
fbaa6dbf4e
venus: update venus-protocol for external memory
...
Signed-off-by: Chia-I Wu <olvaffe@gmail.com >
Reviewed-by: Yiwei Zhang <zzyiwei@chromium.org >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10437 >
2021-04-28 12:59:18 -07:00
Chia-I Wu
88f481dd74
venus: make sure gem_handle and vn_renderer_bo are 1:1
...
When two vn_renderer_bo's share the same gem_handle, destroying one of
them would invalidate the other.
Signed-off-by: Chia-I Wu <olvaffe@gmail.com >
Reviewed-by: Yiwei Zhang <zzyiwei@chromium.org >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10437 >
2021-04-28 12:58:58 -07:00
Chia-I Wu
f41a79f948
venus: use sparse array to manage vn_renderer_bo
...
It should be faster. More importantly, we want to use it to keep track
of all BOs for correct dmabuf import.
Signed-off-by: Chia-I Wu <olvaffe@gmail.com >
Reviewed-by: Yiwei Zhang <zzyiwei@chromium.org >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10437 >
2021-04-28 12:58:58 -07:00
Chia-I Wu
c62026165c
venus: move some common members to vn_renderer_bo
...
Signed-off-by: Chia-I Wu <olvaffe@gmail.com >
Reviewed-by: Yiwei Zhang <zzyiwei@chromium.org >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10437 >
2021-04-28 12:58:58 -07:00
Chia-I Wu
b39ea79c95
venus: merge bo create and init ops
...
There is no good reason to seprate them. I also plan to adopt
util_sparse_array, which requires the kernel BO to be created first (to
use its gem_handle/res_id as the key).
Signed-off-by: Chia-I Wu <olvaffe@gmail.com >
Reviewed-by: Yiwei Zhang <zzyiwei@chromium.org >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10437 >
2021-04-28 12:58:58 -07:00
Chia-I Wu
2db720330b
venus: move vn_renderer_bo_ops to vn_renderer
...
Signed-off-by: Chia-I Wu <olvaffe@gmail.com >
Reviewed-by: Yiwei Zhang <zzyiwei@chromium.org >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10437 >
2021-04-28 12:58:58 -07:00
Chia-I Wu
0d703b9d64
venus: pass vn_renderer in vn_renderer_bo functions
...
We will move vn_renderer_bo_ops to vn_renderer in the following commit.
Signed-off-by: Chia-I Wu <olvaffe@gmail.com >
Reviewed-by: Yiwei Zhang <zzyiwei@chromium.org >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10437 >
2021-04-28 12:58:58 -07:00
Chia-I Wu
6db21119b7
venus: add dev->renderer pointer
...
dev->instance->renderer is slower to type and to follow.
Signed-off-by: Chia-I Wu <olvaffe@gmail.com >
Reviewed-by: Yiwei Zhang <zzyiwei@chromium.org >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10437 >
2021-04-28 12:58:58 -07:00
Chia-I Wu
b54a262421
venus: use vn_renderer_shmem
...
vn_renderer_bo_create_cpu becomes unused and is removed.
Signed-off-by: Chia-I Wu <olvaffe@gmail.com >
Reviewed-by: Yiwei Zhang <zzyiwei@chromium.org >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10437 >
2021-04-28 12:58:58 -07:00
Chia-I Wu
452a49fe19
venus: add vn_renderer_shmem
...
CPU BOs and GPU BOs are used different enough that it makes sense to
treat them as different objects. This commit adds vn_renderer_shmem to
represent CPU BOs.
Signed-off-by: Chia-I Wu <olvaffe@gmail.com >
Reviewed-by: Yiwei Zhang <zzyiwei@chromium.org >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10437 >
2021-04-28 12:58:58 -07:00
Chia-I Wu
2c2fb015cc
venus: rename VN_CS_ENCODER_INITIALIZER
...
Rename it to VN_CS_ENCODER_INITIALIZER_LOCAL to make it clear that it is
only for local variables.
Signed-off-by: Chia-I Wu <olvaffe@gmail.com >
Reviewed-by: Yiwei Zhang <zzyiwei@chromium.org >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10437 >
2021-04-28 12:58:58 -07:00
Chia-I Wu
b1f25da0b4
venus: update venus-protocol headers to use accessors
...
Switch to the newly added vn_instance_submit_command accessors.
Signed-off-by: Chia-I Wu <olvaffe@gmail.com >
Reviewed-by: Yiwei Zhang <zzyiwei@chromium.org >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10437 >
2021-04-28 12:58:54 -07:00
Chia-I Wu
3c8255f602
venus: provide accessors for vn_instance_submit_command
...
This will allow us to change vn_instance_submit_command without
regenerating the headers.
Signed-off-by: Chia-I Wu <olvaffe@gmail.com >
Reviewed-by: Yiwei Zhang <zzyiwei@chromium.org >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10437 >
2021-04-28 12:53:28 -07:00
Dylan Baker
ce2706fc92
docs: update calendar for 21.1.0-rc3
...
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10503 >
2021-04-28 09:34:33 -07:00
Dylan Baker
c7dd23ff61
docs: update calendar for 21.1.0-rc2
...
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10503 >
2021-04-28 09:34:32 -07:00
Dylan Baker
82484b9787
docs: update calendar for 21.1.0-rc1
...
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10503 >
2021-04-28 09:34:30 -07:00
Rob Clark
cbd6e5f2e5
freedreno/ci: Skip texsubmimage cube_map_array
...
Signed-off-by: Rob Clark <robdclark@chromium.org >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10444 >
2021-04-28 15:36:42 +00:00
Rob Clark
1d19325483
freedreno/ci: Disable counterstrike trace on a306 for now
...
The combination of removing bottlenecks in userspace (userspace fences,
etc) and slow GPU results in hitting full ringbuffer on a306. Haven't
figured out a reasonable way to work around that in userspace until a
kernel fix is in place, so disable this one for now.
Signed-off-by: Rob Clark <robdclark@chromium.org >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10444 >
2021-04-28 15:36:42 +00:00
Rob Clark
f92f31455a
freedreno/drm: Assume explicit fences if in_fence_fd
...
If we ever see explicit fencing used, then we can disable implicit
fencing, even for internal or unfenced batches.
Signed-off-by: Rob Clark <robdclark@chromium.org >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10444 >
2021-04-28 15:36:42 +00:00
Rob Clark
e9a9ac6f77
freedreno/drm: Async submit support
...
Move the submit ioctl to it's own thread to unblock the driver thread
and let it move on to the next frame.
Note that I did experiment with doing the append_bo() parts
synchronously on the theory that we should be more likely to hit the
fast path if we did that part of submit merging before the bo was
potentially re-used in the next batch/submit. It helped some things
by a couple percent, but hurt more things.
Signed-off-by: Rob Clark <robdclark@chromium.org >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10444 >
2021-04-28 15:36:42 +00:00
Rob Clark
2c9e8db28d
freedreno/drm: pipe should hold reference to device
...
A more direct solution would be for bo's to have a reference to the
device. But bo's are ref/unrefd more frequently.
This avoids async submits unrefing a bo after the device handle-
table is freed.
Signed-off-by: Rob Clark <robdclark@chromium.org >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10444 >
2021-04-28 15:36:42 +00:00
Rob Clark
ad9654a4c1
freedreno/drm: fd_submit should hold ref to fd_pipe
...
Also, move this into the base class, no reason for it to be in backend.
Signed-off-by: Rob Clark <robdclark@chromium.org >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10444 >
2021-04-28 15:36:42 +00:00
Rob Clark
55eb75d3e6
freedreno: Avoid flushing deferred submits for u_trace
...
This is a bit ugly, but with userspace fences and deferred submits it is
better to poll until the timestamp buffer is ready. Otherwise we could
be triggering deferred submits to flush sooner than they normally would,
changing the behavior of what we are trying to measure.
Signed-off-by: Rob Clark <robdclark@chromium.org >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10444 >
2021-04-28 15:36:42 +00:00
Rob Clark
cccdc513e3
freedreno/drm/sp: Implement deferred submit merging
...
For submits flushed with (a) no required fence, and (b) no externally
visible effects (ie. imported/exported bo), we can defer flushing the
submit and merge it into a later submit.
This is a bit more work in userspace, but it cuts down the number of
submit ioctls. And a common case is that later submits overlap in the
bo's used (for example, blit upload to a buffer, which is then used in
the following draw pass), so it reduces the net amount of work needed
to be done in the kernel to handle the submit ioctl.
Closes: https://gitlab.freedesktop.org/mesa/mesa/-/issues/19
Signed-off-by: Rob Clark <robdclark@chromium.org >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10444 >
2021-04-28 15:36:42 +00:00
Rob Clark
c7dc5cf3cb
freedreno/drm/sp: Split submit prep and finish
...
For deferred submits, we still need to do the prep steps immediately,
but the ioctl construction can be deferred.. prepare for that by
splitting the prep out.
Signed-off-by: Rob Clark <robdclark@chromium.org >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10444 >
2021-04-28 15:36:42 +00:00
Rob Clark
62a6773d80
freedreno/drm: Add pipe tracking for deferred submits
...
Now that we have some bo state tracking for userspace fences, we can
build on this to add a way for the pipe implementation to defer a submit
flush in order to merge submits into a single ioctl.
Signed-off-by: Rob Clark <robdclark@chromium.org >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10444 >
2021-04-28 15:36:42 +00:00
Rob Clark
aafcd8aacb
freedreno: Re-work fd_submit fence interface
...
Move everything into a struct assocated with the pipe_fence_handle, so
that the drm layer can fill in the seqn/fd fences directly.
This will give us a comvenient place to insert a util_queue_fence in the
next commit.
While we're at it, extract the uint32_t fence (previously called
'timestamp' in place, a kgsl legacy) into a struct that encapsulates
both the kernel fence and the userspace fence.
Signed-off-by: Rob Clark <robdclark@chromium.org >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10444 >
2021-04-28 15:36:42 +00:00
Rob Clark
d531c8d22a
freedreno/drm: Reference count submits
...
To merge submits, we'll need drm to internally hold an extra reference
to the submit.
Signed-off-by: Rob Clark <robdclark@chromium.org >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10444 >
2021-04-28 15:36:42 +00:00
Rob Clark
9cb264f966
freedreno: Drop unused create_fence() arg
...
It was always zero.
Signed-off-by: Rob Clark <robdclark@chromium.org >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10444 >
2021-04-28 15:36:42 +00:00
Rob Clark
7f4b85c7cf
freedreno: Move fence struct to header
...
Just a bit of code-motion to prep for later patches.
Signed-off-by: Rob Clark <robdclark@chromium.org >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10444 >
2021-04-28 15:36:42 +00:00
Rob Clark
c3f4835b99
freedreno: last_fence optimization for TC async flushes
...
Without deferred flushes, we would track the last_fence any time when
there had be no rendering/etc since the last flush, to avoid creating
empty batches simply for the purpose of getting a fence. We can do the
same thing with deferred flushes, where the fence is created from the
frontend thread before we know what will be flushed, by repopulating
the pre-created fence.
Signed-off-by: Rob Clark <robdclark@chromium.org >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10444 >
2021-04-28 15:36:42 +00:00
Rob Clark
807bfa6be8
freedreno/batch: Don't create fences for every batch
...
We only need fences for batches flushed via pctx->flush(). This will
serve as a useful signal about submits that can be merged.
v2. disable this optimization pre-a6xx until I can debug issues that
submit merging exposes
Signed-off-by: Rob Clark <robdclark@chromium.org >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10444 >
2021-04-28 15:36:42 +00:00
Rob Clark
49852ace2a
freedreno/drm: Inline the fence-table
...
In the common case, a bo will have no more than a single fence attached.
We can inline the storage to avoid a separate allocation in this case.
Signed-off-by: Rob Clark <robdclark@chromium.org >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10444 >
2021-04-28 15:36:42 +00:00
Rob Clark
7dabd62464
freedreno/drm: Userspace fences
...
Add a per-fd_pipe fence "timeline" so we can detect cases where we don't
need to call into the kernel to determine if a fd_bo is still busy.
This reuses table_lock, rather than introducing a per-bo lock to protect
fence state updates because (a) the common / hotpath pattern is to
update fences on a lot of objects, but checking the fence state of a
single object is less common, and (b) because we already hold the table
lock in common spots where we need to check the bo's fence state (ie.
allocations from the bo-cache).
Signed-off-by: Rob Clark <robdclark@chromium.org >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10444 >
2021-04-28 15:36:42 +00:00
Rob Clark
df78934cdf
freedreno/drm: Add locked version fd_{bo,pipe}_del()
...
This will be needed in the next patch, so we can reuse the bo table_lock
for fence related locking.
Signed-off-by: Rob Clark <robdclark@chromium.org >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10444 >
2021-04-28 15:36:42 +00:00
Rob Clark
8f5c89350f
freedreno/drm: Move the growable array helper
...
We'll need this to track userspace fences attached to a fd_bo.
Signed-off-by: Rob Clark <robdclark@chromium.org >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10444 >
2021-04-28 15:36:42 +00:00
Rob Clark
c98ada6ad1
freedreno/drm: Add FD_BO_PREP_FLUSH
...
There are a couple cases where we want to use _NOSYNC, but at the same
time we want to ensure that rendering related to a bo is actually
flushed.
This doesn't do anything yet, but when we start deferring/merging
submits we'll need a way to trigger anything deferred to flush.
Signed-off-by: Rob Clark <robdclark@chromium.org >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10444 >
2021-04-28 15:36:42 +00:00
Rob Clark
8ab227c373
freedreno/drm: Cleanup bo cpu_prep flags
...
Also add some STATIC_ASSERT()
Signed-off-by: Rob Clark <robdclark@chromium.org >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10444 >
2021-04-28 15:36:42 +00:00
Rob Clark
7f0abd9048
freedreno/drm: Cleanup bo allocation flags
...
Most of them were actually unused. The memory type (KMEM vs SMI) only
applied to very old a2xx era devices that had a small/fast stacked
memory (SMI) vs normal memory (KMEM). And the cache flags are ignored
(ie. everything is writecombine), but we can add new cache flags later
when they actually do something.
Signed-off-by: Rob Clark <robdclark@chromium.org >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10444 >
2021-04-28 15:36:42 +00:00
Rob Clark
ef0c5007f2
freedreno/drm: Move submit->primary to base class
...
Gets rid of a bit of duplication between the two current
implementations, and will be needed in next patch.
Signed-off-by: Rob Clark <robdclark@chromium.org >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10444 >
2021-04-28 15:36:42 +00:00
Rob Clark
c64bc095e7
freedreno: Allow resource shadowing for TC
...
TC_TRANSFER_MAP_NO_INVALIDATE just means we can't invalidate. It
doesn't preclude the resource shadow path.
Signed-off-by: Rob Clark <robdclark@chromium.org >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10444 >
2021-04-28 15:36:42 +00:00
Rob Clark
ecd4793d6c
freedreno: Add a couple debug traces
...
Signed-off-by: Rob Clark <robdclark@chromium.org >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10444 >
2021-04-28 15:36:42 +00:00
Rob Clark
a8d4302825
freedreno: Make sure we actually flush if we need a fence
...
Signed-off-by: Rob Clark <robdclark@chromium.org >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10444 >
2021-04-28 15:36:42 +00:00
Rob Clark
cb058a8922
freedreno: Avoid staging blits with stencil on older gens
...
This avoids infinite recursion with fallback to
util_resource_copy_region()
Signed-off-by: Rob Clark <robdclark@chromium.org >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10444 >
2021-04-28 15:36:42 +00:00
Rob Clark
224dbd77d5
freedreno: Small indent fix
...
Signed-off-by: Rob Clark <robdclark@chromium.org >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10444 >
2021-04-28 15:36:42 +00:00
Juan A. Suarez Romero
dfe50e02c9
ci/broadcom: update expected results
...
Reviewed-by: Jose Maria Casanova Crespo <jmcasanova@igalia.com >
Signed-off-by: Juan A. Suarez Romero <jasuarez@igalia.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10501 >
2021-04-28 15:21:28 +00:00
Rohan Garg
1d44bfbd25
docs: mark external memory and semaphore extensions done for i965
...
Signed-off-by: Rohan Garg <rohan.garg@collabora.com >
Reviewed-by: Eleni Maria Stea <estea@igalia.com >
Reviewed-by: Tapani Pälli <tapani.palli@intel.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/5594 >
2021-04-28 13:48:03 +00:00
Rohan Garg
5769774594
i965: Enable EXT_memory_object_* for Gen 7 and above
...
Signed-off-by: Rohan Garg <rohan.garg@collabora.com >
Reviewed-by: Tapani Pälli <tapani.palli@intel.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/5594 >
2021-04-28 13:48:03 +00:00
Rohan Garg
58890ea199
i965: fix in fences backend for ext_external_objects edge case
...
This ports adc575dbf6 to i965
Signed-off-by: Rohan Garg <rohan.garg@collabora.com >
Reviewed-by: Tapani Pälli <tapani.palli@intel.com >
Reviewed-by: Eleni Maria Stea <elene.mst@gmail.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/5594 >
2021-04-28 13:48:03 +00:00
Rohan Garg
3a9786d4ee
i965: Implement BufferDataMem
...
Signed-off-by: Rohan Garg <rohan.garg@collabora.com >
Reviewed-by: Tapani Pälli <tapani.palli@intel.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/5594 >
2021-04-28 13:48:03 +00:00
Rohan Garg
0b564e52d7
i965: Implement semaphore support for EXT_external_objects
...
Implement importing, signalling and waiting for EXT_external_objects
Signed-off-by: Rohan Garg <rohan.garg@collabora.com >
Reviewed-by: Eleni Maria Stea <estea@igalia.com >
Reviewed-by: Tapani Pälli <tapani.palli@intel.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/5594 >
2021-04-28 13:48:03 +00:00
Rohan Garg
f73aeca0ce
i965: Initial implementation for EXT_memory_object_*
...
Signed-off-by: Rohan Garg <rohan.garg@collabora.com >
Reviewed-by: Eleni Maria Stea <estea@igalia.com >
Reviewed-by: Tapani Pälli <tapani.palli@intel.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/5594 >
2021-04-28 13:48:03 +00:00
Rohan Garg
62b51bb43b
i965: plumb device/driver UUID generators
...
Use the same generators as used in anv driver so both Vulkan and OpenGL
drivers can share the same external memory objects.
Signed-off-by: Rohan Garg <rohan.garg@collabora.com >
Reviewed-by: Eleni Maria Stea <estea@igalia.com >
Reviewed-by: Tapani Pälli <tapani.palli@intel.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/5594 >
2021-04-28 13:48:03 +00:00
Mike Blumenkrantz
41a42955d5
zink: remove leftover references to flatshading in shader keys
...
this is handled by st already
Reviewed-by: Erik Faye-Lund <erik.faye-lund@collabora.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10495 >
2021-04-28 10:30:11 +00:00
Eric Anholt
02e85777cb
u_format: Add missing BE swizzles for R8SG8SB8UX8U_NORM
...
Compare to the swizzles for PIPE_FORMAT_R10G10B10A2_UNORM and
R5SG5SB6U_NORM. This should fix our last BE pack/unpack failure.
Reviewed-by: Adam Jackson <ajax@redhat.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/7776 >
2021-04-28 09:51:09 +00:00
Eric Anholt
82c6f2ea32
u_format: Fix z32_s8x24 s8 unpacking on big-endian.
...
The s8x24 is a packed group in the format, and for packing we properly
write our s8 in the low bits of the 32, but for unpacking we tried
treating it as a byte array.
Reviewed-by: Adam Jackson <ajax@redhat.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/7776 >
2021-04-28 09:51:09 +00:00
Karol Herbst
2d526eecc8
util/format: fix value declarations for big endian
...
Before we can fix big endian, we kind of have to agree on how pixel data
should be laid out in memory.
For this we have to use packed data for !is_array declared formats and per
element values for is_array ones.
Also we need proper PACKED_1xn definitions for BE.
Signed-off-by: Karol Herbst <kherbst@redhat.com >
Reviewed-by: Eric Anholt <eric@anholt.net >
Reviewed-by: Adam Jackson <ajax@redhat.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/7776 >
2021-04-28 09:51:09 +00:00
Tapani Pälli
fc40854937
glx: revert "Downgrade sRGB-ful fbconfigs"
...
This reverts f0861c80 which causes regression on multiple apps that
require a sRGB capable visual.
Closes: https://gitlab.freedesktop.org/mesa/mesa/-/issues/4690
Signed-off-by: Tapani Pälli <tapani.palli@intel.com >
Reviewed-by: Adam Jackson <ajax@redhat.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10498 >
2021-04-28 09:27:13 +00:00
Alejandro Piñeiro
79e4451430
v3dv: move extensions table to v3dv_device
...
So one less python generator. Based on anv (MR#8792) and radv
(MR#8900).
With this change v3dv doesn't have any more a custom python code
generator.
Reviewed-by: Iago Toral Quiroga <itoral@igalia.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10484 >
2021-04-28 09:13:55 +00:00
Alejandro Piñeiro
8d72992ed5
v3dv: remove custom icd json generation
...
Most of the stuff needed was moved to vk util. So one less python
generator to maintain.
anv and radv already migrated.
Reviewed-by: Iago Toral Quiroga <itoral@igalia.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10484 >
2021-04-28 09:13:55 +00:00
Danylo Piliaiev
addab037f0
tu: do not corrupt unwritten render targets
...
There is no point in having a write to an attachment enabled when there
is no corresponding output in the shader. Per VK spec it is an UB,
however a few apps depend on attachment not being changed if FS doesn't
have corresponding output.
Fixes water in Genshin Impact.
Signed-off-by: Danylo Piliaiev <dpiliaiev@igalia.com >
Reviewed-by: Eric Anholt <eric@anholt.net >
Reviewed-by: Samuel Iglesias Gonsálvez <siglesias@igalia.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10489 >
2021-04-28 08:51:49 +00:00
Erik Faye-Lund
aa038773b7
docs: document r600 envvars
...
We document other AMD GPU envvars, so let's add docs for the r600
envvars as well.
Closes: https://gitlab.freedesktop.org/mesa/mesa/-/issues/2022
Reviewed-by: Gert Wollny <gert.wollny@collabora.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10453 >
2021-04-28 08:47:20 +00:00
Erik Faye-Lund
39c0cf55c2
docs: fixup indentation of radeonsi envvar values
...
Otherwise, these will end up in the same definition-list, which isn't
very clear, and different to what we do elsewhere in this file.
Reviewed-by: Pierre-Eric Pelloux-Prayer <pierre-eric.pelloux-prayer@amd.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10453 >
2021-04-28 08:47:20 +00:00
Samuel Pitoiset
9bcaeddf77
radv: enable TC-compat CMASK on GFX8-9
...
It's already implemented and it works quite fine on GFX10+, so it
should be safe to enable it on GFX8-9.
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/10488 >
2021-04-28 08:01:41 +00:00
Juan A. Suarez Romero
9ae1657809
ci/baremetal: propagate ASAN_OPTIONS to devices
...
Reviewed-by: Eric Anholt <eric@anholt.net >
Signed-off-by: Juan A. Suarez Romero <jasuarez@igalia.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10479 >
2021-04-28 07:38:53 +00:00
Juan A. Suarez Romero
2da01e6123
ci/v3dv: update flakes
...
Add
dEQP-VK.synchronization.op.single_queue.binary_semaphore.write_copy_buffer_read_ssbo_compute.buffer_16384
to the flake list.
v2:
- Add a new flake (jasuarez)
Reviewed-by: Eric Anholt <eric@anholt.net >
Signed-off-by: Juan A. Suarez Romero <jasuarez@igalia.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10479 >
2021-04-28 07:38:53 +00:00
Juan A. Suarez Romero
9be055a22a
ci/v3d: fix typo in job name
...
Reviewed-by: Eric Anholt <eric@anholt.net >
Signed-off-by: Juan A. Suarez Romero <jasuarez@igalia.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10479 >
2021-04-28 07:38:53 +00:00
Lionel Landwerlin
03e97e94e7
i965/bufmgr: fix invalid assertion
...
The idea behind this assert is that if a buffer is in
bufmgr->handle_table it's because it has been shared from i965 to the
outside. This is when we add the drm FD associated to this BO to
bo->exports.
But we also import buffer from the outside into i965 and those buffers
don't have an associated drm FD added to bo->exports.
If you import the same buffer more than once, you'll run into this
assert.
v2: Also drop assert from brw_bo_gem_create_from_name() (Ian)
Signed-off-by: Lionel Landwerlin <lionel.g.landwerlin@intel.com >
Fixes: 57e4d0aa1c ("i965: fix export of GEM handles")
Reviewed-by: Ian Romanick <ian.d.romanick@intel.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10386 >
2021-04-28 06:37:44 +00:00
Dave Airlie
eb6d99014f
lavapipe: mark event_storage as volatile
...
This is spun on in cmd execution so make sure it doesn't get
optimised or cached out.
Fixes some timeouts in dEQP-VK.api.command_buffers.record_simul_use_primary
Reviewed-By: Mike Blumenkrantz <michael.blumenkrantz@gmail.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10494 >
2021-04-27 23:34:57 +00:00
Jesse Natalie
29ad039d13
microsoft/compiler: Handle unbounded arrays
...
Note that it's no longer sufficient to check for >=1 sampler/image
in a potential array, because unbounded arrays have 0 of them.
Reviewed-by: Enrico Galli <enrico.galli@intel.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10298 >
2021-04-27 23:13:19 +00:00
Jesse Natalie
611934c556
microsoft/compiler: Map descriptor set -> binding space
...
Reviewed-by: Enrico Galli <enrico.galli@intel.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10298 >
2021-04-27 23:13:19 +00:00
Jesse Natalie
c218f4a56e
microsoft/compiler: Fix function signature for bufferStore to support overloads
...
Reviewed-by: Enrico Galli <enrico.galli@intel.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10298 >
2021-04-27 23:13:19 +00:00
Jesse Natalie
46bc7cf678
microsoft/compiler: Rewrite sampler splitting pass to be smarter and handle derefs
...
Reviewed-by: Enrico Galli <enrico.galli@intel.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10298 >
2021-04-27 23:13:19 +00:00
Jesse Natalie
ec9fa0ed13
d3d12, microsoft/compiler: Use SRV/sampler variable binding data
...
For GL, we've previously mostly ignored the binding property for sampler variables
during the shader compilation step. For CL, our image bindings were always 0-based as well.
Now, for Vulkan, we are going to be getting explicit bindings and need to emit DXIL that
respects those bindings. Since Vulkan can also have both split and combined images and samplers,
we now need to be smarter about recognizing when NIR is trying to use a "sampler" as *both* an
image and sampler (in deref mode, the same variable will be deref'd as both image and sampler).
That "being smarter" bit comes next, but first, let's prep GL for building correct root
signatures and binding the resources correctly.
Reviewed-By: Bill Kristiansen <billkris@microsoft.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10298 >
2021-04-27 23:13:19 +00:00
Rob Clark
f64c7cb246
ci: Add timeout for traces jobs
...
Otherwise it is next to impossible to figure out *which* trace is
hanging (because you don't get artifact upload if the CI job hits the
overall 60min timeout).
Signed-off-by: Rob Clark <robdclark@chromium.org >
Reviewed-by: Eric Anholt <eric@anholt.net >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10490 >
2021-04-27 21:47:26 +00:00
Rob Clark
8adf41ac0e
ci: Update kernel with a few freedreno related fixes
...
40abe2528d16 HACK: iommu/arm-smmu/qcom: Set SCTLR.HUPCF for everything
7c165f82b28b drm/msm: Fix a5xx/a6xx timestamps
0d6e0765f2de drm/msm: Fix legacy relocs path
Signed-off-by: Rob Clark <robdclark@chromium.org >
Reviewed-by: Eric Anholt <eric@anholt.net >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10490 >
2021-04-27 21:47:26 +00:00
Lionel Landwerlin
6b61fbca8b
vulkan/wsi/display: don't report support if there is no drm fd
...
This partially deals with
https://gitlab.freedesktop.org/mesa/mesa/-/issues/4688
Signed-off-by: Lionel Landwerlin <lionel.g.landwerlin@intel.com >
Cc: mesa-stable
Reviewed-by: Adam Jackson <ajax@redhat.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10430 >
2021-04-27 21:04:25 +00:00
Eric Anholt
f1d3a684d5
ci: Add missing vulkan dep for freedreno (turnip) and v3dv test jobs.
...
We might miss testing core vk changes without this.
Reviewed-by: Michel Dänzer <mdaenzer@redhat.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10472 >
2021-04-27 19:55:27 +00:00
Niklas Haas
0245b82570
vulkan/wsi/x11: lower resize events to VK_SUBOPTIMAL_KHR
...
Currently, a resized window results in an VK_ERROR_OUT_OF_DATE_KHR. But,
this seems to go against the spec, which suggests returning
VK_SUBOPTIMAL_KHR if the surface extent no longer matches the window
extent. (It does not *require* the WSI actually scale the contents, only
encourages doing so "if possible")
More to the point, VK_SUBOPTIMAL_KHR is the correct status to return if
the client *can* continue presenting to this swapchain, even if the
result will look wrong / "suboptimal". It's the client's decision on
when exactly to recreate the swapchain in this case, and the client may
very well end up wanting to continue presenting for a frame or two, to
prevent flooding the driver with swapchain recreations (which can result
in the window appearing visually "frozen" while resizing).
This change makes live resizing *significantly* smoother in e.g. mpv.
Reviewed-by: Adam Jackson <ajax@redhat.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/3196 >
2021-04-27 19:42:00 +00:00
Niklas Haas
4a1f230e35
vulkan/wsi/x11: return VK_SUBOPTIMAL_KHR on mismatched swapchain
...
If the swapchain already does not match the current geometry at the time
of creation, set the initial status to VK_SUBOPTIMAL_KHR as a way to
inform clients to please resize the swapchain.
This solves a race condition where users have no way of knowing if the
surface extent changed in between the user querying the current extent
and creating the swapchain, and might end up missing a resize event
because of it, since XCB_PRESENT_CONFIGURE_NOTIFY is not yet being
handled.
Reviewed-by: Adam Jackson <ajax@redhat.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/3196 >
2021-04-27 19:42:00 +00:00
Jason Ekstrand
91cbe8d855
gallium: Add a transcode_astc driconf option
...
This is similar to the transcode_etc flag in that it changes the ASTC
fallback (when present) to use DXT5 instead of RGBA8888. This reduces
the memory footprint of the app at the expense of a bit of correctness.
Because it's not quite correct, it's hidden behind a driconf option.
Reviewed-by: Eric Anholt <eric@anholt.net >
Acked-by: Nanley Chery <nanley.g.chery@intel.com >
Reviewed-by: Marek Olšák <maraeo@gmail.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10476 >
2021-04-27 14:16:03 -05:00
Eric Anholt
7ae0719117
turnip: Only write the tu_RegisterDeviceEXT() out fence on success.
...
Fixes a double-free in dEQP-VK.wsi.display_control.register_device_event
where the fence that we destroyed got destroyed again. Leaving it unset
in the error path leaves the test's NULL in place.
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10473 >
2021-04-27 16:19:26 +00:00
Rhys Perry
ee9b744cb5
radv,aco: use nir_address_format_vec2_index_32bit_offset
...
The vec2 index helps the compiler make use of SMEM's SOFFSET field when
loading descriptors.
fossil-db (GFX10.3):
Totals from 126326 (86.37% of 146267) affected shaders:
VGPRs: 4898704 -> 4899088 (+0.01%); split: -0.02%, +0.03%
SpillSGPRs: 13490 -> 14404 (+6.78%); split: -1.10%, +7.87%
CodeSize: 306442996 -> 302277700 (-1.36%); split: -1.36%, +0.01%
MaxWaves: 3277108 -> 3276624 (-0.01%); split: +0.01%, -0.02%
Instrs: 58301101 -> 57469370 (-1.43%); split: -1.43%, +0.01%
VClause: 1208270 -> 1199264 (-0.75%); split: -1.02%, +0.28%
SClause: 2517691 -> 2432744 (-3.37%); split: -3.75%, +0.38%
Copies: 3518643 -> 3161097 (-10.16%); split: -10.45%, +0.29%
Branches: 1228383 -> 1228254 (-0.01%); split: -0.12%, +0.11%
PreSGPRs: 3973880 -> 4031099 (+1.44%); split: -0.19%, +1.63%
PreVGPRs: 3831599 -> 3831707 (+0.00%)
Cycles: 1785250712 -> 1778222316 (-0.39%); split: -0.42%, +0.03%
VMEM: 52873776 -> 50663317 (-4.18%); split: +0.18%, -4.36%
SMEM: 8534270 -> 8361666 (-2.02%); split: +1.79%, -3.82%
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/9523 >
2021-04-27 15:56:07 +00:00
Rhys Perry
7a7838529a
nir/lower_non_uniform: allow lowering with vec2 handles
...
Signed-off-by: Rhys Perry <pendingchaos02@gmail.com >
Reviewed-by: Jason Ekstrand <jason@jlekstrand.net >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/9523 >
2021-04-27 15:56:07 +00:00
Rhys Perry
00d52492bf
radv: implement vulkan_resource_reindex
...
Fixes dEQP-VK.spirv_assembly.instruction.compute.variable_pointers.dynamic_offset.select_descriptor_array
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/9523 >
2021-04-27 15:56:07 +00:00
Rhys Perry
8be3d8cc9b
radv: cleanup LLVM implementation of vulkan_descriptor_index
...
Make it create a vec2 instead of a pointer, like what the NIR expects.
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/9523 >
2021-04-27 15:56:07 +00:00
Erik Faye-Lund
be4d17ccf5
zink: correct an extension-link
...
Fixing the fix, I guess I was a bit too quick last time ;)
Fixes: 0747fb546c ("docs: fixup link to extension")
Reviewed-by: Mike Blumenkrantz <michael.blumenkrantz@gmail.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10478 >
2021-04-27 15:02:42 +00:00
Erik Faye-Lund
4ec8533f69
zink: fix shader-image requirements
...
I mixed up the EXT and ARB version of the extensions; we actually do
require shaderStorageImageWriteWithoutFormat as well here.
Thanks to Ilia Mirkin for pointing this out.
It also seems I got really confused about what was required when writing
the docs, so let's fix that as well.
Fixes: 341332b23a ("zink: correct image cap checks")
Fixes: ecac7f3da1 ("docs: add missing zink-requirement")
Reviewed-By: Mike Blumenkrantz <michael.blumenkrantz@gmail.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10463 >
2021-04-27 11:26:07 +00:00
Erik Faye-Lund
0b5c898c22
docs: remove out-of-date versions doc
...
It seems nobody is interested in maintaining this info, and nobody seems
to complain. We already have more or less the same information in our
release-notes, so let's just redirect users there instead.
Users interested in archeology can look through the git history for the
information that's missing.
Closes: https://gitlab.freedesktop.org/mesa/mesa/-/issues/4222
Reviewed-by: Adam Jackson <ajax@redhat.com >
Reviewed-by: Eric Anholt <eric@anholt.net >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10451 >
2021-04-27 11:22:33 +00:00
Tapani Pälli
d93153a564
glsl: ignore interface precision qualifier on desktop GL
...
This fixes linking failures with new GL45 linkage tests, no
regressions spotted on existing tests.
v2: add spec reference (Samuel)
Signed-off-by: Tapani Pälli <tapani.palli@intel.com >
Reviewed-by: Samuel Iglesias Gonsálvez <siglesias@igalia.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10373 >
2021-04-27 08:25:41 +00:00
Erik Faye-Lund
bc3625f5a2
zink: fixup bad indentation
...
Reviewed-By: Mike Blumenkrantz <michael.blumenkrantz@gmail.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10466 >
2021-04-27 08:11:29 +00:00
Erik Faye-Lund
bef99f8caa
zink: remove stray semicolons
...
Sometimes, there's a surplus of semicolons, and there's enough to go
around for everyone. So maybe you'll save a few away for later. But in
the big pictures, it seems better to get rid of these so we don't
overrun the semicolon quota.
Or whatever, I'm just cleaning up here.
Reviewed-By: Mike Blumenkrantz <michael.blumenkrantz@gmail.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10466 >
2021-04-27 08:11:29 +00:00
Erik Faye-Lund
fd73a2ec04
zink: make zink_binding private
...
Reviewed-By: Mike Blumenkrantz <michael.blumenkrantz@gmail.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10466 >
2021-04-27 08:11:29 +00:00
Samuel Pitoiset
1bc43492b6
radv: implement VK_EXT_provoking_vertex
...
Signed-off-by: Samuel Pitoiset <samuel.pitoiset@gmail.com >
Tested-By: Mike Blumenkrantz <michael.blumenkrantz@gmail.com >
Reviewed-by: Timur Kristóf <timur.kristof@gmail.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10449 >
2021-04-27 07:31:03 +00:00
Samuel Pitoiset
4c2add8cba
aco: adjust NGG if provoking vertex mode is last
...
Signed-off-by: Samuel Pitoiset <samuel.pitoiset@gmail.com >
Tested-By: Mike Blumenkrantz <michael.blumenkrantz@gmail.com >
Reviewed-by: Timur Kristóf <timur.kristof@gmail.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10449 >
2021-04-27 07:31:03 +00:00
Samuel Pitoiset
937a18a6af
radv/llvm: adjust NGG if provoking vertex mode is last
...
Signed-off-by: Samuel Pitoiset <samuel.pitoiset@gmail.com >
Tested-By: Mike Blumenkrantz <michael.blumenkrantz@gmail.com >
Reviewed-by: Timur Kristóf <timur.kristof@gmail.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10449 >
2021-04-27 07:31:03 +00:00
Samuel Pitoiset
d21ffa9c7d
radv: add the provoking vertex mode to the pipeline/shader keys
...
It might change the NGG code on GFX10+.
Signed-off-by: Samuel Pitoiset <samuel.pitoiset@gmail.com >
Tested-By: Mike Blumenkrantz <michael.blumenkrantz@gmail.com >
Reviewed-by: Timur Kristóf <timur.kristof@gmail.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10449 >
2021-04-27 07:31:02 +00:00
Italo Nicola
337957956e
pan/mdg: improve tex opcode decoding and add missing ops
...
Signed-off-by: Italo Nicola <italonicola@collabora.com >
Reviewed-by: Alyssa Rosenzweig <alyssa.rosenzweig@collabora.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/9461 >
2021-04-27 07:04:08 +00:00
Italo Nicola
6a12ea02fe
pan/mdg: properly encode/decode ldst instructions
...
Signed-off-by: Italo Nicola <italonicola@collabora.com >
Reviewed-by: Alyssa Rosenzweig <alyssa.rosenzweig@collabora.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/9461 >
2021-04-27 07:04:08 +00:00
Italo Nicola
4b933260d9
pan/mdg: print names of non-work registers
...
Signed-off-by: Italo Nicola <italonicola@collabora.com >
Reviewed-by: Alyssa Rosenzweig <alyssa.rosenzweig@collabora.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/9461 >
2021-04-27 07:04:08 +00:00
Italo Nicola
d2119073de
pan/mdg: improve ldst opcode names and add missing ops
...
Signed-off-by: Italo Nicola <italonicola@collabora.com >
Reviewed-by: Alyssa Rosenzweig <alyssa.rosenzweig@collabora.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/9461 >
2021-04-27 07:04:08 +00:00
Italo Nicola
a567f60b3e
pan/mdg: add helpers for load/store special read regs
...
Signed-off-by: Italo Nicola <italonicola@collabora.com >
Reviewed-by: Alyssa Rosenzweig <alyssa.rosenzweig@collabora.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/9461 >
2021-04-27 07:04:08 +00:00
Italo Nicola
733d25cfce
pan/mdg: misc cleanups
...
Signed-off-by: Italo Nicola <italonicola@collabora.com >
Reviewed-by: Alyssa Rosenzweig <alyssa.rosenzweig@collabora.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/9461 >
2021-04-27 07:04:08 +00:00
Italo Nicola
291df07edb
pan/mdg: print special alu arg outmods
...
Signed-off-by: Italo Nicola <italonicola@collabora.com >
Reviewed-by: Alyssa Rosenzweig <alyssa.rosenzweig@collabora.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/9461 >
2021-04-27 07:04:08 +00:00
Italo Nicola
cefa2e27da
pan/mdg: remove register prefixes
...
Signed-off-by: Italo Nicola <italonicola@collabora.com >
Reviewed-by: Alyssa Rosenzweig <alyssa.rosenzweig@collabora.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/9461 >
2021-04-27 07:04:08 +00:00
Italo Nicola
0ef3efb7fa
pan/mdg: improve mask decoding
...
Signed-off-by: Italo Nicola <italonicola@collabora.com >
Reviewed-by: Alyssa Rosenzweig <alyssa.rosenzweig@collabora.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/9461 >
2021-04-27 07:04:07 +00:00
Italo Nicola
7abeee1eff
pan/mdg: fix midgard.h indentation
...
Signed-off-by: Italo Nicola <italonicola@collabora.com >
Reviewed-by: Alyssa Rosenzweig <alyssa.rosenzweig@collabora.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/9461 >
2021-04-27 07:04:07 +00:00
Italo Nicola
cb7527a9ef
pan/mdg: stop using size disambiguation suffixes
...
Signed-off-by: Italo Nicola <italonicola@collabora.com >
Reviewed-by: Alyssa Rosenzweig <alyssa.rosenzweig@collabora.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/9461 >
2021-04-27 07:04:07 +00:00
Italo Nicola
ce445c0e47
pan/mdg: print input data type for ALU opcodes
...
Signed-off-by: Italo Nicola <italonicola@collabora.com >
Reviewed-by: Alyssa Rosenzweig <alyssa.rosenzweig@collabora.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/9461 >
2021-04-27 07:04:07 +00:00
Italo Nicola
5d8301977b
pan/mdg: stop querying datatype by reading opcode name
...
Signed-off-by: Italo Nicola <italonicola@collabora.com >
Reviewed-by: Alyssa Rosenzweig <alyssa.rosenzweig@collabora.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/9461 >
2021-04-27 07:04:07 +00:00
Italo Nicola
fdae70b807
pan/mdg: fix/change ALU opcodes descriptions and add some missing ops
...
Signed-off-by: Italo Nicola <italonicola@collabora.com >
Reviewed-by: Alyssa Rosenzweig <alyssa.rosenzweig@collabora.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/9461 >
2021-04-27 07:04:07 +00:00
Italo Nicola
94c03264d8
pan/mdg: improve swizzle decoding
...
Signed-off-by: Italo Nicola <italonicola@collabora.com >
Reviewed-by: Alyssa Rosenzweig <alyssa.rosenzweig@collabora.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/9461 >
2021-04-27 07:04:07 +00:00
Italo Nicola
7f0bf3d82d
pan/mdg: improve input modifier printing
...
Signed-off-by: Italo Nicola <italonicola@collabora.com >
Reviewed-by: Alyssa Rosenzweig <alyssa.rosenzweig@collabora.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/9461 >
2021-04-27 07:04:07 +00:00
Italo Nicola
baea01816a
pan/mdg: add midgard_src_expand_mode validation
...
Signed-off-by: Italo Nicola <italonicola@collabora.com >
Reviewed-by: Alyssa Rosenzweig <alyssa.rosenzweig@collabora.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/9461 >
2021-04-27 07:04:07 +00:00
Italo Nicola
b6c7da98be
pan/mdg: encode/decode expand_mode properly
...
Signed-off-by: Italo Nicola <italonicola@collabora.com >
Reviewed-by: Alyssa Rosenzweig <alyssa.rosenzweig@collabora.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/9461 >
2021-04-27 07:04:07 +00:00
Italo Nicola
f8a8dc1645
pan/mdg: add proper expand_mode enum
...
Signed-off-by: Italo Nicola <italonicola@collabora.com >
Reviewed-by: Alyssa Rosenzweig <alyssa.rosenzweig@collabora.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/9461 >
2021-04-27 07:04:07 +00:00
Italo Nicola
77e05b6a86
pan/mdg: refactor mir_pack_swizzle
...
This commit makes mir_pack_swizzle set rep_low, rep_high and half in a
more explicit way, helping in the transition to a unified expand_mode
enum in the following commit.
Signed-off-by: Italo Nicola <italonicola@collabora.com >
Reviewed-by: Alyssa Rosenzweig <alyssa.rosenzweig@collabora.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/9461 >
2021-04-27 07:04:07 +00:00
Italo Nicola
ea3115027e
pan/mdg: improve outmod printing
...
Signed-off-by: Italo Nicola <italonicola@collabora.com >
Reviewed-by: Alyssa Rosenzweig <alyssa.rosenzweig@collabora.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/9461 >
2021-04-27 07:04:07 +00:00
Italo Nicola
4cc7f2d84e
pan/mdg: rename dest_override to shrink_mode
...
Signed-off-by: Italo Nicola <italonicola@collabora.com >
Reviewed-by: Alyssa Rosenzweig <alyssa.rosenzweig@collabora.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/9461 >
2021-04-27 07:04:07 +00:00
Italo Nicola
eddb2a8988
pan/mdg: clean up redundant/unused variables in disassemble.c
...
Signed-off-by: Italo Nicola <italonicola@collabora.com >
Reviewed-by: Alyssa Rosenzweig <alyssa.rosenzweig@collabora.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/9461 >
2021-04-27 07:04:07 +00:00
Italo Nicola
8074a040e7
util: add util_sign_extend
...
This code is taken from src/freedreno/isa/decode.c.
Since we need a similar function in panfrost, it's probably good to move
it to utils.
Signed-off-by: Italo Nicola <italonicola@collabora.com >
Acked-by: Rob Clark <robclark@freedesktop.org >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/9461 >
2021-04-27 07:04:07 +00:00
Samuel Pitoiset
a854a9fa62
radv: fix various CMASK regressions on GFX9
...
This fixes a bunch of MSAA related CTS regressions. This restores
previous behaviour on GFX9 but it should be fixed properly.
Cc: 21.1 mesa-stable
Signed-off-by: Samuel Pitoiset <samuel.pitoiset@gmail.com >
Reviewed-by: Bas Nieuwenhuizen <bas@basnieuwenhuizen.nl >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10374 >
2021-04-27 06:51:26 +00:00
Iago Toral Quiroga
d636c5660c
v3dv: implement wsi hook to decide if we can present directly on device
...
This will prevent the driver to take the prime blit path for presentation
in scenarios where it can avoid it, which can substantially improve
performance, particularly at high resolutions.
Reviewed-by: Jason Ekstrand <jason@jlekstrand.net >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/5917 >
2021-04-27 06:37:43 +00:00
Iago Toral Quiroga
0c0c1418ae
vulkan/wsi: give drivers the option to decide if they need to blit
...
Until now, the WSI code would rely on VK_EXT_pci_bus_info to check if the
WSI device matched the DRM device used for display. If they matched, then
it would allow direct presentation of the swapchain images, otherwise
it would fallback to a blit path through a linear buffer.
Unfortunately, this only works for PCI devices, so embedded GPUs would
always fail the test and fallback to the prime blit path, incurring in a
performance penalty due to the extra blit.
With this change driver backends have the possibility to attach a
callback to the WSI device to take control over that decision and have
freedom to make that choice according to their own platform particularities.
Reviewed-by: Jason Ekstrand <jason@jlekstrand.net >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/5917 >
2021-04-27 06:37:43 +00:00
Tapani Pälli
e1f3770a5c
glx: fix compilation error when function name not found
...
Patch workarounds the problem like commit eec904d29c did, this fixes
compilation on older distributions that still use old header.
Fixes: 01ba8a8d02 ("glx: Implement GLX_EXT_no_config_context")
Signed-off-by: Tapani Pälli <tapani.palli@intel.com >
Reviewed-by: Adam Jackson <ajax@redhat.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10447 >
2021-04-27 06:06:56 +00:00
Corentin Noël
d42d7e0df4
ci: Use the caching proxy for Mesa artifacts
...
Allows to reduce the load and latency when getting artifacts.
Signed-off-by: Corentin Noël <corentin.noel@collabora.com >
Reviewed-by: Tomeu Vizoso <tomeu.vizoso@collabora.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10285 >
2021-04-27 07:11:37 +02:00
Enrico Galli
3a3ab2f8ee
microsoft/compiler: zero out unused WebGPU system values
...
Reviewed-by: Jesse Natalie <jenatali@microsoft.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10439 >
2021-04-27 01:53:16 +00:00
Yiwei Zhang
95844b0978
venus: use VK_EXT_image_drm_format_modifier
...
This commit contains a hack to retrieve extended buffer info, which will
be fixed by moving the logic into gralloc HAL implementation.
With this hack, the rendering result is correct.
Signed-off-by: Yiwei Zhang <zzyiwei@chromium.org >
Reviewed-by: Chia-I Wu <olvaffe@gmail.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10259 >
2021-04-27 00:15:39 +00:00
Yiwei Zhang
34f37fb780
venus: implement VK_ANDROID_native_buffer v7
...
1. Android native buffer import
2. vkGetSwapchainGrallocUsage2ANDROID
3. vkAcquireImageANDROID
4. vkQueueSignalReleaseImageANDROID
5. not advertise shared presentable image support
Signed-off-by: Yiwei Zhang <zzyiwei@chromium.org >
Reviewed-by: Chia-I Wu <olvaffe@gmail.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10259 >
2021-04-27 00:15:39 +00:00
Yiwei Zhang
c79909779a
venus: update venus-protocol headers
...
1. hide git hash from most generated files
2. fix VkImportMemoryResourceInfoMESA definition
Signed-off-by: Yiwei Zhang <zzyiwei@chromium.org >
Reviewed-by: Chia-I Wu <olvaffe@gmail.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10259 >
2021-04-27 00:15:39 +00:00
Yiwei Zhang
282e2c9496
venus: set bo->size to 0 for classic resource
...
bo->size is not used for classic resource since mapping is not allowed.
Signed-off-by: Yiwei Zhang <zzyiwei@chromium.org >
Reviewed-by: Chia-I Wu <olvaffe@gmail.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10259 >
2021-04-27 00:15:39 +00:00
Marek Olšák
6b18fcb38b
amd: addrlib update for April
...
Reviewed-by: Pierre-Eric Pelloux-Prayer <pierre-eric.pelloux-prayer@amd.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10445 >
2021-04-26 23:37:38 +00:00
Marek Olšák
804e292440
radeonsi: remove the separate DCC optimization for Stoney
...
This removes some complexity from the driver.
Reviewed-by: Pierre-Eric Pelloux-Prayer <pierre-eric.pelloux-prayer@amd.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10343 >
2021-04-26 22:53:30 +00:00
Marek Olšák
1f8fa96412
radeonsi: make the gfx9 DCC MSAA clear shader depend on the number of samples
...
because different DCC equations are used.
Fixes: 3120113ee7 - radeonsi: implement DCC MSAA 4x/8x fast clear using DCC equations on gfx9
Acked-by: Pierre-Eric Pelloux-Prayer <pierre-eric.pelloux-prayer@amd.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10343 >
2021-04-26 22:53:30 +00:00
Marek Olšák
f3112c532b
ac/surface: document more meta equation dependencies
...
Reviewed-by: Samuel Pitoiset <samuel.pitoiset@gmail.com >
Acked-by: Pierre-Eric Pelloux-Prayer <pierre-eric.pelloux-prayer@amd.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10343 >
2021-04-26 22:53:30 +00:00
Mike Blumenkrantz
9712cd3186
zink: use non-atomic load/store ops if intrinsic is not actually coherent
...
Reviewed-by: Erik Faye-Lund <erik.faye-lund@collabora.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10475 >
2021-04-26 18:04:30 -04:00
Mike Blumenkrantz
c8dfed0c12
nir/gl_lower_buffers: set access for ssbo load/store instrs
...
this is the last place where the information is available, so set the info before
it gets lost
Reviewed-by: Jason Ekstrand <jason@jlekstrand.net >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10074 >
2021-04-26 21:31:44 +00:00
Mauro Rossi
a02328395d
android: amd/common: add nir include path
...
$(MESA_TOP)/src/compiler/nir include path is added
for both clarity and build errors preventive reasons
Cc: 21.0 21.1 <mesa-stable@lists.freedesktop.org >
Reviewed-by: Marek Olšák <marek.olsak@amd.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10443 >
2021-04-26 23:14:56 +02:00
Mauro Rossi
e213bfd330
android: gallium/radeonsi: add nir include path
...
Since generated nir headers are included, it makes sense to include nir path
Fixes the following building error:
FAILED: out/target/product/x86_64/obj/STATIC_LIBRARIES/libmesa_pipe_radeonsi_intermediates/si_shader_nir.o
...
In file included from external/mesa/src/gallium/drivers/radeonsi/si_shader_nir.c:26:
external/mesa/src/amd/common/ac_nir.h:29:10: fatal error: 'nir.h' file not found
^~~~~~~
1 error generated.
Cc: 21.0 21.1 <mesa-stable@lists.freedesktop.org >
Fixes: 1c702a8239 ("ac: move ac_lower_indirect_derefs() outside of the LLVM dir")
Reviewed-by: Marek Olšák <marek.olsak@amd.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10443 >
2021-04-26 23:14:52 +02:00
Mike Blumenkrantz
7888ef8c48
zink: update docs
...
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10458 >
2021-04-26 20:19:48 +00:00
Mike Blumenkrantz
cd4637cf1f
zink: ci updates
...
Reviewed-by: Erik Faye-Lund <erik.faye-lund@collabora.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10458 >
2021-04-26 20:19:48 +00:00
Mike Blumenkrantz
bee38fba1b
zink: implement VK_EXT_provoking_vertex
...
this only needs to be set if the mode is LAST, otherwise the normal
pipeline state can be used and this one can be omitted
Reviewed-by: Erik Faye-Lund <erik.faye-lund@collabora.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10458 >
2021-04-26 20:19:48 +00:00
Mike Blumenkrantz
78232665db
zink: hook up VK_EXT_provoking_vertex
...
ideally we would want to require transformFeedbackPreservesTriangleFanProvokingVertex,
but as there is no fallback path, any amount of provoking vertex support
is still better than none, so tests related to this will continue to fail
for that hardware (intel)
Reviewed-by: Erik Faye-Lund <erik.faye-lund@collabora.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10458 >
2021-04-26 20:19:48 +00:00
Mike Blumenkrantz
0e439541a5
lavapipe: implement VK_EXT_provoking_vertex
...
Reviewed-by: Erik Faye-Lund <erik.faye-lund@collabora.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10458 >
2021-04-26 20:19:48 +00:00
Keith Packard
a60767ec26
vulkan/x11: Mark present complete using serial instead of MSC
...
Present operations do not necessarily complete after the requested
time; if the CRTC has been blanked, they will complete
immediately. This means we cannot use the MSC value to tell when a
present has finished.
Instead of using MSC, track whether each present is complete by serial
number, which is the low 32-bits of the SBC value. This value is
provided in the present_pixmap request and returned in the present
complete notify event.
Signed-off-by: Keith Packard <keithp@keithp.com >
Reviewed-by: Michel Dänzer <mdaenzer@redhat.com >
Reviewed-by: Adam Jackson <ajax@redhat.com >
2021-04-26 11:55:46 -07:00
Gert Wollny
ad853fc0e1
r600: update pipe_draw_info::restart_index only when primitive_restart is enabled
...
This avoids the use of uninitialized memory:
Conditional jump or move depends on uninitialised value(s)
at 0x5EDBF87: r600_draw_vbo (r600_state_common.c:2232)
by 0x5DEFA00: u_vbuf_draw_vbo (u_vbuf.c:1329)
by 0x5D990EF: cso_multi_draw (cso_context.c:1445)
by 0x59B7EF4: _mesa_draw_arrays (draw.c:1346)
Signed-off-by: Gert Wollny <gert.wollny@collabora.com >
Reviewed-by: Marek Olšák <marek.olsak@amd.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10442 >
2021-04-26 17:32:20 +00:00
Gert Wollny
d42c9e4787
virgl: use pipe_draw_info::restart_index only when primitive_restart is enabled
...
Closes #5651
Signed-off-by: Gert Wollny <gert.wollny@collabora.com >
Reviewed-by: Marek Olšák <marek.olsak@amd.com >
Reviewed-by: Chia-I Wu <olvaffe@gmail.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10442 >
2021-04-26 17:32:20 +00:00
Connor Abbott
a07ab4f914
freedreno: Don't lower indirects in GLSL IR
...
nir_lower_io_to_temporaries should generate better code.
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/7274 >
2021-04-26 17:07:02 +00:00
Connor Abbott
643f2cb8a3
ir3, tu: Cleanup indirect i/o lowering
...
Do all the necessary lowering in one place, during finalization, and
stop uselessly calling nir_lower_indirect_derefs in turnip. Splitting
i/o to elements should no longer be necessary since we use the i/o
semantics instead of variables now.
This has the side effect that we no longer generate enormous if-ladders
for tess/GS shaders with turnip.
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/7274 >
2021-04-26 17:07:02 +00:00
Connor Abbott
77fcb01f7f
nir/lower_clip_disable: Fix store writemask
...
We're storing into the array element, not the whole variable.
Fixes: fb2fe80 ("nir: add lowering pass for clip plane enabling")
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/7274 >
2021-04-26 17:07:02 +00:00
Connor Abbott
decfea2f4e
ir3: Prevent oob writes to inputs/outputs array
...
Don't setup inputs and outputs if we aren't using
load_input/store_output intrinsics. While it's mostly harmless, there
may be more outputs than expected which would lead to an oob write of
the outputs array when setting the register id to INVALID_REG.
Also be more paranoid with asserts to catch this.
Fixes: a6291b1 ("freedreno/ir3: rework setup_{input,output} to make struct varyings work")
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/7274 >
2021-04-26 17:07:02 +00:00
Erik Faye-Lund
b2b8b6c0e3
zink: enable required instance ext
...
VK_KHR_swapchain requires VK_KHR_surface in the instance to be enabled.
This fixes a validation-error.
Fixes: bbeee415ee ("zink: Learn about VK_KHR_swapchain")
Reviewed-By: Mike Blumenkrantz <michael.blumenkrantz@gmail.com >
Reviewed-by: Adam Jackson <ajax@redhat.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10461 >
2021-04-26 16:56:40 +00:00
Erik Faye-Lund
72eca47c66
docs: someome -> someone
...
A typo in the section about choice of language is a bit funny, but
let's fix it anyway ;)
Thanks to Ilia Mirkin for pointing this out.
Reviewed-by: Ilia Mirkin <imirkin@alum.mit.edu >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10464 >
2021-04-26 18:08:29 +02:00
Jason Ekstrand
3c8ac6a129
anv: Implement VK_EXT_provoking_vertex
...
Tested-By: Mike Blumenkrantz <michael.blumenkrantz@gmail.com >
Reviewed-by: Lionel Landwerlin <lionel.g.landwerlin@intel.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10460 >
2021-04-26 15:13:19 +00:00
Jason Ekstrand
d5ee5f6104
vulkan: Update the XML and headers to 1.2.177
...
Reviewed-by: Lionel Landwerlin <lionel.g.landwerlin@intel.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10460 >
2021-04-26 15:13:19 +00:00
Jason Ekstrand
22b8bcda2c
anv: Use the same re-order mode for streamout as for GS
...
This makes the vertex order of TRISTRIP and TRISTRIP_ADJ primitves
consistent between XFB output and GS input. Technically, the Vulkan
spec allows us to XFB out in whatever order we want but being consistent
with GS inputs is probably nicer to apps.
Fixes: 36ee2fd61c "anv: Implement the basic form of VK_EXT_transform_feedback"
Reviewed-by: Lionel Landwerlin <lionel.g.landwerlin@intel.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10460 >
2021-04-26 15:13:19 +00:00
Erik Faye-Lund
ecac7f3da1
docs: add missing zink-requirement
...
We need this feature in order to enable OpenGL 4.2 on Zink.
Reviewed-By: Mike Blumenkrantz <michael.blumenkrantz@gmail.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10456 >
2021-04-26 14:22:12 +00:00
Erik Faye-Lund
341332b23a
zink: correct image cap checks
...
PIPE_CAP_IMAGE_LOAD_FORMATTED doesn't depend on
shaderStorageImageExtendedFormats or
shaderStorageImageWriteWithoutFormat.
PIPE_SHADER_CAP_MAX_SHADER_IMAGES enables
GL_EXT_shader_image_load_store, which *does* require
shaderStorageImageExtendedFormats. Having
shaderStorageImageWriteWithoutFormat and
shaderStorageImageReadWithoutFormat isn't enough to support this.
It *might* be possible to lower extended formats to format-less
reads or writes, but we don't currently do that, so we should
just correct the test for now.
Fixes: 3f9a6d333b ("zink: export shader image caps using features")
Fixes: 5282210c0b ("zink: check correct caps for PIPE_CAP_IMAGE_LOAD_FORMATTED")
Reviewed-By: Mike Blumenkrantz <michael.blumenkrantz@gmail.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10456 >
2021-04-26 14:22:12 +00:00
Timothy Arceri
5ec8cbb9c0
mesa: fix _mesa_add_state_reference() declaration mismatch
...
Fixed gcc warnings.
Reviewed-by: Pierre-Eric Pelloux-Prayer <pierre-eric.pelloux-prayer@amd.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10446 >
2021-04-26 13:48:11 +00:00
Timothy Arceri
8d84a89cf6
mesa: fix _mesa_add{_typed}_unnamed_constant() declarations
...
The function may be passed in a single float or a vec4. Fixes
gcc warnings.
Reviewed-by: Pierre-Eric Pelloux-Prayer <pierre-eric.pelloux-prayer@amd.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10446 >
2021-04-26 13:48:11 +00:00
Timothy Arceri
db717677e7
mesa: make _mesa_find_temp_intervals() a static function
...
It is no longer used externally.
Reviewed-by: Pierre-Eric Pelloux-Prayer <pierre-eric.pelloux-prayer@amd.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10446 >
2021-04-26 13:48:11 +00:00
Erik Faye-Lund
a7e95dfca5
docs: fix quoting around a few limits
...
These two were quoted differently than the other limits in this
document. Let's fix that to be consistent.
Reviewed-By: Mike Blumenkrantz <michael.blumenkrantz@gmail.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10455 >
2021-04-26 12:59:33 +00:00
Erik Faye-Lund
0747fb546c
docs: fixup link to extension
...
I accidentally missed the actual link-definition here, so let's add
that.
Fixes: ff007afce2 ("zink: document requirement of VK_EXT_custom_border_color")
Reviewed-By: Mike Blumenkrantz <michael.blumenkrantz@gmail.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10455 >
2021-04-26 12:59:33 +00:00
Erik Faye-Lund
6e540ca7ca
zink: remove memory-model leftovers
...
We also need to stop emitting these details, otherwise we need to answer
to the validator!
Fixes: 95d9d811c9 ("zink: do not require vulkan memory model for shader-images")
Reviewed-By: Mike Blumenkrantz <michael.blumenkrantz@gmail.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10377 >
2021-04-26 12:41:52 +00:00
Rhys Perry
816ec3ecb4
radv: disable VK_FORMAT_R64_SFLOAT
...
This format was enabled by accident, isn't useful, and doesn't work.
Signed-off-by: Rhys Perry <pendingchaos02@gmail.com >
Reviewed-by: Samuel Pitoiset <samuel.pitoiset@gmail.com >
Closes: https://gitlab.freedesktop.org/mesa/mesa/-/issues/4701
Cc: 21.1 <mesa-stable>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10450 >
2021-04-26 12:10:13 +01:00
Erik Faye-Lund
496f99e8d1
zink: only emit extended-formats cap if needed
...
We do not require the extended formats feature to enable shader-images,
so we can end up accidentally enabling the cap even when we don't need
to, which can lead to validation issues.
This also prepares us for the SPV_EXT_shader_image_int64 extension, if
we ever want to support that.
Reviewed-By: Mike Blumenkrantz <michael.blumenkrantz@gmail.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10370 >
2021-04-26 09:28:49 +00:00
Erik Faye-Lund
7ef9379040
docs: use code-block for ini
...
These code-blocks are close enough to INI-files to parse that way, so
let's use that for some syntax-coloring :)
Reviewed-by: Eric Anholt <eric@anholt.net >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10281 >
2021-04-26 08:39:02 +00:00
Erik Faye-Lund
dc2eca51ed
docs: use code-block for c
...
Reviewed-by: Eric Anholt <eric@anholt.net >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10281 >
2021-04-26 08:39:02 +00:00
Erik Faye-Lund
63496d25de
docs: use code-block for glsl
...
Reviewed-by: Eric Anholt <eric@anholt.net >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10281 >
2021-04-26 08:39:02 +00:00
Erik Faye-Lund
54ad6f91c6
docs: use code-block for console-content
...
Reviewed-by: Eric Anholt <eric@anholt.net >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10281 >
2021-04-26 08:39:02 +00:00
Erik Faye-Lund
e6e002fc34
docs: use math notation for example matrices
...
Reviewed-by: Eric Anholt <eric@anholt.net >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10281 >
2021-04-26 08:39:02 +00:00
Erik Faye-Lund
525f7b6a23
docs: use tables instead of pre-formatted text
...
This makes this easier to read.
Reviewed-by: Eric Anholt <eric@anholt.net >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10281 >
2021-04-26 08:39:02 +00:00
Erik Faye-Lund
1e4e22e6ba
docs: nest cherry-pick example under note
...
This example relates to the message in the note, so it should be nested
under that note.
Reviewed-by: Eric Anholt <eric@anholt.net >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10281 >
2021-04-26 08:39:02 +00:00
Erik Faye-Lund
de0fbffb81
docs: remove documentation of MESA_HPCR_CLEAR
...
We haven't respected this variable for about 10 years, as the support
was removed in bc63b226bc ("xlib: remove a ton of old xlib driver
cruft").
So let's also remove the documentation.
Reviewed-by: Eric Anholt <eric@anholt.net >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10281 >
2021-04-26 08:39:02 +00:00
Erik Faye-Lund
67f46d70de
docs: remove documentation of MESA_PRIVATE_CMAP
...
This is used in the Mesa GLUT implementation, which has been separated
out into its own repo, and is largely abandoned in favour of FreeGLUT.
So let's not try to document MESA_PRIVATE_CMAP, as it's just going to
confuse users.
Reviewed-by: Eric Anholt <eric@anholt.net >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10281 >
2021-04-26 08:39:02 +00:00
Erik Faye-Lund
1637f1dedf
docs: remove documentation of MESA_CI_VISUAL
...
The support for color-indexed rendering was removed from mesa all the
way back in 2010, in commit 81fe9949ef ("mesa/xlib: Remove support for
color-index rendering").
So let's drop it from our documentation as well. This environment
variable does nothing.
Reviewed-by: Eric Anholt <eric@anholt.net >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10281 >
2021-04-26 08:39:02 +00:00
Erik Faye-Lund
dc310fc2e7
docs: remove out-of-date gles info
...
This info is no longer true, so let's delete it.
Reviewed-by: Eric Anholt <eric@anholt.net >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10281 >
2021-04-26 08:39:02 +00:00
Samuel Pitoiset
bc1d24e552
radv: re-introduce missing skip list for Polaris10
...
The list shouldn't have been removed but replaced.
Signed-off-by: Samuel Pitoiset <samuel.pitoiset@gmail.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10448 >
2021-04-26 08:43:13 +02:00
Timothy Arceri
a02a0df2a2
mesa: fix incomplete GL_NV_half_float implementation
...
All of the VertexAttrib* functions were missing.
Fixes: ef66e02a40 ("src/mesa: add GL_NV_half_float extension support (v2)")
Reviewed-by: Marek Olšák <marek.olsak@amd.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10431 >
2021-04-26 03:35:21 +00:00
Erico Nunes
48d48fbf3c
docs/lima: add an initial page for Lima
...
This is a cleaned up and updated version of the readme page for Lima
that was until now being maintained separately.
Let's move it in-tree so it is maintained along with the pages for
other similar drivers.
Signed-off-by: Erico Nunes <nunes.erico@gmail.com >
Reviewed-by: Erik Faye-Lund <erik.faye-lund@collabora.com >
Reviewed-by: Vasily Khoruzhick <anarsoul@gmail.com >
Reviewed-by: Eric Anholt <eric@anholt.net >
Reviewed-by: Qiang Yu <yuq825@gmail.com >
Reviewed-by: Andreas Baierl <ichgeh@imkreisrum.de >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10406 >
2021-04-24 16:42:01 +00:00
Jesse Natalie
7e905bd00f
microsoft/spirv_to_dxil: Treat read-only storage images as SRVs
...
Reviewed-by: Enrico Galli <enrico.galli@intel.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10356 >
2021-04-23 23:16:15 +00:00
Jesse Natalie
05d90ed9da
microsoft/compiler: Treat read-only SSBOs as SRVs
...
Reviewed-by: Enrico Galli <enrico.galli@intel.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10356 >
2021-04-23 23:16:15 +00:00
Jesse Natalie
2775b9139b
nir_lower_readonly_images_to_tex: Use nir_shader_lower_instructions
...
Reviewed-by: Jason Ekstrand <jason@jlekstrand.net >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10356 >
2021-04-23 23:16:15 +00:00
Jesse Natalie
fa677c8644
nir_lower_readonly_images_to_tex: Support non-CL semantics
...
For non-CL, intrinsic access isn't set, because the image type doesn't
have access qualifier. Instead, the access qualifier is set on the variable.
So, add a mode to this pass which can chase back to the variable in addition
to the intrinsic access. Also, update the variable type and the deref chain
types so everything is consistent, that the tex is accessing a sampler. Note
we can't do this for CL, because void-typed samplers don't exist.
Reviewed-by: Jason Ekstrand <jason@jlekstrand.net >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10356 >
2021-04-23 23:16:15 +00:00
Jesse Natalie
29c9731400
nir: Rename nir_lower_cl_images_to_tex, replace 'cl' with 'readonly'
...
Reviewed-by: Jason Ekstrand <jason@jlekstrand.net >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10356 >
2021-04-23 23:16:15 +00:00
Jesse Natalie
1c41f63e26
vtn: Propagate access data from UBO/SSBO/push constant types to variables of that type, not just their pointers
...
Reviewed-by: Jason Ekstrand <jason@jlekstrand.net >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10356 >
2021-04-23 23:16:15 +00:00
Jesse Natalie
9936463ef6
vtn: Propagate access data that's present on all struct members to the struct itself
...
Reviewed-by: Jason Ekstrand <jason@jlekstrand.net >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10356 >
2021-04-23 23:16:15 +00:00
Ian Romanick
939bf7a419
tgsi_exec: Fix NaN behavior of min and max
...
Modern shader APIs, like DX10 and GLSL 1.30, want min() and max() to
"cleanse" NaN. If one source is NaN, the other value should be chosen.
If both sources are NaN, the result may be either.
There are many cases where TGSI is generate from NIR, and many
optimizations in NIR expect this behavior. Not meeting these
expectations can lead to unexpected results.
Reviewed-by: Eric Anholt <eric@anholt.net >
Fixes: ffe58739da ("Softpipe: import TGSI tree. Not hooked-up yet.")
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10419 >
2021-04-23 22:01:45 +00:00
Ian Romanick
d1c0f62b42
tgsi_exec: Fix NaN behavior of saturate
...
Modern shader APIs, like DX10 and GLSL 1.30, want saturate or
clamp(..., 0.0, 1.0) to "cleanse" NaN. If the source is NaN, the
result should be zero.
There are many cases where TGSI is generate from NIR, and many
optimizations in NIR expect this behavior. Not meeting these
expectations can lead to unexpected results.
Reviewed-by: Eric Anholt <eric@anholt.net >
Fixes: 56c30bf17b ("tgsi: Saturate modifier obeys ExecMask. Implement NVIDIA [-1;+1] saturate mode.")
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10419 >
2021-04-23 22:01:45 +00:00
Charlie Turner
c6ef4047d0
radv: Merge dEQP default skips into all generation-specific skip lists
...
https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/8147
obsoleted
https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/4656 so the
default skips are not being used.
Instead, merge the defaults into each generation's skip list. Also
remove the "Fixed by CTS 3dddaeca8 ("Fix source blit image size")",
since the VK-GL-CTS has been updated to vulkan-cts-1.2.6.0 already,
which includes 3dddaeca8
Nowadays, the only option is to have default skips per GPU
version (c.f. GPU_VERSION variable in deqp-runner), since the runner
doesn't have a "skip list merge" feature.
v2.
- Removed deqp-radv-polaris10-skips.txt in response to Samuel's feedback.
v3.
- Add review tags.
Reviewed-by: Samuel Pitoiset <samuel.pitoiset@gmail.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10413 >
2021-04-23 21:39:17 +00:00
Charlie Turner
b7d5aa0ed7
ci: Remove obsolete reference to DEQP_SKIPS
...
https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/8147 didn't
remove all the incidences.
v2.
- Add review tags.
Reviewed-by: Eric Anholt <eric@anholt.net >
Reviewed-by: Samuel Pitoiset <samuel.pitoiset@gmail.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10413 >
2021-04-23 21:39:17 +00:00
Adam Jackson
01ba8a8d02
glx: Implement GLX_EXT_no_config_context
...
This is the GLX counterpart to EGL_KHR_no_config_context. Contexts may
now be created without reference to an fbconfig, in which case it is
treated as compatible with any fbconfig (and thus any GLX drawable).
Khronos: https://github.com/KhronosGroup/OpenGL-Registry/pull/102
Acked-By: Mike Blumenkrantz <michael.blumenkrantz@gmail.com >
Acked-by: Eric Anholt <eric@anholt.net >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/8999 >
2021-04-23 21:15:19 +00:00
Eric Anholt
f9d57207a3
ci/radeonsi: Mark a glx_arb_sync_control/timing flake.
...
I've seen this one happen at least twice today. Log shows something like:
Wallclock time between MSCs 16982.888889us does not match
glXGetMscRateOML 16668.071966us
or
Wallclock time between MSCs 16500.333333us does not match
glXGetMscRateOML 16668.071966us
Incidentally, both runs I've looked into had one run too fast and one run
too slow.
Acked-by: Adam Jackson <ajax@redhat.com >
Reviewed-by: Marek Olšák <marek.olsak@amd.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10414 >
2021-04-23 12:11:54 -07:00
Alyssa Rosenzweig
aed18bca64
d3d12: Switch to nir_lower_fragcolor
...
Does everything your pass did, with some bug fixes.
Signed-off-by: Alyssa Rosenzweig <alyssa@collabora.com >
Reviewed-by: Jesse Natalie <jenatali@microsoft.com >
Reviewed-by: Erik Faye-Lund <erik.faye-lund@collabora.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10411 >
2021-04-23 17:20:43 +00:00
Alyssa Rosenzweig
c84804f167
nir/lower_fragcolor: Take max cbufs as argument
...
One step closer to generalizing this pass to more drivers.
Signed-off-by: Alyssa Rosenzweig <alyssa@collabora.com >
Reviewed-by: Erik Faye-Lund <erik.faye-lund@collabora.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10411 >
2021-04-23 17:20:43 +00:00
Alyssa Rosenzweig
73eb497b86
nir/lower_fragcolor: Fix driver_location assignment
...
Fixes crash in
dEQP-GLES31.functional.shaders.framebuffer_fetch.basic.last_frag_data
when using this pass.
Signed-off-by: Alyssa Rosenzweig <alyssa@collabora.com >
Reviewed-by: Erik Faye-Lund <erik.faye-lund@collabora.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10411 >
2021-04-23 17:20:43 +00:00
Samuel Pitoiset
fe989df347
radv: enable DCC stores with the LLVM backend
...
Just to make it consistent compared to ACO.
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/10436 >
2021-04-23 16:01:22 +00:00
Samuel Pitoiset
00f0fae037
radv/llvm: implement the image load DCC bug
...
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/10436 >
2021-04-23 16:01:22 +00:00
Samuel Pitoiset
12048309a8
radv: remove warnings about RADV_PERFTEST=aco,llvm
...
These warnings have been introduced after switching ACO by default
for Mesa 20.2. I think it's time to remove them for 21.2.
Signed-off-by: Samuel Pitoiset <samuel.pitoiset@gmail.com >
Reviewed-by: Daniel Schürmann <daniel@schuermann.dev >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10435 >
2021-04-23 15:51:42 +00:00
Tony Wasserka
336e5aea35
radv: Remove assert about pDepthStencilState
...
RenderDoc's serialization code replaces unused references with NULL
pointers, which caused this assert to fire when the NULL state wasn't
really dereferenced.
Reviewed-by: Samuel Pitoiset <samuel.pitoiset@gmail.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/8860 >
2021-04-23 15:41:18 +00:00
Boris Brezillon
ab409fbf9f
panfrost/ci: Skip draw_indirect.compute_interop.large.*
...
Some of the dEQP-GLES31.functional.draw_indirect.compute_interop.large
tests create heavy compute jobs which might takes more than the
maximum allowed by the kernel driver (0.5s). Skip them for now.
Signed-off-by: Boris Brezillon <boris.brezillon@collabora.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10425 >
2021-04-23 14:59:09 +00:00
Icecream95
d01f2d0c65
pan/decode: Print errors when closing dump file
...
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10422 >
2021-04-23 14:40:55 +00:00
Icecream95
1cc9b28a76
pan/decode: Allow frame shader DCDs to be in another BO than the FBD
...
Fixes: 96b71a59c0 ("panfrost: Decode pre/post frame DCDs")
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10422 >
2021-04-23 14:40:55 +00:00
Icecream95
c7076e03e5
panfrost: Fix shader texture count
...
Instead of using num_textures, determine the texture count from the
last bit set in textures_used.
Fixes ADDR_RANGE_FAULTs when draw_textured_quad writes only stencil.
Cc: mesa-stable
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10422 >
2021-04-23 14:40:55 +00:00
Alyssa Rosenzweig
c220976fd0
panfrost: Fix formats converting uninit from AFBC
...
If no slices were valid (the resource is uninitialized), we were reading
a bogus PIPE_FORMAT_NONE format from the blit.dst.format. Fix this --
and guard against scope similar issues -- by hoisting the blit
assignments out of the loop so they're valid.
Fixes: 9d0ad7fd2e ("panfrost: Patch the gallium driver to use pan_image_layout_init()")
Signed-off-by: Alyssa Rosenzweig <alyssa@collabora.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10415 >
2021-04-23 14:23:41 +00:00
Samuel Pitoiset
3d979c9169
radv: make sure CP DMA is idle before executing secondary command buffers
...
Buffer copies with CP DMA aren't synced.
Fix dEQP-VK.memory.pipeline_barrier.transfer_src_transfer_dst.65536
flakes on GFX10+.
Fixes: e870796113 ("radv: prefer CP DMA for GTT buffer copies/clears on dGPUs due to slow PCIe")
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/10427 >
2021-04-23 13:45:24 +02:00
Samuel Pitoiset
f9e9b21e10
radv/winsys: fix resetting the number of padded IB words
...
The number of padded words is per IB, so it should be reset.
Found with Valgrind and dEQP-VK.api.command_buffers.record_many_draws*
Cc: 21.1 mesa-stable
Signed-off-by: Samuel Pitoiset <samuel.pitoiset@gmail.com >
Reviewed-by: Bas Nieuwenhuizen <bas@basnieuwenhuizen.nl >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10376 >
2021-04-23 11:40:05 +00:00
Samuel Pitoiset
ec0d3701cd
radv/winsys: fix allocating the number of CS in the sysmem path
...
Found with Valgrind and dEQP-VK.api.command_buffers.record_many_draws*.
Cc: 21.1 mesa-stable
Signed-off-by: Samuel Pitoiset <samuel.pitoiset@gmail.com >
Reviewed-by: Bas Nieuwenhuizen <bas@basnieuwenhuizen.nl >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10376 >
2021-04-23 11:40:05 +00:00
Samuel Pitoiset
bba6be03f9
radv: remove RADV_DEBUG=nothreadllvm
...
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/10429 >
2021-04-23 11:26:48 +00:00
Michel Zou
a30899f5e0
docs: list more vulkan extensions
...
Reviewed-by: Danylo Piliaiev <dpiliaiev@igalia.com >
Reviewed-by: Erik Faye-Lund <erik.faye-lund@collabora.com >
Reviewed-by: Samuel Pitoiset <samuel.pitoiset@gmail.com >
Reviewed-by: Chia-I Wu <olvaffe@gmail.com >
Reviewed-by: Lionel Landwerlin <lionel.g.landwerlin@intel.com >
Acked-by: Iago Toral Quiroga <itoral@igalia.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10334 >
2021-04-23 13:18:13 +02:00
James Park
d18563ea58
ci: Update Windows image to build RADV
...
Add AMDGPU to LLVM_TARGETS_TO_BUILD.
Remove explicit CMAKE_CXX_COMPILER from libclc to dodge regression from
newer CMake. The potential range seems like (3.19.7, 3.20.1].
Add -Dc_std=c17 to support static_assert.
Add -Dcpp_std=vc++latest to support designated initializers.
Add -Dvulkan-drivers=amd for RADV.
Add -Dlibelf:warning_level=1 because of warnings as error.
Reviewed-by: Jesse Natalie <jenatali@microsoft.com >
Acked-by: Samuel Pitoiset <samuel.pitoiset@gmail.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/6162 >
2021-04-23 10:37:22 +00:00
James Park
d7da6000fe
llvmpipe: Remove stray ## operator for MSVC
...
Reviewed-by: Jesse Natalie <jenatali@microsoft.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/6162 >
2021-04-23 10:37:22 +00:00
James Park
6de0317e5a
draw/clip: Use NAN to make MSVC happy
...
Reviewed-by: Jesse Natalie <jenatali@microsoft.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/6162 >
2021-04-23 10:37:22 +00:00
James Park
74f95e719b
radv: Add <io.h> on WIndows for missing close()
...
Reviewed-by: Jesse Natalie <jenatali@microsoft.com >
Reviewed-by: Samuel Pitoiset <samuel.pitoiset@gmail.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/6162 >
2021-04-23 10:37:22 +00:00
James Park
288f6b81d6
radv: Fix unused label warning on Windows
...
Reviewed-by: Jesse Natalie <jenatali@microsoft.com >
Reviewed-by: Samuel Pitoiset <samuel.pitoiset@gmail.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/6162 >
2021-04-23 10:37:22 +00:00
James Park
8e73ed66ad
radv: Add _WIN32 guard in radv_check_gpu_hangs
...
Reviewed-by: Jesse Natalie <jenatali@microsoft.com >
Reviewed-by: Samuel Pitoiset <samuel.pitoiset@gmail.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/6162 >
2021-04-23 10:37:22 +00:00
James Park
1351fcf3c3
amd: Fix warnings around variable sizes
...
Reviewed-by: Jesse Natalie <jenatali@microsoft.com >
Reviewed-by: Samuel Pitoiset <samuel.pitoiset@gmail.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/6162 >
2021-04-23 10:37:22 +00:00
Samuel Pitoiset
9a0098ee50
radv: cleanup LLVM related includes
...
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/10403 >
2021-04-23 11:52:01 +02:00
Samuel Pitoiset
1c702a8239
ac: move ac_lower_indirect_derefs() outside of the LLVM dir
...
Signed-off-by: Samuel Pitoiset <samuel.pitoiset@gmail.com >
Reviewed-by: Marek Olšák <marek.olsak@amd.com >
Reviewed-by: Bas Nieuwenhuizen <bas@basnieuwenhuizen.nl >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10403 >
2021-04-23 11:52:01 +02:00
Samuel Pitoiset
0b7c442d39
radv: remove old comment about LLVM <= 8
...
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/10403 >
2021-04-23 11:52:01 +02:00
Samuel Pitoiset
24b52a9b69
radv/winsys: remove set but never used use_llvm
...
It's no longer necessary since LLVM version has been bumped.
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/10403 >
2021-04-23 11:52:01 +02:00
Samuel Pitoiset
a12b844d40
radv: fix emitting default depth bounds state on GFX6
...
GFX6 has no CLEAR_STATE.
One step towards Vulkan conformance on these old chips.
Cc: 21.1 mesa-stable
Signed-off-by: Samuel Pitoiset <samuel.pitoiset@gmail.com >
Reviewed-by: Bas Nieuwenhuizen <bas@basnieuwenhuizen.nl >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10347 >
2021-04-23 08:37:11 +02:00
Mike Blumenkrantz
79790e276f
zink: when performing an implicit reset, sync qbos
...
resetting a query pool+qbo dumpsters the existing qbo results,
so these need to be copied to the new qbo if they exist, and then the query
id needs to be updated to match the expected result offset so everything
keeps working as expected
Fixes: 00fc85a011 ("zink: reset queries when suspending if >50% of total pool is used")
Reviewed-by: Dave Airlie <airlied@redhat.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10268 >
2021-04-23 03:52:47 +00:00
Mike Blumenkrantz
55b2b9b389
zink: only reset query on suspend if the query has previously been stopped
...
if the query has never been stopped, then doing an implicit reset here does
nothing except give the gpu more work
Fixes: 00fc85a011 ("zink: reset queries when suspending if >50% of total pool is used")
Reviewed-by: Dave Airlie <airlied@redhat.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10268 >
2021-04-23 03:52:47 +00:00
Mike Blumenkrantz
42658ab70c
zink: init timeline semaphore on screen creation, not first batch creation
...
this is less racy
Reviewed-by: Dave Airlie <airlied@redhat.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10214 >
2021-04-23 03:43:05 +00:00
Mike Blumenkrantz
e34dc0840b
zink: use cached memory for staging resources
...
I think at one point before staging resource flagging was less reliable
this method made sense, but now it's worse
Fixes: 6ff6d01c37 ("zink: don't use cached mem for staging resources")
Reviewed-by: Adam Jackson <ajax@redhat.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10363 >
2021-04-23 03:31:34 +00:00
Mike Blumenkrantz
67d22bd8e0
zink: restore previous semaphore (prev_sem) handling
...
this was accidentally lost during refactoring
Fixes: fa36a16c68 ("zink: make timeline semaphores per-screen")
Reviewed-by: Dave Airlie <airlied@redhat.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10421 >
2021-04-23 03:20:02 +00:00
Mike Blumenkrantz
de31a510cc
zink: track persistent resource objects, not resources
...
this is broken after the backing object split because resources themselves
no longer have guaranteed lifetimes
Fixes: 616720d6ae ("zink: track resource_object usage instead of resource usage")
Reviewed-by: Dave Airlie <airlied@redhat.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10270 >
2021-04-23 03:08:18 +00:00
Mike Blumenkrantz
90315b14d1
softpipe: ci updates
...
Reviewed-by: Dave Airlie <airlied@redhat.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10398 >
2021-04-23 01:08:43 +00:00
Mike Blumenkrantz
fa2b32b3b1
softpipe: fix streamout queries
...
these need to always use the query index in order to access the correct
vertex stream
Fixes: ddb9ad363d ("softpipe: add support for indexed queries.")
Reviewed-by: Dave Airlie <airlied@redhat.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10398 >
2021-04-23 01:08:43 +00:00
Mike Blumenkrantz
8dbb022b8a
softpipe: fix render condition checking
...
always casting this to a u64 is invalid if the value is just a bool,
and it even generates ASAN/valgrind errors about uninitialized reads
Fixes: 41450b03a8 ("softpipe: implement conditional rendering")
Reviewed-by: Dave Airlie <airlied@redhat.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10398 >
2021-04-23 01:08:43 +00:00
Icecream95
ab3a72cc20
pan/bi: Skip nir_opt_move/sink for blend shaders
...
Otherwise the dual-source input load is moved further down in the
shader, so the registers can get clobbered before then.
Fixes text not being visible in Alacritty.
Fixes: 52863f2e60 ("pan/bi: Enable all nir_opt_move/sink optimizations")
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10089 >
2021-04-22 23:13:27 +00:00
Tomeu Vizoso
abcefaffb1
panfrost/ci: Enable some dEQP 3.1 tests on Mali T860
...
We have now enough machines in the lab for the extra job.
Signed-off-by: Italo Nicola <italonicola@collabora.com >
Reviewed-by: Italo Nicola <italonicola@collabora.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10375 >
2021-04-22 21:28:52 +02:00
Boris Brezillon
c739f9bdab
panfrost/ci: Test GLES 3.1 on Bifrost
...
Signed-off-by: Boris Brezillon <boris.brezillon@collabora.com >
Reviewed-by: Tomeu Vizoso <tomeu.vizoso@collabora.com >
Reviewed-by: Alyssa Rosenzweig <alyssa.rosenzweig@collabora.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10375 >
2021-04-22 21:28:52 +02:00
Boris Brezillon
51f86720b9
ci: Update to a kernel that has the panfrost MMU fixes
...
Needed for dEQP-GLES31.functional.draw_indirect, otherwise we end up
with GPU faults.
Signed-off-by: Boris Brezillon <boris.brezillon@collabora.com >
Reviewed-by: Tomeu Vizoso <tomeu.vizoso@collabora.com >
Acked-by: Alyssa Rosenzweig <alyssa.rosenzweig@collabora.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10375 >
2021-04-22 21:28:52 +02:00
Boris Brezillon
5742493650
panfrost: Only advertise INDIRECT_DRAW if the kernel supports HEAP BOs
...
The indirect draw implementation uses a HEAP pool to allocate varyings.
Don't advertise INDIRECT_DRAW if the kernel doesn't support allocating
HEAP BOs.
Signed-off-by: Boris Brezillon <boris.brezillon@collabora.com >
Reviewed-by: Alyssa Rosenzweig <alyssa.rosenzweig@collabora.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10375 >
2021-04-22 21:28:52 +02:00
Leo Liu
35a28e0381
frontends/va: add VASurfaceAttribUsageHint attribute
...
Chrome browser has been calling this attribute to give driver the surface
usage hint. The hints include:
VA_SURFACE_ATTRIB_USAGE_HINT_GENERIC
VA_SURFACE_ATTRIB_USAGE_HINT_DECODER
VA_SURFACE_ATTRIB_USAGE_HINT_ENCODER
VA_SURFACE_ATTRIB_USAGE_HINT_VPP_READ
VA_SURFACE_ATTRIB_USAGE_HINT_VPP_WRITE
VA_SURFACE_ATTRIB_USAGE_HINT_DISPLAY
VA_SURFACE_ATTRIB_USAGE_HINT_EXPORT
The surface allocation are generic for us, and we don't need to specify
it. To add the attribute here is because we don't want application which
is calling this attribute to end up returning error and getting no surface
allocated.
Fixes: ebab310987 ("frontends/va: improve surface attribs processing")
Signed-off-by: Leo Liu <leo.liu@amd.com >
Reviewed-by: James Zhu <James.Zhu@amd.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10353 >
2021-04-22 18:55:15 +00:00
Gert Wollny
0cae8d372e
r600: don't set an index_bias for indirect draw calls
...
The bug #4657 mixed up which commit was actually responsible for
the regression, so re-apply this patch.
The indirect draw call already encodes the index bias so that no
additional encoding in the hardware is needed in this case.
This fixes a regression with a number of tests from
dEQP-GLES31.functional.draw_indirect.random.*
Fixes: c6c532faa8
"gallium/u_vbuf: use updated pipe_draw_start_count while using draw_vbo"
Closes #4671
Signed-off-by: Gert Wollny <gert.wollny@collabora.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10388 >
2021-04-22 18:44:01 +00:00
Gert Wollny
0934467fd9
Revert "r600: Don't advertise support for scaled int16 vertex formats"
...
This reverts commit 00a1521529 .
While the commit fixed some GLES cts tests it introduced heavy regressions
that made the driver unusable.
Closes #4680
Signed-off-by: Gert Wollny <gert.wollny@collabora.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10388 >
2021-04-22 18:44:01 +00:00
Adam Jackson
bb56fce8e3
glx: Remove unused debugging printfs
...
There's better ways to do that, if that's what you need.
Reviewed-by: Eric Anholt <eric@anholt.net >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10381 >
2021-04-22 18:11:52 +00:00
Adam Jackson
70f66bb5ea
glx: Convert undocumented LIBGL_DIAGNOSTIC to LIBGL_DEBUG=verbose
...
Reviewed-by: Eric Anholt <eric@anholt.net >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10381 >
2021-04-22 18:11:52 +00:00
Adam Jackson
f3d14e7616
glx: Add and use DebugMessageF convenience macro
...
Reviewed-by: Eric Anholt <eric@anholt.net >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10381 >
2021-04-22 18:11:52 +00:00
Adam Jackson
1cb664c15c
glx: s/dri_message/glx_message/
...
Move this up to the generic glx code, there's nothing DRI-specific about
this and it'll let us clean up some ad-hockery elsewhere.
Reviewed-by: Eric Anholt <eric@anholt.net >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10381 >
2021-04-22 18:11:52 +00:00
Adam Jackson
12fd68a0dc
glx: Return the right GLX opcode in synthetic MakeCurrent errors
...
If you're trying to figure out why an operation failed it helps if
the error matches the function you thought you called.
Reviewed-by: Eric Anholt <eric@anholt.net >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10381 >
2021-04-22 18:11:52 +00:00
Adam Jackson
5a613c55eb
dri: Try harder to infer the drawable fbconfig if needed
...
This code would work for GLXWindows but not for bare Windows, which I
guess you could argue is a server bug but which we can fix on the client
side with a little effort. We change __glXGetDrawableAttribute to
additionally return false if we failed to find the requested attribute
(which is safe, all the other callers discard the return value). Then
when inferring the fbconfig, if the attribute wasn't found, we ask for
the window attributes to find the visual ID and use that to find the
fbconfig.
Reviewed-by: Eric Anholt <eric@anholt.net >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10381 >
2021-04-22 18:11:52 +00:00
Jason Ekstrand
134af5ada2
intel/compiler: Don't insert barriers for NULL sources
...
Normally, we never see NULL in a source. However, starting with
eab1c55590 , we can with a SHADER_OPCODE_SEND if it only has the first
payload. We were inserting barriers which adds unnecessary scheduling
dependencies and takes a lot of compile time because inserting a single
barrier is an O(n) operation.
All the extra O(n) can have a surprisingly large effect. This cuts the
runtime of dEQP-VK.binding_model.buffer_device_address.set3.depth3.
basessbo.convertcheckuv2.store.single.std140.frag by a factor of 20x for
a debug build.
Shader-db results on ICL:
total instructions in shared programs: 19918983 -> 19921610 (0.01%)
instructions in affected programs: 884074 -> 886701 (0.30%)
helped: 1688
HURT: 817
helped stats (abs) min: 1 max: 163 x̄: 4.23 x̃: 1
helped stats (rel) min: 0.02% max: 12.50% x̄: 1.08% x̃: 0.61%
HURT stats (abs) min: 1 max: 2674 x̄: 11.95 x̃: 2
HURT stats (rel) min: 0.11% max: 70.22% x̄: 1.71% x̃: 1.03%
95% mean confidence interval for instructions value: -1.97 4.06
95% mean confidence interval for instructions %-change: -0.28% -0.06%
Inconclusive result (value mean confidence interval includes 0).
total cycles in shared programs: 976503324 -> 975884809 (-0.06%)
cycles in affected programs: 82581703 -> 81963188 (-0.75%)
helped: 4144
HURT: 5010
helped stats (abs) min: 1 max: 79294 x̄: 311.31 x̃: 8
helped stats (rel) min: <.01% max: 53.69% x̄: 2.00% x̃: 0.51%
HURT stats (abs) min: 1 max: 92266 x̄: 134.04 x̃: 8
HURT stats (rel) min: <.01% max: 218.09% x̄: 3.25% x̃: 0.53%
95% mean confidence interval for cycles value: -119.85 -15.29
95% mean confidence interval for cycles %-change: 0.68% 1.07%
Inconclusive result (value mean confidence interval and %-change mean confidence interval disagree).
total spills in shared programs: 10659 -> 12014 (12.71%)
spills in affected programs: 441 -> 1796 (307.26%)
helped: 7
HURT: 12
total fills in shared programs: 11551 -> 14429 (24.92%)
fills in affected programs: 993 -> 3871 (289.83%)
helped: 8
HURT: 11
total sends in shared programs: 1025832 -> 1025353 (-0.05%)
sends in affected programs: 2241 -> 1762 (-21.37%)
helped: 105
HURT: 1
helped stats (abs) min: 1 max: 87 x̄: 4.57 x̃: 2
helped stats (rel) min: 5.56% max: 54.72% x̄: 11.37% x̃: 10.00%
HURT stats (abs) min: 1 max: 1 x̄: 1.00 x̃: 1
HURT stats (rel) min: 100.00% max: 100.00% x̄: 100.00% x̃: 100.00%
95% mean confidence interval for sends value: -7.39 -1.65
95% mean confidence interval for sends %-change: -12.95% -7.70%
Sends are helped.
LOST: 93
GAINED: 109
Closes: https://gitlab.freedesktop.org/mesa/mesa/-/issues/4648
Fixes: eab1c55590 "intel/fs: Support SENDS in SHADER_OPCODE_SEND"
Reviewed-by: Eric Anholt <eric@anholt.net >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10412 >
2021-04-22 18:00:16 +00:00
Erik Faye-Lund
a6a198da21
zink: do not read outside of array
...
We need to bounds-check *before* we index the array, otherwise we peek
beyond the end of it.
Caught by Valgrind.
Fixes: dd29a7e5b0 ("zink: move descriptor barrier handling to main update function")
Reviewed-By: Mike Blumenkrantz <michael.blumenkrantz@gmail.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10367 >
2021-04-22 17:47:30 +00:00
Boris Brezillon
5006167061
panfrost: Hook-up indirect dispatch support
...
Signed-off-by: Boris Brezillon <boris.brezillon@collabora.com >
Reviewed-by: Alyssa Rosenzweig <alyssa.rosenzweig@collabora.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10332 >
2021-04-22 16:59:18 +00:00
Boris Brezillon
9b22cda364
panfrost: Add helpers to emit indirect dispatch jobs
...
Indirect dispatch is implemented using an extra compute job patching
the compute job header to apply the final num_workgroup values. Add
helpers to simplify emission of the such jobs.
Signed-off-by: Boris Brezillon <boris.brezillon@collabora.com >
Reviewed-by: Alyssa Rosenzweig <alyssa.rosenzweig@collabora.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10332 >
2021-04-22 16:59:18 +00:00
Boris Brezillon
7d14a0cb99
panfrost: Make sure pack_work_groups_compute() is passed valid dimensions
...
Make sure size_{x,y,z} and num_{x,y,s} are positive, otherwise we end
up with an integer underflow.
Signed-off-by: Boris Brezillon <boris.brezillon@collabora.com >
Reviewed-by: Alyssa Rosenzweig <alyssa@collabora.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10332 >
2021-04-22 16:59:18 +00:00
Boris Brezillon
54a4e75223
pan/midg: Make sure the constant offset is in range in mir_match_iadd()
...
The offset field is an 18-bit signed integer, if the offset is bigger
than that we can get rid of the intermediate iadd.
Signed-off-by: Boris Brezillon <boris.brezillon@collabora.com >
Reviewed-by: Alyssa Rosenzweig <alyssa@collabora.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10332 >
2021-04-22 16:59:18 +00:00
Boris Brezillon
c09439721c
pan/midg: Fix midgard_pack_common_store_mask()
...
st_u64() gets an invalid mask when component Y is written.
Signed-off-by: Boris Brezillon <boris.brezillon@collabora.com >
Reviewed-by: Alyssa Rosenzweig <alyssa@collabora.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10332 >
2021-04-22 16:59:18 +00:00
Boris Brezillon
51836a2be9
pan/bi: Expand pseudo instructions when nosched is set
...
Pseudo instruction might expend to 2 instructions (one in the FMA slot
and one in the ADD slot), we need to expand those even if nosched is
set.
Signed-off-by: Boris Brezillon <boris.brezillon@collabora.com >
Reviewed-by: Alyssa Rosenzweig <alyssa.rosenzweig@collabora.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10332 >
2021-04-22 16:59:18 +00:00
Adam Jackson
62f3507aea
gallium: Fix PIPE_BIND_SAMPLER_REDUCTION_MINMAX definition to be unique
...
This accidentally collided with PIPE_BIND_SCANOUT.
Fixes: 59ad872458 gallium: add PIPE_BIND_SAMPLER_REDUCTION_MINMAX
Reviewed-By: Mike Blumenkrantz <michael.blumenkrantz@gmail.com >
Reviewed-by: Ilia Mirkin <imirkin@alum.mit.edu >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10397 >
2021-04-22 16:35:06 +00:00
Adam Jackson
fca09eb8f3
zink: Fix format query for minmax reduction support
...
All the rest of the filters here are written as "if asking for this
feature and it's not there, return false", with an implicit fallthrough
to the next test. There's no good reason to treat minmax differently.
Fixes: 22e1ed5722 zink: support format queries for VK_EXT_sampler_filter_minmax
Reviewed-By: Mike Blumenkrantz <michael.blumenkrantz@gmail.com >
Reviewed-by: Ilia Mirkin <imirkin@alum.mit.edu >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10397 >
2021-04-22 16:35:06 +00:00
Simon Ser
4a6b87ceab
radeonsi: implement pipe_context.create_video_buffer_with_modifiers
...
Just pass down the modifier list to vl_video_buffer_create_as_resource,
filtering out DCC modifiers because we don't support these for now.
Signed-off-by: Simon Ser <contact@emersion.fr >
Reviewed-by: Leo Liu <leo.liu@amd.com >
Reviewed-by: Marek Olšák <marek.olsak@amd.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10237 >
2021-04-22 15:57:29 +00:00
Simon Ser
5f101e8096
gallium, va: add support for VASurfaceAttribDRMFormatModifiers
...
This new surface attribute can be supplied by the client to indicate
a list of modifiers that the driver can choose from for buffer
allocation. This is useful to make sure the buffers allocated via libva
are compatible with the intended usage (e.g. can be scanned out via KMS
or can be imported to EGL).
Introduce a new Gallium pipe_context.create_video_buffer_with_modifiers
hook that drivers can implement if they are modifiers-aware. Add a
modifiers argument to vlVaHandleSurfaceAllocate so that the
user-supplied list of modifiers can be passed down from vaCreateSurfaces
to the Gallium driver.
Signed-off-by: Simon Ser <contact@emersion.fr >
Reviewed-by: Leo Liu <leo.liu@amd.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10237 >
2021-04-22 15:57:29 +00:00
Lionel Landwerlin
74685c8136
anv: reuse define for number of render target assert
...
Signed-off-by: Lionel Landwerlin <lionel.g.landwerlin@intel.com >
Reviewed-by: Tapani Pälli <tapani.palli@intel.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10206 >
2021-04-22 15:34:52 +00:00
Lionel Landwerlin
b15bfe92f7
anv: implement VK_EXT_color_write_enable
...
v2: Add missing gfx 7/7.5 dynamic state emission
Signed-off-by: Lionel Landwerlin <lionel.g.landwerlin@intel.com >
Reviewed-by: Tapani Pälli <tapani.palli@intel.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10206 >
2021-04-22 15:34:52 +00:00
Lionel Landwerlin
82eb7c04e7
anv: prepare pipeline for delayed emission of color writes
...
Namely we want to be able to emit the following dynamically :
* On Gfx 7/7.5 : 3DSTATE_VM, 3DSTATE_BLEND_STATE_POINTERS
* On Gfx 8+ : 3DSTATE_VM, 3DSTATE_BLEND_STATE_POINTERS,
3DSTATE_PS_BLEND
Signed-off-by: Lionel Landwerlin <lionel.g.landwerlin@intel.com >
Reviewed-by: Tapani Pälli <tapani.palli@intel.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10206 >
2021-04-22 15:34:52 +00:00
Lionel Landwerlin
fab08d65cb
anv: drop extension check for dynamic state
...
Following 505d176a8e ("anv: disable baked in pipeline bits from
dynamic emission path") dynamic bits of extensions that are not
enabled should not be there.
Signed-off-by: Lionel Landwerlin <lionel.g.landwerlin@intel.com >
Reviewed-by: Tapani Pälli <tapani.palli@intel.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10206 >
2021-04-22 15:34:52 +00:00
Lionel Landwerlin
2b49d5d193
vulkan: bump headers/registry to version 1.2.175
...
Signed-off-by: Lionel Landwerlin <lionel.g.landwerlin@intel.com >
Reviewed-by: Tapani Pälli <tapani.palli@intel.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10206 >
2021-04-22 15:34:52 +00:00
Boris Brezillon
51a4bca3c3
pan/midg: Fix 2 memory leaks
...
The ssa_constants hash table and its elements are leaked. Pass the
context to the allocator to avoid that.
Signed-off-by: Boris Brezillon <boris.brezillon@collabora.com >
Reviewed-by: Alyssa Rosenzweig <alyssa@collabora.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10408 >
2021-04-22 16:25:40 +02:00
Timur Kristóf
74c467d988
aco: Mark VCC clobbered for iadd8 and iadd16 reductions on GFX6-7.
...
On GFX6-7, the 8 and 16-bit integer add reductions use the 32-bit v_add
instruction, which clobbers the VCC register.
Cc: mesa-stable
Signed-off-by: Timur Kristóf <timur.kristof@gmail.com >
Reviewed-by: Samuel Pitoiset <samuel.pitoiset@gmail.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10346 >
2021-04-22 11:29:49 +00:00
Marcin Ślusarz
59bbf885e9
gallium/u_threaded: offload begin/end_intel_perf_query
...
Fixes: 206495cac4 ("iris: Enable u_threaded_context")
Signed-off-by: Marcin Ślusarz <marcin.slusarz@intel.com >
Acked-by: Marek Olšák <marek.olsak@amd.com >
Reviewed-by: Lionel Landwerlin <lionel.g.landwerlin@intel.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/9922 >
2021-04-22 10:59:12 +00:00
Marcin Ślusarz
e6aa5b96a8
gallium/u_threaded: implement INTEL_performance_query hooks
...
Fixes: 206495cac4 ("iris: Enable u_threaded_context")
Closes: https://gitlab.freedesktop.org/mesa/mesa/-/issues/4528
Signed-off-by: Marcin Ślusarz <marcin.slusarz@intel.com >
Acked-by: Marek Olšák <marek.olsak@amd.com >
Reviewed-by: Lionel Landwerlin <lionel.g.landwerlin@intel.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/9922 >
2021-04-22 10:59:12 +00:00
Marcin Ślusarz
a53d5753fd
intel/perf: move calculation of period_exponent to perf ctx init
...
Signed-off-by: Marcin Ślusarz <marcin.slusarz@intel.com >
Reviewed-by: Lionel Landwerlin <lionel.g.landwerlin@intel.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/9922 >
2021-04-22 10:59:12 +00:00
Marcin Ślusarz
111d89eb7c
iris: fully populate perf_config before using it to initialize perf_context
...
Signed-off-by: Marcin Ślusarz <marcin.slusarz@intel.com >
Reviewed-by: Lionel Landwerlin <lionel.g.landwerlin@intel.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/9922 >
2021-04-22 10:59:12 +00:00
Marcin Ślusarz
0e32939654
i965: fully populate perf_config before using it to initialize perf_context
...
Signed-off-by: Marcin Ślusarz <marcin.slusarz@intel.com >
Reviewed-by: Lionel Landwerlin <lionel.g.landwerlin@intel.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/9922 >
2021-04-22 10:59:12 +00:00
James Park
e189839002
meson: Disable MSVC warning 5105
...
Older versions of the Windows SDK are not compliant when the new
preprocessor is active, which is the default when C17 is enabled.
Reviewed-by: Jesse Natalie <jenatali@microsoft.com >
Acked-by: Samuel Pitoiset <samuel.pitoiset@gmail.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10202 >
2021-04-22 10:29:02 +00:00
James Park
e29f4a19a8
meson: Disable libdrm for RADV on Windows
...
Reviewed-by: Jesse Natalie <jenatali@microsoft.com >
Acked-by: Samuel Pitoiset <samuel.pitoiset@gmail.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10202 >
2021-04-22 10:29:02 +00:00
James Park
e9254699a7
meson: Add wrap for libelf on Windows
...
Uses release from Lag Free Games GitHub, which applies Windows build
fixes to FreeBSD libelf.
The amd_common library uses libelf.
Reviewed-by: Jesse Natalie <jenatali@microsoft.com >
Acked-by: Samuel Pitoiset <samuel.pitoiset@gmail.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10202 >
2021-04-22 10:29:02 +00:00
Juan A. Suarez Romero
c93bd731f8
v3dv/pipeline_cache: bail out in case of error
...
Currently, in GetPipelineCacheData() function, in several cases if
there is an error the blob is finished and cache unlocked, but code
continues executing, which can lead to multiple
`pthread_mutex_unlock()` calls.
Instead, if there's an error just bail out to finish the blob and unlock
the cache directly.
Fixes CID#1468147 "Double unlock (LOCK)".
v2:
- Rename "bail_out" by "done" (apinheiro)
Reviewed-by: Alejandro Piñeiro <apinheiro@igalia.com >
Signed-off-by: Juan A. Suarez Romero <jasuarez@igalia.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10404 >
2021-04-22 11:40:40 +02:00
James Park
dc736a1740
radv: Use ac_drm_fourcc.h
...
Allows compilation on Windows.
Reviewed-by: Samuel Pitoiset <samuel.pitoiset@gmail.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/9709 >
2021-04-22 08:16:11 +00:00
James Park
a64b36ecaf
ac/surface: Move drm_fourcc.h to common header
...
Useful for including from RADV without copy/paste.
Reviewed-by: Samuel Pitoiset <samuel.pitoiset@gmail.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/9709 >
2021-04-22 08:16:11 +00:00
Juan A. Suarez Romero
84c64a0713
ci/v3d: execute all piglit tests
...
Most of the regressions we found are with the piglit testsuite. The
difference between executing all tests versus quick_gl + quick_shader
are minimal, in the sense that we would need the same number of jobs to
execute and be in the 10 minutes budget.
Hence replace "quick_gl" + "quick_shader" by "all".
Reviewed-by: Eric Anholt <eric@anholt.net >
Signed-off-by: Juan A. Suarez Romero <jasuarez@igalia.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10378 >
2021-04-22 07:53:39 +00:00
Juan A. Suarez Romero
796cb1e9d5
v3dv: check returned values
...
Check if v3dv_ioctl() or v3dv_bo_map() fail, and print a proper error
message.
This check happens in the rest of the code, so it makes sense to apply
here too.
Fixes CID#1468162 "Unchecked return value (CHECKED_RETURN)".
v2:
- Fix message error (Iago)
Reviewed-by: Iago Toral Quiroga <itoral@igalia.com >
Signed-off-by: Juan A. Suarez Romero <jasuarez@igalia.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10380 >
2021-04-22 07:39:24 +00:00
Dave Airlie
32a2978949
lavapipe: fix mipmapped resolves.
...
I updated CTS and found
EQP-VK.renderpass.suballocation.multisample_resolve.b8g8r8a8_unorm.samples_4_resolve_level_*
was failing.
Fixes: b38879f8c5 ("vallium: initial import of the vulkan frontend")
Reviewed-By: Mike Blumenkrantz <michael.blumenkrantz@gmail.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10400 >
2021-04-22 03:01:33 +00:00
Jesse Natalie
53c97f92cd
microsoft/compiler: For Vulkan environment, don't create resource handles upfront
...
Creating resource handles upfront works well while we have fixed-size resource
counts, but once we start talking about bindless, having arrays or even sets
of handles becomes prohibitive. It also precludes dynamic indexing for textures.
Instead, rely on the load_vulkan_descriptor instruction for UBO/SSBO, and undo
nir_lower_samplers so we continue to have deref chains for image/sampler accesses.
Then, emit handles at the end of a deref chain - the chain should only have
array offsets, so once we get to a type that's not an array anymore, we can
emit the handle.
Reviewed-by: Enrico Galli <enrico.galli@intel.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10288 >
2021-04-22 02:43:30 +00:00
Jesse Natalie
f6667b13f2
microsoft/compiler: Remove assert-only resource size or usage tracking
...
Reviewed-by: Enrico Galli <enrico.galli@intel.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10288 >
2021-04-22 02:43:30 +00:00
Jesse Natalie
86e443d0cc
microsoft/compiler: Remove hardcoded limits on numbers of resource arrays
...
While GL and CL might have limits here, Vulkan doesn't, and can declare
tons of individual variables.
Reviewed-by: Enrico Galli <enrico.galli@intel.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10288 >
2021-04-22 02:43:30 +00:00
Alyssa Rosenzweig
0f4ba349e9
nir/lower_fragcolor: Handle fp16 outputs
...
Signed-off-by: Alyssa Rosenzweig <alyssa@collabora.com >
Reviewed-By: Mike Blumenkrantz <michael.blumenkrantz@gmail.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10391 >
2021-04-21 22:17:28 +00:00
Alyssa Rosenzweig
49c6157b15
nir/lower_fragcolor: Use shader_instructions_pass
...
While I was in the area.
Signed-off-by: Alyssa Rosenzweig <alyssa@collabora.com >
Reviewed-By: Mike Blumenkrantz <michael.blumenkrantz@gmail.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10391 >
2021-04-21 22:17:28 +00:00
Lionel Landwerlin
0bb29c07a4
spirv: fixup pointer_to/from_ssa with acceleration structures
...
Signed-off-by: Lionel Landwerlin <lionel.g.landwerlin@intel.com >
Fixes: ed907e5d84 ("spirv: Add support for OpTypeAccelerationStructureKHR")
Reviewed-by: Jason Ekstrand <jason@jlekstrand.net >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10357 >
2021-04-21 21:51:51 +00:00
Yiwei Zhang
e91c95dba8
venus: force a roundtrip after vn_renderer_bo_create_dmabuf
...
This is to ensure the kernel operations and the later ring operations
are in the right order.
Signed-off-by: Yiwei Zhang <zzyiwei@chromium.org >
Reviewed-by: Chia-I Wu <olvaffe@gmail.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10390 >
2021-04-21 21:40:32 +00:00
Yiwei Zhang
8bbe55533f
venus: close the import memory fd on success
...
VkImportMemoryFdInfoKHR takes fd ownership on a successful import.
Internally, vn_renderer_bo_create_dmabuf doesn't rely on the fd to
extend the life cycle of the bo or the host resource, and it won't
close the fd. Thus, we shall close the fd when the import succeeds.
Signed-off-by: Yiwei Zhang <zzyiwei@chromium.org >
Reviewed-by: Chia-I Wu <olvaffe@gmail.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10390 >
2021-04-21 21:40:32 +00:00
Italo Nicola
9703ca5699
pan/mdg: fix midgard writemask encoding for stores
...
This commits fixes a regression caused by commit
616394cf31 .
Fixes dEQP-GLES31.functional.compute.shared_var.atomic.min.*,
dEQP-GLES31.functional.ssbo.atomic.min.*,
dEQP-GLES31.functional.compute.shared_var.atomic.max.* and
dEQP-GLES31.functional.ssbo.atomic.max.*.
Midgard's non-image and non-varying store operations have a unique
behavior for the load/store writemask, with each bit being responsible
for 1/4th of the size of the total write operation. This means that we
have to pack the writemask differently since we stopped using st_u128
for everything.
Signed-off-by: Italo Nicola <italonicola@collabora.com >
Reviewed-by: Alyssa Rosenzweig <alyssa.rosenzweig@collabora.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10067 >
2021-04-21 21:22:42 +00:00
Rhys Perry
5760386654
radv: only set robust_modes if robustBufferAccess2 is enabled
...
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/10384 >
2021-04-21 20:26:58 +00:00
Rhys Perry
8408d0312f
radv: improve vectorization callback for small bit sizes
...
More accurately reflect the hardware's capabilities for byte and short
aligned VMEM operations.
fossil-db (GFX10.3):
Totals from 65 (0.05% of 139391) affected shaders:
SGPRs: 4296 -> 4200 (-2.23%)
CodeSize: 1000984 -> 1000368 (-0.06%); split: -0.13%, +0.07%
Instrs: 177504 -> 177380 (-0.07%); split: -0.17%, +0.10%
Cycles: 36820596 -> 36812792 (-0.02%); split: -0.15%, +0.13%
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/10384 >
2021-04-21 20:26:58 +00:00
Rhys Perry
89b759c4f9
nir/opt_load_store_vectorize: loop internally
...
To vectorize to vec8/16 or vec4 (without vec3), we can't incrementally add
components to a load/store. This patch loops vectorization so that two new
vec2/4/8 operations can be combined into a larger operation.
fossil-db (GFX10.3):
Totals from 22 (0.02% of 139391) affected shaders:
SpillVGPRs: 1749 -> 1771 (+1.26%)
CodeSize: 901212 -> 892532 (-0.96%); split: -1.19%, +0.22%
Scratch: 178176 -> 184320 (+3.45%)
Instrs: 159358 -> 158027 (-0.84%); split: -0.99%, +0.16%
Cycles: 37046772 -> 36738544 (-0.83%); split: -1.00%, +0.17%
Signed-off-by: Rhys Perry <pendingchaos02@gmail.com >
Reviewed-by: Eric Anholt <eric@anholt.net >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10384 >
2021-04-21 20:26:58 +00:00
Rhys Perry
447820d003
nir/opt_load_store_vectorize: ignore load_vulkan_descriptor
...
These mess with alignment calculation.
No fossil-db changes.
Signed-off-by: Rhys Perry <pendingchaos02@gmail.com >
Reviewed-by: Eric Anholt <eric@anholt.net >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10384 >
2021-04-21 20:26:58 +00:00
Rhys Perry
6ca11b4a66
nir/opt_load_store_vectorize: improve handling of swizzles
...
Previously (for simplicity), it could have skipped vectorization if
swizzles were involved.
fossil-db (GFX10.3):
Totals from 498 (0.36% of 139391) affected shaders:
SGPRs: 25328 -> 26608 (+5.05%); split: -1.36%, +6.41%
VGPRs: 9988 -> 9996 (+0.08%)
SpillSGPRs: 40 -> 65 (+62.50%)
CodeSize: 1410188 -> 1385584 (-1.74%); split: -1.76%, +0.02%
Instrs: 257149 -> 250579 (-2.55%); split: -2.57%, +0.01%
Cycles: 1096892 -> 1070600 (-2.40%); split: -2.41%, +0.01%
Signed-off-by: Rhys Perry <pendingchaos02@gmail.com >
Reviewed-by: Eric Anholt <eric@anholt.net >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10384 >
2021-04-21 20:26:58 +00:00
Rhys Perry
4df3654c79
nir/load_store_vectorize: assume CAN_REORDER ops don't alias with stores
...
fossil-db (GFX10.3):
Totals from 20 (0.01% of 139391) affected shaders:
SGPRs: 688 -> 712 (+3.49%); split: -1.16%, +4.65%
CodeSize: 35488 -> 34424 (-3.00%); split: -3.04%, +0.05%
Instrs: 6405 -> 6259 (-2.28%); split: -2.44%, +0.16%
Cycles: 51768 -> 51268 (-0.97%); split: -1.21%, +0.24%
Signed-off-by: Rhys Perry <pendingchaos02@gmail.com >
Reviewed-by: Eric Anholt <eric@anholt.net >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10384 >
2021-04-21 20:26:58 +00:00
Eric Anholt
839af6545b
mesa: Replace _mesa_pack_ubyte_rgba_row() with pack_ubyte_rgba_8unorm().
...
The major thing that the codegen had was support for expanding integers
from byte-per-channel to the target format's channel size. However, the
format_utils.c caller never did that for integers, and swrast doesn't have
support for integers, so that appears to be dead code. With this done,
format_pack.py goes away entirely.
I slightly changed the prototype of _mesa_pack_ubyte_rgba_row() to match
up with the new function, which involved (mostly) dropping some manual
casts from the callers to make their data match the old prototype.
Reviewed-by: Ian Romanick <ian.d.romanick@intel.com >
Reviewed-by: Adam Jackson <ajax@redhat.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10336 >
2021-04-21 19:59:10 +00:00
Eric Anholt
1a36b11a66
mesa: Remove dead _mesa_pack_ubyte_rgba_rect().
...
Unused since 8ec6534b26 ("mesa: Use _mesa_format_convert to implement
texstore_rgba.") in 2014
Reviewed-by: Ian Romanick <ian.d.romanick@intel.com >
Reviewed-by: Adam Jackson <ajax@redhat.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10336 >
2021-04-21 19:59:10 +00:00
Eric Anholt
580a1ba706
mesa: Move per-pixel Z pack functions to swrast.
...
Only swrast uses them, and this makes it clearer why we only need partial
format support for them, avoids linker work deleting them for gallium
drivers, and means they will automatically go away when we get to finally
delete swrast.
Reviewed-by: Ian Romanick <ian.d.romanick@intel.com >
Reviewed-by: Adam Jackson <ajax@redhat.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10336 >
2021-04-21 19:59:10 +00:00
Eric Anholt
84db625533
msea: Move z24s8-to-z24s8 packing fastpath to swrast.
...
It was only used here, and this made it clear (see
draw_depth_stencil_pixels()) that the z32f_s8 case was unused and could be
dropped. Also, it means this code will nicely go away when swrast is
deleted.
Reviewed-by: Ian Romanick <ian.d.romanick@intel.com >
Reviewed-by: Adam Jackson <ajax@redhat.com >
X
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10336 >
2021-04-21 19:59:10 +00:00
Eric Anholt
698c8b5022
mesa: Remove dead _mesa_get_pack_float_z_func().
...
Unused since its introduction 10 years ago.
Reviewed-by: Adam Jackson <ajax@redhat.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10336 >
2021-04-21 19:59:10 +00:00
Eric Anholt
90f98b56f8
mesa: Deduplicate _mesa_pack_uint_z_row().
...
util_format_pack_z_32unorm() does the same thing but supports more
formats.
Reviewed-by: Ian Romanick <ian.d.romanick@intel.com >
Reviewed-by: Adam Jackson <ajax@redhat.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10336 >
2021-04-21 19:59:10 +00:00
Eric Anholt
8a773d770e
mesa: Deduplicate _mesa_pack_float_z_row().
...
util_format_pack_z_float() does the same thing but supports more formats.
Reviewed-by: Ian Romanick <ian.d.romanick@intel.com >
Reviewed-by: Adam Jackson <ajax@redhat.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10336 >
2021-04-21 19:59:10 +00:00
Eric Anholt
0e20f6a1e9
mesa: Deduplicate _mesa_pack_ubyte_stencil_row()
...
util_format_pack_s_8uint() has the same behavior of replacing the s
values but supports more formats.
Reviewed-by: Ian Romanick <ian.d.romanick@intel.com >
Reviewed-by: Adam Jackson <ajax@redhat.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10336 >
2021-04-21 19:59:10 +00:00
Eric Anholt
8bd91d1368
util: Fix big-endian handling of z/s formats.
...
channel datatypes in Mesa are the host's endianness. For example,
PIPE_FORMAT_R32_UINT doesn't do a bswap in and out in u_format_table.c's
pack/unpack functions. So, z32_unorm shouldn't be byte swapping either,
and neither should z24s8 which is also a packed format, and once you've
got those it becomes clear that all of the swaps in this file were
mistaken.
Things would mostly work out because it's unusual to read/write Z/S data
through the GL API, and even for drivers like softpipe as long as the pack
and unpack both swap it could work anyway. However, the bug would be
visible in glReadPixels() with the matching datatype which would hit the
memcpy fastpath without doing another swap.
Caught by a mesa/main unit test on transitioning to using these
pack/unpack functions.
Reviewed-by: Ian Romanick <ian.d.romanick@intel.com >
Reviewed-by: Adam Jackson <ajax@redhat.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10336 >
2021-04-21 19:59:10 +00:00
Mike Blumenkrantz
3ccd0891d3
nir/lower_fragcolor: set outputs_written for fragdata members
...
normal gather_info stuff
Reviewed-by: Alyssa Rosenzweig <alyssa.rosenzweig@collabora.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10080 >
2021-04-21 19:36:16 +00:00
Dylan Baker
577c9de659
docs: update calendar and link releases notes for 21.0.3
...
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10385 >
2021-04-21 19:32:16 +00:00
Dylan Baker
8e821001c5
docs: update sha256 sum for mesa 21.0.3
...
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10385 >
2021-04-21 19:32:16 +00:00
Dylan Baker
2655ccc30e
docs: add release notes for 21.0.3
...
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10385 >
2021-04-21 19:32:16 +00:00
Erik Faye-Lund
4f12a42841
docs: write basic meta-documentation
...
We were previously completely lacking documentation on how to write
documentation. This adds some very basic docs for that.
Maybe at some point this could deserve it's own article, but for now
this seems enough.
This also documents the group-consensus on preferring US English that
was reached on the mesa-dev mailing list[1].
[1]: https://lists.freedesktop.org/archives/mesa-dev/2021-March/225023.html
Reviewed-by: Jason Ekstrand <jason@jlekstrand.net >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/9912 >
2021-04-21 18:26:55 +00:00
Adam Jackson
bbeee415ee
zink: Learn about VK_KHR_swapchain
...
We're gonna want it eventually.
Reviewed-By: Mike Blumenkrantz <michael.blumenkrantz@gmail.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10382 >
2021-04-21 14:03:27 -04:00
Marek Olšák
fcb5ba5816
Revert "ci/radeonsi: Add expected failures due to #4674 having slipped in"
...
This reverts commit 106da39b19 .
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10342 >
2021-04-21 16:16:20 +00:00
Marek Olšák
58ee3347a8
Revert "st/pbo: use cso_set_vertex_buffers_and_elements() for st_pbo_draw"
...
cso_set_vertex_buffers_and_elements shouldn't be used between cso_save
and cso_restore because it can switch for cso_context to u_vbuf and vice
versa. Also, ẗhe preferred order of calls for future VB+draw merging would
be set_vertex_elements followed by set_vertex_buffers.
This reverts commit 33e117ed7f .
Fixes: 33e117ed7f
Closes: https://gitlab.freedesktop.org/mesa/mesa/-/issues/4674
Reviewed-By: Mike Blumenkrantz <michael.blumenkrantz@gmail.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10342 >
2021-04-21 16:16:20 +00:00
Anuj Phogat
8acf361db4
intel: Fix GEN_GEN macro checks
...
Fixes: 9da8a55b08 - intel: Rename GEN_GEN macro to GFX_VER
Signed-off-by: Anuj Phogat <anuj.phogat@gmail.com >
Reviewed-by: Tapani Pälli <tapani.palli@intel.com >
Reviewed-by: Lionel Landwerlin <lionel.g.landwerlin@intel.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10365 >
2021-04-21 16:05:29 +00:00
Robert Foss
9967dabe91
freedreno/regs: add 5nm DSI PHY/PLL regs
...
This is for the kernel driver.
Signed-off-by: Robert Foss <robert.foss@linaro.org >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10368 >
2021-04-21 15:42:03 +00:00
Boris Brezillon
1de393fec5
panfrost: Fix ZS reloading on Bifrost v6
...
EARLY_ZS_ALWAYS was introduced in Bifrost v7. Use ALWAYS (or INTERSECT
depending on the situation) on v6.
Fixes: 8ba2f9f698 ("panfrost: Create a blitter library to replace the existing preload helpers")
Signed-off-by: Boris Brezillon <boris.brezillon@collabora.com >
Tested-by: Icecream95 <ixn@keemail.me >
Reviewed-by: Alyssa Rosenzweig <alyssa.rosenzweig@collabora.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10250 >
2021-04-21 15:25:24 +00:00
Mike Blumenkrantz
52d3f6b123
gallium: when tracing is enabled for threaded drivers, trace the driver thread
...
generally speaking, if I'm tracing an app, I want to see what's happening to
my driver, not what's happening to tc, as tc does rewriting of command streams
which can affect the operation of the driver
use GALLIUM_TRACE_TC for previous behavior
Acked-by: Marek Olšák <marek.olsak@amd.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10362 >
2021-04-21 14:28:44 +00:00
Mike Blumenkrantz
04241e826e
zink: add clear-on-flush mechanic deeper into flush codepath
...
we should probably trigger this any time a flush occurs just to avoid
doing too much (unexpected) cmdstream rewriting
both calls must be kept, however, as the one in the base flush hook will change
the behavior of flushing if no other work is queued
Fixes: 104603fa76 ("zink: create separate linear tiling image for scanout")
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10358 >
2021-04-21 14:18:17 +00:00
Mike Blumenkrantz
be6532ecdf
zink: directly set batch->state->flush_res from flush_resource hook
...
there's no need to have an intermediate pointer here since that only
complicates keeping scanout synchronized
this also eliminates the pointer on the context since it isn't used anymore
Fixes: 104603fa76 ("zink: create separate linear tiling image for scanout")
Reviewed-by: Adam Jackson <ajax@redhat.com >
Acked-by: Erik Faye-Lund <erik.faye-lund@collabora.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10358 >
2021-04-21 14:18:17 +00:00
Mike Blumenkrantz
7af40bb595
zink: move wsi flush info conditional to queue submission
...
having a resource pointer on batch states is now a requirement for
keeping scanout objects in sync
Fixes: 104603fa76 ("zink: create separate linear tiling image for scanout")
Reviewed-by: Adam Jackson <ajax@redhat.com >
Acked-by: Erik Faye-Lund <erik.faye-lund@collabora.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10358 >
2021-04-21 14:18:17 +00:00
Mike Blumenkrantz
4dcd477d12
zink: add a flag indicating whether scanout object needs updating
...
this minimizes overhead of maintaining scanout objects
Fixes: 104603fa76 ("zink: create separate linear tiling image for scanout")
Reviewed-by: Adam Jackson <ajax@redhat.com >
Acked-by: Erik Faye-Lund <erik.faye-lund@collabora.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10358 >
2021-04-21 14:18:17 +00:00
Mike Blumenkrantz
dd8b15b2bb
zink: move scanout sync to end of batch
...
this is called from the non-deferred flush path, which means it should always
be triggering work, which means it will always result in a queue submission
instead of relying on the pipe_context::flush hook to be triggered, which is
not a guarantee, do scanout sync during queue submission to ensure that scanout
objects are always in sync
Fixes: 104603fa76 ("zink: create separate linear tiling image for scanout")
Reviewed-by: Adam Jackson <ajax@redhat.com >
Acked-by: Erik Faye-Lund <erik.faye-lund@collabora.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10358 >
2021-04-21 14:18:17 +00:00
Mike Blumenkrantz
82710b8fc4
Revert "zink: force scanout sync when mapping scanout resource"
...
This reverts commit 874535752b .
Reviewed-by: Adam Jackson <ajax@redhat.com >
Fixes: 874535752b ("zink: force scanout sync when mapping scanout resource")
Acked-by: Erik Faye-Lund <erik.faye-lund@collabora.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10358 >
2021-04-21 14:18:17 +00:00
Alyssa Rosenzweig
28a9f54095
docs/macos: Explain Apple GLX versus OSMesa on macOS
...
Signed-off-by: Alyssa Rosenzweig <alyssa@rosenzweig.io >
Reviewed-by: Jeremy Huddleston Sequoia <jeremyhu@apple.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10359 >
2021-04-21 14:14:12 +00:00
Boris Brezillon
449744009c
panfrost: Keep panfrost_batch_reserve_framebuffer() private
...
This function is not used outside pan_job.c.
Signed-off-by: Boris Brezillon <boris.brezillon@collabora.com >
Reviewed-by: Alyssa Rosenzweig <alyssa@collabora.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10369 >
2021-04-21 15:46:22 +02:00
Boris Brezillon
e1e1ee044e
pan/bi: Don't set the EOS flag if there's at least one successor
...
The EOS (End Of Shader) is set if the first successor is NULL, but the
second successor should be checked too.
Signed-off-by: Boris Brezillon <boris.brezillon@collabora.com >
Reviewed-by: Alyssa Rosenzweig <alyssa@collabora.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10369 >
2021-04-21 15:46:16 +02:00
Boris Brezillon
19849a6501
panfrost: Fix indirect draws
...
Use panfrost_batch_reserve_tls() to reserve the TSD.
Cc: mesa-stable
Fixes: ff3eada7eb ("panfrost: Use the generic preload and FB helpers in the gallium driver")
Signed-off-by: Boris Brezillon <boris.brezillon@collabora.com >
Reviewed-by: Alyssa Rosenzweig <alyssa@collabora.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10369 >
2021-04-21 15:46:01 +02:00
Alyssa Rosenzweig
ebc07f4b2f
panfrost: Remove padded unorm blendable formats
...
These are used to effectively disable dithering on the tilebuffer, but
we already disable dithering on a per-primitive basis anyway, so don't
bother.
Signed-off-by: Alyssa Rosenzweig <alyssa@collabora.com >
Reviewed-by: Boris Brezillon <boris.brezillon@collabora.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10188 >
2021-04-21 13:20:40 +00:00
Alyssa Rosenzweig
fae90a7940
panfrost: Always pick dithered tb formats
...
Matches current logic and simplifies the code considerably.
Signed-off-by: Alyssa Rosenzweig <alyssa@collabora.com >
Reviewed-by: Boris Brezillon <boris.brezillon@collabora.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10188 >
2021-04-21 13:20:40 +00:00
Alyssa Rosenzweig
884f9c7926
panfrost: Drop blendable format accessor
...
Needless indirection.
Signed-off-by: Alyssa Rosenzweig <alyssa@collabora.com >
Reviewed-by: Boris Brezillon <boris.brezillon@collabora.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10188 >
2021-04-21 13:20:40 +00:00
Alyssa Rosenzweig
0f2140df8e
panfrost: Simplify format_to_bifrost_blend prototype
...
Avoids a util_format_description call in a hot path, and drops some
indirection everywhere.
Signed-off-by: Alyssa Rosenzweig <alyssa@collabora.com >
Reviewed-by: Boris Brezillon <boris.brezillon@collabora.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10188 >
2021-04-21 13:20:40 +00:00
Alyssa Rosenzweig
86e895c429
panfrost: Specialize blendable formats for sRGB
...
Avoids the need to go between linear and sRGB pipe formats in the hot
path. We're already reserving the space, may as well use it.
Signed-off-by: Alyssa Rosenzweig <alyssa@collabora.com >
Reviewed-by: Boris Brezillon <boris.brezillon@collabora.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10188 >
2021-04-21 13:20:40 +00:00
Alyssa Rosenzweig
218b50fae4
panfrost: Keep Bifrost blendable -> pixel in table
...
Avoids a layer of indirection in a hot path, at the expense of a greater
memory foot print. (Is this a win?)
Signed-off-by: Alyssa Rosenzweig <alyssa@collabora.com >
Reviewed-by: Boris Brezillon <boris.brezillon@collabora.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10188 >
2021-04-21 13:20:40 +00:00
Danylo Piliaiev
9402d5a6b5
ir3: make possible to specify branchstack up to 64
...
On a6xx/a5xx there is such dependency between branchstack bitfield
and the amount of nested ifs, which could be seen with blob:
IFs BRANCHSTACK
0 0
1 1
2 2
3 2
4 3
5 3
6 4
...
59 30
60 31
61 31
62 32
63 32
64 32
Remove open-coded branchstack for a5xx compute along the way.
Fixes tests:
dEQP-VK.spirv_assembly.instruction.compute.float16.opvectorshuffle.344
dEQP-VK.spirv_assembly.instruction.graphics.float16.opvectorshuffle.344_vert
dEQP-VK.spirv_assembly.instruction.graphics.float16.opvectorshuffle.444_geom
dEQP-VK.spirv_assembly.instruction.graphics.float16.opvectorshuffle.244_tessc
dEQP-VK.spirv_assembly.instruction.graphics.float16.opvectorshuffle.344_frag
Signed-off-by: Danylo Piliaiev <dpiliaiev@igalia.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/9859 >
2021-04-21 11:57:07 +00:00
Danylo Piliaiev
e7eed45869
ir3: do not double threadsize when exceeding branchstack limit
...
We can't support more than compiler->branchstack_size diverging threads
in a wave. Thus, doubling the threadsize is only possible if we don't
exceed the branchstack size limit.
As of blob version 512.490.0 - it doesn't have this heuristics.
Signed-off-by: Danylo Piliaiev <dpiliaiev@igalia.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/9859 >
2021-04-21 11:57:07 +00:00
Marcin Ślusarz
c073648d80
intel/batch_decoder: set foreground color of decoded instructions
...
It's impossible to see the names of instructions if the terminal's
color scheme uses black as foreground. Just set it to white - it
will look good on any color scheme.
Signed-off-by: Marcin Ślusarz <marcin.slusarz@intel.com >
Acked-by: Lionel Landwerlin <lionel.g.landwerlin@intel.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10341 >
2021-04-21 11:47:45 +00:00
Marcin Ślusarz
86816f3134
intel/tools: remove unused macros
...
Signed-off-by: Marcin Ślusarz <marcin.slusarz@intel.com >
Acked-by: Lionel Landwerlin <lionel.g.landwerlin@intel.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10341 >
2021-04-21 11:47:45 +00:00
Rhys Perry
776ba40115
aco: add and use Program::progress
...
This is used when printing the program and to avoid updating register
demand during post-RA liveness analysis.
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/10315 >
2021-04-21 11:09:33 +00:00
Rhys Perry
2d36232e62
aco: allow SDWA sels smaller than the operand size
...
p_extract_vector copy-propagation can create byte sels for v2b operands.
Signed-off-by: Rhys Perry <pendingchaos02@gmail.com >
Reviewed-by: Daniel Schürmann <daniel@schuermann.dev >
Cc: mesa-stable
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10315 >
2021-04-21 11:09:33 +00:00
Rhys Perry
655ba1e3a9
aco: don't update register demand during RA validation
...
It isn't intended to be accurate after RA, so num_waves can become zero,
breaking the sgpr_limit calculation.
Signed-off-by: Rhys Perry <pendingchaos02@gmail.com >
Reviewed-by: Daniel Schürmann <daniel@schuermann.dev >
Cc: mesa-stable
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10315 >
2021-04-21 11:09:33 +00:00
Samuel Pitoiset
1cf39001cd
radv: allow concurrent MSAA images to be FMASK compressed
...
DCC decompress/FMASK expand are supported on compute queues. Since
the driver doesn't perform fast clears with concurrent images, we
don't need to perform a FCE on compute (we can't anyways).
This fixes a performance regression with Control and
VKD3D_CONFIG=multi_queue.
One more optimization (as discussed with Bas) is to implement FCE
on compute to allow fast clears.
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/10323 >
2021-04-21 08:19:14 +00:00
Juan A. Suarez Romero
ccfe3e4af5
ci/broadcom: add EGL testing jobs
...
Reviewed-by: Eric Anholt <eric@anholt.net
Signed-off-by: Juan A. Suarez Romero <jasuarez@igalia.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10352 >
2021-04-21 07:33:35 +00:00
Juan A. Suarez Romero
37e7725a5e
ci/vc4: add KHR-GLES2.* job test
...
Reviewed-by: Eric Anholt <eric@anholt.net
Signed-off-by: Juan A. Suarez Romero <jasuarez@igalia.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10352 >
2021-04-21 07:33:35 +00:00
Juan A. Suarez Romero
79a0eee2fb
ci/broadcom: update expected results
...
Reviewed-by: Eric Anholt <eric@anholt.net
Signed-off-by: Juan A. Suarez Romero <jasuarez@igalia.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10352 >
2021-04-21 07:33:35 +00:00
Mike Blumenkrantz
7c2c0813c5
zink: use undefined layout for first scanout obj transition
...
doesn't really matter, but technically an error
Reviewed-by: Adam Jackson <ajax@redhat.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10213 >
2021-04-21 00:05:38 +00:00
Jeremy Huddleston Sequoia
5357d331fb
libgl-xlib: Add missing dep_x11 dependency
...
Cc: 20.3 21.0 21.1 <mesa-stable@lists.freedesktop.org >
Signed-off-by: Jeremy Huddleston Sequoia <jeremyhu@apple.com >
Reviewed-by: Alyssa Rosenzweig <alyssa@rosenzweig.io >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10360 >
2021-04-20 23:40:50 +00:00
Jeremy Huddleston Sequoia
707959a9e4
libgl-xlib: Set darwin-versions
...
Cc: 20.3 21.0 21.1 <mesa-stable@lists.freedesktop.org >
Signed-off-by: Jeremy Huddleston Sequoia <jeremyhu@apple.com >
Acked-by: Alyssa Rosenzweig <alyssa@rosenzweig.io >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10360 >
2021-04-20 23:40:50 +00:00
Chia-I Wu
cbe57963dc
venus: change SpaceBeforeParens style option
...
This requires clang-format 11 however.
Signed-off-by: Chia-I Wu <olvaffe@gmail.com >
Reviewed-by: Yiwei Zhang <zzyiwei@chromium.org >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10326 >
2021-04-20 16:29:28 -07:00
Chia-I Wu
11a65dbedc
venus: clang-format clean
...
Add parentheses to VN_DEBUG to avoid confusing clang-format.
Remove redundant comments, that confuse clang-format, because
VN_USE_WSI_PLATFORM can serve as comments.
Signed-off-by: Chia-I Wu <olvaffe@gmail.com >
Reviewed-by: Yiwei Zhang <zzyiwei@chromium.org >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10326 >
2021-04-20 16:29:24 -07:00
Danylo Piliaiev
1e33b6a32b
turnip: enable shaderInt16
...
We should have everything to enable it.
16b integer division is lowered by nir_lower_idiv.
Signed-off-by: Danylo Piliaiev <dpiliaiev@igalia.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10054 >
2021-04-20 20:32:20 +00:00
Danylo Piliaiev
d918bbfa1c
ir3: treat 16b imul as mul.s24
...
Signed-off-by: Danylo Piliaiev <dpiliaiev@igalia.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10054 >
2021-04-20 20:32:20 +00:00
Rob Clark
5bf7475460
ir3: handle 16b op_i2b1
...
Signed-off-by: Danylo Piliaiev <dpiliaiev@igalia.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10054 >
2021-04-20 20:32:20 +00:00
Anuj Phogat
ceb99c33b3
intel: Rename _gen keyword to _gfx_ver in few build files
...
Signed-off-by: Anuj Phogat <anuj.phogat@gmail.com >
Reviewed-by: Kenneth Graunke <kenneth@whitecape.org >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10241 >
2021-04-20 20:06:34 +00:00
Anuj Phogat
f8d5c53dbb
intel: Rename since_gen to since ver
...
export SEARCH_PATH="src/intel src/gallium/drivers/iris src/mesa/drivers/dri/i965
grep -E "since_gen" -rIl $SEARCH_PATH | xargs sed -ie "s/since_gen/since_ver/g"
Signed-off-by: Anuj Phogat <anuj.phogat@gmail.com >
Reviewed-by: Kenneth Graunke <kenneth@whitecape.org >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10241 >
2021-04-20 20:06:34 +00:00
Anuj Phogat
abf0bf9e9b
intel: Rename {i965, iris, anv, isl}_gen prefix in build files
...
export SEARCH_PATH="src/intel src/gallium/drivers/iris src/mesa/drivers/dri/i965
grep -E "(i965|iris|anv|isl)_gen" -rIl $SEARCH_PATH | xargs sed -ie "s/\(i965\|iris\|anv\|isl\)_gen\([_@]\)/\1_per_hw_ver\2/g"
Signed-off-by: Anuj Phogat <anuj.phogat@gmail.com >
Reviewed-by: Kenneth Graunke <kenneth@whitecape.org >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10241 >
2021-04-20 20:06:34 +00:00
Anuj Phogat
238b0d7b30
intel: Rename GEN_PART to INTEL_PART
...
export SEARCH_PATH="src/intel src/gallium/drivers/iris src/mesa/drivers/dri/i965
grep -E "GEN_PART" -rIl $SEARCH_PATH | xargs sed -ie "s/GEN_PART/INTEL_PART/g"
Signed-off-by: Anuj Phogat <anuj.phogat@gmail.com >
Reviewed-by: Kenneth Graunke <kenneth@whitecape.org >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10241 >
2021-04-20 20:06:34 +00:00
Anuj Phogat
f36efe5e7b
intel: Rename _gen_{program, part, batch, freq} to _intel_{..}
...
export SEARCH_PATH="src/intel src/gallium/drivers/iris src/mesa/drivers/dri/i965
grep -E "[[:alnum:]]_gen_" -rIl $SEARCH_PATH | xargs sed -ie "s/_gen_\(program\|part\|batch\|freq\)/_intel_\1/g"
Signed-off-by: Anuj Phogat <anuj.phogat@gmail.com >
Reviewed-by: Kenneth Graunke <kenneth@whitecape.org >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10241 >
2021-04-20 20:06:34 +00:00
Anuj Phogat
c144cc7889
intel: Rename calculate_gen_slm_size to intel_calculate_slm_size
...
export SEARCH_PATH="src/intel src/gallium/drivers/iris src/mesa/drivers/dri/i965
grep -E "calculate_gen_slm_size" -rIl $SEARCH_PATH | xargs sed -ie "s/calculate_gen_slm_size/intel_calculate_slm_size/g"
Signed-off-by: Anuj Phogat <anuj.phogat@gmail.com >
Reviewed-by: Kenneth Graunke <kenneth@whitecape.org >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10241 >
2021-04-20 20:06:34 +00:00
Anuj Phogat
12099d51f6
intel: Rename gen_10 to ver_10
...
Signed-off-by: Anuj Phogat <anuj.phogat@gmail.com >
Reviewed-by: Kenneth Graunke <kenneth@whitecape.org >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10241 >
2021-04-20 20:06:34 +00:00
Anuj Phogat
dde7ac7f3f
intel: Rename vk_to_gen keyword to vk_to_intel
...
export SEARCH_PATH="src/intel src/gallium/drivers/iris src/mesa/drivers/dri/i965
grep -E "vk_to_gen" -rIl $SEARCH_PATH | xargs sed -ie "s/vk_to_gen/vk_to_intel/g"
Signed-off-by: Anuj Phogat <anuj.phogat@gmail.com >
Reviewed-by: Kenneth Graunke <kenneth@whitecape.org >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10241 >
2021-04-20 20:06:34 +00:00
Anuj Phogat
8b86cc8b5c
intel: Rename isl_to_gen keyword to isl_encode
...
export SEARCH_PATH="src/intel src/gallium/drivers/iris src/mesa/drivers/dri/i965
grep -E "isl_to_gen" -rIl $SEARCH_PATH | xargs sed -ie "s/isl_to_gen/isl_encode/g"
Signed-off-by: Anuj Phogat <anuj.phogat@gmail.com >
Reviewed-by: Kenneth Graunke <kenneth@whitecape.org >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10241 >
2021-04-20 20:06:34 +00:00
Anuj Phogat
6b4767d083
intel: Remove devinfo_to_gen() helper function
...
This changes behavior. Now Baytrail will be decoded with the
gen7.xml instead of the gen75.xml. Haswell is the only graphics
hardware generation 75 and Baytrail is closer to Ivybridge
in most ways. (Kenneth Graunke)
Signed-off-by: Anuj Phogat <anuj.phogat@gmail.com >
Reviewed-by: Kenneth Graunke <kenneth@whitecape.org >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10241 >
2021-04-20 20:06:34 +00:00
Anuj Phogat
4f42b28cc3
intel: Rename gen_{mapped, clflush, invalidate} prefix to intel_{..}
...
export SEARCH_PATH="src/intel src/gallium/drivers/iris src/mesa/drivers/dri/i965
grep -E "gen_" -rIl $SEARCH_PATH | xargs sed -ie "s/gen_\(mapped\|clflush\|invalidate\|shader\)/intel_\1/g"
Signed-off-by: Anuj Phogat <anuj.phogat@gmail.com >
Reviewed-by: Kenneth Graunke <kenneth@whitecape.org >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10241 >
2021-04-20 20:06:34 +00:00
Anuj Phogat
07eec673fc
intel: Rename eu compact instruction tests
...
grep -E "gen_[[:alnum:]_]{2,}" -rIl src/intel/compiler/test_eu_compact.cpp | xargs sed -ie "s/gen_\([[:alnum:]_]\{2,\}\)/test_\1/g"
Signed-off-by: Anuj Phogat <anuj.phogat@gmail.com >
Reviewed-by: Kenneth Graunke <kenneth@whitecape.org >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10241 >
2021-04-20 20:06:34 +00:00
Anuj Phogat
492da8b8c1
intel: Rename index_gen keyword to index_ver
...
grep -E "index_gen" -rIl src/intel/compiler | xargs sed -ie "s/index_gen/index_ver/g"
Signed-off-by: Anuj Phogat <anuj.phogat@gmail.com >
Reviewed-by: Kenneth Graunke <kenneth@whitecape.org >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10241 >
2021-04-20 20:06:34 +00:00
Anuj Phogat
0d66f0a2ee
intel: Rename gens keyword to gfx_vers
...
export SEARCH_PATH="src/intel src/gallium/drivers/iris src/mesa/drivers/dri/i965
grep -E "gens" -rIl src/intel/compiler | xargs sed -ie "s/gens/gfx_vers/g"
Exclude changes to few comments.
Signed-off-by: Anuj Phogat <anuj.phogat@gmail.com >
Reviewed-by: Kenneth Graunke <kenneth@whitecape.org >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10241 >
2021-04-20 20:06:34 +00:00
Anuj Phogat
ea13901354
intel: Rename gen keyword in test_eu_validate.cpp
...
Signed-off-by: Anuj Phogat <anuj.phogat@gmail.com >
Reviewed-by: Kenneth Graunke <kenneth@whitecape.org >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10241 >
2021-04-20 20:06:34 +00:00
Anuj Phogat
9e39e49e2c
intel: Rename gen enum to gfx_ver
...
export SEARCH_PATH="src/intel src/gallium/drivers/iris src/mesa/drivers/dri/i965
grep -E "gen_from_devinfo" -rIl $SEARCH_PATH | xargs sed -ie "s/gen_from_devinfo/gfx_ver_from_devinfo/g"
Few manual changes.
Signed-off-by: Anuj Phogat <anuj.phogat@gmail.com >
Reviewed-by: Kenneth Graunke <kenneth@whitecape.org >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10241 >
2021-04-20 20:06:34 +00:00
Anuj Phogat
47a32160eb
intel: Rename brw_gen_enum.h to brw_gfx_ver_enum.h
...
export SEARCH_PATH="src/intel src/gallium/drivers/iris src/mesa/drivers/dri/i965
grep -E "brw_gen_enum" -rIl $SEARCH_PATH | xargs sed -ie "s/brw_gen_enum\.h/brw_gfx_ver_enum\.h/g"
Signed-off-by: Anuj Phogat <anuj.phogat@gmail.com >
Reviewed-by: Kenneth Graunke <kenneth@whitecape.org >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10241 >
2021-04-20 20:06:34 +00:00
Anuj Phogat
5d7e7545ac
intel: Rename gen_{pipeline, oa, counter, hw} to intel_{..}
...
export SEARCH_PATH="src/intel src/gallium/drivers/iris src/mesa/drivers/dri/i965
grep -E "gen_" -rIl $SEARCH_PATH | xargs sed -ie "s/gen_\(pipeline\|oa\|counter\|hw\)/intel_\1/g"
Signed-off-by: Anuj Phogat <anuj.phogat@gmail.com >
Reviewed-by: Kenneth Graunke <kenneth@whitecape.org >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10241 >
2021-04-20 20:06:34 +00:00
Anuj Phogat
b2ef2948a0
intel: Rename GEN_PERF prefix to INTEL_PERF in source files
...
export': export SEARCH_PATH="src/intel src/gallium/drivers/iris src/mesa/drivers/dri/i965
grep -E "GEN_PERF" -rIl $SEARCH_PATH | xargs sed -ie "s/GEN_PERF/INTEL_PERF/g"
Signed-off-by: Anuj Phogat <anuj.phogat@gmail.com >
Reviewed-by: Kenneth Graunke <kenneth@whitecape.org >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10241 >
2021-04-20 20:06:34 +00:00
Anuj Phogat
5f2578de2d
intel: Rename GEN_PERF prefix to INTEL_PERF in build files
...
export': export SEARCH_PATH="src/intel src/gallium/drivers/iris src/mesa/drivers/dri/i965
grep -E "GEN_PERF[A-Z_]*_FILES" -rIl $SEARCH_PATH | xargs sed -ie "s/GEN_PERF\([A-Z_]*_FILES\)/INTEL_PERF\1/g"
Signed-off-by: Anuj Phogat <anuj.phogat@gmail.com >
Reviewed-by: Kenneth Graunke <kenneth@whitecape.org >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10241 >
2021-04-20 20:06:34 +00:00
Anuj Phogat
5b4ef7815e
intel: Fix alignment and line wrapping due to gen_perf renaming
...
Signed-off-by: Anuj Phogat <anuj.phogat@gmail.com >
Reviewed-by: Kenneth Graunke <kenneth@whitecape.org >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10241 >
2021-04-20 20:06:34 +00:00
Anuj Phogat
bbe81292c6
intel: Rename gen_perf prefix to intel_perf in source files
...
export SEARCH_PATH="src/intel src/gallium/drivers/iris src/mesa/drivers/dri/i965
grep -E "gen_perf" -rIl $SEARCH_PATH | xargs sed -ie "s/gen_perf\([^\.]\)/intel_perf\1/g"
Signed-off-by: Anuj Phogat <anuj.phogat@gmail.com >
Reviewed-by: Kenneth Graunke <kenneth@whitecape.org >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10241 >
2021-04-20 20:06:34 +00:00
Anuj Phogat
e6e79436af
intel: Rename gen_perf prefix in filenames to intel_perf
...
export SEARCH_PATH="src/intel src/gallium/drivers/iris src/mesa/drivers/dri/i965
find $SEARCH_PATH -type f -name "*gen_perf*[cph]" -exec sh -c 'f="{}"; mv -- "$f" "${f/gen_perf/intel_perf}"' \;
grep -E "GEN_PERF[[:alnum:]_]*_H( |$)" -rIl $SEARCH_PATH | xargs sed -ie "s/GEN_PERF\([[:alnum:]_]*_H\)\( \|$\)/INTEL_PERF\1\2/g"
grep -E "gen_perf" -rIl $SEARCH_PATH | xargs sed -ie "s/gen_perf\([[:alnum:]_]*\.[ch]\)/intel_perf\1/g"
Signed-off-by: Anuj Phogat <anuj.phogat@gmail.com >
Reviewed-by: Kenneth Graunke <kenneth@whitecape.org >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10241 >
2021-04-20 20:06:34 +00:00
Anuj Phogat
e66a88cfa0
intel: Rename gen_context prefix to intel_context
...
export SEARCH_PATH="src/intel src/gallium/drivers/iris src/mesa/drivers/dri/i965
grep -E "gen_context" -rIl $SEARCH_PATH | xargs sed -ie "s/gen_context/intel_context/g"
Signed-off-by: Anuj Phogat <anuj.phogat@gmail.com >
Reviewed-by: Kenneth Graunke <kenneth@whitecape.org >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10241 >
2021-04-20 20:06:34 +00:00
Anuj Phogat
71ad340a9c
intel: Rename gen_context.h to intel_context.h
...
export SEARCH_PATH="src/intel src/gallium/drivers/iris src/mesa/drivers/dri/i965
grep -E "gen_context" -rIl $SEARCH_PATH | xargs sed -ie "s/gen_context\.h/intel_context\.h/g"
Signed-off-by: Anuj Phogat <anuj.phogat@gmail.com >
Reviewed-by: Kenneth Graunke <kenneth@whitecape.org >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10241 >
2021-04-20 20:06:34 +00:00
Anuj Phogat
52c3f3df47
intel: Drop gen prefix in gen_has_get_tiling()
...
Signed-off-by: Anuj Phogat <anuj.phogat@gmail.com >
Reviewed-by: Kenneth Graunke <kenneth@whitecape.org >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10241 >
2021-04-20 20:06:34 +00:00
Anuj Phogat
fcbb9338f2
intel: Rename gen_get_aperture_size to intel_get_aperture_size
...
Signed-off-by: Anuj Phogat <anuj.phogat@gmail.com >
Reviewed-by: Kenneth Graunke <kenneth@whitecape.org >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10241 >
2021-04-20 20:06:34 +00:00
Anuj Phogat
726d9696dd
intel: Rename gen_get_device prefix to intel_get_device
...
export SEARCH_PATH="src/intel src/gallium/drivers/iris src/mesa/drivers/dri/i965"
grep -E "gen_get_device" -rIl $SEARCH_PATH | xargs sed -ie "s/gen_get_device/intel_get_device/g"
Signed-off-by: Anuj Phogat <anuj.phogat@gmail.com >
Reviewed-by: Kenneth Graunke <kenneth@whitecape.org >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10241 >
2021-04-20 20:06:34 +00:00
Anuj Phogat
4507e6674e
intel: Rename GEN_DEVICE prefix in macros to INTEL_DEVICE
...
export SEARCH_PATH="src/intel src/gallium/drivers/iris src/mesa/drivers/dri/i965"
grep -E "GEN_DEVICE" -rIl $SEARCH_PATH | xargs sed -ie "s/GEN_DEVICE/INTEL_DEVICE/g"
Signed-off-by: Anuj Phogat <anuj.phogat@gmail.com >
Reviewed-by: Kenneth Graunke <kenneth@whitecape.org >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10241 >
2021-04-20 20:06:33 +00:00
Anuj Phogat
4c535cbf99
intel: Fix alignment and line wrapping due to gen_device renaming
...
Signed-off-by: Anuj Phogat <anuj.phogat@gmail.com >
Reviewed-by: Kenneth Graunke <kenneth@whitecape.org >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10241 >
2021-04-20 20:06:33 +00:00
Anuj Phogat
61e8636557
intel: Rename gen_device prefix to intel_device
...
export SEARCH_PATH="src/intel src/gallium/drivers/iris src/mesa/drivers/dri/i965"
grep -E "gen_device" -rIl $SEARCH_PATH | xargs sed -ie "s/gen_device/intel_device/g"
Signed-off-by: Anuj Phogat <anuj.phogat@gmail.com >
Reviewed-by: Kenneth Graunke <kenneth@whitecape.org >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10241 >
2021-04-20 20:06:33 +00:00
Anuj Phogat
cd39d3b1ad
intel: Rename gen_device prefix in filenames
...
export SEARCH_PATH="src/intel src/gallium/drivers/iris src/mesa/drivers/dri/i965"
find $SEARCH_PATH -type f -name "gen_device" -exec sh -c 'f="{}"; mv -- "$f" "${f/gen_device/intel_device}"' \;
grep -E "gen_device_info*\.[cph]" -rIl $SEARCH_PATH | xargs sed -ie "s/gen_device_info\(.*\.[cph]\)/intel_device_info\1/g"
Signed-off-by: Anuj Phogat <anuj.phogat@gmail.com >
Reviewed-by: Kenneth Graunke <kenneth@whitecape.org >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10241 >
2021-04-20 20:06:33 +00:00
Anuj Phogat
dae083f188
intel: Rename intel_device_info.c to intel_dev_info.c
...
This change is required to avoid a filename conflict due to
next patch in this series to rename gen_device_info.c
Signed-off-by: Anuj Phogat <anuj.phogat@gmail.com >
Reviewed-by: Kenneth Graunke <kenneth@whitecape.org >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10241 >
2021-04-20 20:06:33 +00:00
Anuj Phogat
3093513bb1
intel: Rename GEN_DEBUG prefix to INTEL_DEBUG
...
export SEARCH_PATH="src/intel src/gallium/drivers/iris src/mesa/drivers/dri/i965"
grep -E "GEN_DEBUG" -rIl $SEARCH_PATH | xargs sed -ie "s/GEN_DEBUG/INTEL_DEBUG/g"
Signed-off-by: Anuj Phogat <anuj.phogat@gmail.com >
Reviewed-by: Kenneth Graunke <kenneth@whitecape.org >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10241 >
2021-04-20 20:06:33 +00:00
Anuj Phogat
52326ca9f7
intel: Rename gen_debug prefix to intel_debug
...
export SEARCH_PATH="src/intel src/gallium/drivers/iris src/mesa/drivers/dri/i965"
grep -E "gen_debug" -rIl $SEARCH_PATH | xargs sed -ie "s/gen_debug/intel_debug/g"
Signed-off-by: Anuj Phogat <anuj.phogat@gmail.com >
Reviewed-by: Kenneth Graunke <kenneth@whitecape.org >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10241 >
2021-04-20 20:06:33 +00:00
Anuj Phogat
926d343acf
intel: Rename files with gen_debug prefix
...
export SEARCH_PATH="src/intel src/gallium/drivers/iris src/mesa/drivers/dri/i965"
find $SEARCH_PATH -type f -name "*gen_debug.*[cph]" -exec sh -c 'f="{}"; mv -- "$f" "${f/gen_debug/intel_debug}"' \;
grep -E "gen_debug" -rIl $SEARCH_PATH | xargs sed -ie "s/gen_debug\./intel_debug\./g"
grep -E "GEN_DEBUG" -rIl $SEARCH_PATH | xargs sed -ie "s/GEN_DEBUG_H/INTEL_DEBUG_H/g"
Signed-off-by: Anuj Phogat <anuj.phogat@gmail.com >
Reviewed-by: Kenneth Graunke <kenneth@whitecape.org >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10241 >
2021-04-20 20:06:33 +00:00
Mike Blumenkrantz
2417cd3e0e
util/format: add util_format_is_rgbx_or_bgrx
...
Reviewed-by: Marek Olšák <marek.olsak@amd.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10351 >
2021-04-20 19:18:55 +00:00
Matt Turner
7f8c5844ef
compiler/glsl: Always propagate_invariance() last
...
Suggested-by: Kenneth Graunke <kenneth@whitecape.org >
Reviewed-by: Kenneth Graunke <kenneth@whitecape.org >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10292 >
2021-04-20 18:54:57 +00:00
Matt Turner
d35f8604c7
compiler/glsl: Propagate invariant/precise when splitting arrays
...
This fixes the
dEQP-GLES3.functional.shaders.invariance.{low,medium,high}p.loop_4 tests when
run in a VM with virgl on a host with iris. virgl mangles the GLSL shaders and
emits shader code for the host driver that contains vec4 arrays. As such, the
test did not fail when running directly on the host.
The test also did not fail if the host was using i965. Disabling
PIPE_CAP_GLSL_OPTIMIZE_CONSERVATIVELY in iris was sufficient to work around it,
so I believe that i965 didn't show the problem because after arrays were split
by optimize_split_arrays(), even though the invariant/precise qualifiers were
lost, do_common_optimization() would be called again and thus
propagate_invariance() would propagate the qualifiers to the new variables
produced by optimize_split_arrays().
Reviewed-by: Timothy Arceri <tarceri@itsqueeze.com >
Reviewed-by: Kenneth Graunke <kenneth@whitecape.org >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10292 >
2021-04-20 18:54:57 +00:00
Matt Turner
5ef4296cb6
compiler/glsl: Return progress from propagate_invariance()
...
Doing so allow you to easily tell what the pass did using the existing
infrastructure in the OPT macro.
Reviewed-by: Timothy Arceri <tarceri@itsqueeze.com >
Reviewed-by: Kenneth Graunke <kenneth@whitecape.org >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10292 >
2021-04-20 18:54:57 +00:00
Rhys Perry
9fb1f9303b
Revert "radeonsi: set TRUNC_COORD=0 for Total War: WARHAMMER to fix it"
...
This reverts commit cd12fcff96 .
The terrain looks fine now that TRUNC_COORD=0 for textureGather().
Reviewed-by: Samuel Pitoiset <samuel.pitoiset@gmail.com >
Reviewed-by: Bas Nieuwenhuizen <bas@basnieuwenhuizen.nl >
Reviewed-by: Marek Olšák <marek.olsak@amd.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10036 >
2021-04-20 17:42:21 +00:00
Rhys Perry
0eaa5dfac0
aco: remove image parameter from get_sampler_desc()
...
We can just check whether tex_instr is NULL instead.
Signed-off-by: Rhys Perry <pendingchaos02@gmail.com >
Reviewed-by: Samuel Pitoiset <samuel.pitoiset@gmail.com >
Reviewed-by: Bas Nieuwenhuizen <bas@basnieuwenhuizen.nl >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10036 >
2021-04-20 17:42:21 +00:00
Rhys Perry
6a7b89c89d
ac/nir: set TRUNC_COORD=0 for nir_texop_tg4
...
Fixes black squares in Assassin's Creed: Valhalla and rendering of
FidelityFX-CACAO demo.
shader-db (sienna cichlid):
Totals:
SGPRS: 2977068 -> 2977220 (0.01 %)
VGPRS: 1929624 -> 1929616 (-0.00 %)
Spilled SGPRs: 5769 -> 5769 (0.00 %)
Spilled VGPRs: 0 -> 0 (0.00 %)
Private memory VGPRs: 0 -> 0 (0.00 %)
Scratch size: 0 -> 0 (0.00 %) dwords per thread
Code Size: 61423092 -> 61424672 (0.00 %) bytes
Max Waves: 895765 -> 895766 (0.00 %)
Totals from affected shaders:
SGPRS: 9520 -> 9672 (1.60 %)
VGPRS: 7464 -> 7456 (-0.11 %)
Spilled SGPRs: 0 -> 0 (0.00 %)
Spilled VGPRs: 0 -> 0 (0.00 %)
Private memory VGPRs: 0 -> 0 (0.00 %)
Scratch size: 0 -> 0 (0.00 %) dwords per thread
Code Size: 527432 -> 529012 (0.30 %) bytes
Max Waves: 1819 -> 1820 (0.05 %)
Signed-off-by: Rhys Perry <pendingchaos02@gmail.com >
Reviewed-by: Samuel Pitoiset <samuel.pitoiset@gmail.com >
Reviewed-by: Bas Nieuwenhuizen <bas@basnieuwenhuizen.nl >
Reviewed-by: Marek Olšák <marek.olsak@amd.com >
Fixes: 58f25098a0 ("radv: Use TRUNC_COORD on samplers")
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10036 >
2021-04-20 17:42:21 +00:00
Rhys Perry
3cbe9894f7
aco: set TRUNC_COORD=0 for nir_texop_tg4
...
Fixes black squares in Assassin's Creed: Valhalla and rendering of
FidelityFX-CACAO demo.
fossil-db (sienna cichlid):
Totals from 3052 (2.09% of 146267) affected shaders:
SpillSGPRs: 8437 -> 8646 (+2.48%)
CodeSize: 30993832 -> 31116916 (+0.40%); split: -0.00%, +0.40%
Instrs: 5869934 -> 5886783 (+0.29%); split: -0.00%, +0.29%
Latency: 250330521 -> 250463770 (+0.05%); split: -0.00%, +0.05%
InvThroughput: 59797617 -> 59814584 (+0.03%); split: -0.00%, +0.03%
VClause: 92114 -> 92132 (+0.02%)
SClause: 197373 -> 197338 (-0.02%); split: -0.02%, +0.01%
Copies: 479482 -> 482394 (+0.61%); split: -0.01%, +0.61%
Branches: 219629 -> 219635 (+0.00%)
PreSGPRs: 248970 -> 249366 (+0.16%)
fossil-db (polaris10):
Totals from 3050 (2.06% of 147787) affected shaders:
SGPRs: 282864 -> 282912 (+0.02%); split: -0.01%, +0.02%
VGPRs: 242572 -> 242612 (+0.02%)
SpillSGPRs: 10387 -> 10675 (+2.77%)
CodeSize: 31872460 -> 31996128 (+0.39%)
MaxWaves: 10924 -> 10925 (+0.01%)
Instrs: 6222217 -> 6239072 (+0.27%)
Latency: 317482545 -> 317773685 (+0.09%); split: -0.00%, +0.09%
InvThroughput: 156149624 -> 156242072 (+0.06%); split: -0.00%, +0.06%
VClause: 92295 -> 92254 (-0.04%); split: -0.05%, +0.01%
SClause: 243342 -> 243321 (-0.01%); split: -0.01%, +0.00%
Copies: 678902 -> 681700 (+0.41%); split: -0.00%, +0.41%
Branches: 219698 -> 219703 (+0.00%)
PreSGPRs: 244251 -> 244644 (+0.16%)
Signed-off-by: Rhys Perry <pendingchaos02@gmail.com >
Reviewed-by: Samuel Pitoiset <samuel.pitoiset@gmail.com >
Reviewed-by: Bas Nieuwenhuizen <bas@basnieuwenhuizen.nl >
Fixes: 58f25098a0 ("radv: Use TRUNC_COORD on samplers")
Closes: https://gitlab.freedesktop.org/mesa/mesa/-/issues/3110
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10036 >
2021-04-20 17:42:21 +00:00
Erik Faye-Lund
95d9d811c9
zink: do not require vulkan memory model for shader-images
...
The claim that we require vulkan memory model's MakeAvailable and
MakeVisible semantics for image writes isn't accurate. This would be
required *if* we were already using the Vulkan memory model.
But we're using the GLSL450 memory model in those cases, which has no
such requirements.
This means that any problems on RADV due to the lack of these semantics
are RADV bugs, and should be fixed in RADV instead.
Reviewed-By: Mike Blumenkrantz <michael.blumenkrantz@gmail.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10345 >
2021-04-20 15:52:07 +00:00
Mike Blumenkrantz
874535752b
zink: force scanout sync when mapping scanout resource
...
this is just for unit tests where the scanout object is redundant and
the only time a flush occurs is from stalling on readback
Fixes: 104603fa76 ("zink: create separate linear tiling image for scanout")
Acked-by: Erik Faye-Lund <erik.faye-lund@collabora.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10239 >
2021-04-20 14:29:38 +00:00
Mike Blumenkrantz
2138aef7c9
zink: merge copy-to-scanout path into non-deferred flush path
...
this eliminates any desync between scanout presentation and clears
Fixes: 104603fa76 ("zink: create separate linear tiling image for scanout")
Acked-by: Erik Faye-Lund <erik.faye-lund@collabora.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10239 >
2021-04-20 14:29:38 +00:00
Juan A. Suarez Romero
05cf1e7f36
iris: enable GL_EXT_memory_object feature
...
This is enabled by enabling gallium's memobj capability.
Signed-off-by: Juan A. Suarez Romero <jasuarez@igalia.com >
Reviewed-by: Tapani Pälli <tapani.palli@intel.com >
Reviewed-by: Rohan Garg <rohan.garg@collabora.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/4337 >
2021-04-20 15:59:03 +03:00
Juan A. Suarez Romero
772dc50d16
iris: hook up resource creation from memory object
...
v2:
* Fixed indentation in iris_resource_from_memobj
v3:
* Removed the call to iris_resource_configure_aux, as we don't
have any auxiliary buffer support.
v4:
* Added a comment about the assertion that there's no aux buffer
in case we add them later.
v5:
* Changed the logic of iris_resource_from_memobj. When the user doesn't
explicitly set the tiling to linear, we use a similar logic with the
anv driver's logic to calculate it instead of querying the kernel.
This is because the Vulkan driver doesn't perform ioctls to update the
kernel when it suballocates buffers.
v6:
* Removed the line that sets the modifier info in the resource. We
shouldn't need it.
v7, v8:
* Removed left over code related to modifiers.
v9:
* Replaced FORCE_LINEAR_TILING flag with PIPE_BIND_LINEAR where
necessary.
v10: rebase, use iris_resource_configure_main (Tapani)
v11:
* isl surfaces should be created only for textures and not for
buffers (fixes: pixel buffer tests assertion failure on BDW).
v12:
* fix in return type is required after rebasing to master.
Signed-off--by: Juan A. Suarez Romero <jasuarez@igalia.com >
Signed-off-by: Eleni Maria Stea <estea@igalia.com >
Co-authored-by: Eleni Maria Stea <estea@igalia.com >
Reviewed-by: Rohan Garg <rohan.garg@collabora.com > (v9)
Reviewed-by: Tapani Pälli <tapani.palli@intel.com > (v12)
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/4337 >
2021-04-20 15:59:03 +03:00
Juan A. Suarez Romero
cdb5a72764
iris: hook up memory object creation from handle
...
v2: use iris_bo_import_dmabuf (Tapani)
v3: included "util/u_memory.h" to fixed compilation errors caused by
using the CALLOC_STRUCT macro
v4: implemented iris_memobj_destroy (pscreen->memobj_destroy) callback
v5: removed iris_bo_from_handle and changed the approach for setting the
tiling: Instead of querying the kernel and call
iris_bo_import_dmabuf to create the bo, we call
iris_bo_import_dmabuf_no_mods that imports the bo but without
setting the tiling mode. We are going to update it when we create
the resource. Also: implemented the iris_bo_import_dmabuf_no_mods.
v6: rebase to iris_bo_import_dmabuf changes and take a reference
to memobj->bo (Tapani Pälli)
Signed-off-by: Juan A. Suarez Romero <jasuarez@igalia.com >
Signed-off-by: Eleni Maria Stea <estea@igalia.com >
Co-authored-by: Eleni Maria Stea <estea@igalia.com >
Reviewed-by: Rohan Garg <rohan.garg@collabora.com >
Reviewed-by: Tapani Pälli <tapani.palli@intel.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/4337 >
2021-04-20 15:59:03 +03:00
Tapani Pälli
58e9371141
anv: do not support image export with stencil aspect set
...
Export/import with iris does not work properly so disable it for now.
v2: Added a vk_errorfi and assigned to a result (Lionel Landwerlin)
v3: Changed the type of error to be VK_ERROR_FORMAT_NOT_SUPPORTED
(Lionel Landwerlin)
Signed-off-by: Tapani Pälli <tapani.palli@intel.com >
Signed-off-by: Eleni Maria Stea <elene.mst@gmail.com > (v2, v3)
Reviewed-by: Eleni Maria Stea <elene.mst@gmail.com >
Reviewed-by: Lionel Landwerlin <lionel.g.landwerlin@intel.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/4337 >
2021-04-20 15:59:03 +03:00
Boris Brezillon
4b2c7f286f
panfrost: Fix RSD emission on Bifrost v6
...
Bifrost v6 doesn't have wait dependency fields.
Fixes some dEQP-GLES3.functional.shaders.fragdepth tests on G72.
Signed-off-by: Boris Brezillon <boris.brezillon@collabora.com >
Reviewed-by: Alyssa Rosenzweig <alyssa@collabora.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10314 >
2021-04-20 12:28:16 +00:00
Samuel Pitoiset
6aaa325f89
radv: remove radv_image_iview::multiplane_planes
...
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/10218 >
2021-04-20 12:16:33 +00:00
Samuel Pitoiset
8198aeac8d
radv: remove radv_image_iview::bo
...
This saves one 64-bit pointer.
Signed-off-by: Samuel Pitoiset <samuel.pitoiset@gmail.com >
Reviewed-by: Bas Nieuwenhuizen <bas@basnieuwenhuizen.nl >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10218 >
2021-04-20 12:16:33 +00:00
Bas Nieuwenhuizen
9da4590df8
amd/common: Use cap to test kernel modifier support.
...
Turns out both kernel v5.10 and v5.11 have the same amdgpu driver
version and only one has modifiers ... In addition the version check
is kinda annoying for backports.
So lets use the cap. Since the cap is technically about ADDFB2 I
tested that this works on rendernodes (and reading the code there
is no distinction from what kind of node this is called).
Fixes: 9a937330ef ("radeonsi: Only set modifier creation function for GFX9+ & with kernel support.")
Reviewed-by: Marek Olšák <marek.olsak@amd.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10337 >
2021-04-20 11:59:43 +00:00
Boris Brezillon
8d9b52f45a
panfrost: Reserve thread storage descriptor in panfrost_launch_grid()
...
If we don't do that the compute batch is left with an empty thread
storage descriptor, and panfrost_batch_submit() tries to emit an FB
descriptors using invalid FB information.
Reported-by: Italo Nicola <italonicola@collabora.com >
Fixes: ff3eada7eb ("panfrost: Use the generic preload and FB helpers in the gallium driver")
Signed-off-by: Boris Brezillon <boris.brezillon@collabora.com >
Reviewed-by: Alyssa Rosenzweig <alyssa@collabora.com >
Tested-by: Italo Nicola <italonicola@collabora.com >
Reviewed-by: Italo Nicola <italonicola@collabora.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10312 >
2021-04-20 11:41:11 +00:00
Juan A. Suarez Romero
57ff43499b
ci/softpipe: run KHR-GLESxx tests
...
Reviewed-by: Eric Anholt <eric@anholt.net >
Signed-off-by: Juan A. Suarez Romero <jasuarez@igalia.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10287 >
2021-04-20 12:39:27 +02:00
Juan A. Suarez Romero
fbc0c05c53
ci/llvmpipe: run KHR-GLES2.* tests
...
Reviewed-by: Eric Anholt <eric@anholt.net >
Signed-off-by: Juan A. Suarez Romero <jasuarez@igalia.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10287 >
2021-04-20 12:39:27 +02:00
Juan A. Suarez Romero
0dde87457e
ci/v3d: add KHR-GLES test jobs
...
Add (manually launched) jobs for KHR-GLES2.*, KHR-GLES3.* and
KHR-GLES31.*
Reviewed-by: Eric Anholt <eric@anholt.net >
Signed-off-by: Juan A. Suarez Romero <jasuarez@igalia.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10287 >
2021-04-20 12:39:27 +02:00
Juan A. Suarez Romero
01debec88b
ci: support KHR-GLES testing
...
Reviewed-by: Eric Anholt <eric@anholt.net >
Signed-off-by: Juan A. Suarez Romero <jasuarez@igalia.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10287 >
2021-04-20 12:39:27 +02:00
Samuel Iglesias Gonsálvez
b2a60c157e
turnip: add LRZ early-z support
...
Imported the logic from Freedreno driver.
Signed-off-by: Samuel Iglesias Gonsálvez <siglesias@igalia.com >
Reviewed-by: Eric Anholt <eric@anholt.net >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/7186 >
2021-04-20 10:01:58 +00:00
Samuel Iglesias Gonsálvez
af049b6668
turnip: fix setting dynamic state mask for VK_DYNAMIC_STATE_STENCIL_OP_EXT case
...
Signed-off-by: Samuel Iglesias Gonsálvez <siglesias@igalia.com >
Reviewed-by: Eric Anholt <eric@anholt.net >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/7186 >
2021-04-20 10:01:58 +00:00
Samuel Iglesias Gonsálvez
88c7aa0b3e
turnip: group all geometry constant draw states in one
...
Thus, we can free some draw state slots for future use.
Signed-off-by: Samuel Iglesias Gonsálvez <siglesias@igalia.com >
Reviewed-by: Eric Anholt <eric@anholt.net >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/7186 >
2021-04-20 10:01:58 +00:00
Samuel Iglesias Gonsálvez
2c0c696f16
turnip: update LRZ state based on stencil test state
...
Signed-off-by: Samuel Iglesias Gonsálvez <siglesias@igalia.com >
Reviewed-by: Eric Anholt <eric@anholt.net >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/7186 >
2021-04-20 10:01:58 +00:00
Samuel Iglesias Gonsálvez
ff8e3547b3
turnip: implement LRZ direction
...
There are some LRZ compare op switches that are not supported by
the HW, like GREATER* <-> LESS* ones.
This patch tracks the direction of the switch and disables LRZ
if needed.
Signed-off-by: Samuel Iglesias Gonsálvez <siglesias@igalia.com >
Reviewed-by: Eric Anholt <eric@anholt.net >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/7186 >
2021-04-20 10:01:58 +00:00
Samuel Pitoiset
1d3542694b
radv: fix emitting depth bias when beginning a command buffer
...
If depth bias is enabled but zero values used, they were never
emitted to the command buffer because they are equal to the default
values.
Previously, they were always emitted when the bound DS attachment
changed.
This should fix some sort of Z fighting with Dota2 on all GPUs.
This also fixes a different issue (ie. some occlusion queries failures)
on GFX6 because CLEAR_STATE is not used on that chip.
Fixes: 8a47422d97 ("radv: do not scale the depth bias for D16_UNORM depth surfaces")
Cc: 21.1 mesa-stable
Signed-off-by: Samuel Pitoiset <samuel.pitoiset@gmail.com >
Reviewed-by: Bas Nieuwenhuizen <bas@basnieuwenhuizen.nl >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10310 >
2021-04-20 09:09:38 +00:00
Samuel Pitoiset
e4c0724dc6
radv: fix fast clearing depth-only or stencil-only aspects with HTILE
...
DB isn't coherent with L2 on GFX6-8. This is needed when the
clear HTILE mask path is selected.
This fixes an issue with avatars in Heroes of The Storm.
Closes: https://gitlab.freedesktop.org/mesa/mesa/-/issues/3362
Cc: 21.1 mesa-stable
Signed-off-by: Samuel Pitoiset <samuel.pitoiset@gmail.com >
Reviewed-by: Bas Nieuwenhuizen <bas@basnieuwenhuizen.nl >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10277 >
2021-04-20 08:20:49 +00:00
Erik Faye-Lund
00ff60f799
gallivm: add 16-bit integer support
...
The new failure here is due to a bug in the test-case, and a fix has
been submitted here:
https://gitlab.freedesktop.org/mesa/piglit/-/merge_requests/502
Reviewed-by: Dave Airlie <airlied@redhat.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10185 >
2021-04-20 07:49:21 +00:00
Erik Faye-Lund
1c82c05d58
gallivm: run nir_opt_algebraic_late
...
Without this, we're left with a bunch of medium-precision residue, like
i2imp. And to avoid that the lowering intrudces left-over instructions,
also run other lowering passes, similar to what other drivers do.
Reviewed-by: Dave Airlie <airlied@redhat.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10185 >
2021-04-20 07:49:21 +00:00
Erik Faye-Lund
da5f346e6c
gallivm: handle 16-bit input in i2b32
...
Fixes: dac8cb981f ("gallivm/nir: allow 8/16-bit conversion and comparison.")
Reviewed-by: Dave Airlie <airlied@redhat.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10185 >
2021-04-20 07:49:21 +00:00
Tomeu Vizoso
106da39b19
ci/radeonsi: Add expected failures due to #4674 having slipped in
...
https://gitlab.freedesktop.org/mesa/mesa/-/issues/4674
Signed-off-by: Tomeu Vizoso <tomeu.vizoso@collabora.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10139 >
2021-04-20 07:26:51 +00:00
Tomeu Vizoso
9fc5da54b4
ci: Drop hack to disable all modules from defconfig
...
It was disabling the building of drivers that were needed in some
devices.
After merging we will anyway only have the modules we want (amdgpu atm),
so it's not really needed.
Signed-off-by: Tomeu Vizoso <tomeu.vizoso@collabora.com >
Acked-by: Eric Anholt <eric@anholt.net >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10139 >
2021-04-20 07:26:51 +00:00
Tomeu Vizoso
a47e4016c1
ci: Use a single kernel+rootfs for both baremetal and LAVA jobs
...
Signed-off-by: Tomeu Vizoso <tomeu.vizoso@collabora.com >
Acked-by: Eric Anholt <eric@anholt.net >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10139 >
2021-04-20 07:26:51 +00:00
Tomeu Vizoso
79c65217a1
ci: Test RadeonSI with piglit's quick_gl
...
And do some job refactoring to share more lines between job definitions.
Signed-off-by: Tomeu Vizoso <tomeu.vizoso@collabora.com >
Acked-by: Eric Anholt <eric@anholt.net >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10139 >
2021-04-20 07:26:51 +00:00
Tomeu Vizoso
f475b9fd51
ci/lava: Start Xorg on request, for Piglit
...
We will need this for running Piglit jobs.
Signed-off-by: Tomeu Vizoso <tomeu.vizoso@collabora.com >
Acked-by: Eric Anholt <eric@anholt.net >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10139 >
2021-04-20 07:26:51 +00:00
Tomeu Vizoso
a6aebdf2af
ci/lava: Update kernel for LAVA to 5.11
...
Also enable CONFIG_DRM_AMDGPU_USERPTR to support GL_AMD_pinned_memory.
Signed-off-by: Tomeu Vizoso <tomeu.vizoso@collabora.com >
Acked-by: Eric Anholt <eric@anholt.net >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10139 >
2021-04-20 07:26:51 +00:00
Tomeu Vizoso
53999fe16f
ci/lava: Build all piglit profiles in LAVA images
...
Previously we were using only the replay profile, but we want to test
with the other ones now.
Signed-off-by: Tomeu Vizoso <tomeu.vizoso@collabora.com >
Acked-by: Eric Anholt <eric@anholt.net >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10139 >
2021-04-20 07:26:51 +00:00
Tomeu Vizoso
a056362d92
ci: Reenable radeonsi jobs, and extend coverage
...
Now that we have more devices to test on.
Signed-off-by: Tomeu Vizoso <tomeu.vizoso@collabora.com >
Acked-by: Eric Anholt <eric@anholt.net >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10139 >
2021-04-20 07:26:51 +00:00
Carsten Haitzler (Rasterman)
fcebdcb3b3
panfrost: Fix Bo imports to not take the process down if fd is invalid
...
If the calling process happens to use an invalid bo (e.g. fd has been
closed), this led to lseek() returning -1 and this mmap trying to mmap
a buffer of size -1 (0xffffffffffffffff ...) which led to mmap
failing, which led to munmap failing which then led to the process
aborting.
This fixes that to gracefully handle the mmap failures and percolate
the failures back up through the API so eglCreateImage will not return
a valid image anymore, thus the error is detectable in the caller
process too.
Reviewed-by: Alyssa Rosenzweig <alyssa@collabora.com >
Reviewed-by: Tomeu Vizoso <tomeu.vizoso@collabora.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10313 >
2021-04-20 08:26:04 +02:00
Christian Gmeiner
027095065d
drm-shim: fix compile with glibc >= 2.33
...
Fixes compile of drm-shim with glibc 2.33.
Closes : #3782
Signed-off-by: Christian Gmeiner <christian.gmeiner@gmail.com >
Acked-by: Eric Anholt <eric@anholt.net >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10309 >
2021-04-20 05:49:29 +00:00
Dave Airlie
4a384f587a
llvmpipe: delay late screen creation until context init.
...
This avoids a problem with lavapipe where the screen hangs around in the
vulkan instance but is just wasting resources.
This was pointed out by Mike Blumenkrantz
Reviewed-By: Mike Blumenkrantz <michael.blumenkrantz@gmail.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10338 >
2021-04-20 12:09:13 +10:00
Dave Airlie
3172289d8b
llvmpipe: wrap late screen init with a mutex.
...
Next step can just move this into context init
Reviewed-By: Mike Blumenkrantz <michael.blumenkrantz@gmail.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10338 >
2021-04-20 12:09:13 +10:00
Dave Airlie
c93e95156a
llvmpipe: split screen init up.
...
Add a late init path for stuff that can be delayed.
Reviewed-By: Mike Blumenkrantz <michael.blumenkrantz@gmail.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10338 >
2021-04-20 12:09:13 +10:00
Dave Airlie
6d3ded7995
lavapipe: add support for non-dri loader on linux
...
If you build --glx=gallium-xlib then lavapipe will fail to
link this should let it use the non-dri paths on Linux in that
case
Reviewed-by: Erik Faye-Lund <erik.faye-lund@collabora.com >
Tested-by: Brian Paul <brianp@vmware.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/9400 >
2021-04-20 01:00:54 +00:00
Jesse Natalie
1d144f7f58
CI: Windows: Bump warning level to W3 (except for zlib)
...
Reviewed-by: Jason Ekstrand <jason@jlekstrand.net >
Reviewed-By: Bill Kristiansen <billkris@microsoft.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10331 >
2021-04-20 00:28:35 +00:00
Jesse Natalie
2b69dd6809
xmlconfig: Fix MSVC warning C4334 (32bit shift cast to 64bit)
...
Reviewed-by: Jason Ekstrand <jason@jlekstrand.net >
Reviewed-By: Bill Kristiansen <billkris@microsoft.com >
Cc: mesa-stable@lists.freedesktop.org
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10331 >
2021-04-20 00:28:35 +00:00
Jesse Natalie
b678115480
llvmpipe: Fix MSVC warning C4334 (32bit shift cast to 64bit)
...
Reviewed-by: Jason Ekstrand <jason@jlekstrand.net >
Reviewed-By: Bill Kristiansen <billkris@microsoft.com >
Cc: mesa-stable@lists.freedesktop.org
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10331 >
2021-04-20 00:28:35 +00:00
Jesse Natalie
4a3f044473
gallium/aux: Fix MSVC warning C4334 (32bit shift cast to 64bit)
...
Reviewed-by: Jason Ekstrand <jason@jlekstrand.net >
Reviewed-By: Bill Kristiansen <billkris@microsoft.com >
Cc: mesa-stable@lists.freedesktop.org
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10331 >
2021-04-20 00:28:35 +00:00
Jesse Natalie
0e2566a8a7
shader_enums: Fix MSVC warning C4334 (32bit shift cast to 64bit)
...
The warning is triggered when assigning into inputs_read, which is 64bit.
Reviewed-by: Jason Ekstrand <jason@jlekstrand.net >
Reviewed-By: Bill Kristiansen <billkris@microsoft.com >
Cc: mesa-stable@lists.freedesktop.org
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10331 >
2021-04-20 00:28:35 +00:00
Jesse Natalie
67b5fba62a
microsoft/compiler: Fix MSVC warning C4334 (32bit shift cast to 64bit)
...
Reviewed-by: Jason Ekstrand <jason@jlekstrand.net >
Reviewed-By: Bill Kristiansen <billkris@microsoft.com >
Cc: mesa-stable@lists.freedesktop.org
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10331 >
2021-04-20 00:28:35 +00:00
Jesse Natalie
53786d2eb2
microsoft/clc: Fix undeclared function warning
...
Reviewed-by: Jason Ekstrand <jason@jlekstrand.net >
Reviewed-By: Bill Kristiansen <billkris@microsoft.com >
Cc: mesa-stable@lists.freedesktop.org
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10331 >
2021-04-20 00:28:34 +00:00
Jesse Natalie
d641adca6a
microsoft/clc: Fix MSVC unreferenced variable warnings
...
Reviewed-by: Jason Ekstrand <jason@jlekstrand.net >
Reviewed-By: Bill Kristiansen <billkris@microsoft.com >
Cc: mesa-stable@lists.freedesktop.org
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10331 >
2021-04-20 00:28:34 +00:00
Jesse Natalie
1a0fbca1bd
d3d12: Fix MSVC warning C4334 (32bit shift cast to 64bit)
...
Reviewed-by: Jason Ekstrand <jason@jlekstrand.net >
Reviewed-By: Bill Kristiansen <billkris@microsoft.com >
Cc: mesa-stable@lists.freedesktop.org
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10331 >
2021-04-20 00:28:34 +00:00
Jesse Natalie
09440ce3fb
nir: Fix MSVC warning C4334 (32bit shift cast to 64bit)
...
Reviewed-by: Jason Ekstrand <jason@jlekstrand.net >
Reviewed-By: Bill Kristiansen <billkris@microsoft.com >
Cc: mesa-stable@lists.freedesktop.org
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10331 >
2021-04-20 00:28:34 +00:00
Erico Nunes
750ddf3239
gallium/hud: extend check for has_srgb
...
gallium hud checks for the PIPE_FORMAT_B8G8R8A8_SRGB format to set
has_srgb, but can then receive a different format such as
PIPE_FORMAT_B8G8R8X8 in hud_run.
If the driver supports PIPE_FORMAT_B8G8R8A8_SRGB but does not support
the other formats such as PIPE_FORMAT_B8G8R8X8_SRGB, that will break
rendering as gallium hud assumes srgb is also supported for that format.
Extend the check to set has_srgb to prevent that from happening.
Signed-off-by: Erico Nunes <nunes.erico@gmail.com >
Reviewed-by: Marek Olšák <marek.olsak@amd.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10222 >
2021-04-20 00:11:11 +00:00
Erico Nunes
f93dc9dc77
gallium/hud: create vs_text to match fs_text
...
gallium hud uses different tgsi fragment shaders for text and background
quads, which have different varying layouts. Since these are compiled
directly from tgsi they bypass some optimizations and may not work
properly on all backends.
A simple fix for the varying layout problem is to define a vs_text
shader to match the varyings in fs_text so the problem is avoided.
Signed-off-by: Erico Nunes <nunes.erico@gmail.com >
Reviewed-by: Marek Olšák <marek.olsak@amd.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10222 >
2021-04-20 00:11:11 +00:00
Lepton Wu
5322572c78
virgl: move new added field to the end.
...
This field was introduced 2 months ago and it breaks virgl
compatibility between guest/host. Switch the new added field
to the end. We will still have compatibility issue but the
"bug window" is much smaller.
Fixes: e778aceaae ("virgl: update headers")
Signed-off-by: Lepton Wu <lepton@chromium.org >
Reviewed-by: Gert Wollny <gert.wollny@collabora.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10333 >
2021-04-20 00:00:30 +00:00
Francisco Jerez
0f247cc8a9
iris/gfx12: Invalidate ISP at the end of every batch.
...
As requested by Ken since we're now (after 20e2c7308f )
re-emitting constants at the beginning of every batch which may lead
to some redundant constant restore overhead. No statistically
significant performance changes observed with either change.
Reviewed-by: Kenneth Graunke <kenneth@whitecape.org >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/9903 >
2021-04-19 23:50:32 +00:00
Dylan Baker
5b9253c287
meson: OpenMP is supposed to be optional
...
The code around it checks that it is found, so clearly it was meant to
be optional, not arequired.
Fixes: cd2832ee51
("meson: add an optional OpenMP dependency for AMD tests")
Reviewed-by: Erik Faye-Lund <erik.faye-lund@collabora.com >
Tested-by: Bernd Kuhls <bernd.kuhls@t-online.de >
Reviewed-by: Marek Olšák <marek.olsak@amd.com >
Reviewed-by: Eric Engestrom <eric@engestrom.ch >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10286 >
2021-04-19 23:23:59 +00:00
Alejandro Piñeiro
f5133f6bce
v3dv/pipeline: track descriptor maps per stage, not per pipeline
...
One of the conclusions of our recent clean up on the limits was that
the pipeline limits needed to be the per-stage limits multiplied by
the number of stages.
But until now we only have a set of descriptor maps for the full
pipeline. That would work if we could set the same limit per pipeline
that per stage, but that is not the case. So if, for example, we have
the fragment shader using V3D_MAX_TEXTURE_SAMPLERS textures, and then
the vertex shader, with a different descriptor set, using one texture,
we would get an index greater that V3D_MAX_TEXTURE_SAMPLERS. We assert
that index as an error on the vulkan backend, but fwiw, it would be
also asserted on the compiler.
With this commit we track and allocate a descriptor map per stage,
although we reuse the vertex shader descriptor map for the vertex bin.
Reviewed-by: Iago Toral Quiroga <itoral@igalia.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10272 >
2021-04-19 23:10:35 +00:00
Michel Zou
48d31a6280
meson: link vulkan_util with link_whole on mingw
...
It was missing for mingw.
Closes #4633
Reviewed-by: Jason Ekstrand <jason@jlekstrand.net >
Acked-by: James Park <jpark37@lagfreegames.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10276 >
2021-04-19 22:46:30 +00:00
Michel Zou
54deb1010f
gallium: fix uninitialized variable warning
...
Reviewed-by: Jason Ekstrand <jason@jlekstrand.net >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10276 >
2021-04-19 22:46:30 +00:00
Michel Zou
dc036b1769
vulkan: fix duplicate win32 def
...
Reviewed-by: Jason Ekstrand <jason@jlekstrand.net >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10276 >
2021-04-19 22:46:30 +00:00
Michel Zou
45f32ce239
lavapipe: fix unused variable warning
...
Reviewed-by: Jason Ekstrand <jason@jlekstrand.net >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10276 >
2021-04-19 22:46:30 +00:00
Eric Anholt
ed04fd44ca
freedreno/a6xx: Don't try to do Z-as-RGBA blits for mismatched formats.
...
Fixes piglit crashes doing glCopyTexSubImage from (for example)
PIPE_FORMAT_Z24_UNORM_S8_UINT to PIPE_FORMAT_Z32_FLOAT_S8X24_UINT where,
in addition to reading the source Z values incorrectly, we would try to
dereference the missing separate stencil of the Z24S8 buffer.
Cc: mesa-stable
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10328 >
2021-04-19 22:26:24 +00:00
Lionel Landwerlin
856953b131
spirv: fix uToAccelerationStructure handling
...
Signed-off-by: Lionel Landwerlin <lionel.g.landwerlin@intel.com >
Fixes: 7f223a2329 ("spirv: Implement SpvOpConvertUToAccelerationStructureKHR")
Reviewed-by: Jason Ekstrand <jason@jlekstrand.net >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10324 >
2021-04-19 22:02:53 +00:00
Eric Anholt
bdad5ce27b
freedreno: Mark glsl-fs-fogscale as a Fail.
...
I have a note in -flakes.txt about how it can flake to being a Crash
instead of a Fail, but I haven't been able to reproduce that flake today.
It does always fail in the GS subtest, though, so quiet the flake spam in
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10330 >
2021-04-19 21:38:10 +00:00
Billy Laws
af0e6c22db
meson: Increase Android Platform SDK version limit
...
This is required to allow building with support for newer whitelisted
extensions such as VK_KHR_performance_query.
Reviewed-by: Eric Anholt <eric@anholt.net >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/9878 >
2021-04-19 21:21:53 +00:00
Eric Anholt
c1352205ab
mapi: Respect MESA_DEBUG=silent for no-op debug output.
...
We set this in deqp-runner runs to disable Mesa debug/debugoptimized
builds printing to stderr for expected GL test behavior, and with the
addition of dEQP-EGL mapi got very verbose. Move it to a call_once() too
to avoid data races.
Acked-by: Eric Engestrom <eric@engestrom.ch >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10240 >
2021-04-19 20:53:27 +00:00
Eric Anholt
8a8e55d6a8
ci/freedreno: Test dEQP-EGL against Xorg.
...
This should help us be able to refactor core EGL code with more
confidence, and increase our confidence uprevving Mesa in ChromeOS.
Part of #1884
Reviewed-by: Eric Engestrom <eric@engestrom.ch >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10240 >
2021-04-19 20:53:27 +00:00
Eric Anholt
510c687cfb
ci/llvmpipe: Test dEQP-EGL against Xvfb.
...
This should help us refactor EGL code with more confidence than just
relying on piglit. Reveals several llvmpipe EGL issues.
Part of #1884
Reviewed-by: Eric Engestrom <eric@engestrom.ch >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10240 >
2021-04-19 20:53:27 +00:00
Eric Anholt
c49daac1cd
ci: Build deqp-egl targeting x11_egl_glx
...
This will be used to test llvmpipe against Xvfb and freedreno against
Xorg. We keep the core deqp testing on surfaceless because
--deqp-surface-type=pbuffer fails on x11_egl_glx, =fbo has never worked in
VK-GL-CTS, and =window would increase test runtime for all the
swapbuffers.
Reviewed-by: Eric Engestrom <eric@engestrom.ch >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10240 >
2021-04-19 20:53:27 +00:00
Alyssa Rosenzweig
adcbda42e3
panfrost: Allow FPK when there are no side effects
...
Enables FPK for most real content.
Signed-off-by: Alyssa Rosenzweig <alyssa@collabora.com >
Reviewed-by: Boris Brezillon <boris.brezillon@collabora.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10271 >
2021-04-19 20:32:59 +00:00
Alyssa Rosenzweig
dbf9a4b072
panfrost: Don't allow FPK if a RT is missing
...
A fragment shader that forgets to write to one of the bound render
targets (in the presence of MRT) invalidates a core FPK invariant. Check
for this and add it to the naughty list.
I don't think this needs a backport since FPK isn't really used yet.
Signed-off-by: Alyssa Rosenzweig <alyssa@collabora.com >
Reviewed-by: Boris Brezillon <boris.brezillon@collabora.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10271 >
2021-04-19 20:32:59 +00:00
Alyssa Rosenzweig
600a48248e
panfrost: Invert blend_reads_dest logic
...
Easier to understand (and match to actual hardware behaviour) this way.
Signed-off-by: Alyssa Rosenzweig <alyssa@collabora.com >
Reviewed-by: Boris Brezillon <boris.brezillon@collabora.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10271 >
2021-04-19 20:32:59 +00:00
Alyssa Rosenzweig
ba51d2583e
panfrost: Set clean_fragment_write for blits
...
Signed-off-by: Alyssa Rosenzweig <alyssa@collabora.com >
Reviewed-by: Boris Brezillon <boris.brezillon@collabora.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10271 >
2021-04-19 20:32:59 +00:00
Alyssa Rosenzweig
d034461921
panfrost: Set allow_forward_pixel_to_be_killed for blit
...
Signed-off-by: Alyssa Rosenzweig <alyssa@collabora.com >
Reviewed-by: Boris Brezillon <boris.brezillon@collabora.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10271 >
2021-04-19 20:32:59 +00:00
Alyssa Rosenzweig
e85b1d8fdf
panfrost: Don't allow_forward_pixel_to_kill for Z/S blit
...
Signed-off-by: Alyssa Rosenzweig <alyssa@collabora.com >
Reviewed-by: Boris Brezillon <boris.brezillon@collabora.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10271 >
2021-04-19 20:32:59 +00:00
Alyssa Rosenzweig
899dd8e60a
nir: Update some comments referring to imov
...
This was renamed when I was in high school. I remember updating the
Midgard compiler while sitting in AP Physics.
Signed-off-by: Alyssa Rosenzweig <alyssa@collabora.com >
Reviewed-By: Mike Blumenkrantz <michael.blumenkrantz@gmail.com >
Reviewed-by: Jason Ekstrand <jason@jlekstrand.net >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10296 >
2021-04-19 20:07:35 +00:00
Eric Anholt
44f744be42
zink: Enable PIPE_CAP_PACKED_UNIFORMS.
...
We already support everything necessary and just need to ask the frontend
to DTRT. This makes UBO0 get more tightly packed, saving upload space,
and allows for _mesa_optimize_state_parameters() as well.
Reviewed-By: Mike Blumenkrantz <michael.blumenkrantz@gmail.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10150 >
2021-04-19 19:57:33 +00:00
Eric Anholt
24d7c413fe
panfrost: Enable packed uniforms.
...
Since we can handle arbitrary offsets in the load_ubo paths, we can let
the GLSL compiler pack UBO 0 tighter, saving uniform uploads. This may
cause some straddling loads that could reduce performance for vec3s, but
those are rare in shader-db and we expect this to be outweighed by the
wins for normal float/vec2 packing.
Reviewed-by: Alyssa Rosenzweig <alyssa.rosenzweig@collabora.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10151 >
2021-04-19 19:44:51 +00:00
Erik Faye-Lund
ff007afce2
zink: document requirement of VK_EXT_custom_border_color
...
Without this extension, we misrender when custom border colors are
used. Let's document this, and emit a warning when the extension is
missing.
Reviewed-by: Joshua Ashton <joshua@froggi.es >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10316 >
2021-04-19 19:31:36 +00:00
Bas Nieuwenhuizen
a144fa608d
radv: Fix memory leak on descriptor pool reset with layout_size=0.
...
Gotta track those sets too to free them. Alse changed the search
on destroy to check for set instead of offset since offset is not
necessarily unique anymore.
Closes: https://gitlab.freedesktop.org/mesa/mesa/-/issues/4652
CC: mesa-stable
Reviewed-by: Joshua Ashton <joshua@froggi.es >
Reviewed-by: Samuel Pitoiset <samuel.pitoiset@gmail.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10317 >
2021-04-19 19:19:58 +00:00
Mauro Rossi
63c2dfe132
android: panfrost/lib: add pan_cs.c to Makefile.sources
...
Fixes the following building errors:
FAILED: out/target/product/x86_64/obj/SHARED_LIBRARIES/gallium_dri_intermediates/LINKED/gallium_dri.so
...
ld.lld: error: undefined symbol: pan_emit_tls
>>> referenced by pan_cmdstream.c:2279 (external/mesa/src/gallium/drivers/panfrost/pan_cmdstream.c:2279)
...
ld.lld: error: undefined symbol: pan_emit_fbd
>>> referenced by pan_cmdstream.c:2302 (external/mesa/src/gallium/drivers/panfrost/pan_cmdstream.c:2302)
...
ld.lld: error: undefined symbol: pan_emit_fragment_job
>>> referenced by pan_cmdstream.c:2382 (external/mesa/src/gallium/drivers/panfrost/pan_cmdstream.c:2382)
...
ld.lld: error: undefined symbol: pan_emit_bifrost_tiler_heap
>>> referenced by pan_job.c:718 (external/mesa/src/gallium/drivers/panfrost/pan_job.c:718)
...
ld.lld: error: undefined symbol: pan_emit_bifrost_tiler
>>> referenced by pan_job.c:723 (external/mesa/src/gallium/drivers/panfrost/pan_job.c:723)
...
ld.lld: error: undefined symbol: pan_fbd_has_zs_crc_ext
>>> referenced by pan_job.c:893 (external/mesa/src/gallium/drivers/panfrost/pan_job.c:893)
...
clang-9: error: linker command failed with exit code 1 (use -v to see invocation)
Cc: 21.1 <mesa-stable@lists.freedesktop.org >
Fixes: 387f8c037d ("panfrost: Add various helpers to simplify FB desc emission")
Reviewed-by: Boris Brezillon <boris.brezillon@collabora.com >.
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10299 >
2021-04-19 18:53:43 +00:00
Chia-I Wu
588a52869e
venus: refactor vn_queue_submission_count_semaphores
...
Add vn_queue_submission_count_batch_semaphores that works on a single
batch at a time. Also avoid code duplication.
Signed-off-by: Chia-I Wu <olvaffe@gmail.com >
Reviewed-by: Yiwei Zhang <zzyiwei@chromium.org >
Reviewed-by: Ryan Neph <ryanneph@google.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10290 >
2021-04-19 18:25:00 +00:00
Jesse Natalie
9c689ef395
gallium: Define PIPE_ARCH_AARCH64 for MSVC arm64 builds
...
Reviewed-by: Eric Anholt <eric@anholt.net >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10014 >
2021-04-19 17:59:44 +00:00
Eric Anholt
80923e8d58
util/format: Add some NEON intrinsics-based u_format_unpack.
...
In looking at the profile of dEQP, GLES3 was spending 5-10% of its time in
ReadPixels, and almost all of that is b8g8r8a8_unorm8. It's really slow
because we're getting about 47MB/s by doing uncached reads 32 bits at a
time in the code-generated unpack. If we use NEON to generate larger bus
transactions, we can speed things up to 136MB/s. In comparison, raw
ldr/str read/writes with no byte swapping can hit a max of 216MB/sec.
Reviewed-by: Jesse Natalie <jenatali@microsoft.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10014 >
2021-04-19 17:59:44 +00:00
Eric Anholt
2b5178ee48
util: Switch the non-block formats to unpacking rgba rows instead of rects.
...
We have only a few callers of unpack that do rects, so add a helper that
iterates over y adding the strides. This saves us 36kb of generated code
and means that adding cpu-specific variants for RGBA format unpack will be
much simpler.
Reviewed-by: Jesse Natalie <jenatali@microsoft.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10014 >
2021-04-19 17:59:44 +00:00
Eric Anholt
921b05f582
mesa: Remove dead _mesa_unpack_rgba_block().
...
Despite many changes over its lifetime, it appears to have been dead ever
since its introduction in 2011.
Reviewed-by: Jesse Natalie <jenatali@microsoft.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10014 >
2021-04-19 17:59:44 +00:00
Drew Davenport
9b7814779b
radeonsi: Report multi-plane formats as unsupported
...
https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/6693 added
NV12 lowering to PIPE_FORMAT_R8_G8B8_420_UNORM, which regressed some
video decode use cases in radeonsi, for example CtsDecodeTestCases in
android CTS. There are also discolored frames in video playback use
cases (i.e. youtube).
https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/3632
previously fixed similar issues in radeonsi. This change takes that a
step further to report any multi-plane format as unsupported.
Fixes: 826a10255f ("st/mesa: Add NV12 lowering to PIPE_FORMAT_R8_G8B8_420_UNORM")
Reviewed-by: Bas Nieuwenhuizen <bas@basnieuwenhuizen.nl >
Tested-by: Simon Ser <contact@emersion.fr >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/9490 >
2021-04-19 17:42:33 +00:00
Danylo Piliaiev
64367f2359
turnip: implement VK_KHR_shader_terminate_invocation
...
OpTerminateInvocation provides the behavior required by the GLSL
discard statement, which we already implement.
Signed-off-by: Danylo Piliaiev <dpiliaiev@igalia.com >
Reviewed-by: Samuel Iglesias Gonsálvez <siglesias@igalia.com >
Reviewed-by: Eric Anholt <eric@anholt.net >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/9460 >
2021-04-19 17:11:36 +00:00
Danylo Piliaiev
9dd9424a85
turnip: implement VK_EXT_shader_demote_to_helper_invocation
...
The "demote" intrinsic has the semantics of D3D discard, which means
it doesn't change the control flow, allowing derivatives to work.
On A6xx there is no known way to check whether invocation was demoted,
thus we use nir_lower_is_helper_invocation.
Add "logical" OPC_DEMOTE which is later translated to "kill".
Such separation is necessary to run "kill" specific optimizations
which are invalid for "demote".
Signed-off-by: Danylo Piliaiev <dpiliaiev@igalia.com >
Reviewed-by: Samuel Iglesias Gonsálvez <siglesias@igalia.com >
Reviewed-by: Eric Anholt <eric@anholt.net >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/9460 >
2021-04-19 17:11:36 +00:00
Danylo Piliaiev
f17b41ab4f
nir: add lowering pass for helperInvocationEXT()
...
Some hardware doesn't have a way to check if invocation was demoted,
in such case we have to track it ourselves.
OpIsHelperInvocationEXT is specified as:
"An invocation is currently a helper invocation if it was originally
invoked as a helper invocation or if it has been demoted to a helper
invocation by OpDemoteToHelperInvocationEXT."
Therefore we:
- Set gl_IsHelperInvocationEXT = gl_HelperInvocation
- Add "gl_IsHelperInvocationEXT = true" right before each demote
- Add "gl_IsHelperInvocationEXT = gl_IsHelperInvocationEXT || condition"
right before each demote_if
Signed-off-by: Danylo Piliaiev <dpiliaiev@igalia.com >
Reviewed-by: Samuel Iglesias Gonsálvez <siglesias@igalia.com >
Reviewed-by: Eric Anholt <eric@anholt.net >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/9460 >
2021-04-19 17:11:36 +00:00
Eric Anholt
360df6fbfe
ci/lava: Point the shader cache at tmpfs.
...
We really don't want to be going out over NFS and back for our shader
cache references.
Reviewed-by: Tomeu Vizoso <tomeu.vizoso@collabora.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10297 >
2021-04-19 16:46:33 +00:00
Eric Anholt
09a23851ae
ci/piglit: Always include the HTML summary in a run.
...
It's the best visualization for run results when using the piglit
framework, and now all the DUTs return artifacts.
Reviewed-by: Tomeu Vizoso <tomeu.vizoso@collabora.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10297 >
2021-04-19 16:46:33 +00:00
Eric Anholt
7f9f345579
ci/lava: Return the run's results/ artifacts from the DUTs.
...
Finally LAVA users will be able to see deqp XMLs on failures from the
job's artifacts browser. This replaces a couple of one-off minio uploads
in the piglit runner.
Reviewed-by: Tomeu Vizoso <tomeu.vizoso@collabora.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10297 >
2021-04-19 16:46:33 +00:00
Eric Anholt
95b9ea85f5
ci/lavapipe: Don't include deqp's shader_cache in the artifacts.
...
We don't care to look at it and we don't reuse it.
Reviewed-by: Tomeu Vizoso <tomeu.vizoso@collabora.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10297 >
2021-04-19 16:46:33 +00:00
Samuel Pitoiset
9434675d60
aco: fix opquantize2f16 on GFX6-7
...
Make sure to preserve signed zeroes.
Fixes dEQP-VK.spirv_assembly.instruction.compute.opquantize.flush_to_zero
on GFX6 (Pitcairn). Untested on GFX7.
Fixes: 54a09545ec ("aco: optimize a*0.0")
Signed-off-by: Samuel Pitoiset <samuel.pitoiset@gmail.com >
Reviewed-by: Rhys Perry <pendingchaos02@gmail.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10319 >
2021-04-19 16:33:37 +00:00
Connor Abbott
08499369d0
ir3: Assemble and disassemble swz/gat/sct
...
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10291 >
2021-04-19 16:10:44 +00:00
Connor Abbott
d48d43039a
ir3: Improve cat1 modifier disassembly
...
Remove bit that shouldn't be part of (rptN), and rewrite the handling of
(even) and (pos_infinity) to uncover a missing (neg_infinity) modifier.
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10291 >
2021-04-19 16:10:44 +00:00
Connor Abbott
4c5b696cc3
ir3/parser: Fix oob write with immediates array
...
immediates_count and immediates_size are supposed to have the same
units, but it was only incrementing immediates_count by 1. While we're
here, also fix the case where constants are specified out-of-order.
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10291 >
2021-04-19 16:10:44 +00:00
Jesse Natalie
8c140006e2
microsoft/clc: If local size isn't specified either in the shader or at runtime, set it to (1,1,1)
...
Otherwise we can end up in situations like having divide-by-zero. If the optimization is smart enough
that we end up with a *constant* divide-by-zero, then the DXIL validator will fail to sign, which
can trigger fatal errors with CLOn12.
We want to run an initial translation of all kernels during program build, but at that point we don't
know the local size to be able to specify it through kernel specialization data.
v2: Metadata output of 0 is used to indicate that the size wasn't explicitly specific. Copy the
size to the metadata before overriding it to (1,1,1). If conf was explicitly specified,
update the metadata again (though nobody should be paying attention to it).
Closes: https://github.com/microsoft/OpenCLOn12/issues/20
Closes: https://github.com/darktable-org/darktable/issues/8700
Reviewed-By: Bill Kristiansen <billkris@microsoft.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10303 >
2021-04-19 15:38:57 +00:00
Stéphane Marchesin
b460d4da60
virgl: resources without any binding can be cached
...
Certain games create and destroy lots of resources without binding them.
This can take quite a bit of time and even create unneeded
synchronization. However, we know that if a resource was never bound to
anything, it can be cached. This change does that.
Counting the number of uncached allocation with a tabletop simulator trace:
Before: 2967 uncached allocations over the replay
After: 24 uncached allocations over the replay
Reviewed-by: Gert Wollny <gert.wollny@collabora.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10225 >
2021-04-19 14:59:04 +00:00
Erik Faye-Lund
7886983835
nir/lower_tex: do not stumble on 16-bit inputs
...
If a has been lowered to float16 here, then we end up trying to
construct a vector of mixed precision, which the validator asserts
about.
So let's make sure we use the same type for all arguments.
Reviewed-by: Marek Olšák <marek.olsak@amd.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10201 >
2021-04-19 14:28:05 +00:00
Erik Faye-Lund
bd1b0c3266
lavapipe: implement VK_EXT_custom_border_color
...
This fixes a bunch of piglit failures on Zink.
Reviewed-by: Joshua Ashton <joshua@froggi.es >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10320 >
2021-04-19 14:01:41 +00:00
Erik Faye-Lund
a20e0b8a97
lavapipe: resolve border-color when creating sampler
...
This is going to make it easier to implement the custom border-color
extension.
While we're moving the code, tweak the memset code a bit, so we don't do
any float-ism in the int-case. It doesn't change anything functionally,
just makes it slightly clearer what's going on here.
Reviewed-by: Joshua Ashton <joshua@froggi.es >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10320 >
2021-04-19 14:01:41 +00:00
Mike Blumenkrantz
33e117ed7f
st/pbo: use cso_set_vertex_buffers_and_elements() for st_pbo_draw
...
this lets us use the more consistent codepath and ordering (buffers -> elems)
as well as set take_ownership=true to skip the unref
Reviewed-by: Marek Olšák <marek.olsak@amd.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10257 >
2021-04-19 13:24:06 +00:00
Mike Blumenkrantz
001c6f8201
zink: fix tcs input reservation for user vars
...
tcs user vars are var_size[32], which isn't actually how many slots they need,
just how big the variable is (oops), so this needs to be divided
by MAX_PATCH_VERTICES to get the real slot count
slot mapping has always been broken for all tcs inputs, but this probably fixes
all of the related issues there, including unlimited crashes when playing Tomb Raider
Fixes: 2d98efd323 ("zink: pre-populate locations in variables")
Acked-by: Erik Faye-Lund <erik.faye-lund@collabora.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10269 >
2021-04-19 13:11:04 +00:00
Mike Blumenkrantz
a8ba8eb12f
zink: fix tcs slot map eval for user vars
...
tcs user inputs need to have their size adjusted in order to determine whether
they'll overflow the existing slot map
Fixes: 5c5e1abea2 ("zink: evaluate existing slot map during program init and force new map as needed")
Acked-by: Erik Faye-Lund <erik.faye-lund@collabora.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10269 >
2021-04-19 13:11:04 +00:00
Mike Blumenkrantz
a1c7aff88a
zink: always copy the nir shader before compiling
...
nir_convert_from_ssa and assign_io_locations both modify this unconditionally,
the latter of which possibly re-modifies variables in ways that can break the
slot map and cause stack overflows during vk driver pipeline compilation
Fixes: 2b4609b66c ("zink: run nir_convert_from_ssa last during compile")
Fixes: 2d98efd323 ("zink: pre-populate locations in variables")
Reviewed-by: Erik Faye-Lund <erik.faye-lund@collabora.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10269 >
2021-04-19 13:11:04 +00:00
Erik Faye-Lund
d09442461f
zink: fix stencil-export cap emission
...
This cap should only ever be emitted for fragment-shaders, but we
accidentally emit it for all shaders. Let's tighten the check to avoid a
validator warning when emitting non-fragment shaders without support for
VK_EXT_shader_stencil_export.
Fixes: 8724d4fb36 ("zink: check shader stencil output")
Reviewed-By: Mike Blumenkrantz <michael.blumenkrantz@gmail.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10249 >
2021-04-19 10:48:43 +00:00
Marek Olšák
451089812a
gallium/util: add easy profiling helpers using TIME_ELAPSED queries
...
There are no users and that's intentional.
Reviewed-By: Mike Blumenkrantz <michael.blumenkrantz@gmail.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10262 >
2021-04-19 08:29:17 +00:00
Gert Wollny
1b5851fadb
Revert "r600: don't set an index_bias for indirect draw calls"
...
This reverts commit acdf1a1234 .
While this commit fixed the gles CTS regressions, it introduced
regressions that made the driver unusable, hence the revert.
Closes #4657
Signed-off-by: Gert Wollny <gert.wollny@collabora.com >
Reviewed-by: Marek Olšák <marek.olsak@amd.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10311 >
2021-04-19 10:00:55 +02:00
Lionel Landwerlin
f90d625841
vulkan/util: cast enums to int64_t in switch
...
With the new Vulkan Video extensions a bunch of enum values have been
added. The problem is that those are behind #ifdef so our generated
code complains that we using enum values not defined.
Since we're not using enum names but integer values, we can silence
all those by casting the enum type to int64_t.
Signed-off-by: Lionel Landwerlin <lionel.g.landwerlin@intel.com >
Reviewed-by: Jason Ekstrand <jason@jlekstrand.net >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10304 >
2021-04-19 06:14:11 +00:00
Dave Airlie
a49ef6e731
iris: move target to isl dim translate to inline.
...
This avoids a conflict in namespace when crocus wants to use the
same function.
Reviewed-by: Kenneth Graunke <kenneth@whitecape.org >
Reviewed-by: Adam Jackson <ajax@redhat.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10308 >
2021-04-19 16:01:03 +10:00
Dave Airlie
a067399e37
iris: move get_time into a static in bufmgr code.
...
This ends up polluting the namespace if you build iris/crocus
at once, just move it to where it's used for now.
Reviewed-by: Kenneth Graunke <kenneth@whitecape.org >
Reviewed-by: Adam Jackson <ajax@redhat.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10308 >
2021-04-19 16:00:51 +10:00
Rob Clark
c74d93cf01
freedreno/fdl: Re-indent
...
Signed-off-by: Rob Clark <robdclark@chromium.org >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10293 >
2021-04-17 15:38:56 +00:00
Rob Clark
6050976232
freedreno/perfcntrs: Re-indent
...
Signed-off-by: Rob Clark <robdclark@chromium.org >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10293 >
2021-04-17 15:38:56 +00:00
Rob Clark
d26a224ca9
freedreno/ir2: Re-indent
...
clang-format -fallback-style=none --style=file -i src/freedreno/ir2/*.[ch]
Signed-off-by: Rob Clark <robdclark@chromium.org >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10293 >
2021-04-17 15:38:56 +00:00
Rob Clark
2dbf09c2b4
freedreno/drm-shim: Re-indent
...
clang-format -fallback-style=none --style=file -i src/freedreno/drm-shim/*.[ch]
Signed-off-by: Rob Clark <robdclark@chromium.org >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10293 >
2021-04-17 15:38:56 +00:00
Rob Clark
45856c5fbc
freedreno/decode: Re-indent
...
clang-format -fallback-style=none --style=file -i src/freedreno/decode/*.[ch]
Signed-off-by: Rob Clark <robdclark@chromium.org >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10293 >
2021-04-17 15:38:56 +00:00
Rob Clark
3894bc9664
freedreno/computerator: Re-indent
...
clang-format -fallback-style=none --style=file -i src/freedreno/computerator/*.[ch]
Signed-off-by: Rob Clark <robdclark@chromium.org >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10293 >
2021-04-17 15:38:56 +00:00
Rob Clark
ccd68b672a
freedreno/common: Re-indent
...
clang-format -fallback-style=none --style=file -i src/freedreno/common/*.[ch]
Signed-off-by: Rob Clark <robdclark@chromium.org >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10293 >
2021-04-17 15:38:56 +00:00
Rob Clark
f5918f750f
freedreno/afuc: Re-indent
...
clang-format -fallback-style=none --style=file -i src/freedreno/afuc/*.[ch]
Signed-off-by: Rob Clark <robdclark@chromium.org >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10293 >
2021-04-17 15:38:56 +00:00
Rob Clark
b94db11708
freedreno/drm: Re-indent
...
clang-format -fallback-style=none --style=file -i src/freedreno/drm/*.[ch]
Signed-off-by: Rob Clark <robdclark@chromium.org >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10293 >
2021-04-17 15:38:56 +00:00
Marek Olšák
a1653854f5
radeonsi: fix automatic DCC retiling after compute image stores
...
Only internal compute shaders use DCC stores, so the TODOs are not
critical yet.
Fixes: 1d64a1045e - radeonsi: enable dcc image stores on gfx10+
Reviewed-by: Bas Nieuwenhuizen <bas@basnieuwenhuizen.nl >
Acked-by: Pierre-Eric Pelloux-Prayer <pierre-eric.pelloux-prayer@amd.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10261 >
2021-04-17 02:37:49 +00:00
Marek Olšák
4d7dd094e3
radeonsi: fix automatic DCC retiling after DCC clear and DCC decompression
...
Fixes: d4f7962d48 - radeonsi: Add displayable DCC flushing without explicit flushes.
Reviewed-by: Bas Nieuwenhuizen <bas@basnieuwenhuizen.nl >
Acked-by: Pierre-Eric Pelloux-Prayer <pierre-eric.pelloux-prayer@amd.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10261 >
2021-04-17 02:37:49 +00:00
Marek Olšák
a0771e6b27
radeonsi: fix incorrect comments in culling code and NIR lowering
...
The lowering code removes the "VS inputs" item from the list because the hw
doesn't support indirect indexing of VS inputs.
Reviewed-by: Bas Nieuwenhuizen <bas@basnieuwenhuizen.nl >
Acked-by: Pierre-Eric Pelloux-Prayer <pierre-eric.pelloux-prayer@amd.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10261 >
2021-04-17 02:37:49 +00:00
Marek Olšák
e0ffd1f928
radeonsi: don't decompress DCC for float formats in si_compute_copy_image
...
Format reinterpretation disabled it.
Fixes: 1d64a1045e "radeonsi: enable dcc image stores on gfx10+"
Reviewed-by: Bas Nieuwenhuizen <bas@basnieuwenhuizen.nl >
Acked-by: Pierre-Eric Pelloux-Prayer <pierre-eric.pelloux-prayer@amd.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10261 >
2021-04-17 02:37:49 +00:00
Marek Olšák
ec1ddb976a
amd/registers: rename IMG_FORMAT to GFX10_FORMAT to disambiguate the meaning
...
Reviewed-by: Bas Nieuwenhuizen <bas@basnieuwenhuizen.nl >
Acked-by: Pierre-Eric Pelloux-Prayer <pierre-eric.pelloux-prayer@amd.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10261 >
2021-04-17 02:37:49 +00:00
Marek Olšák
3e0ce4af4f
amd/registers: clean up gfx103.json
...
because gfx103.json is automatically generated and can't be changed
manually. This fixes the file generator without changing the generated
header.
Missing registers must be in registers-manually-defined.json, and
missing fields must be in parse_kernel_headers.py.
Reviewed-by: Bas Nieuwenhuizen <bas@basnieuwenhuizen.nl >
Acked-by: Pierre-Eric Pelloux-Prayer <pierre-eric.pelloux-prayer@amd.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10261 >
2021-04-17 02:37:49 +00:00
Marek Olšák
a142925b7a
amd/registers: fix the kernel header parser with latest headers
...
Reviewed-by: Bas Nieuwenhuizen <bas@basnieuwenhuizen.nl >
Acked-by: Pierre-Eric Pelloux-Prayer <pierre-eric.pelloux-prayer@amd.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10261 >
2021-04-17 02:37:49 +00:00
Chia-I Wu
418da19f91
venus: add vn_wsi_create_scanout_image
...
A helper called from vn_wsi_create_scanout_image to hijack wsi scanout
image creation.
Signed-off-by: Chia-I Wu <olvaffe@gmail.com >
Reviewed-by: Yiwei Zhang <zzyiwei@chromium.org >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10294 >
2021-04-16 17:29:38 -07:00
Chia-I Wu
b7db6598df
venus: add vn_image_create
...
A helper called from vn_CreateImage to allocate and initialize vn_image.
Signed-off-by: Chia-I Wu <olvaffe@gmail.com >
Reviewed-by: Yiwei Zhang <zzyiwei@chromium.org >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10294 >
2021-04-16 17:29:36 -07:00
Chia-I Wu
e1787ec77d
venus: add vn_image_init_memory_requirements
...
A helper called from vn_CreateImage to initialize memory requirements.
Signed-off-by: Chia-I Wu <olvaffe@gmail.com >
Reviewed-by: Yiwei Zhang <zzyiwei@chromium.org >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10294 >
2021-04-16 17:29:27 -07:00
Eric Anholt
5de3cbbb2e
nir: Generate load_ubo_vec4 directly for !PIPE_CAP_NATIVE_INTEGERS
...
The prog_to_nir->NIR-to-TGSI change ended up causing regressions on r300,
and svga against r300-class hardware, because nir_lower_uniforms_to_ubo()
introduced shifts that nir_lower_ubo_vec4() tried to reverse, but that NIR
couldn't prove are no-ops (since shifting up and back down may drop bits),
and the hardware can't do the integer ops.
Instead, make it so that nir_lower_uniforms_to_ubo can generate
nir_intrinsic_load_ubo_vec4 directly for !INTEGER hardware.
Fixes: cf3fc79cd0 ("st/mesa: Replace mesa_to_tgsi() with prog_to_nir() and nir_to_tgsi().")
Closes : #4602
Reviewed-By: Mike Blumenkrantz <michael.blumenkrantz@gmail.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10194 >
2021-04-16 21:58:00 +00:00
Eric Anholt
71d6d1b1ab
nir_to_tgsi: Use ARL instead of UARL in the !native_integers case.
...
Our "integer" index is stored as a float in this case, and we just need to
use teh right opcode for loading it, which will be the only one supported
by !native_integers hardware.
Fixes: cf3fc79cd0 ("st/mesa: Replace mesa_to_tgsi() with prog_to_nir() and nir_to_tgsi().")
Reviewed-By: Mike Blumenkrantz <michael.blumenkrantz@gmail.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10194 >
2021-04-16 21:58:00 +00:00
Mike Blumenkrantz
5b9c3cb7b9
zink: compare against screen batch id when determining which semaphore to use
...
semaphores are per-screen now, so check the screen value
Fixes: fa36a16c68 ("zink: make timeline semaphores per-screen")
Reviewed-by: Adam Jackson <ajax@redhat.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10267 >
2021-04-16 21:09:01 +00:00
Francisco Jerez
20e2c7308f
iris/gen12: Work around push constant corruption on context switch.
...
This has been confirmed to fix sporadic graphics corruption on Gen12
platforms for a number of workloads (including Heaven, Valley and
CS:GO among others). Corruption seems to occur during context switch
fairly consistently, but unfortunately this problem doesn't seem to be
documented. Until the hardware team comes up with a better
workaround, fix the problem by reemitting constants at the beginning
of each batch.
No corruption has been observed so far in GL due to preemption,
however this is a possibility to keep in mind, it may be necessary to
disable preemption in addition to this patch in order to fully address
this problem (see also 81201e4617 ).
Closes: https://gitlab.freedesktop.org/mesa/mesa/-/issues/4412
Closes: https://gitlab.freedesktop.org/mesa/mesa/-/issues/4454
Cc: mesa-stable
Reviewed-by: Kenneth Graunke <kenneth@whitecape.org >
2021-04-16 12:41:40 -07:00
Jesse Natalie
aea6f8effc
microsoft/compiler: Propagate access when lowering SSBO loads
...
We'll want to preserve whether the load is accessing a read-only
SSBO or not.
Reviewed-by: Enrico Galli <enrico.galli@intel.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10149 >
2021-04-16 17:08:17 +00:00
Jesse Natalie
474824bf3d
microsoft/compiler: Support raw SRVs in addition to typed SRVs
...
These will be used for read-only SSBOs
Reviewed-by: Enrico Galli <enrico.galli@intel.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10149 >
2021-04-16 17:08:17 +00:00
Jesse Natalie
a5f402f002
microsoft/compiler: Store nir_shader in the ntd_context
...
This means we can stop passing it as a second parameter all the time
Reviewed-by: Enrico Galli <enrico.galli@intel.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10149 >
2021-04-16 17:08:17 +00:00
Jesse Natalie
50d7e97c1d
microsoft/compiler: Better support UBO/SSBO references to descriptors
...
Previously UBOs only supported static indices, and SSBOs only
supported dynamic indices. UBO support for descriptors was added
as an alternative to static indices, but the logic for detecting
descriptors to SSBOs couldn't just differentiate on constants vs not.
Add a helper which can differentiate cleanly across the board and
handle pre-created handles from descriptors, or static/dynamic raw
indices.
Reviewed-by: Enrico Galli <enrico.galli@intel.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10149 >
2021-04-16 17:08:17 +00:00
Jesse Natalie
d6b5aaaff8
microsoft/compiler: Split Vulkan resource_index / descriptor processing
...
Instead of doing all of the handle logic in the descriptor load, split
it so that the resource index is actually computed during resource_index
processing, and it's converted to a handle during the load_descriptor.
At the same time, add SSBO handling and dynamic indexing handling.
Reviewed-by: Enrico Galli <enrico.galli@intel.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10149 >
2021-04-16 17:08:17 +00:00
Jesse Natalie
8a821e2b8b
microsoft/compiler: Emit SSBO variables
...
Reviewed-by: Enrico Galli <enrico.galli@intel.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10149 >
2021-04-16 17:08:17 +00:00
Jesse Natalie
15de712270
microsoft/compiler: Emit CBVs via variables for Vulkan
...
The resources need to be emitted in a particular order, so CBVs
have to be emitted first and can't be emitted as we iterate through
instructions.
Reviewed-by: Enrico Galli <enrico.galli@intel.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10149 >
2021-04-16 17:08:17 +00:00
Jesse Natalie
debdc81ccf
microsoft/compiler: Support arrays of UBOs
...
Reviewed-by: Enrico Galli <enrico.galli@intel.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10149 >
2021-04-16 17:08:17 +00:00
Jesse Natalie
88ff88bb7d
microsoft/compiler: Support raw SRVs/UAVs through dxil_module_get_res_type
...
Switch the OpenCL "globals" array to use that helper
Reviewed-by: Enrico Galli <enrico.galli@intel.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10149 >
2021-04-16 17:08:17 +00:00
Jesse Natalie
0c8220685e
microsoft/spirv_to_dxil: Lower loads/stores to DXIL
...
This adjusts UBO loads to be float4 loads, and handles SSBO accesses
that are larger/smaller than 32bit.
Reviewed-by: Enrico Galli <enrico.galli@intel.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10149 >
2021-04-16 17:08:17 +00:00
Jesse Natalie
14997c7e96
microsoft/spirv_to_dxil: Lower samplers from deref to index
...
Reviewed-by: Enrico Galli <enrico.galli@intel.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10149 >
2021-04-16 17:08:17 +00:00
Mauro Rossi
0a71aaa29d
egl/android: include "util/compiler.h" for FALLTHROUGH macro
...
Fixes the following building error:
external/mesa/src/egl/drivers/dri2/platform_android.c:1263:10: error: use of undeclared identifier 'FALLTHROUGH'
FALLTHROUGH; /* for pbuffers */
^
1 error generated.
Fixes: 2928c21eb7 ("Convert most remaining free-form fall-through comments to FALLTHROUGH")
Reviewed-by: Tapani Pälli <tapani.palli@intel.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10264 >
2021-04-16 16:42:20 +00:00
Axel Davy
5613984fd9
st/nine: Fix compilation error on non-x86 platforms
...
The unused variable was improperly declared.
Closes: https://gitlab.freedesktop.org/mesa/mesa/-/issues/4647
Fixes: d9e79bfe4f ("st/nine: Disable fpu exceptions during init")
Signed-off-by: Axel Davy <davyaxel0@gmail.com >
Reviewed-by: Timur Kristóf <timur.kristof@gmail.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10263 >
2021-04-16 16:15:29 +00:00
Michel Dänzer
db538bde71
ci: Add test which occasionally times out to lavapipe-vk skips
...
E.g. https://gitlab.freedesktop.org/mesa/mesa/-/jobs/8912925 .
Reviewed-By: Mike Blumenkrantz <michael.blumenkrantz@gmail.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10279 >
2021-04-16 13:40:26 +00:00
Simon Ser
ebab310987
frontends/va: improve surface attribs processing
...
Instead of checking whether the attribute is settable for each
attrib type, check that once at the beginning of the loop.
Instead of having an if for each attrib type, use a switch.
Return an error if we encounter an unknown attribute. This allows
the caller to make sure settable attributes aren't ignored. The
intel media driver seems to just assert [1] that it doesn't encounter
unknown attributes.
[1]: 95d413e519/media_driver/linux/common/ddi/media_libva.cpp (L2530)
Signed-off-by: Simon Ser <contact@emersion.fr >
Reviewed-by: Leo Liu <leo.liu@amd.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10104 >
2021-04-16 15:26:04 +02:00
Iago Toral Quiroga
6c80b084f2
v3dv: better tracking of dirty push constant state
...
Reviewed-by: Alejandro Piñeiro <apinheiro@igalia.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10283 >
2021-04-16 12:29:11 +00:00
Iago Toral Quiroga
30f125f04f
v3dv: dirty viewport doesn't affect fragment shaders
...
The uniform state for the viewport is only used with geometry stages.
Reviewed-by: Alejandro Piñeiro <apinheiro@igalia.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10283 >
2021-04-16 12:29:11 +00:00
Iago Toral Quiroga
35ff75701f
v3dv: improve dirty descriptor set state tracking
...
We were using the pipeline layout to discard uniform updates for
stages that don't use descriptors, but we can do better by keeping
track of the stages used by the specific dirty descriptor sets and
only update uniforms for stages that are included in those.
Reviewed-by: Alejandro Piñeiro <apinheiro@igalia.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10283 >
2021-04-16 12:29:11 +00:00
Lionel Landwerlin
505d176a8e
anv: disable baked in pipeline bits from dynamic emission path
...
In 27ee40f4c9 ("anv: Add support for sample locations") we
introduced the ability to emit sample locations baked in as part of
the pipeline or dynamically.
This is different from the previous dynamic states that were always
removed from the pipeline batch and instead emitted dynamically all
the time.
The mistake in 27ee40f4c9 is that sample locations are now emitted
all the time, leading to bigger command buffers for unnecessary
reasons.
This change introduces a bit fields of what is baked in the pipeline
and doesn't need to be dynamically emitted.
Signed-off-by: Lionel Landwerlin <lionel.g.landwerlin@intel.com >
Fixes: 4ad4cd8906 ("anv: Enabled the VK_EXT_sample_locations extension")
Cc: <mesa-stable>
Reviewed-by: Tapani Pälli <tapani.palli@intel.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10282 >
2021-04-16 11:53:25 +00:00
Lionel Landwerlin
30bc562bda
anv: fix 3DSTATE_MULTISAMPLE emission on gen8+
...
When pipeline->dynamic_state.sample_locations.samples is not set
because the state is dynamic, we're currently calling
genX(emit_multisample) with a 0 samples value which is incorrect.
Found when using renderdoc with the drawing overlay.
Signed-off-by: Lionel Landwerlin <lionel.g.landwerlin@intel.com >
Fixes: 4ad4cd8906 ("anv: Enabled the VK_EXT_sample_locations extension")
Cc: <mesa-stable>
Reviewed-by: Tapani Pälli <tapani.palli@intel.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10282 >
2021-04-16 11:53:25 +00:00
Juan A. Suarez Romero
d29b5b9f20
v3dv: avoid dereferencing null value
...
Fixes CID#1468079 "Dereference null return value (NULL_RETURNS)"
Reviewed-by: Alejandro Piñeiro <apinheiro@igalia.com >
Signed-off-by: Juan A. Suarez Romero <jasuarez@igalia.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10280 >
2021-04-16 11:12:31 +00:00
Rhys Perry
86d903e88d
radv: fix clearing DCC-compressed e5b9g9r9 images
...
Fixes
dEQP-VK.api.image_clearing.core.clear_color_image.2d.optimal.single_layer.e5b9g9r9_ufloat_pack32_33x128
with RADV_DEBUG=forcecompress on GFX10.3.
Signed-off-by: Rhys Perry <pendingchaos02@gmail.com >
Reviewed-by: Samuel Pitoiset <samuel.pitoiset@gmail.com >
Cc: 21.1 <mesa-stable>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10176 >
2021-04-16 11:56:32 +01:00
Adam Jackson
7ae2ba5da9
glx: Remove some ancient backwards-compatibility typedefs
...
Reviewed-by: Marek Olšák <marek.olsak@amd.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10223 >
2021-04-16 10:13:07 +00:00
Adam Jackson
0e77a23a34
glx: Fold client_gl_only array into its one real user
...
The initialization we're doing for it in __glXExtensionsCtr is trivial,
and this is only to make glGetString(GL_EXTENSIONS) work in indirect
contexts anyway.
Reviewed-by: Marek Olšák <marek.olsak@amd.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10223 >
2021-04-16 10:13:07 +00:00
Adam Jackson
9f97f994c3
glx: Enable pure-client-library extensions explicitly
...
These are rare enough to not be worth tracking separately. Especially
since after this change all the known_gl_extensions have N for both
direct_support and direct_only (unsurprising, since that's only used to
compute usable indirect extensions).
Reviewed-by: Marek Olšák <marek.olsak@amd.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10223 >
2021-04-16 10:13:07 +00:00
Adam Jackson
e5d3cfb597
glx: Remove redundant client_support field from extension table
...
It's always true, simplify accordingly.
Reviewed-by: Marek Olšák <marek.olsak@amd.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10223 >
2021-04-16 10:13:07 +00:00
Adam Jackson
3f6996acfd
glx: Generalize __glXGetStringFromTable a little
...
Make the second argument optional, and treat its absence as if the
filter always matches.
Reviewed-by: Marek Olšák <marek.olsak@amd.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10223 >
2021-04-16 10:13:07 +00:00
Adam Jackson
2014e1fe05
glx: Remove some non-functional GL extension from the table
...
We don't actually have GLX protocol for these in Mesa, hence the initial
N column.
Reviewed-by: Marek Olšák <marek.olsak@amd.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10223 >
2021-04-16 10:13:07 +00:00
Adam Jackson
896c650b1b
glx: Mark GLX_{ATI_pixel_format_float,NV_float_buffer} as supported
...
... at least as far as libGL is concerned, because they'd work just fine
if you tried. The only thing the ATI extension seems to add (I can't
find an official spec, this is inferred from the registry XML) is
selecting the GLX_RENDER_TYPE, which we don't validate before putting on
the wire. The only thing the NV extension adds is an additional fbconfig
attribute, and that only known by glXGetFBConfigAttrib; our
implementation of that just reads the value the server sends, if any,
and doesn't try to filter out unknown attributes.
Reviewed-by: Marek Olšák <marek.olsak@amd.com >
Reviewed-by: Ian Romanick <ian.d.romanick@intel.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10223 >
2021-04-16 10:13:07 +00:00
Adam Jackson
fcc9ce09d4
glx: Remove major/minor version tracking from extension table
...
With the previous ancient dead code removed, there's no longer anything
using these values.
Reviewed-by: Marek Olšák <marek.olsak@amd.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10223 >
2021-04-16 10:13:07 +00:00
Adam Jackson
6b6a1ef075
glx: Remove some truly ancient unused code
...
The "left here but disabled" comment dates to 2004! The idea here is to
add extensions implied by a particular GL version to the GL extension
string, but nothing useful is accomplished by doing so, and this is all
only used in the case of indirect rendering anyway.
Reviewed-by: Marek Olšák <marek.olsak@amd.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10223 >
2021-04-16 10:13:07 +00:00
Adam Jackson
b2ecd0d589
glx: Remove silly __glXGetGLVersion() indirection
...
Hardcode the values at the one caller that uses them.
Reviewed-by: Marek Olšák <marek.olsak@amd.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10223 >
2021-04-16 10:13:07 +00:00
Samuel Pitoiset
66e1b42d06
radv: keep DCC compressed for clears on compute with image stores
...
Without image stores, DCC is always decompressed on compute.
Cc: 21.1 <mesa-stable@lists.freedesktop.org >
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/10168 >
2021-04-16 09:47:52 +00:00
Marek Olšák
84895dba7f
amd: remove some references to older LLVM versions in comments
...
Reviewed-by: Samuel Pitoiset <samuel.pitoiset@gmail.com >
Reviewed-by: Pierre-Eric Pelloux-Prayer <pierre-eric.pelloux-prayer@amd.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10199 >
2021-04-16 09:25:19 +00:00
Marek Olšák
b878444c3a
amd: drop support for LLVM 10
...
It doesn't support RDNA 2.
Reviewed-by: Samuel Pitoiset <samuel.pitoiset@gmail.com >
Reviewed-by: Pierre-Eric Pelloux-Prayer <pierre-eric.pelloux-prayer@amd.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10199 >
2021-04-16 09:25:19 +00:00
Marek Olšák
2747332723
amd: drop support for LLVM 9
...
This would be easy to support except that it doesn't support RDNA 2.
Reviewed-by: Samuel Pitoiset <samuel.pitoiset@gmail.com >
Reviewed-by: Pierre-Eric Pelloux-Prayer <pierre-eric.pelloux-prayer@amd.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10199 >
2021-04-16 09:25:19 +00:00
Samuel Pitoiset
936b58378c
amd: drop support for LLVM 8
...
It doesn't support Navi1x and the removal enables this nice code cleanup.
v2: rebase - mareko
Signed-off-by: Samuel Pitoiset <samuel.pitoiset@gmail.com > (v1)
Acked-by: Marek Olšák <marek.olsak@amd.com >
Reviewed-by: Samuel Pitoiset <samuel.pitoiset@gmail.com >
Reviewed-by: Pierre-Eric Pelloux-Prayer <pierre-eric.pelloux-prayer@amd.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10199 >
2021-04-16 09:25:19 +00:00
Marek Olšák
ac2ab5c895
ci: don't build clover with LLVM 9 on radeonsi because it's unsupported
...
Reviewed-by: Michel Dänzer <mdaenzer@redhat.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10199 >
2021-04-16 09:25:19 +00:00
Matt Turner
566dc4d740
intel/eu: Add instruction compaction support on XeHP.
...
This patch includes a number of reworks and fixes squashed in by
Nanley Chery, Sagar Ghuge, Jordan Justen and Francisco Jerez.
Reviewed-by: Francisco Jerez <currojerez@riseup.net >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10000 >
2021-04-16 08:27:35 +00:00
Francisco Jerez
a2572a9da4
intel/fs: Add more efficient fragment coordinate calculation.
...
The PIXEL_X/Y opcodes used by the current implementation are broken on
XeHP due to the new regioning restrictions of the floating-point pipe.
We could have the regioning lowering pass fix it in theory by lowering
the conversions into separate MOV instructions, but that would be more
costly than this implementation that only needs a pair of pipelined
ADDs and a pair of pipelined MOVs.
Reviewed-by: Lionel Landwerlin <lionel.g.landwerlin@intel.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10000 >
2021-04-16 08:27:35 +00:00
Francisco Jerez
a0e0dfe174
intel/fs: Introduce lowering pass to implement derivatives in terms of quad swizzles.
...
Unfortunately the funky Align1 regions used by the code generator in
order to implement derivatives efficiently aren't available to the
floating-point pipeline on XeHP. We need to lower them into a number
of pipelined integer shuffle instructions followed by the
floating-point difference computation.
Reviewed-by: Lionel Landwerlin <lionel.g.landwerlin@intel.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10000 >
2021-04-16 08:27:35 +00:00
Jordan Justen
635ed58e52
intel/compiler: Lower txd for 3D samplers on XeHP.
...
Signed-off-by: Jordan Justen <jordan.l.justen@intel.com >
Reviewed-by: Francisco Jerez <currojerez@riseup.net >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10000 >
2021-04-16 08:27:35 +00:00
Jordan Justen
515ee73b4e
intel/fs: End computer shader with message gateway on XeHP.
...
Signed-off-by: Jordan Justen <jordan.l.justen@intel.com >
Reviewed-by: Francisco Jerez <currojerez@riseup.net >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10000 >
2021-04-16 08:27:35 +00:00
Jordan Justen
262cb08557
intel/fs: Disable 3-src immediates on XeHP.
...
Signed-off-by: Jordan Justen <jordan.l.justen@intel.com >
[ Francisco Jerez: Add TODO comment explaining why this is helpful and
how we could better fix it. ]
Reviewed-by: Francisco Jerez <currojerez@riseup.net >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10000 >
2021-04-16 08:27:35 +00:00
Jordan Justen
02ce55d2b1
intel/eu: Allow 64-bit registers on XeHP.
...
Signed-off-by: Jordan Justen <jordan.l.justen@intel.com >
Reviewed-by: Francisco Jerez <currojerez@riseup.net >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10000 >
2021-04-16 08:27:35 +00:00
Francisco Jerez
262b647b25
intel/compiler: Lower integer division on XeHP.
...
It has been removed from the hardware.
[jordan.l.justen@intel.com: Move to brw_postprocess_nir]
v2: Switch to nir_lower_idiv_precise (Rhys).
v3: Fix for interface changes of nir_lower_idiv.
Reviewed-by: Lionel Landwerlin <lionel.g.landwerlin@intel.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10000 >
2021-04-16 08:27:35 +00:00
Rafael Antognolli
49b2d9f428
intel/fs: Lower dword integer multiplies on XeHP.
...
From the BSpec:
"When multiplying DW X DW, resulting dst can only be QW precision. If
DW precision is required at output than MUL/MACH macro must be used."
So for now simply lower it. We might want to revisit it later.
Reviewed-by: Francisco Jerez <currojerez@riseup.net >
Reviewed-by: Lionel Landwerlin <lionel.g.landwerlin@intel.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10000 >
2021-04-16 08:27:35 +00:00
Francisco Jerez
3f50dde8b3
intel/eu: Teach EU validator about FP/DP pipeline regioning restrictions.
...
Reviewed-by: Lionel Landwerlin <lionel.g.landwerlin@intel.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10000 >
2021-04-16 08:27:35 +00:00
Francisco Jerez
f3e5cd813a
intel/fs: Handle regioning restrictions of split FP/DP pipelines.
...
The floating-point and double-precision FPU pipelines of XeHP
platforms don't support arbitrary regioning modes, corresponding
channels of sources and destination are required to be aligned to the
same sub-register offset, similar to the restriction FP64 instructions
had on CHV/BXT platforms.
Most violations of this restriction can be fixed easily by teaching
has_dst_aligned_region_restriction() about the change so the regioning
lowering pass gets rid of any unsupported regioning. For cases where
this is not sufficient (e.g. because a virtual instruction internally
uses some regioning mode not supported by the floating-point pipeline)
the regioning lowering pass is extended with an additional
lower_exec_type() codepath that bit-casts sources and destination to
an integer type whenever the execution type is not supported by the
instruction.
Reviewed-by: Lionel Landwerlin <lionel.g.landwerlin@intel.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10000 >
2021-04-16 08:27:35 +00:00
Francisco Jerez
0dc16965a9
intel/fs: Fix repclear assembly for XeHP+ regioning restrictions.
...
The regioning mode used here is no longer supported by the
floating-point pipeline. We could run the regioning lowering pass in
order to fix it with some extra copies, but it's more efficient to
change the instruction to use integer types.
Reviewed-by: Lionel Landwerlin <lionel.g.landwerlin@intel.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10000 >
2021-04-16 08:27:35 +00:00
Francisco Jerez
05cce1f97d
intel/fs: Use CHV/BXT implementation of 64-bit MOV_INDIRECT on XeHP+.
...
According to the hardware spec "Vx1 and VxH indirect addressing for
Float, Half-Float, Double-Float and Quad-Word data must not be used."
Reviewed-by: Lionel Landwerlin <lionel.g.landwerlin@intel.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10000 >
2021-04-16 08:27:35 +00:00
Francisco Jerez
d57f3ced6c
intel/fs: Calculate SWSB cross-pipeline synchronization information.
...
In combination with the previous changes we can just check whether an
instruction has any potentially unsatisfied dependencies on more than
one pipeline, and if so use TGL_PIPE_ALL synchronization with an
appropriate RegDist counter, otherwise synchronize with the single
pipeline it has a dependency on, if any.
Only minor difficulty is caused by the fact that the hardware doesn't
have any way to encode pipeline information when a RegDist and an SBID
dependency need to be provided simultaneously, in which case the
synchronization pipeline is inferred by the hardware. We need to
verify that the hardware's inference will give the correct result
(which may not be the case if e.g. some data was bit-cast from a
different type), and if not emit separate SYNC instructions instead of
baking the RegDist dependency into the instruction (Note that SET SBID
dependencies must always be baked into the corresponding out-of-order
instruction).
Reviewed-by: Lionel Landwerlin <lionel.g.landwerlin@intel.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10000 >
2021-04-16 08:27:35 +00:00
Francisco Jerez
3f063334fc
intel/fs: Represent SWSB in-order dependency addresses as vectors.
...
This extends the current ordered_address instruction counter to a
vector with one component per asynchronous ALU pipeline, allowing us
to track the last instruction that accessed a register separately for
each ALU pipeline of the XeHP EU, making it straightforward to
infer the right cross-pipeline synchronization annotations.
Reviewed-by: Lionel Landwerlin <lionel.g.landwerlin@intel.com >
v2: Make unit tests happy (with ubsan as run by GitLab automation).
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10000 >
2021-04-16 08:27:35 +00:00
Jordan Justen
78b643fb7f
Revert "intel/compiler: Silence unused parameter warning in update_inst_scoreboard"
...
This was a placeholder for the XeHP cross-pipeline synchronization
code, bring it back.
This reverts commit a80e44902f .
Reviewed-by: Francisco Jerez <currojerez@riseup.net >
Reviewed-by: Lionel Landwerlin <lionel.g.landwerlin@intel.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10000 >
2021-04-16 08:27:35 +00:00
Francisco Jerez
d4537770bb
intel/fs: Add helper functions inferring sync and exec pipeline of an instruction.
...
Define two helper functions local to the software scoreboard lowering
pass describing the behavior of the hardware and code generator:
inferred_sync_pipe() calculates the ALU pipeline the hardware will
implicitly synchronize with when a RegDist SWSB annotation is used
without providing explicit pipeline synchronization information,
inferred_exec_pipe() infers the ALU pipeline that will execute the
instruction.
Reviewed-by: Lionel Landwerlin <lionel.g.landwerlin@intel.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10000 >
2021-04-16 08:27:35 +00:00
Francisco Jerez
12479abded
intel/fs: Implement representation of SWSB cross-pipeline synchronization annotations.
...
The execution units of XeHP platforms have multiple asynchronous ALU
pipelines instead of (as far as software is concerned) the single
in-order pipeline that handled most ALU instructions except for
extended math in the original Xe. It's now the compiler's
responsibility to identify cross-pipeline dependencies and insert
synchronization annotations whenever necessary, which are encoded as
some additional bits of the SWSB instruction field.
This commit represents the cross-pipeline synchronization annotations
as part of the existing tgl_swsb structure used for codegen. The
existing tgl_swsb_*() helpers used by hand-crafted assembly are
extended to default to TGL_PIPE_ALL big-hammer synchronization in
order to ensure backwards compatibility with the existing assembly.
The following commits will extend the software scoreboard lowering
pass in order to keep track of cross-pipeline dependencies across IR
instructions, and insert more specific pipeline annotations in the
SWSB field.
The disassembler is also extended here to print out any existing
pipeline sync annotations.
Reviewed-by: Lionel Landwerlin <lionel.g.landwerlin@intel.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10000 >
2021-04-16 08:27:34 +00:00
Adam Jackson
d53fc2240b
glx/drisw: Enable GLX_ARB_create_context_no_error
...
Detect this the same way as we do for drihw.
Acked-by: Mike Blumenkrantz <michael.blumenkrantz@gmail.com >
Acked-by: Eric Anholt <eric@anholt.net >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/9233 >
2021-04-16 06:50:35 +00:00
Iago Toral Quiroga
1cf36797bf
v3dv: fix sRGB blending workaround
...
This workaround needs to set a flag in the current job but it was
implemented at pipeline binding time, which can happen outside a
render pass. Move it to the pre-draw handler, where it belongs.
Closes: https://gitlab.freedesktop.org/mesa/mesa/-/issues/4645
Reviewed-by: Alejandro Piñeiro <apinheiro@igalia.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10255 >
2021-04-16 06:05:59 +00:00
Christian Gmeiner
08ea007664
ci: disable initrd support
...
For baremetal CI we are using a 'dummy' rootfs as it is required by
abootimg. This causes NFS boot problems when using u-boot as bootloader.
[ 13.230968] RAMDISK: gzip image found at block 0
[ 13.235645] using deprecated initrd support, will be removed in 2021.
[ 13.243106] List of all partitions:
If we disable CONFIG_BLK_DEV_INITRD nfsroot works.
Signed-off-by: Christian Gmeiner <christian.gmeiner@gmail.com >
Reviewed-by: Tomeu Vizoso <tomeu.vizoso@collabora.com >
Reviewed-by: Eric Anholt <eric@anholt.net >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10024 >
2021-04-16 05:35:07 +00:00
Yiwei Zhang
757a711f39
venus: fix virtgpu_bo_init_dmabuf for classic resource
...
1. only do size check if the input size is not 0
2. blob_mem can be 0 because guest minigbm uses RESOURCE_CREATE_3D
3. set bo->blob_flags to 0 for classic resource to fail virtgpu_bo_map
Signed-off-by: Yiwei Zhang <zzyiwei@chromium.org >
Reviewed-by: Chia-I Wu <olvaffe@gmail.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10273 >
2021-04-16 04:56:19 +00:00
Eric Anholt
23159f1a7a
ci/freedreno: Skip some precision tests on a530.
...
These have flaked as Timeouts in CI in the last month. .precision.* is
generally very slow (some in the 15s-30s range), but it's unclear to me
why they sometimes spike up to 60 seconds (thermal throttling?).
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10274 >
2021-04-16 04:34:14 +00:00
Eric Anholt
afa965b7c5
ci/virgl: Mark a couple of new Crash tests as flakes.
...
These have shown up in CI runs since the deqp uprev. Also, link the bug
report I made for one of the failing tests.
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10274 >
2021-04-16 04:34:14 +00:00
Alexander Shi
55fb9417a6
mesa: texparam: Add a clamping macro to handle out-of-range floats returned as integers.
...
The parameters GL_TEXTURE_MIN_LOD, GL_TEXTURE_MAX_LOD,
GL_TEXTURE_MAX_ANISOTROPY_EXT, GL_TEXTURE_LOD_BIAS are stored as floats but
returned as integers. Setting their values outside of the integer range results
has undefined behaviour when the c-runtime method lroundf converts the value
back to an integer.
Fixes: 53c36dfc('replace IROUND with util functions')
Reviewed-by: Jesse Natalie <jenatali@microsoft.com >
Reviewed-by: Jason Ekstrand <jason@jlekstrand.net >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10244 >
2021-04-16 01:44:16 +00:00
Adam Jackson
31dba8d51b
gallium/xlib: Fix for recent gl_config changes
...
This mirrors the changes needed elsewhere for parts of !9817 :
Fixes: 4daef7ffe3 mesa: Remove redundant gl_config::sampleBuffers
Fixes: 4fbe1cbe4c mesa: Stop tracking visual rating in gl_config
Fixes: d21b8afa3d mesa: Remove the pretense of aux buffer support
Fixes: 78dfab95b8 mesa: Remove unused gl_config::level
Closes: https://gitlab.freedesktop.org/mesa/mesa/-/issues/4544
Acked-by: Eric Anholt <eric@anholt.net >
Tested-by: Jan Zielinski <jan.zielinski@intel.com >
Acked-by: Jan Zielinski <jan.zielinski@intel.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10050 >
2021-04-16 00:56:15 +00:00
Icecream95
3af12216e3
panfrost: Unset shared/scanout binding flags for staging resources
...
Fixes Xwayland crashes when starting non-GL applications.
Fixes: e00d94f14f ("panfrost: Enable AFBC buffer sharing")
Reviewed-by: Alyssa Rosenzweig <alyssa.rosenzweig@collabora.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10266 >
2021-04-15 23:12:30 +00:00
Icecream95
716ce3cc1a
panfrost: Assert staging resource allocation was successful
...
Reviewed-by: Alyssa Rosenzweig <alyssa.rosenzweig@collabora.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10266 >
2021-04-15 23:12:30 +00:00
Adam Jackson
fc9b3b260e
Revert "glx: Lift sending the MakeCurrent request to top-level code"
...
This provokes crashes in Cinnamon for some reason that I haven't
diagnosed yet.
This reverts commit 80b67a3b44 .
Fixes: 80b67a3b44 glx: Lift sending the MakeCurrent request to top-level code
Closes: https://gitlab.freedesktop.org/mesa/mesa/-/issues/4639
Acked-by: Marek Olšák <marek.olsak@amd.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10260 >
2021-04-15 19:48:10 +00:00
Yiwei Zhang
d148540e5a
venus: cap api version to 1.1 for Android
...
Android hasn't officially adopted 1.2 yet, so we just cap it to avoid
troubles(e.g. vkjson doesn't like 1.2 atm).
Signed-off-by: Yiwei Zhang <zzyiwei@chromium.org >
Reviewed-by: Chia-I Wu <olvaffe@gmail.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10258 >
2021-04-15 18:31:31 +00:00
Eric Anholt
7d234da6ee
freedreno: Fix YUV sampler regression.
...
We have to keep sampler uniforms around for later YUV lowering, and we
only need to remove uniforms that take up storage space. Code comes from
radeonsi.
Closes : #4644 .
Fixes: de17b4aab5 ("freedreno: Remove uniform variables after finalizing NIR.")
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10246 >
2021-04-15 16:20:15 +00:00
Michel Dänzer
1bccefb3fc
ci: Move -Werror enabling from job definitions to meson build script
...
It was enabled in all jobs.
Reviewed-by: Eric Anholt <eric@anholt.net >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10220 >
2021-04-15 16:01:22 +00:00
Michel Dänzer
63e4bdd90c
ci: Enable -Werror for the remaining GCC build jobs
...
Same principle as for clang, with much fewer exceptions left.
Reviewed-by: Eric Anholt <eric@anholt.net >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10220 >
2021-04-15 16:01:22 +00:00
Michel Dänzer
bf480cc9c2
osmesa: Replace default case FALLTHROUGH annotation by following return
...
Avoids warning about the annotation with GCC 10:
../src/gallium/frontends/osmesa/osmesa.c: In function ‘osmesa_choose_format’:
../src/util/compiler.h:84:21: warning: attribute ‘fallthrough’ not preceding a case label or default label
84 | #define FALLTHROUGH __attribute__((fallthrough))
| ^~~~~~~~~~~~~
../src/gallium/frontends/osmesa/osmesa.c:316:7: note: in expansion of macro ‘FALLTHROUGH’
316 | FALLTHROUGH;
| ^~~~~~~~~~~
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10220 >
2021-04-15 16:01:22 +00:00
Michel Dänzer
2391ffc9d4
ci: Enable -Werror in clang jobs
...
They're not warning-clean yet, but we can enable -Werror in general and
just allow the existing types of warnings as exceptions with
-Wno-error=[...]. This way, new warnings of all other types will be
prevented from entering the code base.
Once all warnings of a certain type have been eliminated in a job, the
exception for that type can be dropped from that job. This provides a
realistic path to a fully warning-clean CI build in the future.
v2:
* Use echo -n (Juan A. Suarez)
Reviewed-by: Eric Anholt <eric@anholt.net > # v1
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10220 >
2021-04-15 16:01:22 +00:00
Michel Dänzer
d200f45875
Use explicit break instead of fall-through to break-only case
...
clang generates a warning if there's no explicit break or fall-through
annotation. The latter would be kind of silly in this case, and not
robust against any future changes turning the fall-through invalid.
Reviewed-by: Eric Anholt <eric@anholt.net >
Reviewed-by: Juan A. Suarez <jasuarez@igalia.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10220 >
2021-04-15 16:01:22 +00:00
Michel Dänzer
8d4c31b3c7
iris: Drop unneeded default switch case
...
Avoids clang warning about the fall-through annotation.
Reviewed-by: Eric Anholt <eric@anholt.net >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10220 >
2021-04-15 16:01:22 +00:00
Michel Dänzer
a8a88a8d39
llvmpipe: Drop switch with only default case
...
Replace it with the default case contents.
Avoids clang warning about the fall-through annotation.
Reviewed-by: Eric Anholt <eric@anholt.net >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10220 >
2021-04-15 16:01:22 +00:00
Michel Dänzer
9ef5372441
Guard FALLTHROUGH annotations after assert()
...
clang warns if it can determine that the assert() never returns and
there's a fall-through annotation below.
Acked-by: Eric Anholt <eric@anholt.net >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10220 >
2021-04-15 16:01:22 +00:00
Michel Dänzer
2928c21eb7
Convert most remaining free-form fall-through comments to FALLTHROUGH
...
One exception is src/amd/addrlib/, for which -Wimplicit-fallthrough is
explicitly disabled.
Reviewed-by: Eric Anholt <eric@anholt.net >
Reviewed-by: Alyssa Rosenzweig <alyssa@collabora.com >
Reviewed-by: Juan A. Suarez <jasuarez@igalia.com >
Reviewed-by: Gert Wollny <gert.wollny@collabora.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10220 >
2021-04-15 16:01:22 +00:00
Michel Dänzer
96f0f46350
util: Remove unused Android options_tbl_lock
...
Avoids warning:
../src/util/os_misc.c:132:21: error: unused variable 'options_tbl_lock' [-Werror,-Wunused-variable]
static simple_mtx_t options_tbl_lock = _SIMPLE_MTX_INITIALIZER_NP;
^
Reviewed-by: Eric Anholt <eric@anholt.net >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10220 >
2021-04-15 16:01:21 +00:00
Michel Dänzer
7e5911846e
lima/ppir: Cast pointer to uintptr_t instead of uint64_t
...
Avoids warnings on armhf:
./src/gallium/drivers/lima/ir/pp/nir.c: In function 'ppir_get_block':
../src/gallium/drivers/lima/ir/pp/nir.c:554:66: error: cast from pointer to integer of different size [-Werror=pointer-to-int-cast]
ppir_block *block = _mesa_hash_table_u64_search(comp->blocks, (uint64_t)nblock);
^
../src/gallium/drivers/lima/ir/pp/nir.c: In function 'ppir_compile_nir':
../src/gallium/drivers/lima/ir/pp/nir.c:899:52: error: cast from pointer to integer of different size [-Werror=pointer-to-int-cast]
_mesa_hash_table_u64_insert(comp->blocks, (uint64_t)nblock, block);
^
Reviewed-by: Eric Anholt <eric@anholt.net >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10220 >
2021-04-15 16:01:21 +00:00
Connor Abbott
cf727e6ba4
tu: Expose VK_EXT_robustness2
...
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/7573 >
2021-04-15 16:05:13 +02:00
Connor Abbott
0fb14420da
tu: Handle null descriptors
...
Writing all 0's, including for the format, seems to work. Actually
setting the format seems to break textureSize() (getsize returns 1 for
some reason).
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/7573 >
2021-04-15 16:05:13 +02:00
Connor Abbott
f58ece08da
tu: Handle robust UBO behavior for pushed UBO ranges
...
If we push a UBO range but then find out at draw-time that part of the
pushed range is out of range of the UBO descriptor, then we have to fill
in the rest of the range with 0's to mimic the bounds-checking that ldc
would've done.
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/7573 >
2021-04-15 16:05:13 +02:00
Connor Abbott
cb02a48f83
tu: Correctly preserve old push descriptor contents
...
We were never setting set->size, so we were always copying 0 bytes. But
as we only copy the contents when the layout and therefore the size is
the same, we don't have to take the old size into account anyway.
This fixes some VK_EXT_robustness2 tests that use push descriptors.
Fixes: 6d4f33e ("turnip: initial implementation of VK_KHR_push_descriptor")
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/7573 >
2021-04-15 16:05:13 +02:00
Connor Abbott
c68ea960a7
ir3, tu: Add compiler flag for robust UBO behavior
...
This needs to be part of the compiler because it's the only piece that
we always have access to in all the places ir3_optimize_loop() is
called, and it's only enabled for the whole Vulkan device. Right now
it's just used for constraining vectorization, but the next commit adds
another use.
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/7573 >
2021-04-15 16:05:11 +02:00
Connor Abbott
8f54028479
ir3: Reduce max const file indirect offset base to 9 bits
...
This fixes
dEQP-VK.robustness.robustness2.bind.notemplate.r32i.dontunroll.nonvolatile.uniform_buffer.no_fmt_qual.len_260.samples_1.1d.frag,
which accesses the shader UBO with c<a0.x + 512> due to the constant
data UBO coming before it in the const file. The len_256 variant has a
smaller constant data UBO, so it uses c<a0.x + 256> instead, and that
works, so 512 seems to be the real limit.
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/7573 >
2021-04-15 16:03:54 +02:00
Connor Abbott
8e11f0560e
ir3: Fix list corruption in legalize_block()
...
We forgot to remove the instruction under consideration from instr_list
before inserting it into the block's list, which caused instr_list to
become corrupted. This happened to work but caused further corruption in
some rare scenarios.
Fixes: adf1659 ("freedreno/ir3: use standard list implementation")
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/7573 >
2021-04-15 16:03:54 +02:00
Gustavo Padovan
f601fd635b
gitlab-ci: enable Intel AML-Y as experimental
...
The LAVA lab has been running well with the rammus chromebook for some
time now. Let's add it to MesaCI as experimental to get more testing,
and later enable it in production.
Signed-off-by: Gustavo Padovan <gustavo.padovan@collabora.com >
Reviewed-by: Eric Anholt <eric@anholt.net >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10238 >
2021-04-15 13:03:19 +00:00
Gustavo Padovan
e8bc0a28a4
traces-iris: fix expectation for Intel GLK
...
glmark2/buffer-columns=200:interleave=true:update-dispersion=0.9:upd...
was missing the expectation checksum.
Signed-off-by: Gustavo Padovan <gustavo.padovan@collabora.com >
Reviewed-by: Eric Anholt <eric@anholt.net >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10238 >
2021-04-15 13:03:19 +00:00
Iago Toral Quiroga
bed3f31fc6
v3dv: don't use a dedicated BO for each occlusion query
...
Dedicated BOs waste memory and are also a significant cause of CPU
overhead when applications use hundreds of them per frame due to
all the work the kernel has to do to page in all these BOs for a job.
The UE4 Vehicle demo was hitting this causing it to freeze and stutter
under 1fps.
The hardware allows us to setup groups of 16 queries in consecutive
4-byte addresses, requiring only that each group of 16 queries is
aligned to a 1024 byte boundary. With this change, we allocate all
the queries in a pool in a single BO and we assign them different
offsets based on the above restriction. This eliminates the freezes
and stutters in the Vehicle sample.
One caveat of this solution is that we can only wait or test for
completion of a query by testing if the GPU is still using its BO,
which basically means that we can only wait for all active queries
in a pool to complete and not just the ones being requested by the
API. Since the Vulkan recommendation is to use a different query
pool per frame this should not be a big issue though.
If this ever becomes a problem (for example if an application does't
follow the recommendation and instead allocates a single pool and
splits its queries between frames), we could try to group queries
in a pool into a number of BOs to try and find a balance, but for
now this should work fine in most cases.
Reviewed-by: Alejandro Piñeiro <apinheiro@igalia.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10253 >
2021-04-15 12:45:07 +00:00
Mike Blumenkrantz
a43da5c999
docs: update GL_ARB_texture_filter_minmax for zink
...
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10248 >
2021-04-15 12:35:09 +00:00
Mike Blumenkrantz
cca616ebd5
zink: export PIPE_CAP_SAMPLER_REDUCTION_MINMAX_ARB
...
Reviewed-by: Adam Jackson <ajax@redhat.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10248 >
2021-04-15 12:35:09 +00:00
Mike Blumenkrantz
92f5006814
zink: handle minmax sampler creation for VK_EXT_sampler_filter_minmax
...
Reviewed-by: Adam Jackson <ajax@redhat.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10248 >
2021-04-15 12:35:09 +00:00
Mike Blumenkrantz
22e1ed5722
zink: support format queries for VK_EXT_sampler_filter_minmax
...
Reviewed-by: Adam Jackson <ajax@redhat.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10248 >
2021-04-15 12:35:09 +00:00
Mike Blumenkrantz
b62633c599
zink: hook up VK_EXT_sampler_filter_minmax
...
Reviewed-by: Adam Jackson <ajax@redhat.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10248 >
2021-04-15 12:35:09 +00:00
Rhys Perry
ec70882238
radv: fix barrier in radv_decompress_dcc_compute shader
...
ACO doesn't create a waitcnt for barriers between texture samples and
image stores because texture samples are supposed to use read-only
memory. It could also schedule the barrier to above the texture sample.
We also have use a larger memory scope to avoid an ACO optimization.
Tested on GFX8 with Sachsa Willems deferred sample. With some DCC
decompressions and the compute path forced.
Signed-off-by: Rhys Perry <pendingchaos02@gmail.com >
Reviewed-by: Samuel Pitoiset <samuel.pitoiset@gmail.com >
Cc: 21.1 <mesa-stable>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/9496 >
2021-04-15 12:02:36 +00:00
Hans-Kristian Arntzen
08fdaec473
radv: Allocate buffer list for MUTABLE descriptor types as well.
...
Fixes: 86644b84b9 ("radv: Implement VK_VALVE_mutable_descriptor_type.")
Reviewed-by: Bas Nieuwenhuizen <bas@basnieuwenhuizen.nl >
Reviewed-by: Samuel Pitoiset <samuel.pitoiset@gmail.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10132 >
2021-04-15 11:51:33 +00:00
Hans-Kristian Arntzen
b60bc59180
radv: Take image alignment into account when allocating MUTABLE pool.
...
Allocating a descriptor set is aligned to 32 bytes, so just like the
other buffer types, bump the descriptor size to 32 bytes when allocating
MUTABLE descriptor types from a pool.
Fixes: 86644b84b9 ("radv: Implement VK_VALVE_mutable_descriptor_type.")
Reviewed-by: Bas Nieuwenhuizen <bas@basnieuwenhuizen.nl >
Reviewed-by: Samuel Pitoiset <samuel.pitoiset@gmail.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10132 >
2021-04-15 11:51:33 +00:00
Karol Herbst
f945cca983
clover/llvm: handle Fixed vs Scalable vectors explicitly starting with llvm-11
...
This fixes compilation with llvm-13.
Closes: https://gitlab.freedesktop.org/mesa/mesa/-/issues/4200
Signed-off-by: Karol Herbst <kherbst@redhat.com >
Reviewed-by: Francisco Jerez <currojerez@riseup.net >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/9973 >
2021-04-15 11:39:47 +00:00
Iago Toral Quiroga
917049e7d6
v3dv: fix array sizes when tracking BOs during uniform setup
...
The resource indices we get point to descriptor map entries that include
all shader stages, so we need to size the arrays to account for more than
just one stage.
For now we only support up to 2 stages in a pipeline, so we use that.
Fixes: 002304482c ('v3dv: avoid redundant BO job additions for UBO/SSBO')
Fixes: fa170dab4c ('v3dv: avoid redundant BO job additions for textures and samplers')
Reviewed-by: Alejandro Piñeiro <apinheiro@igalia.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10252 >
2021-04-15 11:26:04 +00:00
Iago Toral Quiroga
e7e8464d94
v3dv: fix descriptor set limits
...
There were various issues here:
- MAX_DYNAMIC_UNIFORM_BUFFERS was larger than MAX_UNIFORM_BUFFERS.
- In some cases we were exposing more than the minimums required.
While that is not incorrect, it is not following what we have
been doing in general.
- The Vulkan spec states that some of the MaxDescriptorSet limits
need to be multipled by 6 to include all shader stages, even
if the implementation doesn't support all shader stages.
Fixes: cbd299b051 ('v3dv/device: do not compute per-pipeline limits multiplying per-stage')
Reviewed-by: Alejandro Piñeiro <apinheiro@igalia.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10252 >
2021-04-15 11:26:04 +00:00
Alejandro Piñeiro
a0152c5948
v3dv/debug: use gl stage when checking debug flag
...
Reviewed-by: Iago Toral Quiroga <itoral@igalia.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10229 >
2021-04-15 10:29:44 +00:00
Alejandro Piñeiro
98698c4d01
v3dv/debug: print correct stage name
...
Reviewed-by: Iago Toral Quiroga <itoral@igalia.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10229 >
2021-04-15 10:29:44 +00:00
Eric Anholt
6d510fd473
ci/freedreno: Merge a630 piglit to a single job.
...
piglit_gl clocked in at 6:12 end-to-end runtime, and piglit_shader spent
2:53 in deqp-runner, so merging them together should be about 9 minutes.
Removing a boot should save us a minute or two of runner time per
pipeline.
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10243 >
2021-04-15 10:06:14 +00:00
Simon Ser
35e25ea1d0
ac/surface: allow non-DCC modifiers for YUV on GFX9+
...
Accept non-linear tiling for multi-planar formats on GFX9+, as long
as DCC is disabled. DCC support is possible in theory, but untested
for now.
GFX8 is still restricted to linear tiling because it's not yet clear
how modifiers should be handled on these chips for multi-planar
formats. Each plane may need a different modifier.
Signed-off-by: Simon Ser <contact@emersion.fr >
Reviewed-by: Bas Nieuwenhuizen <bas@basnieuwenhuizen.nl >
Acked-by: Leo Liu <leo.liu@amd.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10134 >
2021-04-15 09:43:17 +00:00
Simon Ser
979e138695
radeonsi: stop special-casing YUV formats in si_query_dmabuf_modifiers
...
Instead of having a special case for YUV formats in
si_query_dmabuf_modifiers, let ac_get_supported_modifiers handle
them. Keep setting external_only = 1 for YUV formats, since we
can only sample from such formats (we can't use them as render
targets).
This shouldn't change si_query_dmabuf_modifiers's behavior, because
for YUV formats ac_get_supported_modifiers will return a single
LINEAR modifier.
Signed-off-by: Simon Ser <contact@emersion.fr >
Reviewed-by: Bas Nieuwenhuizen <bas@basnieuwenhuizen.nl >
Acked-by: Leo Liu <leo.liu@amd.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10134 >
2021-04-15 09:43:17 +00:00
Simon Ser
19378dfe3c
ac/surface: use blocksizebits instead of blocksize
...
util_format_get_blocksize asserts that the blocksize isn't zero.
However the blocksize will be zero if the format's channel encoding
is unspecified. The channel encoding is only meaningful for the
plain u_format layout, so util_format_get_blocksize can't be used
for formats with another layout. For example, YUV formats don't have
the channel encoding specified.
Use util_format_get_blocksizebits, which just returns zero without
an assertion for formats which don't have a channel encoding.
Signed-off-by: Simon Ser <contact@emersion.fr >
Reviewed-by: Marek Olšák <marek.olsak@amd.com >
Acked-by: Leo Liu <leo.liu@amd.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10134 >
2021-04-15 09:43:17 +00:00
Simon Ser
6e697b595f
util/format: document block depth field
...
After the pixel block width and height, a third field is used to
store the pixel block depth. Document this field.
Signed-off-by: Simon Ser <contact@emersion.fr >
Reviewed-by: Marek Olšák <marek.olsak@amd.com >
Acked-by: Leo Liu <leo.liu@amd.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10134 >
2021-04-15 09:43:17 +00:00
Simon Ser
b26a546b2f
radeon/vcn: handle tiled buffers when decoding
...
Set the swizzle mode when decoding.
Add a safe-guard to make sure the provided surface isn't DCC, because
we don't handle this situation.
Signed-off-by: Leo Liu <leo.liu@amd.com >
Signed-off-by: Simon Ser <contact@emersion.fr >
Reviewed-by: Leo Liu <leo.liu@amd.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10134 >
2021-04-15 09:43:17 +00:00
Samuel Iglesias Gonsálvez
029bc53be6
turnip: fix typo in tu_CmdBeginRenderPass2()
...
Signed-off-by: Samuel Iglesias Gonsálvez <siglesias@igalia.com >
Reviewed-by: Eric Anholt <eric@anholt.net >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/8615 >
2021-04-15 09:51:25 +02:00
Samuel Iglesias Gonsálvez
d52917f858
turnip/lrz: added support for depth bounds test enable
...
Signed-off-by: Samuel Iglesias Gonsálvez <siglesias@igalia.com >
Reviewed-by: Eric Anholt <eric@anholt.net >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/8615 >
2021-04-15 09:51:25 +02:00
Samuel Iglesias Gonsálvez
2161aebf8d
turnip: document GRAS_LRZ_CNTL's UNK5 bitfield
...
It is used by the blob to enable depth bounds test for LRZ.
Signed-off-by: Samuel Iglesias Gonsálvez <siglesias@igalia.com >
Reviewed-by: Eric Anholt <eric@anholt.net >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/8615 >
2021-04-15 09:51:25 +02:00
Samuel Iglesias Gonsálvez
54cf12774a
turnip/lrz: add support for VK_EXT_extended_dynamic_state
...
When the depth or stencil state changes dynamically, that might affect
LRZ state and we need to recalculate it and emit it again.
Signed-off-by: Samuel Iglesias Gonsálvez <siglesias@igalia.com >
Reviewed-by: Eric Anholt <eric@anholt.net >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/8615 >
2021-04-15 09:51:20 +02:00
Samuel Iglesias Gonsálvez
6d6cbb7361
turnip: refactor how LRZ state is calculated
...
Signed-off-by: Samuel Iglesias Gonsálvez <siglesias@igalia.com >
Reviewed-by: Eric Anholt <eric@anholt.net >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/8615 >
2021-04-15 09:50:51 +02:00
Samuel Iglesias Gonsálvez
43ebba4e88
turnip: initialize pipeline->rb_{stencil,depth}_cntl always
...
This change will simplify further changes on LRZ state management.
Signed-off-by: Samuel Iglesias Gonsálvez <siglesias@igalia.com >
Reviewed-by: Eric Anholt <eric@anholt.net >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/8615 >
2021-04-15 09:50:51 +02:00
Samuel Iglesias Gonsálvez
1f9fb7677b
turnip: move pipeline gras_su and rb{stencil,depth}_cntl_mask initialization
...
Move them up, so they are initialized even when the dynamic state is
not used.
Signed-off-by: Samuel Iglesias Gonsálvez <siglesias@igalia.com >
Reviewed-by: Eric Anholt <eric@anholt.net >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/8615 >
2021-04-15 09:50:51 +02:00
Iago Toral Quiroga
b8403192ed
v3dv: use a bitfield to implement a quick check for job BO tracking
...
Reviewed-by: Alejandro Piñeiro <apinheiro@igalia.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10210 >
2021-04-15 06:09:34 +00:00
Iago Toral Quiroga
9e76240f84
v3dv: optimize a few cases of BO job additions
...
In these cases we know that the BO has not been added to the job
before, so we can skip the usual process for adding the BO where
we check if we had already added it before to avoid duplicates.
Reviewed-by: Alejandro Piñeiro <apinheiro@igalia.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10210 >
2021-04-15 06:09:34 +00:00
Iago Toral Quiroga
493a316e40
v3dv: avoid redundant BO job additions for spill / shared BOs
...
Reviewed-by: Alejandro Piñeiro <apinheiro@igalia.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10210 >
2021-04-15 06:09:34 +00:00
Iago Toral Quiroga
002304482c
v3dv: avoid redundant BO job additions for UBO/SSBO
...
Reviewed-by: Alejandro Piñeiro <apinheiro@igalia.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10210 >
2021-04-15 06:09:34 +00:00
Iago Toral Quiroga
fa170dab4c
v3dv: avoid redundant BO job additions for textures and samplers
...
Reviewed-by: Alejandro Piñeiro <apinheiro@igalia.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10210 >
2021-04-15 06:09:34 +00:00
Felix DeGrood
e7ea5e500f
intel/blorp: remove tile flush from emit surface state
...
Tile cache flush not required when emitting new surface state.
Reviewed-by: Kenneth Graunke <kenneth@whitecape.org >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10217 >
2021-04-15 04:54:40 +00:00
Felix DeGrood
c85ea824bc
iris: reduce redundant tile cache flushes
...
We are flushing tile cache more often than is necessary. In
unified cache mode, tile cache flushing is expensive, evicting all
depth/pixel data from the L3$. This is only need for a handful of
cases, such as: making cpu or gpu changes globally visible
(e.g. map), fast color clears, or slow depth clears. Tile cache
flushing is a gen12+ feature.
Remove blanket flushing of tile cache on all depth/RT flushes.
Replace with selective tile cache flushing.
Improves performance in several workloads:
AztecRuins.ogl-high-offscreen-1440p 1%
UnigineValley.ogl-g2 1%
Dota 2 (replay Jul 2020).ogl-g2 1%
Counter-Strike GO.ogl-g2 1%
Manhattan.ogl-Off-19x10 2%
CarChase.ogl-Off-19x10 1%
Bioshock Infinite.ogl-g2 1%
Reviewed-by: Kenneth Graunke <kenneth@whitecape.org >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10217 >
2021-04-15 04:54:40 +00:00
Kenneth Graunke
bfe2c5f667
iris: only flush the render cache for aux changes, not format changes
...
Reviewed-by: Felix DeGrood <felix.j.degrood@intel.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10217 >
2021-04-15 04:54:40 +00:00
Felix DeGrood
ed8f2c4cbe
iris: Cache VB/IB in L3$ for Gen12
...
Gen12 enables caching of Vertex and Index Buffers in L3.
Reviewed-by: Kenneth Graunke <kenneth@whitecape.org >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10217 >
2021-04-15 04:54:40 +00:00
Felix DeGrood
ed94528711
intel: add L3 Bypass Disable to gen xml
...
Reviewed-by: Kenneth Graunke <kenneth@whitecape.org >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10217 >
2021-04-15 04:54:40 +00:00
Mike Blumenkrantz
376c878c16
mesa/st: plumb GL_TEXTURE_REDUCTION_MODE_ARB through QueryInternalFormat
...
enable per-format querying of texture_filter_minmax support if the ARB extension
is enabled
also now return 0 if neither extension is supported
Reviewed-by: Ilia Mirkin <imirkin@alum.mit.edu >
Reviewed-by: Marek Olšák <marek.olsak@amd.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10030 >
2021-04-15 01:20:40 +00:00
Mike Blumenkrantz
b122beaff3
gallium: split PIPE_CAP_SAMPLER_REDUCTION_MINMAX into modes
...
this enables detection for the EXT vs the ARB extension, which have
different specifications regarding which formats must be supported
Reviewed-by: Ilia Mirkin <imirkin@alum.mit.edu >
Reviewed-by: Marek Olšák <marek.olsak@amd.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10030 >
2021-04-15 01:20:40 +00:00
Mike Blumenkrantz
59ad872458
gallium: add PIPE_BIND_SAMPLER_REDUCTION_MINMAX
...
for querying format support
Reviewed-by: Ilia Mirkin <imirkin@alum.mit.edu >
Reviewed-by: Marek Olšák <marek.olsak@amd.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10030 >
2021-04-15 01:20:40 +00:00
Yiwei Zhang
1932207902
venus: implement dma_buf fd import and properties query
...
This change is for supporting VK_ANDROID_native_buffer implementation,
and it does not advertise VK_KHR_external_memory_fd.
Signed-off-by: Yiwei Zhang <zzyiwei@chromium.org >
Reviewed-by: Chia-I Wu <olvaffe@gmail.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10195 >
2021-04-15 00:58:00 +00:00
Yiwei Zhang
001549c92c
venus: update venus-protocol headers
...
Add support for external memory fd properties query and import
- vkGetMemoryResourcePropertiesMESA
- VkImportMemoryResourceInfoMESA
- VkMemoryResourcePropertiesMESA
Signed-off-by: Yiwei Zhang <zzyiwei@chromium.org >
Reviewed-by: Chia-I Wu <olvaffe@gmail.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10195 >
2021-04-15 00:58:00 +00:00
Rob Clark
31782330da
freedreno: Add missing foreach macros and update indentation
...
Signed-off-by: Rob Clark <robdclark@chromium.org >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10247 >
2021-04-14 16:53:26 -07:00
Chia-I Wu
9b71154353
venus: remove vn_renderer_info::has_timeline_sync
...
We are no longer limited to Vulkan 1.1 in VMs.
Signed-off-by: Chia-I Wu <olvaffe@gmail.com >
Reviewed-by: Yiwei Zhang <zzyiwei@chromium.org >
Reviewed-by: Ryan Neph <ryanneph@google.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10146 >
2021-04-14 21:18:10 +00:00
Chia-I Wu
37f03a2c4c
venus: wait on vkQueuePresentKHR
...
Add vn_renderer_info::has_implicit_fencing. Force vkQueueWaitIdle
during vkQueuePresentKHR when it is false.
This kills the performance, but we have to do this until the kernel does
implicit fencing.
Signed-off-by: Chia-I Wu <olvaffe@gmail.com >
Reviewed-by: Yiwei Zhang <zzyiwei@chromium.org >
Reviewed-by: Ryan Neph <ryanneph@google.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10146 >
2021-04-14 21:18:10 +00:00
Chia-I Wu
7253e61d9d
venus: remove vn_ring_wait_all
...
It is unused now.
Signed-off-by: Chia-I Wu <olvaffe@gmail.com >
Reviewed-by: Yiwei Zhang <zzyiwei@chromium.org >
Reviewed-by: Ryan Neph <ryanneph@google.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10146 >
2021-04-14 21:18:10 +00:00
Chia-I Wu
f69c8f042a
venus: remove vn_queue::sync_queue_index
...
It is unused now.
Signed-off-by: Chia-I Wu <olvaffe@gmail.com >
Reviewed-by: Yiwei Zhang <zzyiwei@chromium.org >
Reviewed-by: Ryan Neph <ryanneph@google.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10146 >
2021-04-14 21:18:10 +00:00
Chia-I Wu
b6d819c348
venus: remove VN_SYNC_TYPE_SYNC
...
It is unused now.
Signed-off-by: Chia-I Wu <olvaffe@gmail.com >
Reviewed-by: Yiwei Zhang <zzyiwei@chromium.org >
Reviewed-by: Ryan Neph <ryanneph@google.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10146 >
2021-04-14 21:18:10 +00:00
Chia-I Wu
974af6df32
venus: remove vn_renderer_sync support from vn_queue_submission
...
It is unused now.
Signed-off-by: Chia-I Wu <olvaffe@gmail.com >
Reviewed-by: Yiwei Zhang <zzyiwei@chromium.org >
Reviewed-by: Ryan Neph <ryanneph@google.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10146 >
2021-04-14 21:18:10 +00:00
Chia-I Wu
0d848dcb0d
venus: stop using vn_renderer_sync in vn_queue
...
Move away from vn_renderer_sync and toward a userspace-only solution
temporarily until the kernel does what we need.
Signed-off-by: Chia-I Wu <olvaffe@gmail.com >
Reviewed-by: Yiwei Zhang <zzyiwei@chromium.org >
Reviewed-by: Ryan Neph <ryanneph@google.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10146 >
2021-04-14 21:18:10 +00:00
Chia-I Wu
6d2454ad3c
venus: stop using vn_renderer_sync in vn_semaphore
...
Move away from vn_renderer_sync and toward a userspace-only solution
temporarily until the kernel does what we need.
Signed-off-by: Chia-I Wu <olvaffe@gmail.com >
Reviewed-by: Yiwei Zhang <zzyiwei@chromium.org >
Reviewed-by: Ryan Neph <ryanneph@google.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10146 >
2021-04-14 21:18:10 +00:00
Chia-I Wu
4ffb0265cc
venus: stop using vn_renderer_sync in vn_fence
...
Move away from vn_renderer_sync and toward a userspace-only solution
temporarily until the kernel does what we need.
Signed-off-by: Chia-I Wu <olvaffe@gmail.com >
Reviewed-by: Yiwei Zhang <zzyiwei@chromium.org >
Reviewed-by: Ryan Neph <ryanneph@google.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10146 >
2021-04-14 21:18:10 +00:00
Eric Engestrom
2a51b8cf99
docs: reset new_features.txt
...
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10242 >
2021-04-14 21:11:07 +00:00
Eric Engestrom
a4f8c8ca3c
VERSION: bump to 21.2.0-devel
...
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10242 >
2021-04-14 21:11:07 +00:00
Sagar Ghuge
be2d9c113b
anv: Avoid corrupting indirect depth clear values
...
We don't need to initialize the BO since blorp updates the clear color
BO content with fast clear value i.e ANV_HZ_FC_VAL for depth surface.
With this approach, we can get rid of possibility of corruption since we
are no longer sharing the same clear BO for depth formats.
Closes : #3614
Signed-off-by: Sagar Ghuge <sagar.ghuge@intel.com >
Reviewed-by: Nanley Chery <nanley.g.chery@intel.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/9941 >
2021-04-14 21:00:41 +00:00
Sagar Ghuge
ca01d68fb3
anv: Set correct fast clear value for depth during blorp operation
...
Previously, on the platforms which support the indirect clear color
values, we were just setting the clear color address and not enforcing
any clear color values but some of the blorp operations were using the
wrong fast clear value.
With this patch, we make sure to set the correct fast clear color value
during blorp operations.
Signed-off-by: Sagar Ghuge <sagar.ghuge@intel.com >
Reviewed-by: Nanley Chery <nanley.g.chery@intel.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/9941 >
2021-04-14 21:00:41 +00:00
Boris Brezillon
660b4d6e25
panfrost: Don't advertise AFBC mods when the format is not supported
...
On Bifrost, AFBC is not supported if the format has a non-identity
swizzle. For internal resources we fix the format at runtime, but this
fixup is not applicable when we export the resource. Don't advertise
AFBC modifiers on such formats.
Fixes: 44217be921 ("panfrost: Adjust the format for AFBC textures on Bifrost v7")
Cc: mesa-stable
Signed-off-by: Boris Brezillon <boris.brezillon@collabora.com >
Acked-by: Daniel Stone <daniels@collabora.com >
Reviewed-by: Alyssa Rosenzweig <alyssa.rosenzweig@collabora.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10233 >
2021-04-14 20:44:01 +00:00
Rob Clark
cd749d2c1a
freedreno: Manual fixups
...
Things I couldn't figure out how to get clang-format to not mess up.
Signed-off-by: Rob Clark <robdclark@chromium.org >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/8883 >
2021-04-14 19:52:21 +00:00
Rob Clark
2d439343ea
freedreno: Re-indent
...
clang-format -fallback-style=none --style=file -i src/gallium/drivers/freedreno/*.[ch] src/gallium/drivers/freedreno/*/*.[ch]
Signed-off-by: Rob Clark <robdclark@chromium.org >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/8883 >
2021-04-14 19:52:21 +00:00
Rob Clark
fdcae5b5b8
freedreno: Some manual reformatting
...
Take care of a few things that clang-format makes a hash of.
Signed-off-by: Rob Clark <robdclark@chromium.org >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/8883 >
2021-04-14 19:52:21 +00:00
Rob Clark
2fb3984805
freedreno: Add .clang-format
...
Signed-off-by: Rob Clark <robdclark@chromium.org >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/8883 >
2021-04-14 19:52:21 +00:00
James Park
75d8998f7c
meson: Fix winflexbison warnings
...
Undefine __STDC_VERSION__ for C files to avoid mismatch with C11/C17.
Define __STDC_VERSION__ for C++ files to use <inttypes.h> path.
Reviewed-by: Jesse Natalie <jenatali@microsoft.com >
Reviewed-by: Dylan Baker <dylan@pnwbakers.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10196 >
2021-04-14 19:17:27 +00:00
Rhys Perry
5b8a4516e6
aco/ra: remove live-in temporary from live_out_per_block when moving it
...
Otherwise, handle_loop_phis() might pass it to handle_live_in() and then
we could have two phis for this variable.
Signed-off-by: Rhys Perry <pendingchaos02@gmail.com >
Reviewed-by: Daniel Schürmann <daniel@schuermann.dev >
Fixes: 7c64623e94 ("aco/ra: refactor SSA repairing during register allocation")
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10236 >
2021-04-14 19:04:08 +00:00
Rhys Perry
11fde1247c
aco/ra: use original names when renaming loop carried phi operands
...
Signed-off-by: Rhys Perry <pendingchaos02@gmail.com >
Reviewed-by: Daniel Schürmann <daniel@schuermann.dev >
Fixes: 7c64623e94 ("aco/ra: refactor SSA repairing during register allocation")
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10236 >
2021-04-14 19:04:08 +00:00