Hello,
I have run into peculiar troubles using bindless textures approach in DX12 and I will appreciate if somebody more HW oriented could enlighten the situation for me.
So here is minimal reproducible sample:
...
int cascadeIndex = 0;
float3 mul = 0;
if(screenCoord.x % 2 == screenCoord.y % 2)
{
mul = float3(1, 0, 0);
cascadeIndex = 1;
}
else
{
mul = float3(0, 1, 0);
cascadeIndex = 2;
}
return mul * CascadeDepthsTexture[cascadeIndex].Sample(ShadowSampler, Saturate(ScreenToUV(screenCoord)));
It should render checkerboard, where odd pixels use different texture than the even pixels.
Problem is that on several HW this is not working and either artifacts are showing or only one texture is sampled.
NVidia RTX 3060 - working, both textures are sampled
Radeon RX 5600M - not working, only one textures are sampled. When Sample instruction is exchanged for Load, the blocky artefacts are shown.
Are there some limitations on using bindless textures regarding warps? Do you have any tip what could I check?
Thanks a lot in advance.