 4425f245a5
			
		
	
	
		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];
 | |
| }
 |