Commit 7a6a1ffe by Jamie Madill

D3D11: Use clamp wrap mode for Integer textures.

Until we can support all wrap modes for int textures, use a correct clamping scheme. This fixes several dEQP GLES3 FBO tests. This shuffles some of the tests in functional.texture.units since it hard-codes a different behaviour for all wrap modes, ignoring the sampler setting. BUG=angleproject:1244 TEST=dEQP-GLES3.functional.texture.* Change-Id: Ic7e89a111728dfb18821534996bf5b9a5ad172b6 Reviewed-on: https://chromium-review.googlesource.com/313997 Tryjob-Request: Jamie Madill <jmadill@chromium.org> Reviewed-by: 's avatarCorentin Wallez <cwallez@chromium.org> Reviewed-by: 's avatarGeoff Lang <geofflang@chromium.org> Tested-by: 's avatarJamie Madill <jmadill@chromium.org>
parent dfa2fe31
......@@ -1118,7 +1118,9 @@ void OutputHLSL::header(const BuiltInFunctionEmulator *builtInFunctionEmulator)
TString addressx = "";
TString addressy = "";
TString addressz = "";
TString close = "";
TString closex = "";
TString closey = "";
TString closez = "";
if (IsIntegerSampler(textureFunction->sampler) ||
textureFunction->method == TextureFunction::FETCH)
......@@ -1133,23 +1135,23 @@ void OutputHLSL::header(const BuiltInFunctionEmulator *builtInFunctionEmulator)
// Convert from normalized floating-point to integer
if (textureFunction->method != TextureFunction::FETCH)
{
addressx = "int(floor(width * frac((";
addressy = "int(floor(height * frac((";
// We hard-code the clamp wrap mode for integer textures.
// TODO(jmadill): Figure out how to integer texture wrap modes.
addressx = "int(clamp(round((width *";
addressy = "int(clamp(round((height * ";
closex = ") - 0.5f), 0.0f, width - 1.0f))";
closey = ") - 0.5f), 0.0f, height - 1.0f))";
if (IsSamplerArray(textureFunction->sampler))
{
addressz = "int(max(0, min(layers - 1, floor(0.5 + ";
closez = "))))";
}
else if (IsSamplerCube(textureFunction->sampler))
else if (IsSampler3D(textureFunction->sampler))
{
addressz = "((((";
addressz = "int(clamp(round((depth * ";
closez = ") - 0.5f), 0.0f, depth - 1.0f))";
}
else
{
addressz = "int(floor(depth * frac((";
}
close = "))))";
}
}
else
......@@ -1175,7 +1177,7 @@ void OutputHLSL::header(const BuiltInFunctionEmulator *builtInFunctionEmulator)
}
}
out << addressx + ("t.x" + proj) + close + ", " + addressy + ("t.y" + proj) + close;
out << addressx + ("t.x" + proj) + closex + ", " + addressy + ("t.y" + proj) + closey;
if (mOutputType == SH_HLSL9_OUTPUT)
{
......@@ -1215,7 +1217,7 @@ void OutputHLSL::header(const BuiltInFunctionEmulator *builtInFunctionEmulator)
}
else
{
out << ", " + addressz + ("t.z" + proj) + close;
out << ", " + addressz + ("t.z" + proj) + closez;
}
}
......
......@@ -261,24 +261,18 @@
1095 WIN : dEQP-GLES3.functional.texture.specification.basic_copytexsubimage2d.cube_luminance_alpha = FAIL
1095 WIN : dEQP-GLES3.functional.texture.specification.basic_copytexsubimage2d.cube_rgb = FAIL
1095 WIN : dEQP-GLES3.functional.texture.specification.basic_copytexsubimage2d.cube_rgba = FAIL
1095 WIN : dEQP-GLES3.functional.texture.specification.teximage3d_pbo.rgb5_a1_3d = FAIL
1095 WIN : dEQP-GLES3.functional.texture.specification.teximage3d_depth.depth_component32f_2d_array = FAIL
1095 WIN : dEQP-GLES3.functional.texture.specification.teximage3d_depth.depth32f_stencil8_2d_array = FAIL
1095 WIN : dEQP-GLES3.functional.texture.specification.teximage3d_depth_pbo.depth_component32f_2d_array = FAIL
1095 WIN : dEQP-GLES3.functional.texture.specification.teximage3d_depth_pbo.depth32f_stencil8_2d_array = FAIL
1095 WIN : dEQP-GLES3.functional.texture.specification.teximage3d_depth_pbo.depth_component24_2d_array = FAIL
1095 WIN : dEQP-GLES3.functional.texture.specification.texsubimage3d_pbo.rgb5_a1_3d = FAIL
1095 WIN : dEQP-GLES3.functional.texture.specification.texsubimage3d_depth.depth_component32f_2d_array = FAIL
1095 WIN : dEQP-GLES3.functional.texture.specification.texsubimage3d_depth.depth32f_stencil8_2d_array = FAIL
1095 WIN : dEQP-GLES3.functional.texture.units.2_units.only_2d.3 = FAIL
1095 WIN : dEQP-GLES3.functional.texture.units.2_units.only_2d.5 = FAIL
1095 WIN : dEQP-GLES3.functional.texture.units.2_units.only_2d.7 = FAIL
1095 WIN : dEQP-GLES3.functional.texture.units.2_units.only_2d.8 = FAIL
1095 WIN : dEQP-GLES3.functional.texture.units.2_units.only_2d_array.3 = FAIL
1095 WIN : dEQP-GLES3.functional.texture.units.2_units.only_2d_array.4 = FAIL
1095 WIN : dEQP-GLES3.functional.texture.units.2_units.only_2d_array.5 = FAIL
1095 WIN : dEQP-GLES3.functional.texture.units.2_units.only_2d_array.7 = FAIL
1095 WIN : dEQP-GLES3.functional.texture.units.2_units.only_2d_array.8 = FAIL
1095 WIN : dEQP-GLES3.functional.texture.units.2_units.only_2d_array.9 = FAIL
1095 WIN : dEQP-GLES3.functional.texture.units.2_units.only_3d.3 = FAIL
1095 WIN : dEQP-GLES3.functional.texture.units.2_units.only_3d.4 = FAIL
1095 WIN : dEQP-GLES3.functional.texture.units.2_units.only_3d.5 = FAIL
......@@ -291,15 +285,12 @@
1095 WIN : dEQP-GLES3.functional.texture.units.4_units.only_2d.0 = FAIL
1095 WIN : dEQP-GLES3.functional.texture.units.4_units.only_2d.1 = FAIL
1095 WIN : dEQP-GLES3.functional.texture.units.4_units.only_2d.3 = FAIL
1095 WIN : dEQP-GLES3.functional.texture.units.4_units.only_2d.5 = FAIL
1095 WIN : dEQP-GLES3.functional.texture.units.4_units.only_2d.6 = FAIL
1095 WIN : dEQP-GLES3.functional.texture.units.4_units.only_2d.7 = FAIL
1095 WIN : dEQP-GLES3.functional.texture.units.4_units.only_2d.8 = FAIL
1095 WIN : dEQP-GLES3.functional.texture.units.4_units.only_2d.9 = FAIL
1095 WIN : dEQP-GLES3.functional.texture.units.4_units.only_2d_array.0 = FAIL
1095 WIN : dEQP-GLES3.functional.texture.units.4_units.only_2d_array.1 = FAIL
1095 WIN : dEQP-GLES3.functional.texture.units.4_units.only_2d_array.3 = FAIL
1095 WIN : dEQP-GLES3.functional.texture.units.4_units.only_2d_array.5 = FAIL
1095 WIN : dEQP-GLES3.functional.texture.units.4_units.only_2d_array.6 = FAIL
1095 WIN : dEQP-GLES3.functional.texture.units.4_units.only_2d_array.7 = FAIL
1095 WIN : dEQP-GLES3.functional.texture.units.4_units.only_2d_array.8 = FAIL
......@@ -316,14 +307,14 @@
1095 WIN : dEQP-GLES3.functional.texture.units.4_units.mixed.1 = FAIL
1095 WIN : dEQP-GLES3.functional.texture.units.4_units.mixed.2 = FAIL
1095 WIN : dEQP-GLES3.functional.texture.units.4_units.mixed.3 = FAIL
1095 WIN : dEQP-GLES3.functional.texture.units.4_units.mixed.6 = FAIL
1095 WIN : dEQP-GLES3.functional.texture.units.4_units.mixed.9 = FAIL
1095 WIN : dEQP-GLES3.functional.texture.units.8_units.only_2d.0 = FAIL
1095 WIN : dEQP-GLES3.functional.texture.units.8_units.only_2d.1 = FAIL
1095 WIN : dEQP-GLES3.functional.texture.units.8_units.only_2d.2 = FAIL
1095 WIN : dEQP-GLES3.functional.texture.units.8_units.only_2d.3 = FAIL
1095 WIN : dEQP-GLES3.functional.texture.units.8_units.only_2d.4 = FAIL
1095 WIN : dEQP-GLES3.functional.texture.units.8_units.only_2d.5 = FAIL
1095 WIN : dEQP-GLES3.functional.texture.units.8_units.only_2d.6 = FAIL
1095 WIN : dEQP-GLES3.functional.texture.units.8_units.only_2d.7 = FAIL
1095 WIN : dEQP-GLES3.functional.texture.units.8_units.only_2d.8 = FAIL
1095 WIN : dEQP-GLES3.functional.texture.units.8_units.only_2d.9 = FAIL
1095 WIN : dEQP-GLES3.functional.texture.units.8_units.only_2d_array.* = FAIL
......@@ -387,17 +378,6 @@
1096 WIN : dEQP-GLES3.functional.fragment_ops.blend.fbo_srgb.equation_src_func_dst_func.reverse_subtract_one_minus_constant_alpha_one_minus_constant_color = FAIL
1096 WIN : dEQP-GLES3.functional.fragment_ops.random.* = FAIL
1096 WIN : dEQP-GLES3.functional.fragment_ops.interaction.basic_shader.* = FAIL
1097 WIN : dEQP-GLES3.functional.fbo.color.tex3d.rgba32i = FAIL
1097 WIN : dEQP-GLES3.functional.fbo.color.tex3d.rgba16ui = FAIL
1097 WIN : dEQP-GLES3.functional.fbo.color.tex3d.rgba8i = FAIL
1097 WIN : dEQP-GLES3.functional.fbo.color.tex3d.rgb10_a2ui = FAIL
1097 WIN : dEQP-GLES3.functional.fbo.color.tex3d.rg32ui = FAIL
1097 WIN : dEQP-GLES3.functional.fbo.color.tex3d.rg8i = FAIL
1097 WIN : dEQP-GLES3.functional.fbo.color.tex3d.r32i = FAIL
1097 WIN : dEQP-GLES3.functional.fbo.color.tex3d.r16i = FAIL
1097 WIN : dEQP-GLES3.functional.fbo.color.tex3d.r16ui = FAIL
1097 WIN : dEQP-GLES3.functional.fbo.color.tex3d.r8i = FAIL
1097 WIN : dEQP-GLES3.functional.fbo.color.tex3d.r8ui = FAIL
1097 WIN : dEQP-GLES3.functional.fbo.color.repeated_clear.sample.tex2d.rgba8 = FAIL
1097 WIN : dEQP-GLES3.functional.fbo.color.repeated_clear.sample.tex2d.srgb8_alpha8 = FAIL
1097 WIN : dEQP-GLES3.functional.fbo.color.repeated_clear.sample.tex2d.rgb10_a2 = FAIL
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment