mirror of
https://github.com/RPCS3/glslang.git
synced 2024-12-18 00:37:43 +00:00
4425f245a5
HLSL allows image and texture types to be templatized on sub-vec4 types, or even structures. This was mostly handled already during creation of sampling operations. However, for operator[] which can generate image loads, this wasn't happening. It also isn't very easy to do at that point in time, because operator[] does not know where the results it produces will end up. They may be an lvalue or an rvalue, and there's a post-process to convert loads to stores. They may end up in atomic ops. To bypass that difficulty, GlslangToSpv now looks for this case and adds the appropriate conversion. LIMITATION: this only works for cases for which a simple conversion opcode suffices. That is to say, it will not work if the type is templatized on a struct.
9 lines
161 B
Plaintext
9 lines
161 B
Plaintext
Texture3D<int> IN: register(t0);
|
|
RWTexture3D<uint> OUT: register(u1);
|
|
|
|
[numthreads(8,8,8)]
|
|
void main(uint3 tid: SV_DispatchThreadID)
|
|
{
|
|
OUT[tid] = IN[tid];
|
|
}
|