Mike Blumenkrantz
070a7b506d
mesa/st: count FF shaders as needing psiz export for precompile
...
this is consistent with logic for regular compiles
Reviewed-by: Ilia Mirkin <imirkin@alum.mit.edu >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/15228 >
2022-03-09 05:10:21 +00:00
Mike Blumenkrantz
1183988d74
mesa/st: precompile with API pointsize only if the shader doesn't have pointsize
...
this is a more accurate hint, and maintains the existing behavior given
subsequent changes to this area
Reviewed-by: Ilia Mirkin <imirkin@alum.mit.edu >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/15228 >
2022-03-09 05:10:21 +00:00
Mike Blumenkrantz
96098d7c25
mesa/st: simplify pointsize precompile conditional
...
Reviewed-by: Ilia Mirkin <imirkin@alum.mit.edu >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/15228 >
2022-03-09 05:10:21 +00:00
Mike Blumenkrantz
882abacde3
mesa/st: simplify pointsize shader update conditional
...
ES contexts have no API toggle for this, so it will never be flagged
Reviewed-by: Ilia Mirkin <imirkin@alum.mit.edu >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/15228 >
2022-03-09 05:10:21 +00:00
Mike Blumenkrantz
b73663c51e
mesa: always set PointSizeEnabled for API_OPENGLES2
...
this is implicit, so make it explicit
Reviewed-by: Ilia Mirkin <imirkin@alum.mit.edu >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/15228 >
2022-03-09 05:10:21 +00:00
Mike Blumenkrantz
9d98bc238e
mesa/st: only add pointsize output if it doesn't exceed max component limit
...
fixes (zink-nvidia):
dEQP-GLES31.functional.geometry_shading.basic*
Reviewed-by: Ilia Mirkin <imirkin@alum.mit.edu >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/15228 >
2022-03-09 05:10:21 +00:00
Mike Blumenkrantz
0d80aed363
nir/gather_info: check copy_deref instrs for writing outputs
...
this is a valid way to write an output even though it usually gets rewritten
to some other instruction later on
Reviewed-by: Ilia Mirkin <imirkin@alum.mit.edu >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/15228 >
2022-03-09 05:10:21 +00:00
Mike Blumenkrantz
fdee7240ff
mesa/st: conditionally add pointsize outputs to ES tess/geom shaders
...
if the driver requires this value to be set, add it if the shader doesn't
use the ext to allow exporting it
Reviewed-by: Ilia Mirkin <imirkin@alum.mit.edu >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/15228 >
2022-03-09 05:10:21 +00:00
Mike Blumenkrantz
597bd11b7b
mesa/st: add a gl_program struct flag to skip psiz exports for xfb
...
if this output did not exist in the original shader,
then it must not be exported in xfb
Reviewed-by: Ilia Mirkin <imirkin@alum.mit.edu >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/15228 >
2022-03-09 05:10:21 +00:00
Mike Blumenkrantz
53cbba83eb
glsl: store OES/EXT point_size extension enablement to shader struct
...
Reviewed-by: Ilia Mirkin <imirkin@alum.mit.edu >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/15228 >
2022-03-09 05:10:21 +00:00
Boris Brezillon
02906baba7
panvk: Implement vkCmdDispatch()
...
Signed-off-by: Boris Brezillon <boris.brezillon@collabora.com >
Reviewed-by: Jason Ekstrand <jason.ekstrand@collabora.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/15248 >
2022-03-09 04:50:41 +00:00
Boris Brezillon
1056b3e39e
panvk: Add support for storage image
...
Signed-off-by: Boris Brezillon <boris.brezillon@collabora.com >
Reviewed-by: Jason Ekstrand <jason.ekstrand@collabora.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/15248 >
2022-03-09 04:50:41 +00:00
Boris Brezillon
eca0a0e29e
panvk: Move dummy attribute buffer emission out of emit_{attribute,varying}_bufs
...
So we can easily add entries after the standard varyings/attributes
(like image descriptors in the attribute array).
Signed-off-by: Boris Brezillon <boris.brezillon@collabora.com >
Reviewed-by: Jason Ekstrand <jason.ekstrand@collabora.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/15248 >
2022-03-09 04:50:41 +00:00
Boris Brezillon
0e7e1b64fc
panvk: Add support for storage/uniform buffers with dynamic offsets
...
The idea of storing offsets in a separate UBO and lowering accesses to
UBOs/SSBOs with a dynamic offset was not great. Let's apply the offset
at UBO/SSBO emission time instead.
Signed-off-by: Boris Brezillon <boris.brezillon@collabora.com >
Reviewed-by: Jason Ekstrand <jason.ekstrand@collabora.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/15248 >
2022-03-09 04:50:41 +00:00
Boris Brezillon
13378e4129
panvk: Support creation of compute pipelines
...
Signed-off-by: Boris Brezillon <boris.brezillon@collabora.com >
Reviewed-by: Jason Ekstrand <jason.ekstrand@collabora.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/15248 >
2022-03-09 04:50:41 +00:00
Boris Brezillon
b05ffc9fec
panvk: Add support for storage buffers
...
Signed-off-by: Boris Brezillon <boris.brezillon@collabora.com >
Reviewed-by: Jason Ekstrand <jason.ekstrand@collabora.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/15248 >
2022-03-09 04:50:41 +00:00
Boris Brezillon
9a20467cf2
panvk: Add support for push constants
...
Push constants are stored in a separate UBO.
Signed-off-by: Boris Brezillon <boris.brezillon@collabora.com >
Reviewed-by: Jason Ekstrand <jason.ekstrand@collabora.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/15248 >
2022-03-09 04:50:41 +00:00
Mike Blumenkrantz
3634063b08
zink: handle spirv xfb insanity
...
this comes in two flavors:
* streamout of array<struct/block>
* partial streamout of array/struct/block
for the former:
* arrays of structs can just be blasted out in the initial var declaration (easy)
* arrays of blocks must be output to separate xfb buffers for each array block,
which requires skipping initial xfb blast-off and instead propagating the values
using tmp variables at a later point
for the latter:
* the optimal way to do this is to unwrap the struct first to figure out what's being
emitted, at which point the value can be extracted and exported
fixes the rest of spec@arb_gl_spirv@execution@xfb
...except spec@arb_gl_spirv@execution@xfb@vs_block_array, which I'm suspecting is broken
due to vtn bugs
Reviewed-by: Dave Airlie <airlied@redhat.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/15224 >
2022-03-09 04:39:52 +00:00
Mike Blumenkrantz
dfbb7c1f73
zink: store shader to ntv_context
...
it's insane the gymnastics that have to be done because this wasn't stored
Reviewed-by: Dave Airlie <airlied@redhat.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/15224 >
2022-03-09 04:39:52 +00:00
Mike Blumenkrantz
76fe6f7235
zink: handle remaining xfb corner cases during analysis
...
this now handles inlining of stupid types (dvec3, dmatX) and complex
types (goku) as seen in cts
fixes:
KHR-Single-GL46.enhanced_layouts.xfb_explicit_location
KHR-Single-GL46.enhanced_layouts.xfb_struct_explicit_location
Reviewed-by: Dave Airlie <airlied@redhat.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/15224 >
2022-03-09 04:39:52 +00:00
Mike Blumenkrantz
3f7da0c584
zink: fix xfb analysis variable finding for arrays
...
this fixes clipdistance exports
cc: mesa-stable
Reviewed-by: Dave Airlie <airlied@redhat.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/15224 >
2022-03-09 04:39:52 +00:00
Mike Blumenkrantz
4ed7329236
zink: correctly set xfb packed output offsets
...
cc: mesa-stable
Reviewed-by: Dave Airlie <airlied@redhat.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/15224 >
2022-03-09 04:39:52 +00:00
Mike Blumenkrantz
432700fc61
zink: store the correct number of components for xfb packing outputs
...
cc: mesa-stable
Reviewed-by: Dave Airlie <airlied@redhat.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/15224 >
2022-03-09 04:39:52 +00:00
Mike Blumenkrantz
a5c7d34fdf
zink: use 64bit mask for xfb analysis
...
I don't know how this worked before since all the values are oob?
cc: mesa-stable
Reviewed-by: Dave Airlie <airlied@redhat.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/15224 >
2022-03-09 04:39:52 +00:00
Mike Blumenkrantz
a0feafbcc8
ci: more stoney flakes
...
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/14854 >
2022-03-09 03:54:37 +00:00
Mike Blumenkrantz
ddfa9e7cc9
ci: add another stoney flake
...
from #6109
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/14854 >
2022-03-09 03:54:37 +00:00
Mike Blumenkrantz
6ab720f1f4
aux/cso: stop tracing during cso_unbind()
...
this unnecessarily bloats lavapipe traces
Reviewed-by: Adam Jackson <ajax@redhat.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/14854 >
2022-03-09 03:54:37 +00:00
Mike Blumenkrantz
0e51c47816
aux/trace: dump more rasterizer state members
...
Reviewed-by: Adam Jackson <ajax@redhat.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/14854 >
2022-03-09 03:54:37 +00:00
Mike Blumenkrantz
ec45b7ed32
aux/trace: dump clear_texture colors
...
Reviewed-by: Adam Jackson <ajax@redhat.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/14854 >
2022-03-09 03:54:37 +00:00
Mike Blumenkrantz
296e26eec8
aux/trace: dump clear colors as uints
...
dumping as float is nice if the clear color is a float, but if it isn't
then the value is useless
Reviewed-by: Adam Jackson <ajax@redhat.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/14854 >
2022-03-09 03:54:37 +00:00
Mike Blumenkrantz
8142fc5a45
aux/trace: rzalloc the context struct
...
this has problems if pointers are garbage
cc: mesa-stable
Reviewed-by: Adam Jackson <ajax@redhat.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/14854 >
2022-03-09 03:54:37 +00:00
Mike Blumenkrantz
f1cdaf36df
aux/trace: more screen methods
...
Reviewed-by: Adam Jackson <ajax@redhat.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/14854 >
2022-03-09 03:54:37 +00:00
Mike Blumenkrantz
204ea77b06
lavapipe: fix pipeline creation for blend and zs states
...
these values are read based on the specified subpass containing the
required attachments, not on the overall renderpass
cc: mesa-stable
Reviewed-by: Dave Airlie <airlied@redhat.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/15282 >
2022-03-09 01:13:42 +00:00
Mike Blumenkrantz
7114490115
lavapipe: update multisample state after blend state
...
null blend pipeline state will zero the blend struct, which would cause
values set here to be overwritten
cc: mesa-stable
Reviewed-by: Dave Airlie <airlied@redhat.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/15282 >
2022-03-09 01:13:42 +00:00
Rob Clark
711f0d1df4
turnip: Don't call getenv() directly
...
I noticed it was using getenv directly when I tried to use 'setprop
mesa.tu.debug ..' on android. Use os_get_option() instead so we get
sysprop fallback on android.
Signed-off-by: Rob Clark <robdclark@chromium.org >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/15289 >
2022-03-09 00:22:36 +00:00
Gert Wollny
c9d99b7eec
virgl: Fix texture transfers by using a staging resource
...
This commit fixes the following flaws in the implementation:
* when a resource was re-allocated, the guest side storage
was also allocated
* when a source needs a readback before being written to, then
the call would go through vws->transfer_get, thereby bypassing the
staging resource, and this would fail on the host, because no
the allocated IOV was too small (just one byte)
* if the texture write would need neither flush nor readback, the
old code path would be used expecting that guest side backing stogage
for the texture.
v2: - actually do a readback to the stageing resource when it is required
- fix typo (Lepton)
v3: Don't use stageing transfers if the host can't read back the data
by rendering to an FBO or calling getTexImage, because in this case
we rely on the IOV to hold the date.
v4: Also don't use staging transfers if the format is no readback
format. Otherwise we have to deal with the resolve blit, and
this is currently not working correctly.
v5: add a new flag that indicates whether non-renderable textures can
be read back (either via glGetTexImage or GBM)
v6: Restrict the use of staging texture transfers to textures that can
be read back, and on GLES also if the they are bound to scanout and
the host uses minigbm to allocate such textures.
For that replace the flag indicating the capability to read back
non-renderable textures with a cap that indicates whether scanout
textures can be read back.
v7: update virglrenderer version in the CI
v8: update use of stageing (Chia-I)
v9: remove superflous check and assignment (Chia-I)
v10: disable stageing textures for arrays with stencil format. This is a
workaround for failures of the CI.
Fixes: cdc480585c
virgl/drm: New optimization for uploading textures
Signed-off-by: Gert Wollny <gert.wollny@collabora.com >
Reviewed-by: Chia-I Wu <olvaffe@gmail.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/14495 >
2022-03-08 23:39:27 +01:00
Mike Blumenkrantz
165a880f1a
llvmpipe: clamp surface clear geometry
...
avoid oob writes to avoid crashing
cc: mesa-stable
Reviewed-by: Dave Airlie <airlied@redhat.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/14655 >
2022-03-08 22:03:28 +00:00
Mike Blumenkrantz
2d1b506acf
lavapipe: clamp clear attachments rects
...
there is at least one unnamed game which has problems with this, so try
to avoid crashing
cc: mesa-stable
Reviewed-by: Dave Airlie <airlied@redhat.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/14655 >
2022-03-08 22:03:28 +00:00
Mike Blumenkrantz
4c76a19ca3
llvmpipe: fix debug print iterating in set_framebuffer_state
...
this would potentially access garbage memory by checking the existing
state using the incoming state's iterator values
cc: mesa-stable
Reviewed-by: Dave Airlie <airlied@redhat.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/14857 >
2022-03-08 21:42:02 +00:00
Mike Blumenkrantz
3ef093f697
zink: ci updates
...
cc: mesa-stable
Reviewed-by: Dave Airlie <airlied@redhat.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/15274 >
2022-03-08 21:30:29 +00:00
Mike Blumenkrantz
5fae35fb17
zink: fix 64bit float shader ops
...
this was being set from back before zink actually supported 64bit
natively and only 32bit was functional, but it breaks 64bit support
cc: mesa-stable
fixes (lavapipe):
KHR-GL46.gpu_shader_fp64.builtin.mod_dvec2
KHR-GL46.gpu_shader_fp64.builtin.mod_dvec3
KHR-GL46.gpu_shader_fp64.builtin.mod_dvec4
Reviewed-by: Dave Airlie <airlied@redhat.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/15274 >
2022-03-08 21:30:29 +00:00
Mike Blumenkrantz
9579df6a7f
zink: run nir_lower_phis_to_scalar in optimization loop
...
fixes (lavapipe):
dEQP-GLES3.functional.shaders.switch.switch_in_do_while_loop_dynamic*
Reviewed-by: Dave Airlie <airlied@redhat.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/15274 >
2022-03-08 21:30:29 +00:00
Samuel Pitoiset
342e6f8332
radv,aco,llvm: lower post shuffle vertex in NIR
...
fossils-db (Sienna Cichlid):
Totals from 774 (0.57% of 134913) affected shaders:
VGPRs: 26496 -> 26312 (-0.69%)
CodeSize: 1825936 -> 1828812 (+0.16%); split: -0.04%, +0.20%
MaxWaves: 22046 -> 22062 (+0.07%)
Instrs: 347634 -> 347975 (+0.10%); split: -0.05%, +0.15%
Latency: 1363949 -> 1356426 (-0.55%); split: -0.59%, +0.04%
InvThroughput: 221529 -> 221380 (-0.07%); split: -0.10%, +0.04%
VClause: 5682 -> 5676 (-0.11%); split: -1.46%, +1.36%
SClause: 7485 -> 7411 (-0.99%); split: -1.48%, +0.49%
Copies: 30481 -> 30420 (-0.20%); split: -0.51%, +0.31%
PreVGPRs: 19717 -> 19656 (-0.31%)
fossil-db (Polaris10):
Totals from 896 (0.66% of 135960) affected shaders:
SGPRs: 49824 -> 49648 (-0.35%); split: -0.39%, +0.03%
VGPRs: 31040 -> 29948 (-3.52%); split: -3.62%, +0.10%
CodeSize: 875960 -> 875920 (-0.00%); split: -0.06%, +0.05%
MaxWaves: 6380 -> 6429 (+0.77%)
Instrs: 171522 -> 171482 (-0.02%); split: -0.07%, +0.05%
Latency: 1356082 -> 1334386 (-1.60%); split: -1.61%, +0.01%
InvThroughput: 553389 -> 552957 (-0.08%); split: -0.08%, +0.00%
VClause: 4317 -> 4244 (-1.69%); split: -2.41%, +0.72%
SClause: 6157 -> 6139 (-0.29%); split: -0.45%, +0.16%
Copies: 9340 -> 9235 (-1.12%); split: -1.24%, +0.12%
PreVGPRs: 22366 -> 22116 (-1.12%)
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/15113 >
2022-03-08 19:18:01 +00:00
Timur Kristóf
4b99b528f5
nir: Introduce workgroup_index and ability to lower workgroup_id to it.
...
The workgroup_index is intended for situations when a 3 dimensional
workgroup_id is not available on the HW, but a 1 dimensional index is.
In this case, we can use lower the 3D ID to use this.
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/15103 >
2022-03-08 17:36:31 +00:00
Timur Kristóf
6a4c01f3ef
nir: Extract lower_id_to_index into a separate function.
...
Signed-off-by: Timur Kristóf <timur.kristof@gmail.com >
Reviewed-by: Jason Ekstrand <jason.ekstrand@collabora.com >
Reviewed-by: Daniel Schürmann <daniel@schuermann.dev >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/15103 >
2022-03-08 17:36:31 +00:00
Timur Kristóf
64acec0ef9
nir: Fix lowering terminology of compute system values: "from"->"to".
...
This is to match other NIR terminology.
Signed-off-by: Timur Kristóf <timur.kristof@gmail.com >
Reviewed-by: Jason Ekstrand <jason.ekstrand@collabora.com >
Reviewed-by: Daniel Schürmann <daniel@schuermann.dev >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/15103 >
2022-03-08 17:36:31 +00:00
Jason Ekstrand
541f08cd4c
panvk: Non-destructively stub GetRenderAreaGranularity
...
Don't crash. Just print a warning and return 1x1.
Reviewed-by: Boris Brezillon <boris.brezillon@collabora.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/15285 >
2022-03-08 17:03:47 +00:00
Jason Ekstrand
afe2ef9afc
panvk: Advertise zero sparse format properties
...
This is the correct implementation when you don't support sparse and
fixes piles of CTS crashes.
Reviewed-by: Boris Brezillon <boris.brezillon@collabora.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/15285 >
2022-03-08 17:03:47 +00:00
Jason Ekstrand
8feed1f114
panvk: Advertise VK_KHR_get_physical_device_properties2
...
All the entrypooints are already implemented and a bunch of Vulkan CTS
tests assume this extension exists.
Reviewed-by: Boris Brezillon <boris.brezillon@collabora.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/15285 >
2022-03-08 17:03:47 +00:00
Rob Clark
3937c47c48
gallium/dri: Add missing in_fence_fd initialization
...
Closes: https://gitlab.freedesktop.org/mesa/mesa/-/issues/6108
Signed-off-by: Rob Clark <robdclark@chromium.org >
Reviewed-by: Tapani Pälli <tapani.palli@intel.com >
Tested-by: Michel Dänzer <mdaenzer@redhat.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/15272 >
2022-03-08 16:38:00 +00:00