Mike Blumenkrantz
6689c3917e
lavapipe: increment drawid for multidraws
...
Fixes: f99f7c06
("lavapipe: implement multidraw ext")
Reviewed-by: Joshua Ashton <joshua@froggi.es >
Reviewed-by: Dave Airlie <airlied@redhat.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11878 >
2021-07-14 19:20:09 +00:00
Mike Blumenkrantz
d08c84ab0c
zink: improve detection for broken drawids
...
this is also broken for multidraws where drawid shouldn't be incremented
Fixes: 2d32d123e5
("zink: avoid unnecessarily rewriting gl_DrawID")
Reviewed-by: Dave Airlie <airlied@redhat.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11878 >
2021-07-14 19:20:09 +00:00
Dylan Baker
28c5e88931
docs: update calendar for 21.2.0-rc1
...
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11889 >
2021-07-14 12:00:02 -07:00
Dave Airlie
a3271b3f73
lvp: fixup multi draw memcpys
...
This doesn't fix the tests but it fixes a bunch of valgrind
uninitialised value warnings
Fixes: f99f7c06e7
("lavapipe: implement multidraw ext")
Reviewed-By: Mike Blumenkrantz <michael.blumenkrantz@gmail.com >
Reviewed-By: Joshua Ashton <joshua@froggi.es >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11870 >
2021-07-14 18:06:18 +00:00
Alyssa Rosenzweig
a18f434d58
panfrost: Warn on transitions to linear
...
The timing is critical for e.g video players, but this can also happen
unexpectedly in other apps which could be a symptom of deeper trouble.
Signed-off-by: Alyssa Rosenzweig <alyssa@collabora.com >
Suggested-by: Icecream95 <ixn@disroot.org >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11830 >
2021-07-14 17:41:27 +00:00
Alyssa Rosenzweig
d5fc0ceafd
panfrost: Warn on get_fresh_batch
...
Signed-off-by: Alyssa Rosenzweig <alyssa@collabora.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11830 >
2021-07-14 17:41:27 +00:00
Alyssa Rosenzweig
f2e3ac5c62
panfrost: Warn on get_fresh_batch_for_fbo
...
Signed-off-by: Alyssa Rosenzweig <alyssa@collabora.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11830 >
2021-07-14 17:41:27 +00:00
Alyssa Rosenzweig
a266a0fbbb
panfrost: Log reasons for flushes
...
Premature flushes (i.e. before pipe->flush() is called) can be
expensive, particularly if they require extra reloads/resolves.
Signed-off-by: Alyssa Rosenzweig <alyssa@collabora.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11830 >
2021-07-14 17:41:27 +00:00
Alyssa Rosenzweig
bcd915622b
panfrost: Warn on going out of AFBC
...
Signed-off-by: Alyssa Rosenzweig <alyssa@collabora.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11830 >
2021-07-14 17:41:27 +00:00
Alyssa Rosenzweig
5bd91a632b
panfrost: Warn on software conditional rendering
...
Signed-off-by: Alyssa Rosenzweig <alyssa@collabora.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11830 >
2021-07-14 17:41:27 +00:00
Alyssa Rosenzweig
256f4a5b02
panfrost: Add perf_debug macros
...
Lifted from freedreno.
Signed-off-by: Alyssa Rosenzweig <alyssa@collabora.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11830 >
2021-07-14 17:41:27 +00:00
Dylan Baker
fae28b0fce
docs/relnotes/new_features: empty for next release cycle
2021-07-14 10:22:12 -07:00
Dylan Baker
1a05c595a3
VERSION: bump version for 21.3 development cycle
2021-07-14 10:22:12 -07:00
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