m5zs7k_ has quit [Read error: Connection reset by peer]
m5zs7k has joined #asahi-gpu
rhysmdnz has joined #asahi-gpu
enick_78 has joined #asahi-gpu
hightower2 has quit [Ping timeout: 480 seconds]
hightower2 has joined #asahi-gpu
cr1901 has quit [Ping timeout: 480 seconds]
tertu has quit [Quit: so long...]
tertu has joined #asahi-gpu
possiblemeatball has joined #asahi-gpu
mkurz has quit [Ping timeout: 480 seconds]
AnuthaDev has joined #asahi-gpu
cr1901 has joined #asahi-gpu
AnuthaDev has quit []
Method has quit [Ping timeout: 480 seconds]
crabbedhaloablut has quit [Read error: Connection reset by peer]
crabbedhaloablut has joined #asahi-gpu
crabbedhaloablut has quit [Read error: Connection reset by peer]
crabbedhaloablut has joined #asahi-gpu
sgm has joined #asahi-gpu
<i509vcb>
If the texture layout is linear, Depth is ignored? (And Depth(Linear) is used instead)?
<i509vcb>
I did notice the EOT shader was never initialized as layered for some reason, I guess that checking if the layerCount > 1 is pretty much wrong
<i509vcb>
but assuming always layered means that the issue of Arrays not being allowed to be linear becomes a problem
<i509vcb>
(Although the problem with forcing the tib layout to always be layered is that everything kind of breaks lol)
KxCORP has quit [Quit: Bye!]
KxCORP has joined #asahi-gpu
possiblemeatball has quit [Quit: Quit]
possiblemeatball has joined #asahi-gpu
<alyssa>
1. correct
<alyssa>
2. EOT shader can be keyed to layerCount > 1 for the render pass itself, but not for the underlying image
<alyssa>
for rendering to a single layer of an array, the GL driver uses a non-layered EOT shader with a non-array view (doing the required math to produce a 2d view of one layer of a 2d array. ail has a helper for this. see also: VK_EXT_image_2d_view_of_3d )
<alyssa>
3. 2d arrays can be linear, hence the Depth (linear) fielld. 3D images cannot be linear.
<alyssa>
4. current GL driver behaviour should be implementable for VK: force the fragment shader tib layout to always be layered (and use a 2D Array view even of a single layer if applicable for spilled render targets)
<alyssa>
but key the EOT's tib layout to the specialized thing
<alyssa>
(This is not the only correct way to implement this. I don't remember what Metal does exactly.)
<alyssa>
i509vcb: ^^
Method has joined #asahi-gpu
theLostPixel has joined #asahi-gpu
theLostPixel has left #asahi-gpu [#asahi-gpu]
ah- has quit [Read error: Connection reset by peer]
ah- has joined #asahi-gpu
<i509vcb>
2. Seems like vk-meta does do this and creates 2d views of the 3d image for single layer copies, although why these still fail is still in the air
<i509vcb>
4. This sounds like forcing 2D array for everything? I've tried this a few times but it ends in breaking everything
<i509vcb>
I do tell the fragment shader to always have a layered tib layout and lower with layer_id_sr
<i509vcb>
although it's all layer 0 writes still
<i509vcb>
From what I can tell, image views add the result of ail_get_layer_offset_B to the base address of the image to get a view that starts at some layer