URL:
http://cgit.freedesktop.org/mesa/mesa/commit/?id=02babc834a508adf7726f783abf97dd2fe13e763
Author: Alyssa Rosenzweig <[email protected]>
Date: Sun Jun 12 09:49:24 2022 -0400
asahi: Identify stencil test enable
There are a pair of flags controlling the stencil test. One enables
stencil testing in general, the other enables two-sided stencil. Compare
the identical "twosided" flag in src/imagination/csbgen/rogue_ppp.xml's
STATE_ISPCTL structure, at the samebit offset even. Evidently this word of
the "Rasterizer" is, in fact, a derivative of STATE_ISPCTL.
Fixes
dEQP-GLES2.functional.fragment_ops.depth_stencil.*
dEQP-GLES2.functional.fragment_ops.interaction.basic_shader.*
dEQP-GLES2.functional.fragment_ops.random.*
Signed-off-by: Alyssa Rosenzweig <[email protected]>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/18380>
URL:
http://cgit.freedesktop.org/mesa/mesa/commit/?id=b891d60efa812bb6eaaafd5062cdd0759510f0ba
Author: Alyssa Rosenzweig <[email protected]>
Date: Sun May 15 13:22:08 2022 -0400
asahi: Fix depth/stencil buffers
There are a bunch of bits we need to set right to get depth/stencil
loads/stores working, including with independent settings for each. The
kernel "helps" us here.
Signed-off-by: Alyssa Rosenzweig <[email protected]>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/18380>
URL:
http://cgit.freedesktop.org/mesa/mesa/commit/?id=7cb21eb5956d3e60f86b0d1728d3861743b1b265
Author: Alyssa Rosenzweig <[email protected]>
Date: Sat Sep 3 17:06:09 2022 -0400
asahi: Handle out-of-bounds clear_stencil
Just use the bottom 8-bits (we have only 8-bit stencil formats),
otherwise we fail an assertion in GenXML. In this case the wrapping
behaviour is ok.
Fixes:
dEQP-GLES2.functional.depth_stencil_clear.depth_stencil
dEQP-GLES2.functional.depth_stencil_clear.stencil
Signed-off-by: Alyssa Rosenzweig <[email protected]>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/18380>
URL:
http://cgit.freedesktop.org/mesa/mesa/commit/?id=66f116497618b20dbf5326b989c4522933f19f5c
Author: Alyssa Rosenzweig <[email protected]>
Date: Sat Sep 3 15:02:20 2022 -0400
asahi: Add 1D and 1D Array enums
To finish out the enum.
Signed-off-by: Alyssa Rosenzweig <[email protected]>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/18380>
URL:
http://cgit.freedesktop.org/mesa/mesa/commit/?id=2bdb8ba3ce3c8f4ccda533f67ed4ed0667bf5345
Author: Alyssa Rosenzweig <[email protected]>
Date: Sat Sep 3 14:01:03 2022 -0400
asahi: Correct SET_SHADER_EXTENDED disambig bit
This is still a guess, but a considerably firmer one as it now corrects
handles the clear pipelines emitted by Metal as well as the regular
vertex/fragment shader, and gets rid of the preshader special cases
seen there. Fixes decode of clear pipeline's preshaders.
Signed-off-by: Alyssa Rosenzweig <[email protected]>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/18380>
URL:
http://cgit.freedesktop.org/mesa/mesa/commit/?id=210f4aff1e24967b6fa25b228c09d2a8d0b617cb
Author: Alyssa Rosenzweig <[email protected]>
Date: Sat Sep 3 11:53:46 2022 -0400
asahi: Identify and use first level field of texture
As we recently discovered, the layout of level L of a mipmapped 2D image
of size WxH is /not/ the same as the layout of a non-mipmapped 2D image
of size minify(W, L) x minify(H, L). The difference occurs due to
subtleties of the "power of two" miptrees which can force a level to use
a larger tile size than it would have required at root level. To handle
this quirk correctly, the driver must not implement texture views with
address arithmetic -- it must supply instead the base width/height of a
texture and use first/last level fields on the texture descriptor to map
it. Similar issues occur when writing a particular level of a mipmapped
texture, which was handled correctly in the colour case but not the Z/S
case.
Fixes
dEQP-GLES2.functional.texture.mipmap.cube.generate.*
Signed-off-by: Alyssa Rosenzweig <[email protected]>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/18380>
URL:
http://cgit.freedesktop.org/mesa/mesa/commit/?id=1d72d3feb6427752427cd9f7e2e99070240b0884
Author: Alyssa Rosenzweig <[email protected]>
Date: Fri Sep 2 23:19:54 2022 -0400
asahi: Fix "stride" for tiled textures
It doesn't exist, but there's a count of mip levels for writeable image
descs. Setting that appropriately matters at high mip levels.
Signed-off-by: Alyssa Rosenzweig <[email protected]>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/18380>
URL:
http://cgit.freedesktop.org/mesa/mesa/commit/?id=4442be1155a567f9117d8ea33493990bf0b7e52f
Author: Alyssa Rosenzweig <[email protected]>
Date: Fri Sep 2 22:39:07 2022 -0400
asahi: Fix nonmipmapped array textures
pot_level can be greater than the number of levels actually included --
don't overallocate. Fix the issue and add a representative unit test.
Fixes:
dEQP-GLES2.functional.texture.size.cube.512x512_rgb888
Fixes: 6ff75da8aa4 ("ail: Introduce image layout module")
Signed-off-by: Alyssa Rosenzweig <[email protected]>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/18380>
URL:
http://cgit.freedesktop.org/mesa/mesa/commit/?id=a41d73278497abc61d111dcf718cd82a73ad680d
Author: Alyssa Rosenzweig <[email protected]>
Date: Fri Sep 2 22:23:05 2022 -0400
asahi: Fix depth for cube maps
For cube maps, depth=1 in the hardware (but 6 in Gallium). Likewise for
cube map arrays, depth=n in the hardware (but 6n in Gallium). We need to
divide to compensate. This will be relevant for cube map arrays in the
future -- add the dimension XML for cube map arrays too.
Signed-off-by: Alyssa Rosenzweig <[email protected]>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/18380>
URL:
http://cgit.freedesktop.org/mesa/mesa/commit/?id=99a5b11af54a754dbb4cc4ca8a07446a527b4c25
Author: Alyssa Rosenzweig <[email protected]>
Date: Thu Jun 16 23:30:29 2022 -0400
asahi: Label batch flush reasons
This was helpful in identifying the bottleneck in Inochi2D (the clears).
Signed-off-by: Alyssa Rosenzweig <[email protected]>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/18380>
URL:
http://cgit.freedesktop.org/mesa/mesa/commit/?id=e66a901bc84f17bd40998cb4f25348ee6dfbc9dd
Author: Alyssa Rosenzweig <[email protected]>
Date: Tue Aug 9 21:53:59 2022 -0400
asahi: Relax assert in decoder
Seen == 0x8 with >4 render targets.
Signed-off-by: Alyssa Rosenzweig <[email protected]>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/18380>
URL:
http://cgit.freedesktop.org/mesa/mesa/commit/?id=9542f9586443de828f83afcd33c1149a198b5940
Author: Alyssa Rosenzweig <[email protected]>
Date: Mon May 23 12:35:39 2022 -0400
asahi: Trim garbage at end of set shader
Unfortunately the actual size of this data structure is unclear.
Signed-off-by: Alyssa Rosenzweig <[email protected]>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/18380>
URL:
http://cgit.freedesktop.org/mesa/mesa/commit/?id=279eaec278cece738ce68c67d4a5c2a6383bf5ed
Author: Alyssa Rosenzweig <[email protected]>
Date: Thu Jun 16 23:29:18 2022 -0400
asahi: Use util_blitter_clear
To avoid flush, use util_blitter_clear to clear with rectangles when
there is already content in the scene. This ~doubles the performance of
Inochi2D, which does frequent stencil clears in the middle of the screen
to implement masking.
Signed-off-by: Alyssa Rosenzweig <[email protected]>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/18380>
URL:
http://cgit.freedesktop.org/mesa/mesa/commit/?id=fb7860ed248f1baf1808493502654531ba9fa572
Author: Alyssa Rosenzweig <[email protected]>
Date: Thu Sep 1 17:44:02 2022 -0400
asahi: Handle empty fragment shaders
When an empty fragment shader is used with Metal, the stop command is
still included but this special bit is set, suppressing tilebuffer
access. Failing to do so but using empty shaders for u_blitter depth
clears causes Glitch Lina:
https://twitter.com/LinaAsahi/status/1537869064793575424
Signed-off-by: Alyssa Rosenzweig <[email protected]>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/18380>
URL:
http://cgit.freedesktop.org/mesa/mesa/commit/?id=f8799c97b27ceb8f02016cc5b6449c5d8679a7c7
Author: Alyssa Rosenzweig <[email protected]>
Date: Thu Jun 16 23:10:06 2022 -0400
asahi: Export agx_blitter_save
So we can use it for clears.
Signed-off-by: Alyssa Rosenzweig <[email protected]>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/18380>
URL:
http://cgit.freedesktop.org/mesa/mesa/commit/?id=6b329b16f84712769621d7f284969ff604f9fc47
Author: Alyssa Rosenzweig <[email protected]>
Date: Thu Jun 16 23:08:48 2022 -0400
asahi: Make ctx->zs a pointer
When we save ZSA state with u_blitter, u_blitter just records the
pointer for the state. It doesn't copy it. That requires an extra
indirection on the context (as other drivers do) to fix restores of ZSA
state with u_blitter.
Signed-off-by: Alyssa Rosenzweig <[email protected]>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/18380>
URL:
http://cgit.freedesktop.org/mesa/mesa/commit/?id=968bbca578d39a9d3312140e00529c660ba97f1e
Author: Alyssa Rosenzweig <[email protected]>
Date: Wed Jun 1 20:43:54 2022 -0400
asahi: Note some more unknowns in the XML
Lot of r/e waiting here...
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/18380>
URL:
http://cgit.freedesktop.org/mesa/mesa/commit/?id=47831969c8dd9b6cba758e8326a2220c147e6ac0
Author: Alyssa Rosenzweig <[email protected]>
Date: Mon May 23 13:13:16 2022 -0400
asahi: Split up unk 2b
Seems to be flags.
Signed-off-by: Alyssa Rosenzweig <[email protected]>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/18380>
URL:
http://cgit.freedesktop.org/mesa/mesa/commit/?id=5f57fe0bc93c587ba6ac646670a675d61d5d107f
Author: Alyssa Rosenzweig <[email protected]>
Date: Thu Sep 1 18:20:38 2022 -0400
asahi: Fix Indexed Draw command
Add the missing stub in the decoder for it, so we can decode indexed
draws instead of reading back garbage, and fill in some known unknowns
in the structure.
Signed-off-by: Alyssa Rosenzweig <[email protected]>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/18380>
URL:
http://cgit.freedesktop.org/mesa/mesa/commit/?id=10c9aceadff4edd2d0b5304ceb1f5bb8d8d625f8
Author: Alyssa Rosenzweig <[email protected]>
Date: Sat Sep 3 15:31:15 2022 -0400
agx: Plumb through nir_op_txf
nir_op_txf maps to AGX's texture_load, which is encoded like
texture_sample. The one outstanding question with this commit is the
rules for the sample required ... in NIR and APIs (including Metal), txf
is samplerless, but the AGX instruction consumes a sampler. Hopefully
any sampler will do, though?
Passes dEQP-GLES3.functional.shaders.texture_functions.texelfetch.*
Signed-off-by: Alyssa Rosenzweig <[email protected]>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/18380>
URL:
http://cgit.freedesktop.org/mesa/mesa/commit/?id=44d79d39b6bdbc87e821de55e51d5cdd04e4ccb4
Author: Alyssa Rosenzweig <[email protected]>
Date: Thu Sep 1 23:08:26 2022 -0400
agx: Defeature indirect vbufs
vb_mask can include garbage vbufs, we can't rely on it. This will
prevent a regression when switching to u_blitter based clears. This is
also simpler and shrinks the VS shader key so all in all a good thing.
Signed-off-by: Alyssa Rosenzweig <[email protected]>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/18380>
URL:
http://cgit.freedesktop.org/mesa/mesa/commit/?id=0fccd564b6269b6326042344bc8227388b17b4fe
Author: Alyssa Rosenzweig <[email protected]>
Date: Thu Sep 1 23:01:51 2022 -0400
agx: Don't hardcode uniform enums
Let the compiler number them for us, the numbers are meaningless.
Signed-off-by: Alyssa Rosenzweig <[email protected]>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/18380>
URL:
http://cgit.freedesktop.org/mesa/mesa/commit/?id=18bb64fd3a7cb9321681db60bd2f734216afd41a
Author: Alyssa Rosenzweig <[email protected]>
Date: Fri Sep 2 22:51:47 2022 -0400
agx: Add more unit tests for float copyprop
Would have caught the bug fixed by the previous commit.
Signed-off-by: Alyssa Rosenzweig <[email protected]>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/18380>
URL:
http://cgit.freedesktop.org/mesa/mesa/commit/?id=095415cdf716e2f4311d07e01f2c279518c140aa
Author: Alyssa Rosenzweig <[email protected]>
Date: Fri Sep 2 22:53:59 2022 -0400
agx: Fix float copyprop of neg(neg) case
They should cancel each other. Fixes:
dEQP-GLES2.functional.shaders.random.basic_expression.combined.0
Fixes: 28801b48493 ("agx: Add forward optimizing pass for fmov")
Signed-off-by: Alyssa Rosenzweig <[email protected]>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/18380>
URL:
http://cgit.freedesktop.org/mesa/mesa/commit/?id=9645e46a53b5d0770e20b1d520989985a6cdc952
Author: Alyssa Rosenzweig <[email protected]>
Date: Thu Sep 1 20:55:30 2022 -0400
agx: Fix tib access in internal shaders
The only case where tilebuffer access can be specially optimized is the
st_tile used in internal clear (or reload) shaders. However, other
shaders (like those used with u_blitter) may have nir->info.internal
set, so we can't key off that. Instead, add a special key for this
optimization to ensure correctness with other internal shaders.
Fixes flaky tests in dEQP-GLES2.functional.color_clear.*
Signed-off-by: Alyssa Rosenzweig <[email protected]>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/18380>