Shader "VRTK/AdaptiveQualityDebugVisualization" {
	Properties {
	}
	SubShader {
		Tags { "PreviewType" = "Plane" "QUEUE" = "Overlay" }
		Pass {
			Tags { "PreviewType" = "Plane" "QUEUE" = "Overlay" }
			ZTest Always
			ZWrite Off
			Cull Off
			GpuProgramID 7547
			Program "vp" {
				SubProgram "d3d11 " {
					"vs_4_0
					
					#version 330
					#extension GL_ARB_explicit_attrib_location : require
					#extension GL_ARB_explicit_uniform_location : require
					
					#define HLSLCC_ENABLE_UNIFORM_BUFFERS 1
					#if HLSLCC_ENABLE_UNIFORM_BUFFERS
					#define UNITY_UNIFORM
					#else
					#define UNITY_UNIFORM uniform
					#endif
					#define UNITY_SUPPORTS_UNIFORM_LOCATION 1
					#if UNITY_SUPPORTS_UNIFORM_LOCATION
					#define UNITY_LOCATION(x) layout(location = x)
					#define UNITY_BINDING(x) layout(binding = x, std140)
					#else
					#define UNITY_LOCATION(x)
					#define UNITY_BINDING(x) layout(std140)
					#endif
					layout(std140) uniform UnityPerDraw {
						mat4x4 unity_ObjectToWorld;
						vec4 unused_0_1[7];
					};
					layout(std140) uniform UnityPerFrame {
						vec4 unused_1_0[17];
						mat4x4 unity_MatrixVP;
						vec4 unused_1_2[2];
					};
					in  vec4 in_POSITION0;
					in  vec2 in_TEXCOORD0;
					out vec2 vs_TEXCOORD0;
					vec4 u_xlat0;
					vec4 u_xlat1;
					void main()
					{
					    u_xlat0 = in_POSITION0.yyyy * unity_ObjectToWorld[1];
					    u_xlat0 = unity_ObjectToWorld[0] * in_POSITION0.xxxx + u_xlat0;
					    u_xlat0 = unity_ObjectToWorld[2] * in_POSITION0.zzzz + u_xlat0;
					    u_xlat0 = u_xlat0 + unity_ObjectToWorld[3];
					    u_xlat1 = u_xlat0.yyyy * unity_MatrixVP[1];
					    u_xlat1 = unity_MatrixVP[0] * u_xlat0.xxxx + u_xlat1;
					    u_xlat1 = unity_MatrixVP[2] * u_xlat0.zzzz + u_xlat1;
					    gl_Position = unity_MatrixVP[3] * u_xlat0.wwww + u_xlat1;
					    vs_TEXCOORD0.xy = in_TEXCOORD0.xy * vec2(1.0, -1.0) + vec2(0.0, 1.0);
					    return;
					}"
				}
				SubProgram "d3d11 " {
					Keywords { "UNITY_SINGLE_PASS_STEREO" }
					"vs_4_0
					
					#version 330
					#extension GL_ARB_explicit_attrib_location : require
					#extension GL_ARB_explicit_uniform_location : require
					
					#define HLSLCC_ENABLE_UNIFORM_BUFFERS 1
					#if HLSLCC_ENABLE_UNIFORM_BUFFERS
					#define UNITY_UNIFORM
					#else
					#define UNITY_UNIFORM uniform
					#endif
					#define UNITY_SUPPORTS_UNIFORM_LOCATION 1
					#if UNITY_SUPPORTS_UNIFORM_LOCATION
					#define UNITY_LOCATION(x) layout(location = x)
					#define UNITY_BINDING(x) layout(binding = x, std140)
					#else
					#define UNITY_LOCATION(x)
					#define UNITY_BINDING(x) layout(std140)
					#endif
					layout(std140) uniform UnityPerDraw {
						mat4x4 unity_ObjectToWorld;
						vec4 unused_0_1[7];
					};
					layout(std140) uniform UnityStereoGlobals {
						vec4 unused_1_0[24];
						mat4x4 unity_StereoMatrixVP[2];
						vec4 unused_1_2[40];
					};
					layout(std140) uniform UnityStereoEyeIndex {
						int unity_StereoEyeIndex;
					};
					in  vec4 in_POSITION0;
					in  vec2 in_TEXCOORD0;
					out vec2 vs_TEXCOORD0;
					vec4 u_xlat0;
					int u_xlati1;
					vec4 u_xlat2;
					void main()
					{
					    u_xlat0 = in_POSITION0.yyyy * unity_ObjectToWorld[1];
					    u_xlat0 = unity_ObjectToWorld[0] * in_POSITION0.xxxx + u_xlat0;
					    u_xlat0 = unity_ObjectToWorld[2] * in_POSITION0.zzzz + u_xlat0;
					    u_xlat0 = u_xlat0 + unity_ObjectToWorld[3];
					    u_xlati1 = unity_StereoEyeIndex << 2;
					    u_xlat2 = u_xlat0.yyyy * unity_StereoMatrixVP[(u_xlati1 + 1) / 4][(u_xlati1 + 1) % 4];
					    u_xlat2 = unity_StereoMatrixVP[u_xlati1 / 4][u_xlati1 % 4] * u_xlat0.xxxx + u_xlat2;
					    u_xlat2 = unity_StereoMatrixVP[(u_xlati1 + 2) / 4][(u_xlati1 + 2) % 4] * u_xlat0.zzzz + u_xlat2;
					    gl_Position = unity_StereoMatrixVP[(u_xlati1 + 3) / 4][(u_xlati1 + 3) % 4] * u_xlat0.wwww + u_xlat2;
					    vs_TEXCOORD0.xy = in_TEXCOORD0.xy * vec2(1.0, -1.0) + vec2(0.0, 1.0);
					    return;
					}"
				}
			}
			Program "fp" {
				SubProgram "d3d11 " {
					"ps_4_0
					
					#version 330
					#extension GL_ARB_explicit_attrib_location : require
					#extension GL_ARB_explicit_uniform_location : require
					
					#define HLSLCC_ENABLE_UNIFORM_BUFFERS 1
					#if HLSLCC_ENABLE_UNIFORM_BUFFERS
					#define UNITY_UNIFORM
					#else
					#define UNITY_UNIFORM uniform
					#endif
					#define UNITY_SUPPORTS_UNIFORM_LOCATION 1
					#if UNITY_SUPPORTS_UNIFORM_LOCATION
					#define UNITY_LOCATION(x) layout(location = x)
					#define UNITY_BINDING(x) layout(binding = x, std140)
					#else
					#define UNITY_LOCATION(x)
					#define UNITY_BINDING(x) layout(std140)
					#endif
					layout(std140) uniform AdaptiveQualityDebugVisualization {
						int _RenderScaleLevelsCount;
						int _DefaultRenderViewportScaleLevel;
						int _CurrentRenderViewportScaleLevel;
						int _CurrentRenderScaleLevel;
						int _LastFrameIsInBudget;
					};
					in  vec2 vs_TEXCOORD0;
					layout(location = 0) out vec4 SV_TARGET0;
					float u_xlat0;
					int u_xlati0;
					uint u_xlatu0;
					bvec2 u_xlatb1;
					vec3 u_xlat2;
					vec3 u_xlat3;
					bool u_xlatb3;
					vec3 u_xlat4;
					bool u_xlatb4;
					bool u_xlatb7;
					void main()
					{
					    u_xlat0 = float(uint(_RenderScaleLevelsCount));
					    u_xlat0 = u_xlat0 * vs_TEXCOORD0.x;
					    u_xlatu0 = uint(u_xlat0);
					    u_xlatb3 = 0.100000001>=vs_TEXCOORD0.y;
					    if(u_xlatb3){
					        u_xlatb3 = u_xlatu0<uint(_DefaultRenderViewportScaleLevel);
					        u_xlat3.xyz = (bool(u_xlatb3)) ? vec3(0.5, 0.5, 0.0) : vec3(0.0, 0.5, 0.0);
					        u_xlat3.xyz = (uint(u_xlatu0) != uint(0)) ? u_xlat3.xyz : vec3(0.5, 0.0, 0.0);
					    } else {
					        u_xlatb1.xy = equal(ivec4(u_xlatu0), ivec4(_CurrentRenderViewportScaleLevel, _CurrentRenderScaleLevel, _CurrentRenderViewportScaleLevel, _CurrentRenderViewportScaleLevel)).xy;
					        u_xlatb7 = vs_TEXCOORD0.y>=0.899999976;
					        u_xlatb4 = u_xlatb7 && u_xlatb1.y;
					        u_xlatb7 = u_xlatu0<uint(_DefaultRenderViewportScaleLevel);
					        u_xlat2.xyz = (bool(u_xlatb7)) ? vec3(0.5, 0.5, 0.0) : vec3(0.0, 0.5, 0.0);
					        u_xlat2.xyz = (_LastFrameIsInBudget != 0) ? u_xlat2.xyz : vec3(0.5, 0.0, 0.0);
					        u_xlat2.xyz = (bool(u_xlatb4)) ? vec3(0.0, 1.0, 1.0) : u_xlat2.xyz;
					        u_xlati0 = int(u_xlatu0 & 1u);
					        u_xlat0 = (u_xlati0 != 0) ? 0.0199999996 : 0.0299999993;
					        u_xlat4.xyz = (bool(u_xlatb4)) ? vec3(0.0, 1.0, 1.0) : vec3(u_xlat0);
					        u_xlat3.xyz = (u_xlatb1.x) ? u_xlat2.xyz : u_xlat4.xyz;
					    }
					    SV_TARGET0.xyz = u_xlat3.xyz;
					    SV_TARGET0.w = 1.0;
					    return;
					}"
				}
				SubProgram "d3d11 " {
					Keywords { "UNITY_SINGLE_PASS_STEREO" }
					"ps_4_0
					
					#version 330
					#extension GL_ARB_explicit_attrib_location : require
					#extension GL_ARB_explicit_uniform_location : require
					
					#define HLSLCC_ENABLE_UNIFORM_BUFFERS 1
					#if HLSLCC_ENABLE_UNIFORM_BUFFERS
					#define UNITY_UNIFORM
					#else
					#define UNITY_UNIFORM uniform
					#endif
					#define UNITY_SUPPORTS_UNIFORM_LOCATION 1
					#if UNITY_SUPPORTS_UNIFORM_LOCATION
					#define UNITY_LOCATION(x) layout(location = x)
					#define UNITY_BINDING(x) layout(binding = x, std140)
					#else
					#define UNITY_LOCATION(x)
					#define UNITY_BINDING(x) layout(std140)
					#endif
					layout(std140) uniform AdaptiveQualityDebugVisualization {
						int _RenderScaleLevelsCount;
						int _DefaultRenderViewportScaleLevel;
						int _CurrentRenderViewportScaleLevel;
						int _CurrentRenderScaleLevel;
						int _LastFrameIsInBudget;
					};
					in  vec2 vs_TEXCOORD0;
					layout(location = 0) out vec4 SV_TARGET0;
					float u_xlat0;
					int u_xlati0;
					uint u_xlatu0;
					bvec2 u_xlatb1;
					vec3 u_xlat2;
					vec3 u_xlat3;
					bool u_xlatb3;
					vec3 u_xlat4;
					bool u_xlatb4;
					bool u_xlatb7;
					void main()
					{
					    u_xlat0 = float(uint(_RenderScaleLevelsCount));
					    u_xlat0 = u_xlat0 * vs_TEXCOORD0.x;
					    u_xlatu0 = uint(u_xlat0);
					    u_xlatb3 = 0.100000001>=vs_TEXCOORD0.y;
					    if(u_xlatb3){
					        u_xlatb3 = u_xlatu0<uint(_DefaultRenderViewportScaleLevel);
					        u_xlat3.xyz = (bool(u_xlatb3)) ? vec3(0.5, 0.5, 0.0) : vec3(0.0, 0.5, 0.0);
					        u_xlat3.xyz = (uint(u_xlatu0) != uint(0)) ? u_xlat3.xyz : vec3(0.5, 0.0, 0.0);
					    } else {
					        u_xlatb1.xy = equal(ivec4(u_xlatu0), ivec4(_CurrentRenderViewportScaleLevel, _CurrentRenderScaleLevel, _CurrentRenderViewportScaleLevel, _CurrentRenderViewportScaleLevel)).xy;
					        u_xlatb7 = vs_TEXCOORD0.y>=0.899999976;
					        u_xlatb4 = u_xlatb7 && u_xlatb1.y;
					        u_xlatb7 = u_xlatu0<uint(_DefaultRenderViewportScaleLevel);
					        u_xlat2.xyz = (bool(u_xlatb7)) ? vec3(0.5, 0.5, 0.0) : vec3(0.0, 0.5, 0.0);
					        u_xlat2.xyz = (_LastFrameIsInBudget != 0) ? u_xlat2.xyz : vec3(0.5, 0.0, 0.0);
					        u_xlat2.xyz = (bool(u_xlatb4)) ? vec3(0.0, 1.0, 1.0) : u_xlat2.xyz;
					        u_xlati0 = int(u_xlatu0 & 1u);
					        u_xlat0 = (u_xlati0 != 0) ? 0.0199999996 : 0.0299999993;
					        u_xlat4.xyz = (bool(u_xlatb4)) ? vec3(0.0, 1.0, 1.0) : vec3(u_xlat0);
					        u_xlat3.xyz = (u_xlatb1.x) ? u_xlat2.xyz : u_xlat4.xyz;
					    }
					    SV_TARGET0.xyz = u_xlat3.xyz;
					    SV_TARGET0.w = 1.0;
					    return;
					}"
				}
			}
		}
	}
}