1#version 450 core 2#extension GL_ARB_sparse_texture2 : enable 3layout(location = 0) in highp vec4 a_position; 4layout(location = 4) in highp vec2 a_in0; 5layout(location = 5) in highp float a_in1; 6layout(location = 10) in highp ivec2 offsetValue; 7layout(location = 0) out mediump vec4 v_color0; 8layout(location = 1) out mediump vec4 v_color1; 9layout(location = 2) out mediump vec4 v_color2; 10layout(location = 3) out mediump vec4 v_color3; 11layout(set = 0, binding = 0) uniform highp sampler2D u_sampler; 12layout(set = 0, binding = 1) uniform buf0 { highp vec4 u_scale; }; 13layout(set = 0, binding = 2) uniform buf1 { highp vec4 u_bias; }; 14out gl_PerVertex { 15 vec4 gl_Position; 16}; 17 18void main() 19{ 20 gl_Position = a_position; 21 vec4 aux0; 22 vec4 aux1; 23 vec4 aux2; 24 vec4 aux3; 25 26 int ret0 = sparseTextureOffsetARB(u_sampler, a_in0, offsetValue, aux0); 27 int ret1 = sparseTexelFetchOffsetARB(u_sampler, ivec2(a_in0), int(a_in1), offsetValue, aux1); 28 int ret2 = sparseTextureLodOffsetARB(u_sampler, a_in0, a_in1, offsetValue, aux2); 29 int ret3 = sparseTextureGradOffsetARB(u_sampler, a_in0, vec2(a_in1, a_in1), vec2(a_in1, a_in1), offsetValue, aux3); 30 31 v_color0 = aux0 * u_scale + u_bias; 32 v_color1 = aux1 * u_scale + u_bias; 33 v_color2 = aux2 * u_scale + u_bias; 34 v_color3 = aux3 * u_scale + u_bias; 35} 36