#version 450 core | |
#extension GL_AMD_shader_fragment_mask: enable | |
layout(binding = 0) uniform sampler2DMS s2DMS; | |
layout(binding = 1) uniform isampler2DMSArray is2DMSArray; | |
layout(binding = 2, input_attachment_index = 0) uniform usubpassInputMS usubpassMS; | |
layout(location = 0) out vec4 fragColor; | |
void main() | |
{ | |
vec4 f4 = vec4(0.0); | |
uint fragMask = fragmentMaskFetchAMD(s2DMS, ivec2(2, 3)); | |
uint fragIndex = (fragMask & 0xF0) >> 4; | |
f4 += fragmentFetchAMD(s2DMS, ivec2(2, 3), 1); | |
fragMask = fragmentMaskFetchAMD(is2DMSArray, ivec3(2, 3, 1)); | |
fragIndex = (fragMask & 0xF0) >> 4; | |
f4 += fragmentFetchAMD(is2DMSArray, ivec3(2, 3, 1), fragIndex); | |
fragMask = fragmentMaskFetchAMD(usubpassMS); | |
fragIndex = (fragMask & 0xF0) >> 4; | |
f4 += fragmentFetchAMD(usubpassMS, fragIndex); | |
fragColor = f4; | |
} |