const string extensionHeader = (caseDef.extShaderSubGroupBallotTests ? "#extension GL_ARB_shader_ballot: enable\n"
"#extension GL_KHR_shader_subgroup_basic: enable\n"
"#extension GL_ARB_gpu_shader_int64: enable\n"
- : "#extension GL_KHR_shader_subgroup_ballot: enable\n");
+ : "#extension GL_KHR_shader_subgroup_ballot: enable\n")
+ + subgroups::getAdditionalExtensionForFormat(caseDef.format);
subgroups::setFragmentShaderFrameBuffer(programCollection);
std::ostringstream vertex;
vertex << glu::getGLSLVersionDeclaration(glu::GLSL_VERSION_450)<<"\n"
<< extensionHeader.c_str()
- << subgroups::getAdditionalExtensionForFormat(caseDef.format)
<< "layout(location = 0) in highp vec4 in_position;\n"
<< "layout(location = 0) out float out_color;\n"
<< "layout(set = 0, binding = 0) uniform Buffer1\n"
geometry << glu::getGLSLVersionDeclaration(glu::GLSL_VERSION_450)<<"\n"
<< extensionHeader.c_str()
- << subgroups::getAdditionalExtensionForFormat(caseDef.format)
<< "layout(points) in;\n"
<< "layout(points, max_vertices = 1) out;\n"
<< "layout(location = 0) out float out_color;\n"
controlSource << glu::getGLSLVersionDeclaration(glu::GLSL_VERSION_450)<<"\n"
<< extensionHeader.c_str()
- << subgroups::getAdditionalExtensionForFormat(caseDef.format)
<< "layout(vertices = 2) out;\n"
<< "layout(location = 0) out float out_color[];\n"
<< "layout(set = 0, binding = 0) uniform Buffer2\n"
std::ostringstream evaluationSource;
evaluationSource << glu::getGLSLVersionDeclaration(glu::GLSL_VERSION_450)<<"\n"
<< extensionHeader.c_str()
- << subgroups::getAdditionalExtensionForFormat(caseDef.format)
<< "layout(isolines, equal_spacing, ccw ) in;\n"
<< "layout(location = 0) out float out_color;\n"
<< "layout(set = 0, binding = 0) uniform Buffer1\n"
const string extensionHeader = (caseDef.extShaderSubGroupBallotTests ? "#extension GL_ARB_shader_ballot: enable\n"
"#extension GL_KHR_shader_subgroup_basic: enable\n"
"#extension GL_ARB_gpu_shader_int64: enable\n"
- : "#extension GL_KHR_shader_subgroup_ballot: enable\n");
+ : "#extension GL_KHR_shader_subgroup_ballot: enable\n")
+ + subgroups::getAdditionalExtensionForFormat(caseDef.format);
if (VK_SHADER_STAGE_COMPUTE_BIT == caseDef.shaderStage)
{
src << "#version 450\n"
<< extensionHeader.c_str()
- << subgroups::getAdditionalExtensionForFormat(caseDef.format)
<< "layout (local_size_x_id = 0, local_size_y_id = 1, "
"local_size_z_id = 2) in;\n"
<< "layout(set = 0, binding = 0, std430) buffer Buffer1\n"
{
const string vertex =
"#version 450\n"
- + extensionHeader
- + subgroups::getAdditionalExtensionForFormat(caseDef.format) +
+ + extensionHeader +
"layout(set = 0, binding = 0, std430) buffer Buffer1\n"
"{\n"
" uint result[];\n"
const string tesc =
"#version 450\n"
- + extensionHeader
- + subgroups::getAdditionalExtensionForFormat(caseDef.format) +
+ + extensionHeader +
"layout(vertices=1) out;\n"
"layout(set = 0, binding = 1, std430) buffer Buffer1\n"
"{\n"
const string tese =
"#version 450\n"
- + extensionHeader
- + subgroups::getAdditionalExtensionForFormat(caseDef.format) +
+ + extensionHeader +
"layout(isolines) in;\n"
"layout(set = 0, binding = 2, std430) buffer Buffer1\n"
"{\n"
const string geometry =
"#version 450\n"
- + extensionHeader
- + subgroups::getAdditionalExtensionForFormat(caseDef.format) +
+ + extensionHeader +
"layout(${TOPOLOGY}) in;\n"
"layout(points, max_vertices = 1) out;\n"
"layout(set = 0, binding = 3, std430) buffer Buffer1\n"
const string fragment =
"#version 450\n"
- + extensionHeader
- + subgroups::getAdditionalExtensionForFormat(caseDef.format) +
+ + extensionHeader +
"layout(location = 0) out uint result;\n"
"layout(set = 0, binding = 4, std430) readonly buffer Buffer1\n"
"{\n"