Marek Olšák
461ccb00e1
radeonsi: increase NGG workgroup size to 256 for VS/TES with streamout and GS
...
NGG streamout performance is limited by the workgroup size, so make it as
large as possible.
Since this uses si_get_max_workgroup_size() to set the NGG workgroup size,
the side effect is that all GS is also getting an increase to 256, which
is OK.
Reviewed-by: Pierre-Eric Pelloux-Prayer <pierre-eric.pelloux-prayer@amd.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/21403 >
2023-03-08 07:29:09 +00:00
Marek Olšák
43fd552872
radeonsi: allow using 64K LDS for NGG to allow larger workgroups
...
This should help with NGG streamout performance, which is limited by
the workgroup size (it should be as large as possible).
Reviewed-by: Pierre-Eric Pelloux-Prayer <pierre-eric.pelloux-prayer@amd.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/21403 >
2023-03-08 07:29:09 +00:00
Marek Olšák
e01d505291
radeonsi: other cosmetic changes in si_state_shaders.cpp
...
VS_W32_EN has no effect on Gfx11, but we better not set it.
Reviewed-by: Pierre-Eric Pelloux-Prayer <pierre-eric.pelloux-prayer@amd.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/21403 >
2023-03-08 07:29:09 +00:00
Marek Olšák
ef965d5681
radeonsi: reorganize si_shader_ps
...
To make branching based on gfx_level nicer and the code in a logical order.
Reviewed-by: Pierre-Eric Pelloux-Prayer <pierre-eric.pelloux-prayer@amd.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/21403 >
2023-03-08 07:29:09 +00:00
Marek Olšák
c9d297fc77
radeonsi: reorganize si_shader_ngg
...
To make branching based on gfx_level nicer and the code in a logical order.
Reviewed-by: Pierre-Eric Pelloux-Prayer <pierre-eric.pelloux-prayer@amd.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/21403 >
2023-03-08 07:29:09 +00:00
Marek Olšák
1664aad43c
radeonsi: reorganize si_shader_hs
...
To make branching based on gfx_level nicer and the code in a logical order.
Reviewed-by: Pierre-Eric Pelloux-Prayer <pierre-eric.pelloux-prayer@amd.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/21403 >
2023-03-08 07:29:09 +00:00
Marek Olšák
b3459eae7a
radeonsi: reindent si_shader_ls, si_shader_es, si_shader_gs, si_shader_vs
...
Reviewed-by: Pierre-Eric Pelloux-Prayer <pierre-eric.pelloux-prayer@amd.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/21403 >
2023-03-08 07:29:09 +00:00
Marek Olšák
7e0ed2c4f0
radeonsi: set pm4.atom.emit in si_get_shader_pm4_state
...
except gfx10_shader_ngg, which isn't as trivial
Reviewed-by: Pierre-Eric Pelloux-Prayer <pierre-eric.pelloux-prayer@amd.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/21403 >
2023-03-08 07:29:09 +00:00
Marek Olšák
4c1475fc1c
radeonsi: lower nir_texop_sampler_descriptor_amd
...
Reviewed-by: Pierre-Eric Pelloux-Prayer <pierre-eric.pelloux-prayer@amd.com>
Reviewed-by: Qiang Yu <yuq825@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/21403 >
2023-03-08 07:29:09 +00:00
Marek Olšák
1417ced72c
radeonsi: separate nir_texop_descriptor_amd lowering
...
This moves the code to a separate branch to make it less intertwined
with the rest to allow sampler descriptor lowering later.
Reviewed-by: Pierre-Eric Pelloux-Prayer <pierre-eric.pelloux-prayer@amd.com>
Reviewed-by: Qiang Yu <yuq825@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/21403 >
2023-03-08 07:29:09 +00:00
Marek Olšák
54ebd90739
radeonsi: merge si_emit_initial_compute_regs with si_init_cs_preamble_state
...
It's better to set all immutable registers in one place.
Reviewed-by: Pierre-Eric Pelloux-Prayer <pierre-eric.pelloux-prayer@amd.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/21403 >
2023-03-08 07:29:09 +00:00
Marek Olšák
ddded6fbb5
radeonsi: emulate VGT_ESGS_RING_ITEMSIZE in the shader on gfx9-11
...
The hardware uses the register to premultiply GS vertex indices
in input VGPRs.
This changes the behavior as follows:
- VGT_ESGS_RING_ITEMSIZE is always 1 on gfx9-11, set in the preamble.
- The value is passed to the shader via current_gs_state (vs_state_bits).
- The shader does the multiplication.
The reason is that VGT_ESGS_RING_ITEMSIZE will be removed in the future.
Reviewed-by: Pierre-Eric Pelloux-Prayer <pierre-eric.pelloux-prayer@amd.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/21403 >
2023-03-08 07:29:09 +00:00
Rob Clark
d5376c3feb
freedreno: Promote non-drawing batches to sysmem
...
Sometimes we can end up with a sequence where we need to flush a batch
with no clears and no draws (for ex, to get a fence). Promote these to
sysmem.
Signed-off-by: Rob Clark <robdclark@chromium.org>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/21747 >
2023-03-08 04:10:45 +00:00
Mike Blumenkrantz
aaed609e57
zink: hook up buffer TRANSFER_DST barrier optimizing
...
this should massively optimize e.g., incremental index buffer overwrites
ref #8358
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/21779 >
2023-03-08 03:50:33 +00:00
Mike Blumenkrantz
fe469a7618
zink: add a driver workaround to disable copy box optimizations
...
turnip is nonconformant regarding cache access (see noted issue),
meaning that any attempt to omit barriers breaks things
qcom proprietary may also be affected
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/21779 >
2023-03-08 03:50:33 +00:00
Mike Blumenkrantz
46f98da188
zink: add a mechanism to trigger copy box resets from batch state reset
...
the resource isn't available during batch state reset, so a new flag
is needed to force a reset the next time the copy boxes would be used
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/21779 >
2023-03-08 03:50:33 +00:00
Mike Blumenkrantz
aaca91eb79
zink: add a mechanism for managing TRANSFER_DST buffer barriers
...
this enables successive or unrelated transfer writes to avoid triggering
barriers, and ensuing reads of those writes should trigger their own
barriers
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/21779 >
2023-03-08 03:50:33 +00:00
Mike Blumenkrantz
54f3c589d5
zink: track the last write access for resources
...
this enables some optimization
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/21779 >
2023-03-08 03:50:33 +00:00
SureshGuttula
30a89323ad
radeonsi: Add support for DPB resize
...
This patch will add support for dpb resize when low to high resolution
change/ svc use-cases.
With DPB tier1 type,vp9 svc decoder use cases are failed. This
Change will fix this[VCN1/VCN2].
Signed-off-by: SureshGuttula <suresh.guttula@amd.com>
Reviewed-by: Leo Liu <leo.liu@amd.com>
Reviewed-by: Boyuan Zhang <boyuan.zhang@amd.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/21548 >
2023-03-08 02:19:58 +00:00
Rose Hudson
e54ec96f35
asahi: disable disk cache in debug runs
...
With debug flags enabled, shaders might get compiled differently and
running compilation might be desired e.g. for logging, so don't try to
cache them.
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/21776 >
2023-03-08 02:07:44 +00:00
Marek Olšák
ae50b66251
radeonsi/gfx11: only allocate GDS OA for streamout, GDS memory is not needed
...
Reviewed-by: Qiang Yu <yuq825@gmail.com>
Reviewed-by: Timur Kristóf <timur.kristof@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/21584 >
2023-03-07 22:08:47 +00:00
Marek Olšák
61da19a262
amd/llvm,radeonsi/gfx11: switch to using GDS_STRMOUT registers
...
This is required by register shadowing (required by the new PAIRS packets),
preemption, user queues, and we only have to wait for VS after streamout,
not PS. This is how gfx11 streamout should have been done.
Reviewed-by: Qiang Yu <yuq825@gmail.com>
Reviewed-by: Timur Kristóf <timur.kristof@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/21584 >
2023-03-07 22:08:47 +00:00
Mike Blumenkrantz
53da1534b5
llvmpipe: fix LP_PERF=no_depth to ignore depth format
...
cc: mesa-stable
Reviewed-by: Brian Paul brianp@vmware.com
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/21582 >
2023-03-07 20:42:43 +00:00
Juan A. Suarez Romero
baff509924
v3d/v3dv: define performance counters in common
...
Both OpenGL and Vulkan drivers share the same performance counters.
Let's move them to a common place instead of duplicating.
Signed-off-by: Juan A. Suarez Romero <jasuarez@igalia.com>
Reviewed-by: Iago Toral Quiroga <itoral@igalia.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/21420 >
2023-03-07 18:57:41 +00:00
Antonio Gomes
161e3f29f4
iris: Add support for 2d images created from buffers
...
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/20378 >
2023-03-07 18:24:56 +00:00
Antonio Gomes
4f096d0d88
llvmpipe: Add new caps PIPE_CAP_LINEAR_IMAGE_(PITCH_ALIGNMENT|BASE_ADDRESS_ALIGNMENT)
...
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/20378 >
2023-03-07 18:24:56 +00:00
Antonio Gomes
06daa03c5c
rusticl: Implement spec for cl_khr_image2d_from_buffer
...
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/20378 >
2023-03-07 18:24:56 +00:00
Antonio Gomes
010c18c443
gallium: Add new caps PIPE_CAP_LINEAR_IMAGE_(PITCH_ALIGNMENT|BASE_ADDRESS_ALIGNMENT)
...
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/20378 >
2023-03-07 18:24:56 +00:00
Antonio Gomes
7839341d8f
lvmpipe/cs: Add support for 2d images created from buffers
...
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/20378 >
2023-03-07 18:24:56 +00:00
Antonio Gomes
9cbdf3673b
mesa/st, nine, nouveau: Fix uninitialized pipe_sampler_view structs
...
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/20378 >
2023-03-07 18:24:56 +00:00
Antonio Gomes
cc36fd0f61
gallium, rusticl: Add tex2d_from_buf in image_view and sampler_view
...
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/20378 >
2023-03-07 18:24:56 +00:00
Antonio Gomes
07270ece45
rusticl: Enable mapImage for images created from buffers
...
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/20378 >
2023-03-07 18:24:56 +00:00
Antonio Gomes
9dda1e4872
rusticl: Enable copy for images created from buffers
...
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/20378 >
2023-03-07 18:24:56 +00:00
Antonio Gomes
3c51db3f21
rusticl: Enabling image fill for images created from buffers
...
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/20378 >
2023-03-07 18:24:56 +00:00
Antonio Gomes
e40fd3bd60
rusticl: Enabling reading/writing for images created from buffers
...
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/20378 >
2023-03-07 18:24:56 +00:00
José Roberto de Souza
a6dcd62f44
iris: Move iris_bo_wait_gem() to i915/iris_bufmgr.c
...
Signed-off-by: José Roberto de Souza <jose.souza@intel.com>
Reviewed-by: Lionel Landwerlin <lionel.g.landwerlin@intel.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/21494 >
2023-03-07 16:16:10 +00:00
José Roberto de Souza
97becc1b6f
iris: Move iris_bo_busy_gem() to i915/iris_bufmgr.c
...
Signed-off-by: José Roberto de Souza <jose.souza@intel.com>
Reviewed-by: Lionel Landwerlin <lionel.g.landwerlin@intel.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/21494 >
2023-03-07 16:16:10 +00:00
José Roberto de Souza
7553d921f6
iris: Move bo_set_caching to kmd backend
...
For the platforms that call it, it a function in the hot path so
moving it to kmd backend.
After this patch i915/iris_bufmgr.c is empty but not removing it
as next patch will add functions to it.
Signed-off-by: José Roberto de Souza <jose.souza@intel.com>
Reviewed-by: Lionel Landwerlin <lionel.g.landwerlin@intel.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/21494 >
2023-03-07 16:16:10 +00:00
José Roberto de Souza
bdfcc98001
iris: Move bo_madvise to kmd backend
...
bo_madvise() is on hot path, so moving it to kmd backend.
Signed-off-by: José Roberto de Souza <jose.souza@intel.com>
Reviewed-by: Lionel Landwerlin <lionel.g.landwerlin@intel.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/21494 >
2023-03-07 16:16:10 +00:00
David Heidelberg
f72774f13f
ci/lavapipe: fixes typo
...
Fixes: 5ee724e180 ("ci/lavapipe: add recent occasional flake")
Signed-off-by: David Heidelberg <david.heidelberg@collabora.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/21759 >
2023-03-07 13:26:52 +00:00
Karol Herbst
1aca36815e
gallivm: fix lp_vec_add_offset_ptr for 32 bit builds
...
The function assumed ptrs are always 64 bit sized.
Closes: https://gitlab.freedesktop.org/mesa/mesa/-/issues/8267
Fixes: 442d1fe5ad ("gallivm: use masked intrinsics for global and scratch access.")
Signed-off-by: Karol Herbst <kherbst@redhat.com>
Reviewed-by: Brian Paul <brianp@vmware.com>
Reviewed-by: Roland Scheidegger <sroland@vmware.com>
Reviewed-by: Adam Jackson <ajax@redhat.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/21604 >
2023-03-07 04:17:15 +00:00
Karol Herbst
4c24ff0a34
rusticl/kernel: Images arg sizes also have to match the host pointer size
...
Closes: https://gitlab.freedesktop.org/mesa/mesa/-/issues/8267
Fixes: b0d698c532 ("rusticl: correctly check global argument size")
Signed-off-by: Karol Herbst <kherbst@redhat.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/21604 >
2023-03-07 04:17:15 +00:00
Mike Blumenkrantz
b5fc941f2f
zink: always set batch usage for descriptors after barrier
...
this otherwise breaks unordered promotion calc
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/21739 >
2023-03-07 01:57:41 +00:00
Mike Blumenkrantz
afb56bad1c
zink: set dynamic pcp for unordered cmdbuf
...
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/21739 >
2023-03-07 01:57:41 +00:00
Mike Blumenkrantz
c5f901dbc6
zink: bind descriptor buffers to unordered cmdbuf
...
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/21739 >
2023-03-07 01:57:41 +00:00
Mike Blumenkrantz
20c9cfb30f
zink: always set color writes on the unordered cmdbuf
...
this state has to be set, so ensure it is
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/21739 >
2023-03-07 01:57:41 +00:00
Mike Blumenkrantz
8e3ee9aad6
zink: explicitly flush src clears when u_blittering
...
this otherwise relies on set_framebuffer_state flushing them,
which may or may not be accurate/desired
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/21739 >
2023-03-07 01:57:41 +00:00
Mike Blumenkrantz
1aa62912b7
zink: don't unset existing access when adding resource binds
...
this breaks barrier calcs, but it was fine since there was a pre-barrier
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/21739 >
2023-03-07 01:57:41 +00:00
Mike Blumenkrantz
a0f3d171f6
zink: eliminate pre barrier for adding resource binds
...
this will automatically be handled by the copies below
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/21739 >
2023-03-07 01:57:41 +00:00
Mike Blumenkrantz
d133f95084
zink: check for layout updates when unbinding samplerviews
...
not sure if it's a bug, but it should be consistent with shader image
unbinding, so here it is
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/21739 >
2023-03-07 01:57:41 +00:00