2­TБ +}г™Iѕ‹E23851a53779dP‹ђ aPosition _uaPositionџџџџџџџџџџџџџџџџѕaBlurRenderTaskAddress_uaBlurRenderTaskAddressџџџџџџџџџџџџџџџџѕaBlurSourceTaskAddress_uaBlurSourceTaskAddressџџџџџџџџџџџџџџџџѕaBlurDirection_uaBlurDirectionџџџџџџџџџџџџџџџџ\‹ђ uTransform _uuTransformџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџ^‹sColor0 _usColor0џџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџ^‹ sRenderTasks_usRenderTasksџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџŒŒR‹ђ oFragColor _uoFragColorџџџџџџџџџџџџџџџџџџџџ^‹^‹џџџџ˜”K0щЁџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџstruct VS_OUTPUT { float4 dx_Position : SV_Position; float4 gl_Position : TEXCOORD5; nointerpolation float4 v0 : TEXCOORD0; float2 v1 : TEXCOORD1; nointerpolation float2 v2 : TEXCOORD2; nointerpolation int2 v3 : TEXCOORD3; nointerpolation float2 v4 : TEXCOORD4; }; #pragma warning( disable: 3556 3571 ) float2 vec2_ctor(int2 x0) { return float2(x0); } int int_ctor(float x0) { return int(x0); } int int_ctor(uint x0) { return int(x0); } uint uint_ctor(int x0) { return uint(x0); } // Uniforms uniform float4x4 _uTransform : register(c0); static const uint _sColor0 = 0; static const uint _sRenderTasks = 1; uniform Texture2D textures2D[2] : register(t0); uniform SamplerState samplers2D[2] : register(s0); #ifdef ANGLE_ENABLE_LOOP_FLATTEN #define LOOP [loop] #define FLATTEN [flatten] #else #define LOOP #define FLATTEN #endif #define ATOMIC_COUNTER_ARRAY_STRIDE 4 // Attributes static float2 _aPosition = {0, 0}; static int _aBlurRenderTaskAddress = {0}; static int _aBlurSourceTaskAddress = {0}; static int _aBlurDirection = {0}; static float4 gl_Position = float4(0, 0, 0, 0); // Varyings static float2 _vUv = {0, 0}; static nointerpolation float4 _vUvRect = {0, 0, 0, 0}; static nointerpolation float2 _vOffsetScale = {0, 0}; static nointerpolation int2 _vSupport = {0, 0}; static nointerpolation float2 _vGaussCoefficients = {0, 0}; cbuffer DriverConstants : register(b1) { float4 dx_ViewAdjust : packoffset(c1); float2 dx_ViewCoords : packoffset(c2); float2 dx_ViewScale : packoffset(c3); struct SamplerMetadata { int baseLevel; int internalFormatBits; int wrapModes; int padding; int4 intBorderColor; }; SamplerMetadata samplerMetadata[2] : packoffset(c4); }; int2 gl_texture2DSize(uint samplerIndex, int lod) { int baseLevel = 0; uint width; uint height; uint numberOfLevels; textures2D[samplerIndex].GetDimensions(baseLevel, width, height, numberOfLevels); width = max(width >> lod, 1); height = max(height >> lod, 1); return int2(width, height); } float4 gl_texture2DFetch(uint samplerIndex, int2 t, int mip) { return textures2D[samplerIndex].Load(int3(t.x, t.y, mip)); } @@ VERTEX ATTRIBUTES @@ VS_OUTPUT generateOutput(VS_INPUT input) { VS_OUTPUT output; output.gl_Position = gl_Position; output.dx_Position.x = gl_Position.x; output.dx_Position.y = - gl_Position.y; output.dx_Position.z = (gl_Position.z + gl_Position.w) * 0.5; output.dx_Position.w = gl_Position.w; output.v0 = _vUvRect; output.v1 = _vUv; output.v2 = _vOffsetScale; output.v3 = _vSupport; output.v4 = _vGaussCoefficients; return output; } VS_OUTPUT main(VS_INPUT input){ initAttributes(input); int2 _tmpvar_14899 = {0, 0}; (_tmpvar_14899.x = int_ctor((2 * (uint_ctor(_aBlurRenderTaskAddress) % 512)))); (_tmpvar_14899.y = int_ctor((uint_ctor(_aBlurRenderTaskAddress) / 512))); float4 _tmpvar_24900 = {0, 0, 0, 0}; (_tmpvar_24900 = gl_texture2DFetch(_sRenderTasks, _tmpvar_14899, 0)); float4 _tmpvar_34901 = {0, 0, 0, 0}; (_tmpvar_34901 = gl_texture2DFetch(_sRenderTasks, (_tmpvar_14899 + int2(1, 0)), 0)); int2 _tmpvar_44902 = {0, 0}; (_tmpvar_44902.x = int_ctor((2 * (uint_ctor(_aBlurSourceTaskAddress) % 512)))); (_tmpvar_44902.y = int_ctor((uint_ctor(_aBlurSourceTaskAddress) / 512))); float4 _tmpvar_54903 = {0, 0, 0, 0}; (_tmpvar_54903 = gl_texture2DFetch(_sRenderTasks, _tmpvar_44902, 0)); float2 _tmpvar_64904 = {0, 0}; (_tmpvar_64904 = vec2_ctor(gl_texture2DSize(_sColor0, 0))); (_vSupport.x = (int_ctor(ceil((1.5 * _tmpvar_34901.x))) * 2)); if ((0 < _vSupport.x)) { int _i_74905 = {0}; float _gauss_coefficient_total_84906 = {0}; float3 _gauss_coefficient_94907 = {0, 0, 0}; float _tmpvar_104908 = {0}; (_tmpvar_104908 = exp((-0.5 / (_tmpvar_34901.x * _tmpvar_34901.x)))); float2 _tmpvar_114909 = {0, 0}; (_tmpvar_114909.x = (1.0 / (2.506628 * _tmpvar_34901.x))); (_tmpvar_114909.y = _tmpvar_104908); (_vGaussCoefficients = _tmpvar_114909); float3 _tmpvar_124910 = {0, 0, 0}; (_tmpvar_124910.xy = _tmpvar_114909); (_tmpvar_124910.z = (_tmpvar_104908 * _tmpvar_104908)); (_gauss_coefficient_94907 = _tmpvar_124910); (_gauss_coefficient_total_84906 = _tmpvar_124910.x); (_i_74905 = 1); { for(; (_vSupport.x >= _i_74905); (_i_74905 += 2)) { (_gauss_coefficient_94907.xy = (_gauss_coefficient_94907.xy * _gauss_coefficient_94907.yz)); float _tmpvar_134911 = {0}; (_tmpvar_134911 = _gauss_coefficient_94907.x); (_gauss_coefficient_94907.xy = (_gauss_coefficient_94907.xy * _gauss_coefficient_94907.yz)); (_gauss_coefficient_total_84906 = (_gauss_coefficient_total_84906 + (2.0 * (_tmpvar_134911 + _gauss_coefficient_94907.x)))); } } (_vGaussCoefficients.x = (_tmpvar_114909.x / _gauss_coefficient_total_84906)); } else { (_vGaussCoefficients = float2(1.0, 1.0)); } bool _tmpvar_144912 = {0}; bool _tmpvar_154913 = {0}; (_tmpvar_154913 = false); (_tmpvar_144912 = (0 == _aBlurDirection)); if (_tmpvar_144912) { float2 _tmpvar_164914 = {0, 0}; (_tmpvar_164914.y = 0.0); (_tmpvar_164914.x = (1.0 / _tmpvar_64904.x)); (_vOffsetScale = _tmpvar_164914); (_tmpvar_154913 = true); } (_tmpvar_144912 = (_tmpvar_144912 || (1 == _aBlurDirection))); (_tmpvar_144912 = (_tmpvar_144912 && (!_tmpvar_154913))); if (_tmpvar_144912) { float2 _tmpvar_174915 = {0, 0}; (_tmpvar_174915.x = 0.0); (_tmpvar_174915.y = (1.0 / _tmpvar_64904.y)); (_vOffsetScale = _tmpvar_174915); (_tmpvar_154913 = true); } (_tmpvar_144912 = (!_tmpvar_154913)); if (_tmpvar_144912) { (_vOffsetScale = float2(0.0, 0.0)); } float4 _tmpvar_184916 = {0, 0, 0, 0}; (_tmpvar_184916.xy = (_tmpvar_54903.xy + float2(0.5, 0.5))); (_tmpvar_184916.zw = ((_tmpvar_54903.xy + _tmpvar_34901.yz) - float2(0.5, 0.5))); (_vUvRect = (_tmpvar_184916 / _tmpvar_64904.xyxy)); (_vUv = lerp((_tmpvar_54903.xy / _tmpvar_64904), (_tmpvar_54903.zw / _tmpvar_64904), _aPosition)); float4 _tmpvar_194917 = {0, 0, 0, 0}; (_tmpvar_194917.zw = float2(0.0, 1.0)); (_tmpvar_194917.xy = lerp(_tmpvar_24900.xy, _tmpvar_24900.zw, _aPosition)); (gl_Position = mul(transpose(_uTransform), _tmpvar_194917)); return generateOutput(input); } й struct PS_INPUT { float4 dx_Position : SV_Position; float4 gl_Position : TEXCOORD5; nointerpolation float4 v0 : TEXCOORD0; float2 v1 : TEXCOORD1; nointerpolation float2 v2 : TEXCOORD2; nointerpolation int2 v3 : TEXCOORD3; nointerpolation float2 v4 : TEXCOORD4; }; #pragma warning( disable: 3556 3571 ) float float_ctor(int x0) { return float(x0); } float4 vec4_ctor(float x0) { return float4(x0, x0, x0, x0); } // Uniforms static const uint _sColor0 = 0; uniform Texture2D textures2D[1] : register(t0); uniform SamplerState samplers2D[1] : register(s0); #ifdef ANGLE_ENABLE_LOOP_FLATTEN #define LOOP [loop] #define FLATTEN [flatten] #else #define LOOP #define FLATTEN #endif #define ATOMIC_COUNTER_ARRAY_STRIDE 4 // Varyings static float2 _vUv = {0, 0}; static nointerpolation float4 _vUvRect = {0, 0, 0, 0}; static nointerpolation float2 _vOffsetScale = {0, 0}; static nointerpolation int2 _vSupport = {0, 0}; static nointerpolation float2 _vGaussCoefficients = {0, 0}; static float4 out_oFragColor = {0, 0, 0, 0}; cbuffer DriverConstants : register(b1) { struct SamplerMetadata { int baseLevel; int internalFormatBits; int wrapModes; int padding; int4 intBorderColor; }; SamplerMetadata samplerMetadata[1] : packoffset(c4); }; float4 gl_texture2D(uint samplerIndex, float2 t) { return textures2D[samplerIndex].Sample(samplers2D[samplerIndex], float2(t.x, t.y)); } @@ PIXEL OUTPUT @@ PS_OUTPUT main(PS_INPUT input){ _vUvRect = input.v0; _vUv = input.v1.xy; _vOffsetScale = input.v2.xy; _vSupport = input.v3.xy; _vGaussCoefficients = input.v4.xy; int _i_14894 = {0}; float _avg_color_24895 = {0}; float3 _gauss_coefficient_34896 = {0, 0, 0}; float3 _tmpvar_44897 = {0, 0, 0}; (_tmpvar_44897.xy = _vGaussCoefficients); (_tmpvar_44897.z = (_vGaussCoefficients.y * _vGaussCoefficients.y)); (_gauss_coefficient_34896 = _tmpvar_44897); (_avg_color_24895 = (gl_texture2D(_sColor0, _vUv).x * _vGaussCoefficients.x)); int _tmpvar_54898 = {0}; (_tmpvar_54898 = min(_vSupport.x, 300)); (_i_14894 = 1); {LOOP for(; (_tmpvar_54898 >= _i_14894); (_i_14894 += 2)) { float _gauss_coefficient_subtotal_64899 = {0}; (_gauss_coefficient_34896.xy = (_gauss_coefficient_34896.xy * _gauss_coefficient_34896.yz)); float _tmpvar_74900 = {0}; (_tmpvar_74900 = _gauss_coefficient_34896.x); (_gauss_coefficient_34896.xy = (_gauss_coefficient_34896.xy * _gauss_coefficient_34896.yz)); (_gauss_coefficient_subtotal_64899 = (_tmpvar_74900 + _gauss_coefficient_34896.x)); float2 _tmpvar_84901 = {0, 0}; (_tmpvar_84901 = (_vOffsetScale * (float_ctor(_i_14894) + (_gauss_coefficient_34896.x / _gauss_coefficient_subtotal_64899)))); (_avg_color_24895 = (_avg_color_24895 + ((gl_texture2D(_sColor0, max((_vUv - _tmpvar_84901), _vUvRect.xy)).x + gl_texture2D(_sColor0, min((_vUv + _tmpvar_84901), _vUvRect.zw)).x) * _gauss_coefficient_subtotal_64899))); } } (out_oFragColor = vec4_ctor(_avg_color_24895)); return generateOutput(); } R‹out_oFragColorout_oFragColorбstruct GS_INPUT { float4 dx_Position : SV_Position; float4 gl_Position : TEXCOORD5; nointerpolation float4 v0 : TEXCOORD0; float2 v1 : TEXCOORD1; nointerpolation float2 v2 : TEXCOORD2; nointerpolation int2 v3 : TEXCOORD3; nointerpolation float2 v4 : TEXCOORD4; }; struct GS_OUTPUT { float4 dx_Position : SV_Position; float4 gl_Position : TEXCOORD5; nointerpolation float4 v0 : TEXCOORD0; float2 v1 : TEXCOORD1; nointerpolation float2 v2 : TEXCOORD2; nointerpolation int2 v3 : TEXCOORD3; nointerpolation float2 v4 : TEXCOORD4; }; void copyVertex(inout GS_OUTPUT output, GS_INPUT input, GS_INPUT flatinput) { output.gl_Position = input.gl_Position; output.v0 = flatinput.v0; output.v1 = input.v1; output.v2 = flatinput.v2; output.v3 = flatinput.v3; output.v4 = flatinput.v4; #ifndef ANGLE_POINT_SPRITE_SHADER output.dx_Position = input.dx_Position; #endif // ANGLE_POINT_SPRITE_SHADER } ЌЕЕЕ DXBCƒJё|кžMVЄХjŽі:ƒ- 4 œl  RDEFфpўџСМ\џџџџ gtextures2D$Globalsgˆ@ @Ќ_uTransformMicrosoft (R) HLSL Shader Compiler 10.1ISGNthhhhTEXCOORDЋЋЋOSGNШАМММ М М М SV_PositionTEXCOORDЋЋЋSHDR, AKjYFŽ XpUUXpUU_2___gђ eђ eђ e2 e2 eТ e2 h) @ @ўU" @ 6Т@-ђFF~ 2F@6Т@-rFF~)‚ @:@ўU" @ 6Т@-ђFF~=2@F~S ђF@+ђF8‚ @Р?B‚:‚:)‚:@"@: 8  @П 8 @;ЊИ? 8 @˜l @ @€?€?€?€? 8B  6 6" 6"@6B 0"‚::6‚82ЖF82–F2 ‚ : 2 B:@@*"@62F  *6"  62 @€?€? 2@€?€?€?€?ц 7  @ 6"@ Т@<:*;*  6Т@џџџџ7 rf F2 FІ  2F@??2–F Т@ППђ FFђFF2F€Aц 2 2 FFF2F€Aц 2 2FFF6B@€?Fƒ F"Fƒ FBFƒ F‚Fƒ F6" €A:*8B  @?6’  6ђ F6‚ @6B :>STATtQ  рŒЬDXBCёeрон"gш­4ЈОsј Ь4иЈмPRDEFœџџСr\gџџџџ samplers2Dtextures2DMicrosoft (R) HLSL Shader Compiler 10.1ЋЋISGNШАМММММ МSV_PositionTEXCOORDЋЋЋOSGN, SV_TARGETЋЋSHDRlAлjZ`XpUUbђb2b2bBb2eђ h8BE FF~`8  %"*@,6Т6@6" 0"B *6‚:82Жц 82–F2 ‚*: +B ‚ :B:*2 2F€AІ F42FFE ‚F–s`2 2FІ F32FцE BF–|`B*:2 "*: @6Т6ђ V>STATt І“Іть WМЕ