Commit 64ce506d by Shahbaz Youssefi Committed by Angle LUCI CQ

Vulkan: SPIR-V Gen: Support most non-texture/image built-ins

Most GLSL built-ins map directly to some SPIR-V operation. texture*() and image*() built-ins are not implemented as well as a handful of other built-ins that require special-handling. Bug: angleproject:4889 Change-Id: I72abfb4692c3d66a3c8be43ce44ba6808efe6255 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2971646 Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org> Reviewed-by: 's avatarJamie Madill <jmadill@chromium.org> Reviewed-by: 's avatarTim Van Patten <timvp@google.com>
parent b80f1377
{ {
"src/compiler/translator/ImmutableString_ESSL_autogen.cpp": "src/compiler/translator/ImmutableString_ESSL_autogen.cpp":
"a748e3105c8c85e2b4e1584a79404bd9", "ad7e8eb7dc7e46acce2954c46a797432",
"src/compiler/translator/ImmutableString_autogen.cpp": "src/compiler/translator/ImmutableString_autogen.cpp":
"e2ba7f03d436642b4e420442042cd09b", "f570be6b24dca8759c8a5f8cfe229111",
"src/compiler/translator/Operator_autogen.h": "src/compiler/translator/Operator_autogen.h":
"ac52a4d3804c63ba14dde9c7f53d0460", "8cc1f9b0fce0894ed4f8fee03723d5a4",
"src/compiler/translator/SymbolTable_ESSL_autogen.cpp": "src/compiler/translator/SymbolTable_ESSL_autogen.cpp":
"3fc55a91b8f90162a41cb5f5ecc83347", "4de78590ff995146a34f0195e0b0026e",
"src/compiler/translator/SymbolTable_autogen.cpp": "src/compiler/translator/SymbolTable_autogen.cpp":
"08e60b9de4a3bb5b491c11c014b3635b", "15dc70a1fa62e42ac826e769b9dd8966",
"src/compiler/translator/SymbolTable_autogen.h": "src/compiler/translator/SymbolTable_autogen.h":
"d43593050c4d1b31b0be9cdd3a2d0ea5", "d43593050c4d1b31b0be9cdd3a2d0ea5",
"src/compiler/translator/builtin_function_declarations.txt": "src/compiler/translator/builtin_function_declarations.txt":
"532f4ee284a113433fef303e38193334", "0e5818ee65b5f06c0c21ddd578785fc9",
"src/compiler/translator/builtin_variables.json": "src/compiler/translator/builtin_variables.json":
"0663a24c595b9221f44e3776337dec56", "0663a24c595b9221f44e3776337dec56",
"src/compiler/translator/gen_builtin_symbols.py": "src/compiler/translator/gen_builtin_symbols.py":
"e0ed1f669f4e1c8fc3b1b7e9b40dbae4", "e0ed1f669f4e1c8fc3b1b7e9b40dbae4",
"src/compiler/translator/tree_util/BuiltIn_ESSL_autogen.h": "src/compiler/translator/tree_util/BuiltIn_ESSL_autogen.h":
"62d779e93a9908279d97bddf4f6f163d", "2cea05ebd1df1a1d297fff04c0d690a0",
"src/compiler/translator/tree_util/BuiltIn_complete_autogen.h": "src/compiler/translator/tree_util/BuiltIn_complete_autogen.h":
"a93778687b24c0920990d68301253374", "b60f08bb1c42131bda4f11ede17ebf23",
"src/tests/compiler_tests/ImmutableString_test_ESSL_autogen.cpp": "src/tests/compiler_tests/ImmutableString_test_ESSL_autogen.cpp":
"5c8ac4ebc3234c51f37fdb5fb4480c33", "a7ffe65463fee9d36d800e77c403ae9f",
"src/tests/compiler_tests/ImmutableString_test_autogen.cpp": "src/tests/compiler_tests/ImmutableString_test_autogen.cpp":
"54d439c54c4f9da58407af472c8c4a1d" "41adf17de67b255b4e32485309dc6751"
} }
\ No newline at end of file
...@@ -244,6 +244,8 @@ enum TOperator : uint16_t ...@@ -244,6 +244,8 @@ enum TOperator : uint16_t
EOpUmulExtended, EOpUmulExtended,
EOpImulExtended, EOpImulExtended,
// Group Texture
// Group TextureFirstVersions // Group TextureFirstVersions
EOpTexture2D, EOpTexture2D,
EOpTexture2DProj, EOpTexture2DProj,
...@@ -256,17 +258,12 @@ enum TOperator : uint16_t ...@@ -256,17 +258,12 @@ enum TOperator : uint16_t
EOpShadow1DProj, EOpShadow1DProj,
EOpShadow2D, EOpShadow2D,
EOpShadow2DProj, EOpShadow2DProj,
// Group ARB_texture_rectangle
EOpTexture2DRect, EOpTexture2DRect,
EOpTexture2DRectProj, EOpTexture2DRectProj,
EOpTextureRect,
EOpTextureProjRect,
// Group EXT_shader_texture_lod
EOpTexture2DGradEXT, EOpTexture2DGradEXT,
EOpTexture2DProjGradEXT, EOpTexture2DProjGradEXT,
EOpTextureCubeGradEXT, EOpTextureCubeGradEXT,
EOpTextureVideoWEBGL,
// Group TextureFirstVersionsFS // Group TextureFirstVersionsFS
EOpTexture2DFS, EOpTexture2DFS,
...@@ -307,7 +304,9 @@ enum TOperator : uint16_t ...@@ -307,7 +304,9 @@ enum TOperator : uint16_t
// Group TextureNoBias // Group TextureNoBias
EOpTexture, EOpTexture,
EOpTextureRect,
EOpTextureProj, EOpTextureProj,
EOpTextureProjRect,
EOpTextureLod, EOpTextureLod,
EOpTextureSize, EOpTextureSize,
EOpTextureProjLod, EOpTextureProjLod,
...@@ -337,10 +336,6 @@ enum TOperator : uint16_t ...@@ -337,10 +336,6 @@ enum TOperator : uint16_t
EOpTextureOffsetBias, EOpTextureOffsetBias,
EOpTextureProjOffsetBias, EOpTextureProjOffsetBias,
// Group EXT_yuv_target
EOpRgb_2_yuv,
EOpYuv_2_rgb,
// Group TextureGather // Group TextureGather
EOpTextureGather, EOpTextureGather,
...@@ -360,6 +355,10 @@ enum TOperator : uint16_t ...@@ -360,6 +355,10 @@ enum TOperator : uint16_t
// Group TextureGatherOffsetsComp // Group TextureGatherOffsetsComp
EOpTextureGatherOffsetsComp, EOpTextureGatherOffsetsComp,
// Group EXT_YUV_target
EOpRgb_2_yuv,
EOpYuv_2_rgb,
// Group DerivativesFS // Group DerivativesFS
EOpDFdx, EOpDFdx,
EOpDFdy, EOpDFdy,
...@@ -453,9 +452,6 @@ enum TOperator : uint16_t ...@@ -453,9 +452,6 @@ enum TOperator : uint16_t
EOpAnyInvocation, EOpAnyInvocation,
EOpAllInvocations, EOpAllInvocations,
EOpAllInvocationsEqual, EOpAllInvocationsEqual,
// Group WEBGLVideoTexture
EOpTextureVideoWEBGL,
}; };
// Returns the string corresponding to the operator in GLSL. For built-in functions use the // Returns the string corresponding to the operator in GLSL. For built-in functions use the
...@@ -511,6 +507,10 @@ static inline bool IsTextureGather(TOperator op) ...@@ -511,6 +507,10 @@ static inline bool IsTextureGather(TOperator op)
{ {
return op >= EOpTextureGather && op <= EOpTextureGatherOffsetsComp; return op >= EOpTextureGather && op <= EOpTextureGatherOffsetsComp;
} }
static inline bool IsTexture(TOperator op)
{
return op >= EOpTexture2D && op <= EOpTextureGatherOffsetsComp;
}
static inline bool IsInterpolationFS(TOperator op) static inline bool IsInterpolationFS(TOperator op)
{ {
return op >= EOpInterpolateAtCentroid && op <= EOpInterpolateAtOffset; return op >= EOpInterpolateAtCentroid && op <= EOpInterpolateAtOffset;
......
This source diff could not be displayed because it is too large. You can view the blob instead.
This source diff could not be displayed because it is too large. You can view the blob instead.
This source diff could not be displayed because it is too large. You can view the blob instead.
This source diff could not be displayed because it is too large. You can view the blob instead.
...@@ -1981,7 +1981,8 @@ angle::Result GraphicsPipelineDesc::initializePipeline( ...@@ -1981,7 +1981,8 @@ angle::Result GraphicsPipelineDesc::initializePipeline(
if (contextVk->getFeatures().supportsTransformFeedbackExtension.enabled) if (contextVk->getFeatures().supportsTransformFeedbackExtension.enabled)
{ {
rasterStreamState.rasterizationStream = 0; rasterStreamState.rasterizationStream = 0;
rasterState.pNext = &rasterLineState; *pNextPtr = &rasterStreamState;
pNextPtr = &rasterStreamState.pNext;
} }
// Multisample state. // Multisample state.
......
This source diff could not be displayed because it is too large. You can view the blob instead.
This source diff could not be displayed because it is too large. You can view the blob instead.
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