Generate Int8, Int16 and Float16 capabilities for constants
Fixes #2905
This commit is contained in:
parent
f1d286fcc2
commit
b7968b7dbc
@ -9078,15 +9078,19 @@ spv::Id TGlslangToSpvTraverser::createSpvConstantFromConstUnionArray(const glsla
|
|||||||
break;
|
break;
|
||||||
#ifndef GLSLANG_WEB
|
#ifndef GLSLANG_WEB
|
||||||
case glslang::EbtInt8:
|
case glslang::EbtInt8:
|
||||||
|
builder.addCapability(spv::CapabilityInt8);
|
||||||
spvConsts.push_back(builder.makeInt8Constant(zero ? 0 : consts[nextConst].getI8Const()));
|
spvConsts.push_back(builder.makeInt8Constant(zero ? 0 : consts[nextConst].getI8Const()));
|
||||||
break;
|
break;
|
||||||
case glslang::EbtUint8:
|
case glslang::EbtUint8:
|
||||||
|
builder.addCapability(spv::CapabilityInt8);
|
||||||
spvConsts.push_back(builder.makeUint8Constant(zero ? 0 : consts[nextConst].getU8Const()));
|
spvConsts.push_back(builder.makeUint8Constant(zero ? 0 : consts[nextConst].getU8Const()));
|
||||||
break;
|
break;
|
||||||
case glslang::EbtInt16:
|
case glslang::EbtInt16:
|
||||||
|
builder.addCapability(spv::CapabilityInt16);
|
||||||
spvConsts.push_back(builder.makeInt16Constant(zero ? 0 : consts[nextConst].getI16Const()));
|
spvConsts.push_back(builder.makeInt16Constant(zero ? 0 : consts[nextConst].getI16Const()));
|
||||||
break;
|
break;
|
||||||
case glslang::EbtUint16:
|
case glslang::EbtUint16:
|
||||||
|
builder.addCapability(spv::CapabilityInt16);
|
||||||
spvConsts.push_back(builder.makeUint16Constant(zero ? 0 : consts[nextConst].getU16Const()));
|
spvConsts.push_back(builder.makeUint16Constant(zero ? 0 : consts[nextConst].getU16Const()));
|
||||||
break;
|
break;
|
||||||
case glslang::EbtInt64:
|
case glslang::EbtInt64:
|
||||||
@ -9099,6 +9103,7 @@ spv::Id TGlslangToSpvTraverser::createSpvConstantFromConstUnionArray(const glsla
|
|||||||
spvConsts.push_back(builder.makeDoubleConstant(zero ? 0.0 : consts[nextConst].getDConst()));
|
spvConsts.push_back(builder.makeDoubleConstant(zero ? 0.0 : consts[nextConst].getDConst()));
|
||||||
break;
|
break;
|
||||||
case glslang::EbtFloat16:
|
case glslang::EbtFloat16:
|
||||||
|
builder.addCapability(spv::CapabilityFloat16);
|
||||||
spvConsts.push_back(builder.makeFloat16Constant(zero ? 0.0F : (float)consts[nextConst].getDConst()));
|
spvConsts.push_back(builder.makeFloat16Constant(zero ? 0.0F : (float)consts[nextConst].getDConst()));
|
||||||
break;
|
break;
|
||||||
#endif
|
#endif
|
||||||
@ -9127,15 +9132,19 @@ spv::Id TGlslangToSpvTraverser::createSpvConstantFromConstUnionArray(const glsla
|
|||||||
break;
|
break;
|
||||||
#ifndef GLSLANG_WEB
|
#ifndef GLSLANG_WEB
|
||||||
case glslang::EbtInt8:
|
case glslang::EbtInt8:
|
||||||
|
builder.addCapability(spv::CapabilityInt8);
|
||||||
scalar = builder.makeInt8Constant(zero ? 0 : consts[nextConst].getI8Const(), specConstant);
|
scalar = builder.makeInt8Constant(zero ? 0 : consts[nextConst].getI8Const(), specConstant);
|
||||||
break;
|
break;
|
||||||
case glslang::EbtUint8:
|
case glslang::EbtUint8:
|
||||||
|
builder.addCapability(spv::CapabilityInt8);
|
||||||
scalar = builder.makeUint8Constant(zero ? 0 : consts[nextConst].getU8Const(), specConstant);
|
scalar = builder.makeUint8Constant(zero ? 0 : consts[nextConst].getU8Const(), specConstant);
|
||||||
break;
|
break;
|
||||||
case glslang::EbtInt16:
|
case glslang::EbtInt16:
|
||||||
|
builder.addCapability(spv::CapabilityInt16);
|
||||||
scalar = builder.makeInt16Constant(zero ? 0 : consts[nextConst].getI16Const(), specConstant);
|
scalar = builder.makeInt16Constant(zero ? 0 : consts[nextConst].getI16Const(), specConstant);
|
||||||
break;
|
break;
|
||||||
case glslang::EbtUint16:
|
case glslang::EbtUint16:
|
||||||
|
builder.addCapability(spv::CapabilityInt16);
|
||||||
scalar = builder.makeUint16Constant(zero ? 0 : consts[nextConst].getU16Const(), specConstant);
|
scalar = builder.makeUint16Constant(zero ? 0 : consts[nextConst].getU16Const(), specConstant);
|
||||||
break;
|
break;
|
||||||
case glslang::EbtInt64:
|
case glslang::EbtInt64:
|
||||||
@ -9148,6 +9157,7 @@ spv::Id TGlslangToSpvTraverser::createSpvConstantFromConstUnionArray(const glsla
|
|||||||
scalar = builder.makeDoubleConstant(zero ? 0.0 : consts[nextConst].getDConst(), specConstant);
|
scalar = builder.makeDoubleConstant(zero ? 0.0 : consts[nextConst].getDConst(), specConstant);
|
||||||
break;
|
break;
|
||||||
case glslang::EbtFloat16:
|
case glslang::EbtFloat16:
|
||||||
|
builder.addCapability(spv::CapabilityFloat16);
|
||||||
scalar = builder.makeFloat16Constant(zero ? 0.0F : (float)consts[nextConst].getDConst(), specConstant);
|
scalar = builder.makeFloat16Constant(zero ? 0.0F : (float)consts[nextConst].getDConst(), specConstant);
|
||||||
break;
|
break;
|
||||||
case glslang::EbtReference:
|
case glslang::EbtReference:
|
||||||
|
|||||||
@ -1,12 +1,14 @@
|
|||||||
spv.constConstruct.vert
|
spv.constConstruct.vert
|
||||||
Validation failed
|
|
||||||
// Module Version 10000
|
// Module Version 10000
|
||||||
// Generated by (magic number): 8000a
|
// Generated by (magic number): 8000a
|
||||||
// Id's are bound by 150
|
// Id's are bound by 150
|
||||||
|
|
||||||
Capability Shader
|
Capability Shader
|
||||||
|
Capability Float16
|
||||||
Capability Float64
|
Capability Float64
|
||||||
Capability Int64
|
Capability Int64
|
||||||
|
Capability Int16
|
||||||
|
Capability Int8
|
||||||
1: ExtInstImport "GLSL.std.450"
|
1: ExtInstImport "GLSL.std.450"
|
||||||
MemoryModel Logical GLSL450
|
MemoryModel Logical GLSL450
|
||||||
EntryPoint Vertex 4 "main"
|
EntryPoint Vertex 4 "main"
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user