Commit cd246af7 by Alexis Hetu Committed by Alexis Hétu

EAC fix

Fixed 2 issues: - Added missing VK_FORMAT_R16* formats in SamplerCore - Made sure the minimum signed EAC value also gets bit shifted Bug b/119620767 Change-Id: I3189001316cc0c65d3be9a9bd2e986df4f7a3690 Tests: dEQP-VK.*eac* Reviewed-on: https://swiftshader-review.googlesource.com/c/SwiftShader/+/30908Tested-by: 's avatarAlexis Hétu <sugoi@google.com> Presubmit-Ready: Alexis Hétu <sugoi@google.com> Kokoro-Presubmit: kokoro <noreply+kokoro@google.com> Reviewed-by: 's avatarNicolas Capens <nicolascapens@google.com> Reviewed-by: 's avatarChris Forbes <chrisforbes@google.com>
parent 026ceefe
...@@ -30,7 +30,7 @@ namespace ...@@ -30,7 +30,7 @@ namespace
{ {
short min = isSigned ? -1023 : 0; short min = isSigned ? -1023 : 0;
short max = isSigned ? 1023 : 2047; short max = isSigned ? 1023 : 2047;
return (value < min) ? min : ((value > max) ? max : value) << 5; return ((value < min) ? min : ((value > max) ? max : value)) << 5;
} }
struct bgra8 struct bgra8
......
...@@ -212,8 +212,6 @@ namespace sw ...@@ -212,8 +212,6 @@ namespace sw
} }
} }
int componentCount = textureComponentCount();
if(state.textureFilter != FILTER_GATHER) if(state.textureFilter != FILTER_GATHER)
{ {
switch(state.textureFormat) switch(state.textureFormat)
...@@ -241,33 +239,32 @@ namespace sw ...@@ -241,33 +239,32 @@ namespace sw
case VK_FORMAT_R32G32B32A32_UINT: case VK_FORMAT_R32G32B32A32_UINT:
break; break;
case VK_FORMAT_R8_SNORM: case VK_FORMAT_R8_SNORM:
case VK_FORMAT_R8G8_SNORM:
case VK_FORMAT_R8G8B8A8_SNORM:
case VK_FORMAT_R8_UNORM: case VK_FORMAT_R8_UNORM:
case VK_FORMAT_R5G6B5_UNORM_PACK16: case VK_FORMAT_R16_SNORM:
case VK_FORMAT_R8G8_UNORM: case VK_FORMAT_R16_UNORM:
case VK_FORMAT_R16G16_UNORM:
case VK_FORMAT_R16G16B16A16_UNORM:
case VK_FORMAT_B8G8R8A8_UNORM:
case VK_FORMAT_B8G8R8A8_SRGB:
case VK_FORMAT_R8G8B8A8_UNORM:
case VK_FORMAT_R8G8B8A8_SRGB:
case VK_FORMAT_G8_B8R8_2PLANE_420_UNORM:
case VK_FORMAT_E5B9G9R9_UFLOAT_PACK32:
case VK_FORMAT_B10G11R11_UFLOAT_PACK32:
if(componentCount < 2) c.y = Float4(0.0f);
if(componentCount < 3) c.z = Float4(0.0f);
if(componentCount < 4) c.w = Float4(1.0f);
break;
case VK_FORMAT_R32_SFLOAT: case VK_FORMAT_R32_SFLOAT:
case VK_FORMAT_R16_SFLOAT: case VK_FORMAT_R16_SFLOAT:
case VK_FORMAT_D32_SFLOAT: case VK_FORMAT_D32_SFLOAT:
case VK_FORMAT_D16_UNORM: case VK_FORMAT_D16_UNORM:
c.y = Float4(0.0f); c.y = Float4(0.0f);
case VK_FORMAT_R8G8_SNORM:
case VK_FORMAT_R8G8_UNORM:
case VK_FORMAT_R16G16_SNORM:
case VK_FORMAT_R16G16_UNORM:
case VK_FORMAT_R32G32_SFLOAT: case VK_FORMAT_R32G32_SFLOAT:
case VK_FORMAT_R16G16_SFLOAT: case VK_FORMAT_R16G16_SFLOAT:
c.z = Float4(0.0f); c.z = Float4(0.0f);
case VK_FORMAT_R5G6B5_UNORM_PACK16:
case VK_FORMAT_E5B9G9R9_UFLOAT_PACK32:
case VK_FORMAT_B10G11R11_UFLOAT_PACK32:
case VK_FORMAT_G8_B8R8_2PLANE_420_UNORM:
c.w = Float4(1.0f); c.w = Float4(1.0f);
case VK_FORMAT_R8G8B8A8_SNORM:
case VK_FORMAT_R16G16B16A16_UNORM:
case VK_FORMAT_B8G8R8A8_UNORM:
case VK_FORMAT_B8G8R8A8_SRGB:
case VK_FORMAT_R8G8B8A8_UNORM:
case VK_FORMAT_R8G8B8A8_SRGB:
case VK_FORMAT_R32G32B32A32_SFLOAT: case VK_FORMAT_R32G32B32A32_SFLOAT:
case VK_FORMAT_R16G16B16A16_SFLOAT: case VK_FORMAT_R16G16B16A16_SFLOAT:
case VK_FORMAT_A2B10G10R10_UNORM_PACK32: case VK_FORMAT_A2B10G10R10_UNORM_PACK32:
......
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