- Home /
Compute Shader not work on older GPU with DX11
Hi, I created Compute Shader in unity 2019.4 (DX11) and works well on RTX 2070S. But when I try run it in same version of Unity or even build on my older laptop with GT 650M (2GB) I have black screen. I started deleting some parts of code and I find out it does not read input properly. when I use this code it works and output red color.
#pragma kernel SomeKernel
RWTexture2D<float4> Input;
RWTexture2D<float4> Result;
[numthreads(8, 8, 1)]
void SomeKernel(uint3 id : SV_DispatchThreadID)
{
Result[id.xy] = float4(1,0,0,1); // working
}
But when I use this, it output black on GT 650M but on RTX 2070S it works well.
#pragma kernel SomeKernel
RWTexture2D<float4> Input;
RWTexture2D<float4> Result;
[numthreads(8, 8, 1)]
void SomeKernel(uint3 id : SV_DispatchThreadID)
{
Result[id.xy] = Input[id.xy]; // not working on GT 650M but RTX2070S yes
}
it's weird, because if there was a problem with the syntax, even a red result wouldn't work. But it have maybe something to do with num threads? I tried [numthreads(8, 8, 1)] and [numthreads(32, 32, 1)] with same result, new card work, old not.
Old card have hardware support for DX11.1 with SW DX12 and everything you need. https://www.techpowerup.com/gpu-specs/nvidia-geforce-gt-650m-2-gb.b1623
Any idea where can be problem or difference? Thanks.
I'm having a similar issue. Some Compute Shaders that were working fine on a 970 GTX are not working on a 660 GTX, and also seems related to input.
Did you report a bug to Unity? I'm still trying to narrow down the specific areas where my CS is not working. It would be good if they are aware of it, as plenty of people still have older cards.