Commit 0bb02368 by Frank Henigman Committed by Commit Bot

Vulkan: add SCALED vertex formats to table.

Add SCALED formats, which correspond to non-normalized integers, to Vulkan format table. Adjust test expectations accordingly. For now these new formats only work when the native Vulkan supports them. BUG=angleproject:2405 Change-Id: Ia6fdcbec61774536e6396cf713e46f28f49585c1 Reviewed-on: https://chromium-review.googlesource.com/1110710 Commit-Queue: Frank Henigman <fjhenigman@chromium.org> Reviewed-by: 's avatarJamie Madill <jmadill@chromium.org>
parent 0265e1ec
......@@ -37,16 +37,22 @@
"R8_SNORM": "VK_FORMAT_R8_SNORM",
"R8_UINT": "VK_FORMAT_R8_UINT",
"R8_SINT": "VK_FORMAT_R8_SINT",
"R8_USCALED": "VK_FORMAT_R8_USCALED",
"R8_SSCALED": "VK_FORMAT_R8_SSCALED",
"R8_SRGB": "VK_FORMAT_R8_SRGB",
"R8G8_UNORM": "VK_FORMAT_R8G8_UNORM",
"R8G8_SNORM": "VK_FORMAT_R8G8_SNORM",
"R8G8_UINT": "VK_FORMAT_R8G8_UINT",
"R8G8_SINT": "VK_FORMAT_R8G8_SINT",
"R8G8_USCALED": "VK_FORMAT_R8G8_USCALED",
"R8G8_SSCALED": "VK_FORMAT_R8G8_SSCALED",
"R8G8_SRGB": "VK_FORMAT_R8G8_SRGB",
"R8G8B8_UNORM": "VK_FORMAT_R8G8B8_UNORM",
"R8G8B8_SNORM": "VK_FORMAT_R8G8B8_SNORM",
"R8G8B8_UINT": "VK_FORMAT_R8G8B8_UINT",
"R8G8B8_SINT": "VK_FORMAT_R8G8B8_SINT",
"R8G8B8_USCALED": "VK_FORMAT_R8G8B8_USCALED",
"R8G8B8_SSCALED": "VK_FORMAT_R8G8B8_SSCALED",
"R8G8B8_SRGB": "VK_FORMAT_R8G8B8_SRGB",
"B8G8R8_UNORM": "VK_FORMAT_B8G8R8_UNORM",
"B8G8R8_SNORM": "VK_FORMAT_B8G8R8_SNORM",
......@@ -57,6 +63,8 @@
"R8G8B8A8_SNORM": "VK_FORMAT_R8G8B8A8_SNORM",
"R8G8B8A8_UINT": "VK_FORMAT_R8G8B8A8_UINT",
"R8G8B8A8_SINT": "VK_FORMAT_R8G8B8A8_SINT",
"R8G8B8A8_USCALED": "VK_FORMAT_R8G8B8A8_USCALED",
"R8G8B8A8_SSCALED": "VK_FORMAT_R8G8B8A8_SSCALED",
"R8G8B8A8_SRGB": "VK_FORMAT_R8G8B8A8_SRGB",
"B8G8R8A8_UNORM": "VK_FORMAT_B8G8R8A8_UNORM",
"B8G8R8A8_SNORM": "VK_FORMAT_B8G8R8A8_SNORM",
......@@ -79,21 +87,29 @@
"A2B10G10R10_SINT_PACK32": "VK_FORMAT_A2B10G10R10_SINT_PACK32",
"R16_UNORM": "VK_FORMAT_R16_UNORM",
"R16_SNORM": "VK_FORMAT_R16_SNORM",
"R16_USCALED": "VK_FORMAT_R16_USCALED",
"R16_SSCALED": "VK_FORMAT_R16_SSCALED",
"R16_UINT": "VK_FORMAT_R16_UINT",
"R16_SINT": "VK_FORMAT_R16_SINT",
"R16_FLOAT": "VK_FORMAT_R16_SFLOAT",
"R16G16_UNORM": "VK_FORMAT_R16G16_UNORM",
"R16G16_SNORM": "VK_FORMAT_R16G16_SNORM",
"R16G16_USCALED": "VK_FORMAT_R16G16_USCALED",
"R16G16_SSCALED": "VK_FORMAT_R16G16_SSCALED",
"R16G16_UINT": "VK_FORMAT_R16G16_UINT",
"R16G16_SINT": "VK_FORMAT_R16G16_SINT",
"R16G16_FLOAT": "VK_FORMAT_R16G16_SFLOAT",
"R16G16B16_UNORM": "VK_FORMAT_R16G16B16_UNORM",
"R16G16B16_SNORM": "VK_FORMAT_R16G16B16_SNORM",
"R16G16B16_USCALED": "VK_FORMAT_R16G16B16_USCALED",
"R16G16B16_SSCALED": "VK_FORMAT_R16G16B16_SSCALED",
"R16G16B16_UINT": "VK_FORMAT_R16G16B16_UINT",
"R16G16B16_SINT": "VK_FORMAT_R16G16B16_SINT",
"R16G16B16_FLOAT": "VK_FORMAT_R16G16B16_SFLOAT",
"R16G16B16A16_UNORM": "VK_FORMAT_R16G16B16A16_UNORM",
"R16G16B16A16_SNORM": "VK_FORMAT_R16G16B16A16_SNORM",
"R16G16B16A16_USCALED": "VK_FORMAT_R16G16B16A16_USCALED",
"R16G16B16A16_SSCALED": "VK_FORMAT_R16G16B16A16_SSCALED",
"R16G16B16A16_UINT": "VK_FORMAT_R16G16B16A16_UINT",
"R16G16B16A16_SINT": "VK_FORMAT_R16G16B16A16_SINT",
"R16G16B16A16_FLOAT": "VK_FORMAT_R16G16B16A16_SFLOAT",
......
......@@ -388,17 +388,21 @@ void AttributeLayoutTest::GetTestCases(void)
// 5. stride != size
mTestCases.push_back({Float(B0, 0, 16, mCoord), Float(B1, 0, 12, mColor)});
// 6-7. normalized byte/short
// 6-9. byte/short
if (IsVulkan() && (IsAndroid() || (IsWindows() && IsAMD())))
{
// empty test cases preserve the numbering
mTestCases.push_back({});
mTestCases.push_back({});
mTestCases.push_back({});
mTestCases.push_back({});
}
else
{
// TODO(fjhenigman): Enable these once vertex format conversion is implemented.
// anglebug.com/2405
mTestCases.push_back({SByte(M0, 0, 20, mCoord), UByte(M0, 10, 20, mColor)});
mTestCases.push_back({SShort(M0, 0, 20, mCoord), UShort(M0, 8, 20, mColor)});
mTestCases.push_back({NormSByte(M0, 0, 8, mCoord), NormUByte(M0, 4, 8, mColor)});
mTestCases.push_back({NormSShort(M0, 0, 20, mCoord), NormUShort(M0, 8, 20, mColor)});
}
......@@ -411,23 +415,19 @@ void AttributeLayoutTest::GetTestCases(void)
return;
}
// 8. one buffer, sequential
mTestCases.push_back({Float(B0, 0, 8, mCoord), Float(B0, 96, 12, mColor)});
// 10. one buffer, sequential
mTestCases.push_back({Fixed(B0, 0, 8, mCoord), Float(B0, 96, 12, mColor)});
// 9. one buffer, interleaved
mTestCases.push_back({Float(B0, 0, 20, mCoord), Float(B0, 8, 20, mColor)});
// 11. one buffer, interleaved
mTestCases.push_back({Fixed(B0, 0, 20, mCoord), Float(B0, 8, 20, mColor)});
// 10. memory and buffer, float and integer
// 12. memory and buffer, float and integer
mTestCases.push_back({Float(M0, 0, 8, mCoord), SByte(B0, 0, 12, mColor)});
// 11. buffer and memory, unusual offset and stride
// 13. buffer and memory, unusual offset and stride
mTestCases.push_back({Float(B0, 11, 13, mCoord), Float(M0, 23, 17, mColor)});
// 12-13. unnormalized
mTestCases.push_back({Fixed(M0, 0, 20, mCoord), UByte(M0, 16, 20, mColor)});
mTestCases.push_back({SShort(M0, 0, 20, mCoord), UShort(M0, 8, 20, mColor)});
// 14-15. remaining ES3 types
// 14-15. remaining ES3 formats
if (es3)
{
mTestCases.push_back({SInt(M0, 0, 40, mCoord), UInt(M0, 16, 40, mColor)});
......@@ -468,42 +468,21 @@ class AttributeLayoutBufferIndexed : public AttributeLayoutTest
TEST_P(AttributeLayoutNonIndexed, Test)
{
Run(true);
if (IsWindows() && IsAMD() && IsOpenGL())
{
std::cout << "test skipped on Windows ATI OpenGL: non-indexed non-zero vertex start"
<< std::endl;
return;
}
ANGLE_SKIP_TEST_IF(IsWindows() && IsAMD() && IsOpenGL());
Run(false);
}
TEST_P(AttributeLayoutMemoryIndexed, Test)
{
Run(true);
if (IsWindows() && IsAMD() && (IsOpenGL() || GetParam() == ES2_D3D11_FL9_3()))
{
std::cout << "test skipped on Windows ATI OpenGL and D3D11_9_3: indexed non-zero vertex start"
<< std::endl;
return;
}
ANGLE_SKIP_TEST_IF(IsWindows() && IsAMD() && (IsOpenGL() || IsD3D11_FL93()));
Run(false);
}
TEST_P(AttributeLayoutBufferIndexed, Test)
{
Run(true);
if (IsWindows() && IsAMD() && (IsOpenGL() || GetParam() == ES2_D3D11_FL9_3()))
{
std::cout << "test skipped on Windows ATI OpenGL and D3D11_9_3: indexed non-zero vertex start"
<< std::endl;
return;
}
ANGLE_SKIP_TEST_IF(IsWindows() && IsAMD() && (IsOpenGL() || IsD3D11_FL93()));
Run(false);
}
......
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