Texture2D tex1 : register(t0); SamplerState _tex1_sampler : register(s0); static float2 vUV; static float4 fragColor; static float4 vTintWith565Multiplier; struct SPIRV_Cross_Input { float2 vUV : TEXCOORD0; float4 vTintWith565Multiplier : TEXCOORD1; }; struct SPIRV_Cross_Output { float4 fragColor : SV_Target0; }; uint2 spvTextureSize(Texture2D Tex, uint Level, out uint Param) { uint2 ret; Tex.GetDimensions(Level, ret.x, ret.y, Param); return ret; } float3 unpackRGB565(int rgb5) { return float3(rgb5.xxx & int3(63488, 2016, 31)); } void frag_main() { uint _36_dummy_parameter; int2 size = int2(spvTextureSize(tex1, uint(0), _36_dummy_parameter)); float2 coord = floor(vUV * float2(size)); int rgb5 = int(tex1.Load(int3(int2(coord), 0)).x); int param = rgb5; float3 _67 = unpackRGB565(param) * vTintWith565Multiplier.xyz; fragColor.x = _67.x; fragColor.y = _67.y; fragColor.z = _67.z; fragColor.w = vTintWith565Multiplier.w; } SPIRV_Cross_Output main(SPIRV_Cross_Input stage_input) { vUV = stage_input.vUV; vTintWith565Multiplier = stage_input.vTintWith565Multiplier; frag_main(); SPIRV_Cross_Output stage_output; stage_output.fragColor = fragColor; return stage_output; }