|
|
|
@@ -27,6 +27,7 @@
|
|
|
|
|
using namespace aco;
|
|
|
|
|
|
|
|
|
|
BEGIN_TEST(d3d11_derivs.simple)
|
|
|
|
|
// clang-format off
|
|
|
|
|
QoShaderModuleCreateInfo vs = qoShaderModuleCreateInfoGLSL(VERTEX,
|
|
|
|
|
layout(location = 0) in vec2 in_coord;
|
|
|
|
|
layout(location = 0) out vec2 out_coord;
|
|
|
|
@@ -44,6 +45,7 @@ BEGIN_TEST(d3d11_derivs.simple)
|
|
|
|
|
out_color = texture(tex, in_coord);
|
|
|
|
|
}
|
|
|
|
|
);
|
|
|
|
|
// clang-format on
|
|
|
|
|
|
|
|
|
|
PipelineBuilder pbld(get_vk_device(GFX10_3));
|
|
|
|
|
pbld.add_vsfs(vs, fs);
|
|
|
|
@@ -67,6 +69,7 @@ BEGIN_TEST(d3d11_derivs.simple)
|
|
|
|
|
END_TEST
|
|
|
|
|
|
|
|
|
|
BEGIN_TEST(d3d11_derivs.constant)
|
|
|
|
|
// clang-format off
|
|
|
|
|
QoShaderModuleCreateInfo vs = qoShaderModuleCreateInfoGLSL(VERTEX,
|
|
|
|
|
layout(location = 0) in float in_coord;
|
|
|
|
|
layout(location = 0) out float out_coord;
|
|
|
|
@@ -84,6 +87,7 @@ BEGIN_TEST(d3d11_derivs.constant)
|
|
|
|
|
out_color = texture(tex, vec2(in_coord, -0.5));
|
|
|
|
|
}
|
|
|
|
|
);
|
|
|
|
|
// clang-format on
|
|
|
|
|
|
|
|
|
|
PipelineBuilder pbld(get_vk_device(GFX10_3));
|
|
|
|
|
pbld.add_vsfs(vs, fs);
|
|
|
|
@@ -105,6 +109,7 @@ BEGIN_TEST(d3d11_derivs.constant)
|
|
|
|
|
END_TEST
|
|
|
|
|
|
|
|
|
|
BEGIN_TEST(d3d11_derivs.discard)
|
|
|
|
|
// clang-format off
|
|
|
|
|
QoShaderModuleCreateInfo vs = qoShaderModuleCreateInfoGLSL(VERTEX,
|
|
|
|
|
layout(location = 0) in vec2 in_coord;
|
|
|
|
|
layout(location = 0) out vec2 out_coord;
|
|
|
|
@@ -122,6 +127,7 @@ BEGIN_TEST(d3d11_derivs.discard)
|
|
|
|
|
out_color = texture(tex, in_coord);
|
|
|
|
|
}
|
|
|
|
|
);
|
|
|
|
|
// clang-format on
|
|
|
|
|
|
|
|
|
|
PipelineBuilder pbld(get_vk_device(GFX10_3));
|
|
|
|
|
pbld.add_vsfs(vs, fs);
|
|
|
|
@@ -136,6 +142,7 @@ BEGIN_TEST(d3d11_derivs.discard)
|
|
|
|
|
END_TEST
|
|
|
|
|
|
|
|
|
|
BEGIN_TEST(d3d11_derivs.bias)
|
|
|
|
|
// clang-format off
|
|
|
|
|
QoShaderModuleCreateInfo vs = qoShaderModuleCreateInfoGLSL(VERTEX,
|
|
|
|
|
layout(location = 0) in vec2 in_coord;
|
|
|
|
|
layout(location = 0) out vec2 out_coord;
|
|
|
|
@@ -153,6 +160,7 @@ BEGIN_TEST(d3d11_derivs.bias)
|
|
|
|
|
out_color = texture(tex, in_coord, gl_FragCoord.x);
|
|
|
|
|
}
|
|
|
|
|
);
|
|
|
|
|
// clang-format on
|
|
|
|
|
|
|
|
|
|
PipelineBuilder pbld(get_vk_device(GFX10_3));
|
|
|
|
|
pbld.add_vsfs(vs, fs);
|
|
|
|
@@ -177,6 +185,7 @@ BEGIN_TEST(d3d11_derivs.bias)
|
|
|
|
|
END_TEST
|
|
|
|
|
|
|
|
|
|
BEGIN_TEST(d3d11_derivs.offset)
|
|
|
|
|
// clang-format off
|
|
|
|
|
QoShaderModuleCreateInfo vs = qoShaderModuleCreateInfoGLSL(VERTEX,
|
|
|
|
|
layout(location = 0) in vec2 in_coord;
|
|
|
|
|
layout(location = 0) out vec2 out_coord;
|
|
|
|
@@ -194,6 +203,7 @@ BEGIN_TEST(d3d11_derivs.offset)
|
|
|
|
|
out_color = textureOffset(tex, in_coord, ivec2(1, 2));
|
|
|
|
|
}
|
|
|
|
|
);
|
|
|
|
|
// clang-format on
|
|
|
|
|
|
|
|
|
|
/* Use GFX9 because we should have at least one test which doesn't use NSA. */
|
|
|
|
|
PipelineBuilder pbld(get_vk_device(GFX9));
|
|
|
|
@@ -221,6 +231,7 @@ BEGIN_TEST(d3d11_derivs.offset)
|
|
|
|
|
END_TEST
|
|
|
|
|
|
|
|
|
|
BEGIN_TEST(d3d11_derivs.array)
|
|
|
|
|
// clang-format off
|
|
|
|
|
QoShaderModuleCreateInfo vs = qoShaderModuleCreateInfoGLSL(VERTEX,
|
|
|
|
|
layout(location = 0) in vec3 in_coord;
|
|
|
|
|
layout(location = 0) out vec3 out_coord;
|
|
|
|
@@ -238,6 +249,7 @@ BEGIN_TEST(d3d11_derivs.array)
|
|
|
|
|
out_color = texture(tex, in_coord);
|
|
|
|
|
}
|
|
|
|
|
);
|
|
|
|
|
// clang-format on
|
|
|
|
|
|
|
|
|
|
PipelineBuilder pbld(get_vk_device(GFX10_3));
|
|
|
|
|
pbld.add_vsfs(vs, fs);
|
|
|
|
@@ -264,6 +276,7 @@ BEGIN_TEST(d3d11_derivs.array)
|
|
|
|
|
END_TEST
|
|
|
|
|
|
|
|
|
|
BEGIN_TEST(d3d11_derivs.bias_array)
|
|
|
|
|
// clang-format off
|
|
|
|
|
QoShaderModuleCreateInfo vs = qoShaderModuleCreateInfoGLSL(VERTEX,
|
|
|
|
|
layout(location = 0) in vec3 in_coord;
|
|
|
|
|
layout(location = 0) out vec3 out_coord;
|
|
|
|
@@ -281,6 +294,7 @@ BEGIN_TEST(d3d11_derivs.bias_array)
|
|
|
|
|
out_color = texture(tex, in_coord, gl_FragCoord.x);
|
|
|
|
|
}
|
|
|
|
|
);
|
|
|
|
|
// clang-format on
|
|
|
|
|
|
|
|
|
|
PipelineBuilder pbld(get_vk_device(GFX10_3));
|
|
|
|
|
pbld.add_vsfs(vs, fs);
|
|
|
|
@@ -307,7 +321,8 @@ BEGIN_TEST(d3d11_derivs.bias_array)
|
|
|
|
|
pbld.print_ir(VK_SHADER_STAGE_FRAGMENT_BIT, "Assembly");
|
|
|
|
|
END_TEST
|
|
|
|
|
|
|
|
|
|
BEGIN_TEST(d3d11_derivs.1d_gfx9)
|
|
|
|
|
BEGIN_TEST(d3d11_derivs._1d_gfx9)
|
|
|
|
|
// clang-format off
|
|
|
|
|
QoShaderModuleCreateInfo vs = qoShaderModuleCreateInfoGLSL(VERTEX,
|
|
|
|
|
layout(location = 0) in float in_coord;
|
|
|
|
|
layout(location = 0) out float out_coord;
|
|
|
|
@@ -325,6 +340,7 @@ BEGIN_TEST(d3d11_derivs.1d_gfx9)
|
|
|
|
|
out_color = texture(tex, in_coord);
|
|
|
|
|
}
|
|
|
|
|
);
|
|
|
|
|
// clang-format on
|
|
|
|
|
|
|
|
|
|
PipelineBuilder pbld(get_vk_device(GFX9));
|
|
|
|
|
pbld.add_vsfs(vs, fs);
|
|
|
|
@@ -346,7 +362,8 @@ BEGIN_TEST(d3d11_derivs.1d_gfx9)
|
|
|
|
|
pbld.print_ir(VK_SHADER_STAGE_FRAGMENT_BIT, "Assembly");
|
|
|
|
|
END_TEST
|
|
|
|
|
|
|
|
|
|
BEGIN_TEST(d3d11_derivs.1d_array_gfx9)
|
|
|
|
|
BEGIN_TEST(d3d11_derivs._1d_array_gfx9)
|
|
|
|
|
// clang-format off
|
|
|
|
|
QoShaderModuleCreateInfo vs = qoShaderModuleCreateInfoGLSL(VERTEX,
|
|
|
|
|
layout(location = 0) in vec2 in_coord;
|
|
|
|
|
layout(location = 0) out vec2 out_coord;
|
|
|
|
@@ -364,6 +381,7 @@ BEGIN_TEST(d3d11_derivs.1d_array_gfx9)
|
|
|
|
|
out_color = texture(tex, in_coord);
|
|
|
|
|
}
|
|
|
|
|
);
|
|
|
|
|
// clang-format on
|
|
|
|
|
|
|
|
|
|
PipelineBuilder pbld(get_vk_device(GFX9));
|
|
|
|
|
pbld.add_vsfs(vs, fs);
|
|
|
|
@@ -391,6 +409,7 @@ BEGIN_TEST(d3d11_derivs.1d_array_gfx9)
|
|
|
|
|
END_TEST
|
|
|
|
|
|
|
|
|
|
BEGIN_TEST(d3d11_derivs.cube)
|
|
|
|
|
// clang-format off
|
|
|
|
|
QoShaderModuleCreateInfo vs = qoShaderModuleCreateInfoGLSL(VERTEX,
|
|
|
|
|
layout(location = 0) in vec3 in_coord;
|
|
|
|
|
layout(location = 0) out vec3 out_coord;
|
|
|
|
@@ -408,6 +427,7 @@ BEGIN_TEST(d3d11_derivs.cube)
|
|
|
|
|
out_color = texture(tex, in_coord);
|
|
|
|
|
}
|
|
|
|
|
);
|
|
|
|
|
// clang-format on
|
|
|
|
|
|
|
|
|
|
PipelineBuilder pbld(get_vk_device(GFX10_3));
|
|
|
|
|
pbld.add_vsfs(vs, fs);
|
|
|
|
@@ -433,6 +453,7 @@ BEGIN_TEST(d3d11_derivs.cube)
|
|
|
|
|
END_TEST
|
|
|
|
|
|
|
|
|
|
BEGIN_TEST(d3d11_derivs.cube_array)
|
|
|
|
|
// clang-format off
|
|
|
|
|
QoShaderModuleCreateInfo vs = qoShaderModuleCreateInfoGLSL(VERTEX,
|
|
|
|
|
layout(location = 0) in vec4 in_coord;
|
|
|
|
|
layout(location = 0) out vec4 out_coord;
|
|
|
|
@@ -450,6 +471,7 @@ BEGIN_TEST(d3d11_derivs.cube_array)
|
|
|
|
|
out_color = texture(tex, in_coord);
|
|
|
|
|
}
|
|
|
|
|
);
|
|
|
|
|
// clang-format on
|
|
|
|
|
|
|
|
|
|
PipelineBuilder pbld(get_vk_device(GFX10_3));
|
|
|
|
|
pbld.add_vsfs(vs, fs);
|
|
|
|
@@ -480,6 +502,7 @@ BEGIN_TEST(d3d11_derivs.cube_array)
|
|
|
|
|
END_TEST
|
|
|
|
|
|
|
|
|
|
BEGIN_TEST(d3d11_derivs.fddxy)
|
|
|
|
|
// clang-format off
|
|
|
|
|
QoShaderModuleCreateInfo vs = qoShaderModuleCreateInfoGLSL(VERTEX,
|
|
|
|
|
layout(location = 0) in vec2 in_coord;
|
|
|
|
|
layout(location = 0) out vec2 out_coord;
|
|
|
|
@@ -497,6 +520,7 @@ BEGIN_TEST(d3d11_derivs.fddxy)
|
|
|
|
|
out_color = vec4(dFdxFine(in_coord.x), dFdyCoarse(in_coord.y), textureLod(tex, vec2(0.5), 0.0).xy);
|
|
|
|
|
}
|
|
|
|
|
);
|
|
|
|
|
// clang-format on
|
|
|
|
|
|
|
|
|
|
PipelineBuilder pbld(get_vk_device(GFX10_3));
|
|
|
|
|
pbld.add_vsfs(vs, fs);
|
|
|
|
@@ -510,6 +534,7 @@ END_TEST
|
|
|
|
|
|
|
|
|
|
/* Ensure the BC optimize transform is done after ac_nir_lower_tex. */
|
|
|
|
|
BEGIN_TEST(d3d11_derivs.bc_optimize)
|
|
|
|
|
// clang-format off
|
|
|
|
|
QoShaderModuleCreateInfo vs = qoShaderModuleCreateInfoGLSL(VERTEX,
|
|
|
|
|
layout(location = 0) in vec2 in_coord;
|
|
|
|
|
layout(location = 0) out vec2 out_coord;
|
|
|
|
@@ -527,6 +552,7 @@ BEGIN_TEST(d3d11_derivs.bc_optimize)
|
|
|
|
|
out_color = texture(tex, vec2(in_coord.x, interpolateAtCentroid(in_coord.y)));
|
|
|
|
|
}
|
|
|
|
|
);
|
|
|
|
|
// clang-format on
|
|
|
|
|
|
|
|
|
|
PipelineBuilder pbld(get_vk_device(GFX10_3));
|
|
|
|
|
pbld.add_vsfs(vs, fs);
|
|
|
|
@@ -545,6 +571,7 @@ BEGIN_TEST(d3d11_derivs.bc_optimize)
|
|
|
|
|
END_TEST
|
|
|
|
|
|
|
|
|
|
BEGIN_TEST(d3d11_derivs.get_lod)
|
|
|
|
|
// clang-format off
|
|
|
|
|
QoShaderModuleCreateInfo vs = qoShaderModuleCreateInfoGLSL(VERTEX,
|
|
|
|
|
layout(location = 0) in vec2 in_coord;
|
|
|
|
|
layout(location = 0) out vec2 out_coord;
|
|
|
|
@@ -562,6 +589,7 @@ BEGIN_TEST(d3d11_derivs.get_lod)
|
|
|
|
|
out_color = textureQueryLod(tex, in_coord);
|
|
|
|
|
}
|
|
|
|
|
);
|
|
|
|
|
// clang-format on
|
|
|
|
|
|
|
|
|
|
PipelineBuilder pbld(get_vk_device(GFX10_3));
|
|
|
|
|
pbld.add_vsfs(vs, fs);
|
|
|
|
|