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":
"a748e3105c8c85e2b4e1584a79404bd9",
"ad7e8eb7dc7e46acce2954c46a797432",
"src/compiler/translator/ImmutableString_autogen.cpp":
"e2ba7f03d436642b4e420442042cd09b",
"f570be6b24dca8759c8a5f8cfe229111",
"src/compiler/translator/Operator_autogen.h":
"ac52a4d3804c63ba14dde9c7f53d0460",
"8cc1f9b0fce0894ed4f8fee03723d5a4",
"src/compiler/translator/SymbolTable_ESSL_autogen.cpp":
"3fc55a91b8f90162a41cb5f5ecc83347",
"4de78590ff995146a34f0195e0b0026e",
"src/compiler/translator/SymbolTable_autogen.cpp":
"08e60b9de4a3bb5b491c11c014b3635b",
"15dc70a1fa62e42ac826e769b9dd8966",
"src/compiler/translator/SymbolTable_autogen.h":
"d43593050c4d1b31b0be9cdd3a2d0ea5",
"src/compiler/translator/builtin_function_declarations.txt":
"532f4ee284a113433fef303e38193334",
"0e5818ee65b5f06c0c21ddd578785fc9",
"src/compiler/translator/builtin_variables.json":
"0663a24c595b9221f44e3776337dec56",
"src/compiler/translator/gen_builtin_symbols.py":
"e0ed1f669f4e1c8fc3b1b7e9b40dbae4",
"src/compiler/translator/tree_util/BuiltIn_ESSL_autogen.h":
"62d779e93a9908279d97bddf4f6f163d",
"2cea05ebd1df1a1d297fff04c0d690a0",
"src/compiler/translator/tree_util/BuiltIn_complete_autogen.h":
"a93778687b24c0920990d68301253374",
"b60f08bb1c42131bda4f11ede17ebf23",
"src/tests/compiler_tests/ImmutableString_test_ESSL_autogen.cpp":
"5c8ac4ebc3234c51f37fdb5fb4480c33",
"a7ffe65463fee9d36d800e77c403ae9f",
"src/tests/compiler_tests/ImmutableString_test_autogen.cpp":
"54d439c54c4f9da58407af472c8c4a1d"
"41adf17de67b255b4e32485309dc6751"
}
\ No newline at end of file
......@@ -244,6 +244,8 @@ enum TOperator : uint16_t
EOpUmulExtended,
EOpImulExtended,
// Group Texture
// Group TextureFirstVersions
EOpTexture2D,
EOpTexture2DProj,
......@@ -256,17 +258,12 @@ enum TOperator : uint16_t
EOpShadow1DProj,
EOpShadow2D,
EOpShadow2DProj,
// Group ARB_texture_rectangle
EOpTexture2DRect,
EOpTexture2DRectProj,
EOpTextureRect,
EOpTextureProjRect,
// Group EXT_shader_texture_lod
EOpTexture2DGradEXT,
EOpTexture2DProjGradEXT,
EOpTextureCubeGradEXT,
EOpTextureVideoWEBGL,
// Group TextureFirstVersionsFS
EOpTexture2DFS,
......@@ -307,7 +304,9 @@ enum TOperator : uint16_t
// Group TextureNoBias
EOpTexture,
EOpTextureRect,
EOpTextureProj,
EOpTextureProjRect,
EOpTextureLod,
EOpTextureSize,
EOpTextureProjLod,
......@@ -337,10 +336,6 @@ enum TOperator : uint16_t
EOpTextureOffsetBias,
EOpTextureProjOffsetBias,
// Group EXT_yuv_target
EOpRgb_2_yuv,
EOpYuv_2_rgb,
// Group TextureGather
EOpTextureGather,
......@@ -360,6 +355,10 @@ enum TOperator : uint16_t
// Group TextureGatherOffsetsComp
EOpTextureGatherOffsetsComp,
// Group EXT_YUV_target
EOpRgb_2_yuv,
EOpYuv_2_rgb,
// Group DerivativesFS
EOpDFdx,
EOpDFdy,
......@@ -453,9 +452,6 @@ enum TOperator : uint16_t
EOpAnyInvocation,
EOpAllInvocations,
EOpAllInvocationsEqual,
// Group WEBGLVideoTexture
EOpTextureVideoWEBGL,
};
// 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)
{
return op >= EOpTextureGather && op <= EOpTextureGatherOffsetsComp;
}
static inline bool IsTexture(TOperator op)
{
return op >= EOpTexture2D && op <= EOpTextureGatherOffsetsComp;
}
static inline bool IsInterpolationFS(TOperator op)
{
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(
if (contextVk->getFeatures().supportsTransformFeedbackExtension.enabled)
{
rasterStreamState.rasterizationStream = 0;
rasterState.pNext = &rasterLineState;
*pNextPtr = &rasterStreamState;
pNextPtr = &rasterStreamState.pNext;
}
// 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