From da08c10c41b0f767702957a4ee364e8751a087ee Mon Sep 17 00:00:00 2001 From: baldurk Date: Wed, 13 Apr 2022 12:19:15 +0100 Subject: [PATCH] Update vulkan & SPIR-V headers to latest --- renderdoc/driver/shaders/spirv/spir-v.xml | 7 +- .../shaders/spirv/spirv.core.grammar.json | 244 +++++- .../driver/shaders/spirv/spirv_debug.cpp | 11 + .../shaders/spirv/spirv_debug_setup.cpp | 3 + renderdoc/driver/shaders/spirv/spirv_gen.cpp | 165 ++++ renderdoc/driver/shaders/spirv/spirv_gen.h | 28 + .../driver/shaders/spirv/spirv_op_helpers.h | 355 ++++++++ .../driver/shaders/spirv/spirv_reflect.cpp | 1 + renderdoc/driver/vulkan/all_exts.txt | 5 + renderdoc/driver/vulkan/extension_support.md | 5 + .../driver/vulkan/official/vulkan_android.h | 2 +- .../driver/vulkan/official/vulkan_core.h | 214 +++-- renderdoc/driver/vulkan/vk.xml | 757 ++++++++++++------ renderdoc/driver/vulkan/vk_common.h | 6 +- renderdoc/driver/vulkan/vk_dispatch_defs.h | 4 + renderdoc/driver/vulkan/vk_next_chains.cpp | 8 + renderdoc/driver/vulkan/vk_serialise.cpp | 22 +- renderdoc/driver/vulkan/vk_stringise.cpp | 25 +- util/test/demos/3rdparty/volk/volk.c | 12 + util/test/demos/3rdparty/volk/volk.h | 10 +- .../demos/vk/official/vulkan/vulkan_android.h | 2 +- .../demos/vk/official/vulkan/vulkan_core.h | 214 +++-- 22 files changed, 1738 insertions(+), 362 deletions(-) diff --git a/renderdoc/driver/shaders/spirv/spir-v.xml b/renderdoc/driver/shaders/spirv/spir-v.xml index 5b4f9ce4a..3078e776f 100644 --- a/renderdoc/driver/shaders/spirv/spir-v.xml +++ b/renderdoc/driver/shaders/spirv/spir-v.xml @@ -166,13 +166,14 @@ + - + @@ -192,8 +193,8 @@ - - + + diff --git a/renderdoc/driver/shaders/spirv/spirv.core.grammar.json b/renderdoc/driver/shaders/spirv/spirv.core.grammar.json index 766a4ed21..546191281 100644 --- a/renderdoc/driver/shaders/spirv/spirv.core.grammar.json +++ b/renderdoc/driver/shaders/spirv/spirv.core.grammar.json @@ -5029,7 +5029,7 @@ "opname" : "OpDemoteToHelperInvocationEXT", "class" : "Control-Flow", "opcode" : 5380, - "capabilities" : [ "DemoteToHelperInvocation" ], + "capabilities" : [ "DemoteToHelperInvocationEXT" ], "version" : "1.6" }, { @@ -7869,6 +7869,43 @@ "extensions" : [ "SPV_INTEL_unstructured_loop_controls" ], "version" : "None" }, + { + "opname" : "OpAliasDomainDeclINTEL", + "class" : "@exclude", + "opcode" : 5911, + "operands" : [ + { "kind" : "IdResult"}, + { "kind" : "IdRef", "quantifier" : "?", "name" : "'Name'" } + ], + "capabilities" : [ "MemoryAccessAliasingINTEL" ], + "extensions" : [ "SPV_INTEL_memory_access_aliasing" ], + "version" : "None" + }, + { + "opname" : "OpAliasScopeDeclINTEL", + "class" : "@exclude", + "opcode" : 5912, + "operands" : [ + { "kind" : "IdResult"}, + { "kind" : "IdRef", "name" : "'Alias Domain'"}, + { "kind" : "IdRef", "quantifier" : "?", "name" : "'Name'" } + ], + "capabilities" : [ "MemoryAccessAliasingINTEL" ], + "extensions" : [ "SPV_INTEL_memory_access_aliasing" ], + "version" : "None" + }, + { + "opname" : "OpAliasScopeListDeclINTEL", + "class" : "@exclude", + "opcode" : 5913, + "operands" : [ + { "kind" : "IdResult"}, + { "kind" : "IdRef", "quantifier" : "*", "name" : "'AliasScope1, AliasScope2, ...'" } + ], + "capabilities" : [ "MemoryAccessAliasingINTEL" ], + "extensions" : [ "SPV_INTEL_memory_access_aliasing" ], + "version" : "None" + }, { "opname" : "OpFixedSqrtINTEL", "class" : "@exclude", @@ -8512,6 +8549,142 @@ ], "capabilities" : [ "LongConstantCompositeINTEL" ], "version" : "None" + }, + { + "opname" : "OpControlBarrierArriveINTEL", + "class" : "Barrier", + "opcode" : 6142, + "operands" : [ + { "kind" : "IdScope", "name" : "'Execution'" }, + { "kind" : "IdScope", "name" : "'Memory'" }, + { "kind" : "IdMemorySemantics", "name" : "'Semantics'" } + ], + "capabilities" : [ "SplitBarrierINTEL" ], + "version" : "None" + }, + { + "opname" : "OpControlBarrierWaitINTEL", + "class" : "Barrier", + "opcode" : 6143, + "operands" : [ + { "kind" : "IdScope", "name" : "'Execution'" }, + { "kind" : "IdScope", "name" : "'Memory'" }, + { "kind" : "IdMemorySemantics", "name" : "'Semantics'" } + ], + "capabilities" : [ "SplitBarrierINTEL" ], + "version" : "None" + }, + { + "opname" : "OpGroupIMulKHR", + "class" : "Group", + "opcode" : 6401, + "operands" : [ + { "kind" : "IdResultType" }, + { "kind" : "IdResult" }, + { "kind" : "IdScope", "name" : "'Execution'" }, + { "kind" : "GroupOperation", "name" : "'Operation'" }, + { "kind" : "IdRef", "name" : "'X'" } + ], + "capabilities" : [ "GroupUniformArithmeticKHR" ], + "version" : "None" + }, + { + "opname" : "OpGroupFMulKHR", + "class" : "Group", + "opcode" : 6402, + "operands" : [ + { "kind" : "IdResultType" }, + { "kind" : "IdResult" }, + { "kind" : "IdScope", "name" : "'Execution'" }, + { "kind" : "GroupOperation", "name" : "'Operation'" }, + { "kind" : "IdRef", "name" : "'X'" } + ], + "capabilities" : [ "GroupUniformArithmeticKHR" ], + "version" : "None" + }, + { + "opname" : "OpGroupBitwiseAndKHR", + "class" : "Group", + "opcode" : 6403, + "operands" : [ + { "kind" : "IdResultType" }, + { "kind" : "IdResult" }, + { "kind" : "IdScope", "name" : "'Execution'" }, + { "kind" : "GroupOperation", "name" : "'Operation'" }, + { "kind" : "IdRef", "name" : "'X'" } + ], + "capabilities" : [ "GroupUniformArithmeticKHR" ], + "version" : "None" + }, + { + "opname" : "OpGroupBitwiseOrKHR", + "class" : "Group", + "opcode" : 6404, + "operands" : [ + { "kind" : "IdResultType" }, + { "kind" : "IdResult" }, + { "kind" : "IdScope", "name" : "'Execution'" }, + { "kind" : "GroupOperation", "name" : "'Operation'" }, + { "kind" : "IdRef", "name" : "'X'" } + ], + "capabilities" : [ "GroupUniformArithmeticKHR" ], + "version" : "None" + }, + { + "opname" : "OpGroupBitwiseXorKHR", + "class" : "Group", + "opcode" : 6405, + "operands" : [ + { "kind" : "IdResultType" }, + { "kind" : "IdResult" }, + { "kind" : "IdScope", "name" : "'Execution'" }, + { "kind" : "GroupOperation", "name" : "'Operation'" }, + { "kind" : "IdRef", "name" : "'X'" } + ], + "capabilities" : [ "GroupUniformArithmeticKHR" ], + "version" : "None" + }, + { + "opname" : "OpGroupLogicalAndKHR", + "class" : "Group", + "opcode" : 6406, + "operands" : [ + { "kind" : "IdResultType" }, + { "kind" : "IdResult" }, + { "kind" : "IdScope", "name" : "'Execution'" }, + { "kind" : "GroupOperation", "name" : "'Operation'" }, + { "kind" : "IdRef", "name" : "'X'" } + ], + "capabilities" : [ "GroupUniformArithmeticKHR" ], + "version" : "None" + }, + { + "opname" : "OpGroupLogicalOrKHR", + "class" : "Group", + "opcode" : 6407, + "operands" : [ + { "kind" : "IdResultType" }, + { "kind" : "IdResult" }, + { "kind" : "IdScope", "name" : "'Execution'" }, + { "kind" : "GroupOperation", "name" : "'Operation'" }, + { "kind" : "IdRef", "name" : "'X'" } + ], + "capabilities" : [ "GroupUniformArithmeticKHR" ], + "version" : "None" + }, + { + "opname" : "OpGroupLogicalXorKHR", + "class" : "Group", + "opcode" : 6408, + "operands" : [ + { "kind" : "IdResultType" }, + { "kind" : "IdResult" }, + { "kind" : "IdScope", "name" : "'Execution'" }, + { "kind" : "GroupOperation", "name" : "'Operation'" }, + { "kind" : "IdRef", "name" : "'X'" } + ], + "capabilities" : [ "GroupUniformArithmeticKHR" ], + "version" : "None" } ], "operand_kinds" : [ @@ -9090,6 +9263,26 @@ "capabilities" : [ "VulkanMemoryModel" ], "extensions" : [ "SPV_KHR_vulkan_memory_model" ], "version" : "1.5" + }, + { + "enumerant" : "AliasScopeINTELMask", + "value" : "0x10000", + "parameters" : [ + { "kind" : "IdRef" } + ], + "capabilities" : [ "MemoryAccessAliasingINTEL" ], + "extensions" : [ "SPV_INTEL_memory_access_aliasing" ], + "version" : "None" + }, + { + "enumerant" : "NoAliasINTELMask", + "parameters" : [ + { "kind" : "IdRef" } + ], + "value" : "0x20000", + "capabilities" : [ "MemoryAccessAliasingINTEL" ], + "extensions" : [ "SPV_INTEL_memory_access_aliasing" ], + "version" : "None" } ] }, @@ -9241,6 +9434,10 @@ { "enumerant" : "CPP_for_OpenCL", "value" : 6 + }, + { + "enumerant" : "SYCL", + "value" : 7 } ] }, @@ -9917,6 +10114,15 @@ ], "capabilities" : [ "FPGAKernelAttributesINTEL" ], "version" : "None" + }, + { + "enumerant" : "NamedBarrierCountINTEL", + "value" : 6417, + "parameters" : [ + { "kind" : "LiteralInteger", "name" : "'Barrier Count'" } + ], + "capabilities" : [ "VectorComputeINTEL" ], + "version" : "None" } ] }, @@ -11579,6 +11785,24 @@ "capabilities" : [ "LoopFuseINTEL" ], "version" : "None" }, + { + "enumerant" : "AliasScopeINTEL", + "value" : 5914, + "parameters" : [ + { "kind" : "IdRef", "name" : "'Aliasing Scopes List'" } + ], + "capabilities" : [ "MemoryAccessAliasingINTEL" ], + "version" : "None" + }, + { + "enumerant" : "NoAliasINTEL", + "value" : 5915, + "parameters" : [ + { "kind" : "IdRef", "name" : "'Aliasing Scopes List'" } + ], + "capabilities" : [ "MemoryAccessAliasingINTEL" ], + "version" : "None" + }, { "enumerant" : "BufferLocationINTEL", "value" : 5921, @@ -13677,6 +13901,12 @@ "extensions" : [ "SPV_INTEL_loop_fuse" ], "version" : "None" }, + { + "enumerant" : "MemoryAccessAliasingINTEL", + "value" : 5910, + "extensions" : [ "SPV_INTEL_memory_access_aliasing" ], + "version" : "None" + }, { "enumerant" : "FPGABufferLocationINTEL", "value" : 5920, @@ -13800,6 +14030,18 @@ "value" : 6114, "extensions" : [ "SPV_INTEL_debug_module" ], "version" : "None" + }, + { + "enumerant" : "SplitBarrierINTEL", + "value" : 6141, + "extensions" : [ "SPV_INTEL_split_barrier" ], + "version" : "None" + }, + { + "enumerant" : "GroupUniformArithmeticKHR", + "value" : 6400, + "extensions" : [ "SPV_KHR_uniform_group_instructions"], + "version" : "None" } ] }, diff --git a/renderdoc/driver/shaders/spirv/spirv_debug.cpp b/renderdoc/driver/shaders/spirv/spirv_debug.cpp index dbf75ba00..c0975d96a 100644 --- a/renderdoc/driver/shaders/spirv/spirv_debug.cpp +++ b/renderdoc/driver/shaders/spirv/spirv_debug.cpp @@ -3489,6 +3489,15 @@ void ThreadState::StepNext(ShaderDebugState *state, const rdcarray case Op::SDotAccSatKHR: case Op::UDotAccSatKHR: case Op::SUDotAccSatKHR: + + case Op::GroupIMulKHR: + case Op::GroupFMulKHR: + case Op::GroupBitwiseAndKHR: + case Op::GroupBitwiseOrKHR: + case Op::GroupBitwiseXorKHR: + case Op::GroupLogicalAndKHR: + case Op::GroupLogicalOrKHR: + case Op::GroupLogicalXorKHR: { RDCERR("Group opcodes not supported. SPIR-V should have been rejected by capability!"); @@ -3762,6 +3771,8 @@ void ThreadState::StepNext(ShaderDebugState *state, const rdcarray case Op::FPGARegINTEL: case Op::ReadPipeBlockingINTEL: case Op::WritePipeBlockingINTEL: + case Op::ControlBarrierArriveINTEL: + case Op::ControlBarrierWaitINTEL: { // these are kernel only RDCERR("Encountered unexpected kernel SPIR-V operation %s", ToStr(opdata.op).c_str()); diff --git a/renderdoc/driver/shaders/spirv/spirv_debug_setup.cpp b/renderdoc/driver/shaders/spirv/spirv_debug_setup.cpp index e2cf5a159..04042270a 100644 --- a/renderdoc/driver/shaders/spirv/spirv_debug_setup.cpp +++ b/renderdoc/driver/shaders/spirv/spirv_debug_setup.cpp @@ -522,6 +522,9 @@ void Reflector::CheckDebuggable(bool &debuggable, rdcstr &debugStatus) const case Capability::LongConstantCompositeINTEL: case Capability::DebugInfoModuleINTEL: case Capability::BindlessTextureNV: + case Capability::MemoryAccessAliasingINTEL: + case Capability::SplitBarrierINTEL: + case Capability::GroupUniformArithmeticKHR: case Capability::Max: case Capability::Invalid: { diff --git a/renderdoc/driver/shaders/spirv/spirv_gen.cpp b/renderdoc/driver/shaders/spirv/spirv_gen.cpp index 74d925aab..9ef95fc47 100644 --- a/renderdoc/driver/shaders/spirv/spirv_gen.cpp +++ b/renderdoc/driver/shaders/spirv/spirv_gen.cpp @@ -201,6 +201,8 @@ rdcstr DoStringise(const rdcspv::MemoryAccess &el) STRINGISE_BITFIELD_CLASS_BIT(MakePointerAvailable); STRINGISE_BITFIELD_CLASS_BIT(MakePointerVisible); STRINGISE_BITFIELD_CLASS_BIT(NonPrivatePointer); + STRINGISE_BITFIELD_CLASS_BIT(AliasScopeINTELMask); + STRINGISE_BITFIELD_CLASS_BIT(NoAliasINTELMask); } END_BITFIELD_STRINGISE(); } @@ -262,6 +264,7 @@ rdcstr DoStringise(const rdcspv::SourceLanguage &el) STRINGISE_ENUM_CLASS(OpenCL_CPP); STRINGISE_ENUM_CLASS(HLSL); STRINGISE_ENUM_CLASS(CPP_for_OpenCL); + STRINGISE_ENUM_CLASS(SYCL); } END_ENUM_STRINGISE(); } @@ -388,6 +391,7 @@ rdcstr DoStringise(const rdcspv::ExecutionMode &el) STRINGISE_ENUM_CLASS(NoGlobalOffsetINTEL); STRINGISE_ENUM_CLASS(NumSIMDWorkitemsINTEL); STRINGISE_ENUM_CLASS(SchedulerTargetFmaxMhzINTEL); + STRINGISE_ENUM_CLASS(NamedBarrierCountINTEL); } END_ENUM_STRINGISE(); } @@ -779,6 +783,8 @@ rdcstr DoStringise(const rdcspv::Decoration &el) STRINGISE_ENUM_CLASS(PrefetchINTEL); STRINGISE_ENUM_CLASS(StallEnableINTEL); STRINGISE_ENUM_CLASS(FuseLoopsInFunctionINTEL); + STRINGISE_ENUM_CLASS(AliasScopeINTEL); + STRINGISE_ENUM_CLASS(NoAliasINTEL); STRINGISE_ENUM_CLASS(BufferLocationINTEL); STRINGISE_ENUM_CLASS(IOPipeStorageINTEL); STRINGISE_ENUM_CLASS(FunctionFloatingPointModeINTEL); @@ -1123,6 +1129,7 @@ rdcstr DoStringise(const rdcspv::Capability &el) STRINGISE_ENUM_CLASS(FPGAMemoryAccessesINTEL); STRINGISE_ENUM_CLASS(FPGAClusterAttributesINTEL); STRINGISE_ENUM_CLASS(LoopFuseINTEL); + STRINGISE_ENUM_CLASS(MemoryAccessAliasingINTEL); STRINGISE_ENUM_CLASS(FPGABufferLocationINTEL); STRINGISE_ENUM_CLASS(ArbitraryPrecisionFixedPointINTEL); STRINGISE_ENUM_CLASS(USMStorageClassesINTEL); @@ -1140,6 +1147,8 @@ rdcstr DoStringise(const rdcspv::Capability &el) STRINGISE_ENUM_CLASS(OptNoneINTEL); STRINGISE_ENUM_CLASS(AtomicFloat16AddEXT); STRINGISE_ENUM_CLASS(DebugInfoModuleINTEL); + STRINGISE_ENUM_CLASS(SplitBarrierINTEL); + STRINGISE_ENUM_CLASS(GroupUniformArithmeticKHR); } END_ENUM_STRINGISE(); } @@ -1656,6 +1665,16 @@ rdcstr DoStringise(const rdcspv::Op &el) STRINGISE_ENUM_CLASS(TypeStructContinuedINTEL); STRINGISE_ENUM_CLASS(ConstantCompositeContinuedINTEL); STRINGISE_ENUM_CLASS(SpecConstantCompositeContinuedINTEL); + STRINGISE_ENUM_CLASS(ControlBarrierArriveINTEL); + STRINGISE_ENUM_CLASS(ControlBarrierWaitINTEL); + STRINGISE_ENUM_CLASS(GroupIMulKHR); + STRINGISE_ENUM_CLASS(GroupFMulKHR); + STRINGISE_ENUM_CLASS(GroupBitwiseAndKHR); + STRINGISE_ENUM_CLASS(GroupBitwiseOrKHR); + STRINGISE_ENUM_CLASS(GroupBitwiseXorKHR); + STRINGISE_ENUM_CLASS(GroupLogicalAndKHR); + STRINGISE_ENUM_CLASS(GroupLogicalOrKHR); + STRINGISE_ENUM_CLASS(GroupLogicalXorKHR); } END_ENUM_STRINGISE(); } @@ -1808,6 +1827,10 @@ rdcstr ParamToStr(const std::function &idName, const rdcspv: ret += "MakePointerVisible" "(" + idName(el.makePointerVisible) + ")" ", "; if(el.flags & MemoryAccess::NonPrivatePointer) ret += "NonPrivatePointer" ", "; + if(el.flags & MemoryAccess::AliasScopeINTELMask) + ret += "AliasScopeINTELMask" "(" + idName(el.aliasScopeINTELMask) + ")" ", "; + if(el.flags & MemoryAccess::NoAliasINTELMask) + ret += "NoAliasINTELMask" "(" + idName(el.noAliasINTELMask) + ")" ", "; // remove trailing ", " if(ret.size() > 2) @@ -1873,6 +1896,8 @@ rdcstr ParamToStr(const std::function &idName, const rdcspv: ret += "(" + ToStr(el.numSIMDWorkitemsINTEL) + ")"; break; case ExecutionMode::SchedulerTargetFmaxMhzINTEL: ret += "(" + ToStr(el.schedulerTargetFmaxMhzINTEL) + ")"; break; + case ExecutionMode::NamedBarrierCountINTEL: + ret += "(" + ToStr(el.namedBarrierCountINTEL) + ")"; break; default: break; } @@ -1961,6 +1986,10 @@ rdcstr ParamToStr(const std::function &idName, const rdcspv: ret += "(" + ToStr(el.cacheSizeINTEL) + ")"; break; case Decoration::PrefetchINTEL: ret += "(" + ToStr(el.prefetchINTEL) + ")"; break; + case Decoration::AliasScopeINTEL: + ret += "(" + idName(el.aliasScopeINTEL) + ")"; break; + case Decoration::NoAliasINTEL: + ret += "(" + idName(el.noAliasINTEL) + ")"; break; case Decoration::BufferLocationINTEL: ret += "(" + ToStr(el.bufferLocationINTEL) + ")"; break; case Decoration::IOPipeStorageINTEL: @@ -4526,6 +4555,64 @@ void OpDecoder::ForEachID(const ConstIter &it, const std::function &words, const MemoryAccessAndParamDat { words.push_back(param.makePointerVisible.value()); } + if(param.flags & MemoryAccess::AliasScopeINTELMask) + { + words.push_back(param.aliasScopeINTELMask.value()); + } + if(param.flags & MemoryAccess::NoAliasINTELMask) + { + words.push_back(param.noAliasINTELMask.value()); + } } inline uint16_t ExtraWordCount(const MemoryAccess memoryAccess) @@ -525,6 +543,8 @@ inline uint16_t ExtraWordCount(const MemoryAccess memoryAccess) case MemoryAccess::Aligned: return 1; case MemoryAccess::MakePointerAvailable: return 1; case MemoryAccess::MakePointerVisible: return 1; + case MemoryAccess::AliasScopeINTELMask: return 1; + case MemoryAccess::NoAliasINTELMask: return 1; default: break; } return 0; @@ -875,6 +895,19 @@ struct ExecutionModeParam } }; +template<> +struct ExecutionModeParam +{ + uint32_t namedBarrierCountINTEL; + ExecutionModeParam(uint32_t namedBarrierCountINTELParam) { namedBarrierCountINTEL = namedBarrierCountINTELParam; } + operator ExecutionModeAndParamData() + { + ExecutionModeAndParamData ret(ExecutionMode::NamedBarrierCountINTEL); + ret.namedBarrierCountINTEL = namedBarrierCountINTEL; + return ret; + } +}; + template<> @@ -996,6 +1029,10 @@ inline ExecutionModeAndParamData DecodeParam(const ConstIter &it, uint32_t &word ret.schedulerTargetFmaxMhzINTEL = (uint32_t)it.word(word); word += 1; break; + case ExecutionMode::NamedBarrierCountINTEL: + ret.namedBarrierCountINTEL = (uint32_t)it.word(word); + word += 1; + break; default: break; } return ret; @@ -1091,6 +1128,9 @@ inline void EncodeParam(rdcarray &words, const ExecutionModeAndParamDa case ExecutionMode::SchedulerTargetFmaxMhzINTEL: words.push_back((uint32_t)param.schedulerTargetFmaxMhzINTEL); break; + case ExecutionMode::NamedBarrierCountINTEL: + words.push_back((uint32_t)param.namedBarrierCountINTEL); + break; default: break; } } @@ -1124,6 +1164,7 @@ inline uint16_t ExtraWordCount(const ExecutionMode executionMode) case ExecutionMode::MaxWorkDimINTEL: return 1; case ExecutionMode::NumSIMDWorkitemsINTEL: return 1; case ExecutionMode::SchedulerTargetFmaxMhzINTEL: return 1; + case ExecutionMode::NamedBarrierCountINTEL: return 1; default: break; } return 0; @@ -1644,6 +1685,32 @@ struct DecorationParam } }; +template<> +struct DecorationParam +{ + Id aliasScopeINTEL; + DecorationParam(Id aliasScopeINTELParam) { aliasScopeINTEL = aliasScopeINTELParam; } + operator DecorationAndParamData() + { + DecorationAndParamData ret(Decoration::AliasScopeINTEL); + ret.aliasScopeINTEL = aliasScopeINTEL; + return ret; + } +}; + +template<> +struct DecorationParam +{ + Id noAliasINTEL; + DecorationParam(Id noAliasINTELParam) { noAliasINTEL = noAliasINTELParam; } + operator DecorationAndParamData() + { + DecorationAndParamData ret(Decoration::NoAliasINTEL); + ret.noAliasINTEL = noAliasINTEL; + return ret; + } +}; + template<> struct DecorationParam { @@ -1845,6 +1912,14 @@ inline DecorationAndParamData DecodeParam(const ConstIter &it, uint32_t &word) ret.prefetchINTEL = (uint32_t)it.word(word); word += 1; break; + case Decoration::AliasScopeINTEL: + ret.aliasScopeINTEL = Id::fromWord(it.word(word)); + word += 1; + break; + case Decoration::NoAliasINTEL: + ret.noAliasINTEL = Id::fromWord(it.word(word)); + word += 1; + break; case Decoration::BufferLocationINTEL: ret.bufferLocationINTEL = (uint32_t)it.word(word); word += 1; @@ -1981,6 +2056,12 @@ inline void EncodeParam(rdcarray &words, const DecorationAndParamData case Decoration::PrefetchINTEL: words.push_back((uint32_t)param.prefetchINTEL); break; + case Decoration::AliasScopeINTEL: + words.push_back(param.aliasScopeINTEL.value()); + break; + case Decoration::NoAliasINTEL: + words.push_back(param.noAliasINTEL.value()); + break; case Decoration::BufferLocationINTEL: words.push_back((uint32_t)param.bufferLocationINTEL); break; @@ -2036,6 +2117,8 @@ inline uint16_t ExtraWordCount(const Decoration decoration) case Decoration::ForcePow2DepthINTEL: return 1; case Decoration::CacheSizeINTEL: return 1; case Decoration::PrefetchINTEL: return 1; + case Decoration::AliasScopeINTEL: return 1; + case Decoration::NoAliasINTEL: return 1; case Decoration::BufferLocationINTEL: return 1; case Decoration::IOPipeStorageINTEL: return 1; case Decoration::FunctionFloatingPointModeINTEL: return 2; @@ -15682,6 +15765,278 @@ struct OpSpecConstantCompositeContinuedINTEL rdcarray constituents; }; +struct OpControlBarrierArriveINTEL +{ + OpControlBarrierArriveINTEL(const ConstIter &it) + { + memcpy(this, it.words(), sizeof(*this)); + } + OpControlBarrierArriveINTEL(IdScope execution, IdScope memory, IdMemorySemantics semantics) + : op(Op::ControlBarrierArriveINTEL) + , wordCount(FixedWordSize) + { + this->execution = execution; + this->memory = memory; + this->semantics = semantics; + } + + static constexpr Op OpCode = Op::ControlBarrierArriveINTEL; + static constexpr uint16_t FixedWordSize = 4U; + Op op; + uint16_t wordCount; + IdScope execution; + IdScope memory; + IdMemorySemantics semantics; +}; + +struct OpControlBarrierWaitINTEL +{ + OpControlBarrierWaitINTEL(const ConstIter &it) + { + memcpy(this, it.words(), sizeof(*this)); + } + OpControlBarrierWaitINTEL(IdScope execution, IdScope memory, IdMemorySemantics semantics) + : op(Op::ControlBarrierWaitINTEL) + , wordCount(FixedWordSize) + { + this->execution = execution; + this->memory = memory; + this->semantics = semantics; + } + + static constexpr Op OpCode = Op::ControlBarrierWaitINTEL; + static constexpr uint16_t FixedWordSize = 4U; + Op op; + uint16_t wordCount; + IdScope execution; + IdScope memory; + IdMemorySemantics semantics; +}; + +struct OpGroupIMulKHR +{ + OpGroupIMulKHR(const ConstIter &it) + { + memcpy(this, it.words(), sizeof(*this)); + } + OpGroupIMulKHR(IdResultType resultType, IdResult result, IdScope execution, GroupOperation operation, Id x) + : op(Op::GroupIMulKHR) + , wordCount(FixedWordSize) + { + this->resultType = resultType; + this->result = result; + this->execution = execution; + this->operation = operation; + this->x = x; + } + + static constexpr Op OpCode = Op::GroupIMulKHR; + static constexpr uint16_t FixedWordSize = 6U; + Op op; + uint16_t wordCount; + IdResultType resultType; + IdResult result; + IdScope execution; + GroupOperation operation; + Id x; +}; + +struct OpGroupFMulKHR +{ + OpGroupFMulKHR(const ConstIter &it) + { + memcpy(this, it.words(), sizeof(*this)); + } + OpGroupFMulKHR(IdResultType resultType, IdResult result, IdScope execution, GroupOperation operation, Id x) + : op(Op::GroupFMulKHR) + , wordCount(FixedWordSize) + { + this->resultType = resultType; + this->result = result; + this->execution = execution; + this->operation = operation; + this->x = x; + } + + static constexpr Op OpCode = Op::GroupFMulKHR; + static constexpr uint16_t FixedWordSize = 6U; + Op op; + uint16_t wordCount; + IdResultType resultType; + IdResult result; + IdScope execution; + GroupOperation operation; + Id x; +}; + +struct OpGroupBitwiseAndKHR +{ + OpGroupBitwiseAndKHR(const ConstIter &it) + { + memcpy(this, it.words(), sizeof(*this)); + } + OpGroupBitwiseAndKHR(IdResultType resultType, IdResult result, IdScope execution, GroupOperation operation, Id x) + : op(Op::GroupBitwiseAndKHR) + , wordCount(FixedWordSize) + { + this->resultType = resultType; + this->result = result; + this->execution = execution; + this->operation = operation; + this->x = x; + } + + static constexpr Op OpCode = Op::GroupBitwiseAndKHR; + static constexpr uint16_t FixedWordSize = 6U; + Op op; + uint16_t wordCount; + IdResultType resultType; + IdResult result; + IdScope execution; + GroupOperation operation; + Id x; +}; + +struct OpGroupBitwiseOrKHR +{ + OpGroupBitwiseOrKHR(const ConstIter &it) + { + memcpy(this, it.words(), sizeof(*this)); + } + OpGroupBitwiseOrKHR(IdResultType resultType, IdResult result, IdScope execution, GroupOperation operation, Id x) + : op(Op::GroupBitwiseOrKHR) + , wordCount(FixedWordSize) + { + this->resultType = resultType; + this->result = result; + this->execution = execution; + this->operation = operation; + this->x = x; + } + + static constexpr Op OpCode = Op::GroupBitwiseOrKHR; + static constexpr uint16_t FixedWordSize = 6U; + Op op; + uint16_t wordCount; + IdResultType resultType; + IdResult result; + IdScope execution; + GroupOperation operation; + Id x; +}; + +struct OpGroupBitwiseXorKHR +{ + OpGroupBitwiseXorKHR(const ConstIter &it) + { + memcpy(this, it.words(), sizeof(*this)); + } + OpGroupBitwiseXorKHR(IdResultType resultType, IdResult result, IdScope execution, GroupOperation operation, Id x) + : op(Op::GroupBitwiseXorKHR) + , wordCount(FixedWordSize) + { + this->resultType = resultType; + this->result = result; + this->execution = execution; + this->operation = operation; + this->x = x; + } + + static constexpr Op OpCode = Op::GroupBitwiseXorKHR; + static constexpr uint16_t FixedWordSize = 6U; + Op op; + uint16_t wordCount; + IdResultType resultType; + IdResult result; + IdScope execution; + GroupOperation operation; + Id x; +}; + +struct OpGroupLogicalAndKHR +{ + OpGroupLogicalAndKHR(const ConstIter &it) + { + memcpy(this, it.words(), sizeof(*this)); + } + OpGroupLogicalAndKHR(IdResultType resultType, IdResult result, IdScope execution, GroupOperation operation, Id x) + : op(Op::GroupLogicalAndKHR) + , wordCount(FixedWordSize) + { + this->resultType = resultType; + this->result = result; + this->execution = execution; + this->operation = operation; + this->x = x; + } + + static constexpr Op OpCode = Op::GroupLogicalAndKHR; + static constexpr uint16_t FixedWordSize = 6U; + Op op; + uint16_t wordCount; + IdResultType resultType; + IdResult result; + IdScope execution; + GroupOperation operation; + Id x; +}; + +struct OpGroupLogicalOrKHR +{ + OpGroupLogicalOrKHR(const ConstIter &it) + { + memcpy(this, it.words(), sizeof(*this)); + } + OpGroupLogicalOrKHR(IdResultType resultType, IdResult result, IdScope execution, GroupOperation operation, Id x) + : op(Op::GroupLogicalOrKHR) + , wordCount(FixedWordSize) + { + this->resultType = resultType; + this->result = result; + this->execution = execution; + this->operation = operation; + this->x = x; + } + + static constexpr Op OpCode = Op::GroupLogicalOrKHR; + static constexpr uint16_t FixedWordSize = 6U; + Op op; + uint16_t wordCount; + IdResultType resultType; + IdResult result; + IdScope execution; + GroupOperation operation; + Id x; +}; + +struct OpGroupLogicalXorKHR +{ + OpGroupLogicalXorKHR(const ConstIter &it) + { + memcpy(this, it.words(), sizeof(*this)); + } + OpGroupLogicalXorKHR(IdResultType resultType, IdResult result, IdScope execution, GroupOperation operation, Id x) + : op(Op::GroupLogicalXorKHR) + , wordCount(FixedWordSize) + { + this->resultType = resultType; + this->result = result; + this->execution = execution; + this->operation = operation; + this->x = x; + } + + static constexpr Op OpCode = Op::GroupLogicalXorKHR; + static constexpr uint16_t FixedWordSize = 6U; + Op op; + uint16_t wordCount; + IdResultType resultType; + IdResult result; + IdScope execution; + GroupOperation operation; + Id x; +}; + template inline rdcstr ParamToStr(const std::function &idName, const T &el) { diff --git a/renderdoc/driver/shaders/spirv/spirv_reflect.cpp b/renderdoc/driver/shaders/spirv/spirv_reflect.cpp index 8ddc17c8f..3360df22c 100644 --- a/renderdoc/driver/shaders/spirv/spirv_reflect.cpp +++ b/renderdoc/driver/shaders/spirv/spirv_reflect.cpp @@ -715,6 +715,7 @@ void Reflector::MakeReflection(const GraphicsAPI sourceAPI, const ShaderStage st case SourceLanguage::CPP_for_OpenCL: case SourceLanguage::Unknown: case SourceLanguage::Invalid: + case SourceLanguage::SYCL: case SourceLanguage::Max: break; } diff --git a/renderdoc/driver/vulkan/all_exts.txt b/renderdoc/driver/vulkan/all_exts.txt index 9ea99ceb7..fd7e09ac8 100644 --- a/renderdoc/driver/vulkan/all_exts.txt +++ b/renderdoc/driver/vulkan/all_exts.txt @@ -228,6 +228,7 @@ 301 VK_NV_device_diagnostics_config 302 VK_QCOM_render_pass_store_ops 315 VK_KHR_synchronization2 +321 VK_EXT_graphics_pipeline_library 324 VK_KHR_shader_subgroup_uniform_control_flow 326 VK_KHR_zero_initialize_workgroup_memory 327 VK_NV_fragment_shading_rate_enums @@ -260,13 +261,17 @@ 378 VK_EXT_extended_dynamic_state2 379 VK_QNX_screen_surface 382 VK_EXT_color_write_enable +383 VK_EXT_primitives_generated_query 389 VK_EXT_global_priority_query 392 VK_EXT_image_view_min_lod 393 VK_EXT_multi_draw +394 VK_EXT_image_2d_view_of_3d +395 VK_KHR_portability_enumeration 401 VK_EXT_load_store_op_none 412 VK_EXT_border_color_swizzle 413 VK_EXT_pageable_device_local_memory 414 VK_KHR_maintenance4 +421 VK_VALVE_descriptor_set_host_mapping 426 VK_QCOM_fragment_density_map_offset 431 VK_NV_linear_color_attachment 434 VK_GOOGLE_surfaceless_query diff --git a/renderdoc/driver/vulkan/extension_support.md b/renderdoc/driver/vulkan/extension_support.md index 0ffd3d544..0235abddb 100644 --- a/renderdoc/driver/vulkan/extension_support.md +++ b/renderdoc/driver/vulkan/extension_support.md @@ -212,6 +212,7 @@ KHR extensions will definitely be implemented at some point, though KHR extensio The portability subset is only relevant on mac, which is not a supported platform. * `VK_KHR_portability_subset` +* `VK_KHR_portability_enumeration` ## KHR Ray tracing extensions @@ -231,12 +232,15 @@ Ray tracing extensions are now standard and will likely be supported at some poi * `VK_EXT_depth_clip_control` * `VK_EXT_device_memory_report` * `VK_EXT_external_memory_host` +* `VK_EXT_image_2d_view_of_3d` * `VK_EXT_image_drm_format_modifier` * `VK_EXT_image_view_min_lod` * `VK_EXT_multi_draw` +* `VK_EXT_graphics_pipeline_library` * `VK_EXT_pageable_device_local_memory` * `VK_EXT_physical_device_drm` * `VK_EXT_primitive_topology_list_restart` +* `VK_EXT_primitives_generated_query` * `VK_EXT_provoking_vertex` ## Platform/IHV Extensions @@ -309,6 +313,7 @@ Ray tracing extensions are now standard and will likely be supported at some poi ### Valve * `VK_VALVE_mutable_descriptor_type` +* `VK_VALVE_descriptor_set_host_mapping` ## WSI for other platforms diff --git a/renderdoc/driver/vulkan/official/vulkan_android.h b/renderdoc/driver/vulkan/official/vulkan_android.h index de79d382f..11f539796 100644 --- a/renderdoc/driver/vulkan/official/vulkan_android.h +++ b/renderdoc/driver/vulkan/official/vulkan_android.h @@ -44,7 +44,7 @@ VKAPI_ATTR VkResult VKAPI_CALL vkCreateAndroidSurfaceKHR( #define VK_ANDROID_external_memory_android_hardware_buffer 1 struct AHardwareBuffer; -#define VK_ANDROID_EXTERNAL_MEMORY_ANDROID_HARDWARE_BUFFER_SPEC_VERSION 4 +#define VK_ANDROID_EXTERNAL_MEMORY_ANDROID_HARDWARE_BUFFER_SPEC_VERSION 5 #define VK_ANDROID_EXTERNAL_MEMORY_ANDROID_HARDWARE_BUFFER_EXTENSION_NAME "VK_ANDROID_external_memory_android_hardware_buffer" typedef struct VkAndroidHardwareBufferUsageANDROID { VkStructureType sType; diff --git a/renderdoc/driver/vulkan/official/vulkan_core.h b/renderdoc/driver/vulkan/official/vulkan_core.h index 228e4ef6e..5c8b8461f 100644 --- a/renderdoc/driver/vulkan/official/vulkan_core.h +++ b/renderdoc/driver/vulkan/official/vulkan_core.h @@ -72,7 +72,7 @@ extern "C" { #define VK_API_VERSION_1_0 VK_MAKE_API_VERSION(0, 1, 0, 0)// Patch version should always be set to 0 // Version of this file -#define VK_HEADER_VERSION 204 +#define VK_HEADER_VERSION 211 // Complete version of this file #define VK_HEADER_VERSION_COMPLETE VK_MAKE_API_VERSION(0, 1, 3, VK_HEADER_VERSION) @@ -477,6 +477,9 @@ typedef enum VkStructureType { #endif #ifdef VK_ENABLE_BETA_EXTENSIONS VK_STRUCTURE_TYPE_VIDEO_DECODE_INFO_KHR = 1000024000, +#endif +#ifdef VK_ENABLE_BETA_EXTENSIONS + VK_STRUCTURE_TYPE_VIDEO_DECODE_CAPABILITIES_KHR = 1000024001, #endif VK_STRUCTURE_TYPE_DEDICATED_ALLOCATION_IMAGE_CREATE_INFO_NV = 1000026000, VK_STRUCTURE_TYPE_DEDICATED_ALLOCATION_BUFFER_CREATE_INFO_NV = 1000026001, @@ -493,94 +496,88 @@ typedef enum VkStructureType { VK_STRUCTURE_TYPE_VIDEO_ENCODE_H264_CAPABILITIES_EXT = 1000038000, #endif #ifdef VK_ENABLE_BETA_EXTENSIONS - VK_STRUCTURE_TYPE_VIDEO_ENCODE_H264_SESSION_CREATE_INFO_EXT = 1000038001, + VK_STRUCTURE_TYPE_VIDEO_ENCODE_H264_SESSION_PARAMETERS_CREATE_INFO_EXT = 1000038001, #endif #ifdef VK_ENABLE_BETA_EXTENSIONS - VK_STRUCTURE_TYPE_VIDEO_ENCODE_H264_SESSION_PARAMETERS_CREATE_INFO_EXT = 1000038002, + VK_STRUCTURE_TYPE_VIDEO_ENCODE_H264_SESSION_PARAMETERS_ADD_INFO_EXT = 1000038002, #endif #ifdef VK_ENABLE_BETA_EXTENSIONS - VK_STRUCTURE_TYPE_VIDEO_ENCODE_H264_SESSION_PARAMETERS_ADD_INFO_EXT = 1000038003, + VK_STRUCTURE_TYPE_VIDEO_ENCODE_H264_VCL_FRAME_INFO_EXT = 1000038003, #endif #ifdef VK_ENABLE_BETA_EXTENSIONS - VK_STRUCTURE_TYPE_VIDEO_ENCODE_H264_VCL_FRAME_INFO_EXT = 1000038004, + VK_STRUCTURE_TYPE_VIDEO_ENCODE_H264_DPB_SLOT_INFO_EXT = 1000038004, #endif #ifdef VK_ENABLE_BETA_EXTENSIONS - VK_STRUCTURE_TYPE_VIDEO_ENCODE_H264_DPB_SLOT_INFO_EXT = 1000038005, + VK_STRUCTURE_TYPE_VIDEO_ENCODE_H264_NALU_SLICE_EXT = 1000038005, #endif #ifdef VK_ENABLE_BETA_EXTENSIONS - VK_STRUCTURE_TYPE_VIDEO_ENCODE_H264_NALU_SLICE_EXT = 1000038006, + VK_STRUCTURE_TYPE_VIDEO_ENCODE_H264_EMIT_PICTURE_PARAMETERS_EXT = 1000038006, #endif #ifdef VK_ENABLE_BETA_EXTENSIONS - VK_STRUCTURE_TYPE_VIDEO_ENCODE_H264_EMIT_PICTURE_PARAMETERS_EXT = 1000038007, + VK_STRUCTURE_TYPE_VIDEO_ENCODE_H264_PROFILE_EXT = 1000038007, #endif #ifdef VK_ENABLE_BETA_EXTENSIONS - VK_STRUCTURE_TYPE_VIDEO_ENCODE_H264_PROFILE_EXT = 1000038008, + VK_STRUCTURE_TYPE_VIDEO_ENCODE_H264_RATE_CONTROL_INFO_EXT = 1000038008, #endif #ifdef VK_ENABLE_BETA_EXTENSIONS - VK_STRUCTURE_TYPE_VIDEO_ENCODE_H264_RATE_CONTROL_INFO_EXT = 1000038009, + VK_STRUCTURE_TYPE_VIDEO_ENCODE_H264_RATE_CONTROL_LAYER_INFO_EXT = 1000038009, #endif #ifdef VK_ENABLE_BETA_EXTENSIONS - VK_STRUCTURE_TYPE_VIDEO_ENCODE_H264_RATE_CONTROL_LAYER_INFO_EXT = 1000038010, + VK_STRUCTURE_TYPE_VIDEO_ENCODE_H264_REFERENCE_LISTS_EXT = 1000038010, #endif #ifdef VK_ENABLE_BETA_EXTENSIONS VK_STRUCTURE_TYPE_VIDEO_ENCODE_H265_CAPABILITIES_EXT = 1000039000, #endif #ifdef VK_ENABLE_BETA_EXTENSIONS - VK_STRUCTURE_TYPE_VIDEO_ENCODE_H265_SESSION_CREATE_INFO_EXT = 1000039001, + VK_STRUCTURE_TYPE_VIDEO_ENCODE_H265_SESSION_PARAMETERS_CREATE_INFO_EXT = 1000039001, #endif #ifdef VK_ENABLE_BETA_EXTENSIONS - VK_STRUCTURE_TYPE_VIDEO_ENCODE_H265_SESSION_PARAMETERS_CREATE_INFO_EXT = 1000039002, + VK_STRUCTURE_TYPE_VIDEO_ENCODE_H265_SESSION_PARAMETERS_ADD_INFO_EXT = 1000039002, #endif #ifdef VK_ENABLE_BETA_EXTENSIONS - VK_STRUCTURE_TYPE_VIDEO_ENCODE_H265_SESSION_PARAMETERS_ADD_INFO_EXT = 1000039003, + VK_STRUCTURE_TYPE_VIDEO_ENCODE_H265_VCL_FRAME_INFO_EXT = 1000039003, #endif #ifdef VK_ENABLE_BETA_EXTENSIONS - VK_STRUCTURE_TYPE_VIDEO_ENCODE_H265_VCL_FRAME_INFO_EXT = 1000039004, + VK_STRUCTURE_TYPE_VIDEO_ENCODE_H265_DPB_SLOT_INFO_EXT = 1000039004, #endif #ifdef VK_ENABLE_BETA_EXTENSIONS - VK_STRUCTURE_TYPE_VIDEO_ENCODE_H265_DPB_SLOT_INFO_EXT = 1000039005, + VK_STRUCTURE_TYPE_VIDEO_ENCODE_H265_NALU_SLICE_SEGMENT_EXT = 1000039005, #endif #ifdef VK_ENABLE_BETA_EXTENSIONS - VK_STRUCTURE_TYPE_VIDEO_ENCODE_H265_NALU_SLICE_EXT = 1000039006, + VK_STRUCTURE_TYPE_VIDEO_ENCODE_H265_EMIT_PICTURE_PARAMETERS_EXT = 1000039006, #endif #ifdef VK_ENABLE_BETA_EXTENSIONS - VK_STRUCTURE_TYPE_VIDEO_ENCODE_H265_EMIT_PICTURE_PARAMETERS_EXT = 1000039007, + VK_STRUCTURE_TYPE_VIDEO_ENCODE_H265_PROFILE_EXT = 1000039007, #endif #ifdef VK_ENABLE_BETA_EXTENSIONS - VK_STRUCTURE_TYPE_VIDEO_ENCODE_H265_PROFILE_EXT = 1000039008, + VK_STRUCTURE_TYPE_VIDEO_ENCODE_H265_REFERENCE_LISTS_EXT = 1000039008, #endif #ifdef VK_ENABLE_BETA_EXTENSIONS - VK_STRUCTURE_TYPE_VIDEO_ENCODE_H265_REFERENCE_LISTS_EXT = 1000039009, + VK_STRUCTURE_TYPE_VIDEO_ENCODE_H265_RATE_CONTROL_INFO_EXT = 1000039009, #endif #ifdef VK_ENABLE_BETA_EXTENSIONS - VK_STRUCTURE_TYPE_VIDEO_ENCODE_H265_RATE_CONTROL_INFO_EXT = 1000039010, -#endif -#ifdef VK_ENABLE_BETA_EXTENSIONS - VK_STRUCTURE_TYPE_VIDEO_ENCODE_H265_RATE_CONTROL_LAYER_INFO_EXT = 1000039011, + VK_STRUCTURE_TYPE_VIDEO_ENCODE_H265_RATE_CONTROL_LAYER_INFO_EXT = 1000039010, #endif #ifdef VK_ENABLE_BETA_EXTENSIONS VK_STRUCTURE_TYPE_VIDEO_DECODE_H264_CAPABILITIES_EXT = 1000040000, #endif #ifdef VK_ENABLE_BETA_EXTENSIONS - VK_STRUCTURE_TYPE_VIDEO_DECODE_H264_SESSION_CREATE_INFO_EXT = 1000040001, + VK_STRUCTURE_TYPE_VIDEO_DECODE_H264_PICTURE_INFO_EXT = 1000040001, #endif #ifdef VK_ENABLE_BETA_EXTENSIONS - VK_STRUCTURE_TYPE_VIDEO_DECODE_H264_PICTURE_INFO_EXT = 1000040002, + VK_STRUCTURE_TYPE_VIDEO_DECODE_H264_MVC_EXT = 1000040002, #endif #ifdef VK_ENABLE_BETA_EXTENSIONS - VK_STRUCTURE_TYPE_VIDEO_DECODE_H264_MVC_EXT = 1000040003, + VK_STRUCTURE_TYPE_VIDEO_DECODE_H264_PROFILE_EXT = 1000040003, #endif #ifdef VK_ENABLE_BETA_EXTENSIONS - VK_STRUCTURE_TYPE_VIDEO_DECODE_H264_PROFILE_EXT = 1000040004, + VK_STRUCTURE_TYPE_VIDEO_DECODE_H264_SESSION_PARAMETERS_CREATE_INFO_EXT = 1000040004, #endif #ifdef VK_ENABLE_BETA_EXTENSIONS - VK_STRUCTURE_TYPE_VIDEO_DECODE_H264_SESSION_PARAMETERS_CREATE_INFO_EXT = 1000040005, + VK_STRUCTURE_TYPE_VIDEO_DECODE_H264_SESSION_PARAMETERS_ADD_INFO_EXT = 1000040005, #endif #ifdef VK_ENABLE_BETA_EXTENSIONS - VK_STRUCTURE_TYPE_VIDEO_DECODE_H264_SESSION_PARAMETERS_ADD_INFO_EXT = 1000040006, -#endif -#ifdef VK_ENABLE_BETA_EXTENSIONS - VK_STRUCTURE_TYPE_VIDEO_DECODE_H264_DPB_SLOT_INFO_EXT = 1000040007, + VK_STRUCTURE_TYPE_VIDEO_DECODE_H264_DPB_SLOT_INFO_EXT = 1000040006, #endif VK_STRUCTURE_TYPE_TEXTURE_LOD_GATHER_FORMAT_PROPERTIES_AMD = 1000041000, VK_STRUCTURE_TYPE_RENDERING_FRAGMENT_SHADING_RATE_ATTACHMENT_INFO_KHR = 1000044006, @@ -745,22 +742,19 @@ typedef enum VkStructureType { VK_STRUCTURE_TYPE_VIDEO_DECODE_H265_CAPABILITIES_EXT = 1000187000, #endif #ifdef VK_ENABLE_BETA_EXTENSIONS - VK_STRUCTURE_TYPE_VIDEO_DECODE_H265_SESSION_CREATE_INFO_EXT = 1000187001, + VK_STRUCTURE_TYPE_VIDEO_DECODE_H265_SESSION_PARAMETERS_CREATE_INFO_EXT = 1000187001, #endif #ifdef VK_ENABLE_BETA_EXTENSIONS - VK_STRUCTURE_TYPE_VIDEO_DECODE_H265_SESSION_PARAMETERS_CREATE_INFO_EXT = 1000187002, + VK_STRUCTURE_TYPE_VIDEO_DECODE_H265_SESSION_PARAMETERS_ADD_INFO_EXT = 1000187002, #endif #ifdef VK_ENABLE_BETA_EXTENSIONS - VK_STRUCTURE_TYPE_VIDEO_DECODE_H265_SESSION_PARAMETERS_ADD_INFO_EXT = 1000187003, + VK_STRUCTURE_TYPE_VIDEO_DECODE_H265_PROFILE_EXT = 1000187003, #endif #ifdef VK_ENABLE_BETA_EXTENSIONS - VK_STRUCTURE_TYPE_VIDEO_DECODE_H265_PROFILE_EXT = 1000187004, + VK_STRUCTURE_TYPE_VIDEO_DECODE_H265_PICTURE_INFO_EXT = 1000187004, #endif #ifdef VK_ENABLE_BETA_EXTENSIONS - VK_STRUCTURE_TYPE_VIDEO_DECODE_H265_PICTURE_INFO_EXT = 1000187005, -#endif -#ifdef VK_ENABLE_BETA_EXTENSIONS - VK_STRUCTURE_TYPE_VIDEO_DECODE_H265_DPB_SLOT_INFO_EXT = 1000187006, + VK_STRUCTURE_TYPE_VIDEO_DECODE_H265_DPB_SLOT_INFO_EXT = 1000187005, #endif VK_STRUCTURE_TYPE_DEVICE_QUEUE_GLOBAL_PRIORITY_CREATE_INFO_KHR = 1000174000, VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_GLOBAL_PRIORITY_QUERY_FEATURES_KHR = 1000388000, @@ -871,11 +865,17 @@ typedef enum VkStructureType { #endif #ifdef VK_ENABLE_BETA_EXTENSIONS VK_STRUCTURE_TYPE_VIDEO_ENCODE_RATE_CONTROL_LAYER_INFO_KHR = 1000299002, +#endif +#ifdef VK_ENABLE_BETA_EXTENSIONS + VK_STRUCTURE_TYPE_VIDEO_ENCODE_CAPABILITIES_KHR = 1000299003, #endif VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DIAGNOSTICS_CONFIG_FEATURES_NV = 1000300000, VK_STRUCTURE_TYPE_DEVICE_DIAGNOSTICS_CONFIG_CREATE_INFO_NV = 1000300001, VK_STRUCTURE_TYPE_QUEUE_FAMILY_CHECKPOINT_PROPERTIES_2_NV = 1000314008, VK_STRUCTURE_TYPE_CHECKPOINT_DATA_2_NV = 1000314009, + VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_GRAPHICS_PIPELINE_LIBRARY_FEATURES_EXT = 1000320000, + VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_GRAPHICS_PIPELINE_LIBRARY_PROPERTIES_EXT = 1000320001, + VK_STRUCTURE_TYPE_GRAPHICS_PIPELINE_LIBRARY_CREATE_INFO_EXT = 1000320002, VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_SUBGROUP_UNIFORM_CONTROL_FLOW_FEATURES_KHR = 1000323000, VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_SHADING_RATE_ENUMS_PROPERTIES_NV = 1000326000, VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_SHADING_RATE_ENUMS_FEATURES_NV = 1000326001, @@ -926,13 +926,18 @@ typedef enum VkStructureType { VK_STRUCTURE_TYPE_SCREEN_SURFACE_CREATE_INFO_QNX = 1000378000, VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_COLOR_WRITE_ENABLE_FEATURES_EXT = 1000381000, VK_STRUCTURE_TYPE_PIPELINE_COLOR_WRITE_CREATE_INFO_EXT = 1000381001, + VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PRIMITIVES_GENERATED_QUERY_FEATURES_EXT = 1000382000, VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGE_VIEW_MIN_LOD_FEATURES_EXT = 1000391000, VK_STRUCTURE_TYPE_IMAGE_VIEW_MIN_LOD_CREATE_INFO_EXT = 1000391001, VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MULTI_DRAW_FEATURES_EXT = 1000392000, VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MULTI_DRAW_PROPERTIES_EXT = 1000392001, + VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGE_2D_VIEW_OF_3D_FEATURES_EXT = 1000393000, VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_BORDER_COLOR_SWIZZLE_FEATURES_EXT = 1000411000, VK_STRUCTURE_TYPE_SAMPLER_BORDER_COLOR_COMPONENT_MAPPING_CREATE_INFO_EXT = 1000411001, VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PAGEABLE_DEVICE_LOCAL_MEMORY_FEATURES_EXT = 1000412000, + VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DESCRIPTOR_SET_HOST_MAPPING_FEATURES_VALVE = 1000420000, + VK_STRUCTURE_TYPE_DESCRIPTOR_SET_BINDING_REFERENCE_VALVE = 1000420001, + VK_STRUCTURE_TYPE_DESCRIPTOR_SET_LAYOUT_HOST_MAPPING_INFO_VALVE = 1000420002, VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_DENSITY_MAP_OFFSET_FEATURES_QCOM = 1000425000, VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_DENSITY_MAP_OFFSET_PROPERTIES_QCOM = 1000425001, VK_STRUCTURE_TYPE_SUBPASS_FRAGMENT_DENSITY_MAP_OFFSET_END_INFO_QCOM = 1000425002, @@ -1590,6 +1595,7 @@ typedef enum VkQueryType { #ifdef VK_ENABLE_BETA_EXTENSIONS VK_QUERY_TYPE_VIDEO_ENCODE_BITSTREAM_BUFFER_RANGE_KHR = 1000299000, #endif + VK_QUERY_TYPE_PRIMITIVES_GENERATED_EXT = 1000382000, VK_QUERY_TYPE_MAX_ENUM = 0x7FFFFFFF } VkQueryType; @@ -1984,14 +1990,15 @@ typedef enum VkImageAspectFlagBits { VK_IMAGE_ASPECT_PLANE_0_BIT = 0x00000010, VK_IMAGE_ASPECT_PLANE_1_BIT = 0x00000020, VK_IMAGE_ASPECT_PLANE_2_BIT = 0x00000040, + VK_IMAGE_ASPECT_NONE = 0, VK_IMAGE_ASPECT_MEMORY_PLANE_0_BIT_EXT = 0x00000080, VK_IMAGE_ASPECT_MEMORY_PLANE_1_BIT_EXT = 0x00000100, VK_IMAGE_ASPECT_MEMORY_PLANE_2_BIT_EXT = 0x00000200, VK_IMAGE_ASPECT_MEMORY_PLANE_3_BIT_EXT = 0x00000400, - VK_IMAGE_ASPECT_NONE_KHR = 0, VK_IMAGE_ASPECT_PLANE_0_BIT_KHR = VK_IMAGE_ASPECT_PLANE_0_BIT, VK_IMAGE_ASPECT_PLANE_1_BIT_KHR = VK_IMAGE_ASPECT_PLANE_1_BIT, VK_IMAGE_ASPECT_PLANE_2_BIT_KHR = VK_IMAGE_ASPECT_PLANE_2_BIT, + VK_IMAGE_ASPECT_NONE_KHR = VK_IMAGE_ASPECT_NONE, VK_IMAGE_ASPECT_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF } VkImageAspectFlagBits; typedef VkFlags VkImageAspectFlags; @@ -2067,6 +2074,7 @@ typedef enum VkImageCreateFlagBits { VK_IMAGE_CREATE_CORNER_SAMPLED_BIT_NV = 0x00002000, VK_IMAGE_CREATE_SAMPLE_LOCATIONS_COMPATIBLE_DEPTH_BIT_EXT = 0x00001000, VK_IMAGE_CREATE_SUBSAMPLED_BIT_EXT = 0x00004000, + VK_IMAGE_CREATE_2D_VIEW_COMPATIBLE_BIT_EXT = 0x00020000, VK_IMAGE_CREATE_FRAGMENT_DENSITY_MAP_OFFSET_BIT_QCOM = 0x00008000, VK_IMAGE_CREATE_SPLIT_INSTANCE_BIND_REGIONS_BIT_KHR = VK_IMAGE_CREATE_SPLIT_INSTANCE_BIND_REGIONS_BIT, VK_IMAGE_CREATE_2D_ARRAY_COMPATIBLE_BIT_KHR = VK_IMAGE_CREATE_2D_ARRAY_COMPATIBLE_BIT, @@ -2124,6 +2132,11 @@ typedef enum VkImageUsageFlagBits { VK_IMAGE_USAGE_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF } VkImageUsageFlagBits; typedef VkFlags VkImageUsageFlags; + +typedef enum VkInstanceCreateFlagBits { + VK_INSTANCE_CREATE_ENUMERATE_PORTABILITY_BIT_KHR = 0x00000001, + VK_INSTANCE_CREATE_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF +} VkInstanceCreateFlagBits; typedef VkFlags VkInstanceCreateFlags; typedef enum VkMemoryHeapFlagBits { @@ -2360,6 +2373,8 @@ typedef enum VkPipelineCreateFlagBits { VK_PIPELINE_CREATE_CAPTURE_INTERNAL_REPRESENTATIONS_BIT_KHR = 0x00000080, VK_PIPELINE_CREATE_INDIRECT_BINDABLE_BIT_NV = 0x00040000, VK_PIPELINE_CREATE_LIBRARY_BIT_KHR = 0x00000800, + VK_PIPELINE_CREATE_RETAIN_LINK_TIME_OPTIMIZATION_INFO_BIT_EXT = 0x00800000, + VK_PIPELINE_CREATE_LINK_TIME_OPTIMIZATION_BIT_EXT = 0x00000400, VK_PIPELINE_CREATE_RAY_TRACING_ALLOW_MOTION_BIT_NV = 0x00100000, VK_PIPELINE_CREATE_DISPATCH_BASE = VK_PIPELINE_CREATE_DISPATCH_BASE_BIT, VK_PIPELINE_RASTERIZATION_STATE_CREATE_FRAGMENT_SHADING_RATE_ATTACHMENT_BIT_KHR = VK_PIPELINE_CREATE_RENDERING_FRAGMENT_SHADING_RATE_ATTACHMENT_BIT_KHR, @@ -2436,6 +2451,11 @@ typedef enum VkPipelineColorBlendStateCreateFlagBits { } VkPipelineColorBlendStateCreateFlagBits; typedef VkFlags VkPipelineColorBlendStateCreateFlags; typedef VkFlags VkPipelineDynamicStateCreateFlags; + +typedef enum VkPipelineLayoutCreateFlagBits { + VK_PIPELINE_LAYOUT_CREATE_INDEPENDENT_SETS_BIT_EXT = 0x00000002, + VK_PIPELINE_LAYOUT_CREATE_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF +} VkPipelineLayoutCreateFlagBits; typedef VkFlags VkPipelineLayoutCreateFlags; typedef VkFlags VkShaderStageFlags; @@ -6259,10 +6279,6 @@ typedef enum VkToolPurposeFlagBits { VK_TOOL_PURPOSE_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF } VkToolPurposeFlagBits; typedef VkFlags VkToolPurposeFlags; - -typedef enum VkPrivateDataSlotCreateFlagBits { - VK_PRIVATE_DATA_SLOT_CREATE_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF -} VkPrivateDataSlotCreateFlagBits; typedef VkFlags VkPrivateDataSlotCreateFlags; typedef VkFlags64 VkPipelineStageFlags2; @@ -9468,6 +9484,11 @@ typedef VkFormatProperties3 VkFormatProperties3KHR; +#define VK_KHR_portability_enumeration 1 +#define VK_KHR_PORTABILITY_ENUMERATION_SPEC_VERSION 1 +#define VK_KHR_PORTABILITY_ENUMERATION_EXTENSION_NAME "VK_KHR_portability_enumeration" + + #define VK_KHR_maintenance4 1 #define VK_KHR_MAINTENANCE_4_SPEC_VERSION 2 #define VK_KHR_MAINTENANCE_4_EXTENSION_NAME "VK_KHR_maintenance4" @@ -13127,8 +13148,6 @@ typedef VkPrivateDataSlot VkPrivateDataSlotEXT; #define VK_EXT_PRIVATE_DATA_EXTENSION_NAME "VK_EXT_private_data" typedef VkPrivateDataSlotCreateFlags VkPrivateDataSlotCreateFlagsEXT; -typedef VkPrivateDataSlotCreateFlagBits VkPrivateDataSlotCreateFlagBitsEXT; - typedef VkPhysicalDevicePrivateDataFeatures VkPhysicalDevicePrivateDataFeaturesEXT; typedef VkDevicePrivateDataCreateInfo VkDevicePrivateDataCreateInfoEXT; @@ -13205,6 +13224,39 @@ typedef struct VkDeviceDiagnosticsConfigCreateInfoNV { #define VK_QCOM_RENDER_PASS_STORE_OPS_EXTENSION_NAME "VK_QCOM_render_pass_store_ops" +#define VK_EXT_graphics_pipeline_library 1 +#define VK_EXT_GRAPHICS_PIPELINE_LIBRARY_SPEC_VERSION 1 +#define VK_EXT_GRAPHICS_PIPELINE_LIBRARY_EXTENSION_NAME "VK_EXT_graphics_pipeline_library" + +typedef enum VkGraphicsPipelineLibraryFlagBitsEXT { + VK_GRAPHICS_PIPELINE_LIBRARY_VERTEX_INPUT_INTERFACE_BIT_EXT = 0x00000001, + VK_GRAPHICS_PIPELINE_LIBRARY_PRE_RASTERIZATION_SHADERS_BIT_EXT = 0x00000002, + VK_GRAPHICS_PIPELINE_LIBRARY_FRAGMENT_SHADER_BIT_EXT = 0x00000004, + VK_GRAPHICS_PIPELINE_LIBRARY_FRAGMENT_OUTPUT_INTERFACE_BIT_EXT = 0x00000008, + VK_GRAPHICS_PIPELINE_LIBRARY_FLAG_BITS_MAX_ENUM_EXT = 0x7FFFFFFF +} VkGraphicsPipelineLibraryFlagBitsEXT; +typedef VkFlags VkGraphicsPipelineLibraryFlagsEXT; +typedef struct VkPhysicalDeviceGraphicsPipelineLibraryFeaturesEXT { + VkStructureType sType; + void* pNext; + VkBool32 graphicsPipelineLibrary; +} VkPhysicalDeviceGraphicsPipelineLibraryFeaturesEXT; + +typedef struct VkPhysicalDeviceGraphicsPipelineLibraryPropertiesEXT { + VkStructureType sType; + void* pNext; + VkBool32 graphicsPipelineLibraryFastLinking; + VkBool32 graphicsPipelineLibraryIndependentInterpolationDecoration; +} VkPhysicalDeviceGraphicsPipelineLibraryPropertiesEXT; + +typedef struct VkGraphicsPipelineLibraryCreateInfoEXT { + VkStructureType sType; + void* pNext; + VkGraphicsPipelineLibraryFlagsEXT flags; +} VkGraphicsPipelineLibraryCreateInfoEXT; + + + #define VK_NV_fragment_shading_rate_enums 1 #define VK_NV_FRAGMENT_SHADING_RATE_ENUMS_SPEC_VERSION 1 #define VK_NV_FRAGMENT_SHADING_RATE_ENUMS_EXTENSION_NAME "VK_NV_fragment_shading_rate_enums" @@ -13418,7 +13470,7 @@ typedef struct VkPhysicalDevice4444FormatsFeaturesEXT { #define VK_ARM_RASTERIZATION_ORDER_ATTACHMENT_ACCESS_EXTENSION_NAME "VK_ARM_rasterization_order_attachment_access" typedef struct VkPhysicalDeviceRasterizationOrderAttachmentAccessFeaturesARM { VkStructureType sType; - const void* pNext; + void* pNext; VkBool32 rasterizationOrderColorAttachmentAccess; VkBool32 rasterizationOrderDepthAttachmentAccess; VkBool32 rasterizationOrderStencilAttachmentAccess; @@ -13710,6 +13762,19 @@ VKAPI_ATTR void VKAPI_CALL vkCmdSetColorWrite #endif +#define VK_EXT_primitives_generated_query 1 +#define VK_EXT_PRIMITIVES_GENERATED_QUERY_SPEC_VERSION 1 +#define VK_EXT_PRIMITIVES_GENERATED_QUERY_EXTENSION_NAME "VK_EXT_primitives_generated_query" +typedef struct VkPhysicalDevicePrimitivesGeneratedQueryFeaturesEXT { + VkStructureType sType; + void* pNext; + VkBool32 primitivesGeneratedQuery; + VkBool32 primitivesGeneratedQueryWithRasterizerDiscard; + VkBool32 primitivesGeneratedQueryWithNonZeroStreams; +} VkPhysicalDevicePrimitivesGeneratedQueryFeaturesEXT; + + + #define VK_EXT_global_priority_query 1 #define VK_EXT_GLOBAL_PRIORITY_QUERY_SPEC_VERSION 1 #define VK_EXT_GLOBAL_PRIORITY_QUERY_EXTENSION_NAME "VK_EXT_global_priority_query" @@ -13786,6 +13851,18 @@ VKAPI_ATTR void VKAPI_CALL vkCmdDrawMultiIndexedEXT( #endif +#define VK_EXT_image_2d_view_of_3d 1 +#define VK_EXT_IMAGE_2D_VIEW_OF_3D_SPEC_VERSION 1 +#define VK_EXT_IMAGE_2D_VIEW_OF_3D_EXTENSION_NAME "VK_EXT_image_2d_view_of_3d" +typedef struct VkPhysicalDeviceImage2DViewOf3DFeaturesEXT { + VkStructureType sType; + void* pNext; + VkBool32 image2DViewOf3D; + VkBool32 sampler2DViewOf3D; +} VkPhysicalDeviceImage2DViewOf3DFeaturesEXT; + + + #define VK_EXT_load_store_op_none 1 #define VK_EXT_LOAD_STORE_OP_NONE_SPEC_VERSION 1 #define VK_EXT_LOAD_STORE_OP_NONE_EXTENSION_NAME "VK_EXT_load_store_op_none" @@ -13829,6 +13906,45 @@ VKAPI_ATTR void VKAPI_CALL vkSetDeviceMemoryPriorityEXT( #endif +#define VK_VALVE_descriptor_set_host_mapping 1 +#define VK_VALVE_DESCRIPTOR_SET_HOST_MAPPING_SPEC_VERSION 1 +#define VK_VALVE_DESCRIPTOR_SET_HOST_MAPPING_EXTENSION_NAME "VK_VALVE_descriptor_set_host_mapping" +typedef struct VkPhysicalDeviceDescriptorSetHostMappingFeaturesVALVE { + VkStructureType sType; + void* pNext; + VkBool32 descriptorSetHostMapping; +} VkPhysicalDeviceDescriptorSetHostMappingFeaturesVALVE; + +typedef struct VkDescriptorSetBindingReferenceVALVE { + VkStructureType sType; + const void* pNext; + VkDescriptorSetLayout descriptorSetLayout; + uint32_t binding; +} VkDescriptorSetBindingReferenceVALVE; + +typedef struct VkDescriptorSetLayoutHostMappingInfoVALVE { + VkStructureType sType; + void* pNext; + size_t descriptorOffset; + uint32_t descriptorSize; +} VkDescriptorSetLayoutHostMappingInfoVALVE; + +typedef void (VKAPI_PTR *PFN_vkGetDescriptorSetLayoutHostMappingInfoVALVE)(VkDevice device, const VkDescriptorSetBindingReferenceVALVE* pBindingReference, VkDescriptorSetLayoutHostMappingInfoVALVE* pHostMapping); +typedef void (VKAPI_PTR *PFN_vkGetDescriptorSetHostMappingVALVE)(VkDevice device, VkDescriptorSet descriptorSet, void** ppData); + +#ifndef VK_NO_PROTOTYPES +VKAPI_ATTR void VKAPI_CALL vkGetDescriptorSetLayoutHostMappingInfoVALVE( + VkDevice device, + const VkDescriptorSetBindingReferenceVALVE* pBindingReference, + VkDescriptorSetLayoutHostMappingInfoVALVE* pHostMapping); + +VKAPI_ATTR void VKAPI_CALL vkGetDescriptorSetHostMappingVALVE( + VkDevice device, + VkDescriptorSet descriptorSet, + void** ppData); +#endif + + #define VK_QCOM_fragment_density_map_offset 1 #define VK_QCOM_FRAGMENT_DENSITY_MAP_OFFSET_SPEC_VERSION 1 #define VK_QCOM_FRAGMENT_DENSITY_MAP_OFFSET_EXTENSION_NAME "VK_QCOM_fragment_density_map_offset" diff --git a/renderdoc/driver/vulkan/vk.xml b/renderdoc/driver/vulkan/vk.xml index 9477feae1..97ec3b068 100644 --- a/renderdoc/driver/vulkan/vk.xml +++ b/renderdoc/driver/vulkan/vk.xml @@ -56,6 +56,7 @@ branch of the member gitlab server. + @@ -72,6 +73,7 @@ branch of the member gitlab server. + @@ -157,7 +159,7 @@ branch of the member gitlab server. // Vulkan 1.3 version number #define VK_API_VERSION_1_3 VK_MAKE_API_VERSION(0, 1, 3, 0)// Patch version should always be set to 0 // Version of this file -#define VK_HEADER_VERSION 204 +#define VK_HEADER_VERSION 211 // Complete version of this file #define VK_HEADER_VERSION_COMPLETE VK_MAKE_API_VERSION(0, 1, 3, VK_HEADER_VERSION) @@ -233,7 +235,7 @@ typedef void CAMetalLayer; typedef VkFlags VkQueryPoolCreateFlags; typedef VkFlags VkRenderPassCreateFlags; typedef VkFlags VkSamplerCreateFlags; - typedef VkFlags VkPipelineLayoutCreateFlags; + typedef VkFlags VkPipelineLayoutCreateFlags; typedef VkFlags VkPipelineCacheCreateFlags; typedef VkFlags VkPipelineDepthStencilStateCreateFlags; typedef VkFlags VkPipelineDynamicStateCreateFlags; @@ -247,7 +249,7 @@ typedef void CAMetalLayer; typedef VkFlags VkPipelineShaderStageCreateFlags; typedef VkFlags VkDescriptorSetLayoutCreateFlags; typedef VkFlags VkBufferViewCreateFlags; - typedef VkFlags VkInstanceCreateFlags; + typedef VkFlags VkInstanceCreateFlags; typedef VkFlags VkDeviceCreateFlags; typedef VkFlags VkDeviceQueueCreateFlags; typedef VkFlags VkQueueFlags; @@ -296,7 +298,7 @@ typedef void CAMetalLayer; typedef VkFlags VkBuildAccelerationStructureFlagsKHR; - typedef VkFlags VkPrivateDataSlotCreateFlags; + typedef VkFlags VkPrivateDataSlotCreateFlags; typedef VkFlags VkAccelerationStructureCreateFlagsKHR; typedef VkFlags VkDescriptorUpdateTemplateCreateFlags; @@ -396,6 +398,7 @@ typedef void CAMetalLayer; typedef VkFlags VkImageFormatConstraintsFlagsFUCHSIA; typedef VkFlags VkImageConstraintsInfoFlagsFUCHSIA; + typedef VkFlags VkGraphicsPipelineLibraryFlagsEXT; Video Core extension typedef VkFlags VkVideoCodecOperationFlagsKHR; @@ -407,17 +410,15 @@ typedef void CAMetalLayer; typedef VkFlags VkVideoCodingControlFlagsKHR; Video Decode Core extension + typedef VkFlags VkVideoDecodeCapabilityFlagsKHR; typedef VkFlags VkVideoDecodeFlagsKHR; Video Decode H.264 extension typedef VkFlags VkVideoDecodeH264PictureLayoutFlagsEXT; - typedef VkFlags VkVideoDecodeH264CreateFlagsEXT; - - Video Decode H.265 extension - typedef VkFlags VkVideoDecodeH265CreateFlagsEXT; Video Encode Core extension typedef VkFlags VkVideoEncodeFlagsKHR; + typedef VkFlags VkVideoEncodeCapabilityFlagsKHR; typedef VkFlags VkVideoEncodeRateControlFlagsKHR; typedef VkFlags VkVideoEncodeRateControlModeFlagsKHR; typedef VkFlags VkVideoChromaSubsamplingFlagsKHR; @@ -427,16 +428,15 @@ typedef void CAMetalLayer; typedef VkFlags VkVideoEncodeH264CapabilityFlagsEXT; typedef VkFlags VkVideoEncodeH264InputModeFlagsEXT; typedef VkFlags VkVideoEncodeH264OutputModeFlagsEXT; - typedef VkFlags VkVideoEncodeH264CreateFlagsEXT; typedef VkFlags VkVideoEncodeH264RateControlStructureFlagsEXT; Video Encode H.265 extension - typedef VkFlags VkVideoEncodeH265CapabilityFlagsEXT; + typedef VkFlags VkVideoEncodeH265CapabilityFlagsEXT; typedef VkFlags VkVideoEncodeH265InputModeFlagsEXT; typedef VkFlags VkVideoEncodeH265OutputModeFlagsEXT; - typedef VkFlags VkVideoEncodeH265CreateFlagsEXT; - typedef VkFlags VkVideoEncodeH265CtbSizeFlagsEXT; typedef VkFlags VkVideoEncodeH265RateControlStructureFlagsEXT; + typedef VkFlags VkVideoEncodeH265CtbSizeFlagsEXT; + typedef VkFlags VkVideoEncodeH265TransformBlockSizeFlagsEXT; Types which can be void pointers or class pointers, selected at compile time VK_DEFINE_HANDLE(VkInstance) @@ -724,6 +724,7 @@ typedef void CAMetalLayer; + Enumerated types in the header, but not used by the API @@ -744,6 +745,7 @@ typedef void CAMetalLayer; Video Decode extensions + Video H.264 Decode extensions @@ -753,6 +755,7 @@ typedef void CAMetalLayer; Video Encode extensions + @@ -760,14 +763,15 @@ typedef void CAMetalLayer; - Video H.265 Encode extensions + - + + The PFN_vk*Function types are used by VkAllocationCallbacks below typedef void (VKAPI_PTR *PFN_vkInternalAllocationNotification)( @@ -1211,7 +1215,7 @@ typedef void CAMetalLayer; VkOffset3D dstOffset VkExtent3D extent - + VkStructureType sType const void* pNext VkShaderModuleCreateFlags flags @@ -1267,7 +1271,7 @@ typedef void CAMetalLayer; const void* pNext VkPipelineShaderStageCreateFlags flags VkShaderStageFlagBits stageShader stage - VkShaderModule moduleModule containing entry point + VkShaderModule moduleModule containing entry point const char* pNameNull-terminated entry point name const VkSpecializationInfo* pSpecializationInfo @@ -1402,20 +1406,20 @@ typedef void CAMetalLayer; VkStructureType sType const void* pNext VkPipelineCreateFlags flagsPipeline creation flags - uint32_t stageCount - const VkPipelineShaderStageCreateInfo* pStagesOne entry for each active shader stage + uint32_t stageCount + const VkPipelineShaderStageCreateInfo* pStagesOne entry for each active shader stage const VkPipelineVertexInputStateCreateInfo* pVertexInputState const VkPipelineInputAssemblyStateCreateInfo* pInputAssemblyState const VkPipelineTessellationStateCreateInfo* pTessellationState const VkPipelineViewportStateCreateInfo* pViewportState - const VkPipelineRasterizationStateCreateInfo* pRasterizationState + const VkPipelineRasterizationStateCreateInfo* pRasterizationState const VkPipelineMultisampleStateCreateInfo* pMultisampleState const VkPipelineDepthStencilStateCreateInfo* pDepthStencilState const VkPipelineColorBlendStateCreateInfo* pColorBlendState const VkPipelineDynamicStateCreateInfo* pDynamicState - VkPipelineLayout layoutInterface layout of the pipeline - VkRenderPass renderPass - uint32_t subpass + VkPipelineLayout layoutInterface layout of the pipeline + VkRenderPass renderPass + uint32_t subpass VkPipeline basePipelineHandleIf VK_PIPELINE_CREATE_DERIVATIVE_BIT is set and this value is nonzero, it specifies the handle of the base pipeline this is a derivative of int32_t basePipelineIndexIf VK_PIPELINE_CREATE_DERIVATIVE_BIT is set and this value is not -1, it specifies an index into pCreateInfos of the base pipeline this is a derivative of @@ -1444,7 +1448,7 @@ typedef void CAMetalLayer; const void* pNext VkPipelineLayoutCreateFlags flags uint32_t setLayoutCountNumber of descriptor sets interfaced by the pipeline - const VkDescriptorSetLayout* pSetLayoutsArray of setCount number of descriptor set layout objects defining the layout of the + const VkDescriptorSetLayout* pSetLayoutsArray of setCount number of descriptor set layout objects defining the layout of the uint32_t pushConstantRangeCountNumber of push-constant ranges used by the pipeline const VkPushConstantRange* pPushConstantRangesArray of pushConstantRangeCount number of ranges used by various shader stages @@ -1739,7 +1743,7 @@ typedef void CAMetalLayer; VkSampleCountFlags framebufferDepthSampleCountssupported depth sample counts for a framebuffer VkSampleCountFlags framebufferStencilSampleCountssupported stencil sample counts for a framebuffer VkSampleCountFlags framebufferNoAttachmentsSampleCountssupported sample counts for a subpass which uses no attachments - uint32_t maxColorAttachmentsmax number of color attachments per subpass + uint32_t maxColorAttachmentsmax number of color attachments per subpass VkSampleCountFlags sampledImageColorSampleCountssupported color sample counts for a non-integer sampled image VkSampleCountFlags sampledImageIntegerSampleCountssupported sample counts for an integer image VkSampleCountFlags sampledImageDepthSampleCountssupported depth sample counts for a sampled image @@ -2148,8 +2152,8 @@ typedef void CAMetalLayer; VkStructureType sType - const void* pNext - uint32_t groupCount + const void* pNext + uint32_t groupCount const VkGraphicsShaderGroupCreateInfoNV* pGroups uint32_t pipelineCount const VkPipeline* pPipelines @@ -3039,7 +3043,7 @@ typedef void CAMetalLayer; VkStructureType sType const void* pNext const VkImageCreateInfo* pCreateInfo - VkImageAspectFlagBits planeAspect + VkImageAspectFlagBits planeAspect @@ -3181,7 +3185,7 @@ typedef void CAMetalLayer; float x float y - + VkStructureType sType const void* pNext VkSampleCountFlagBits sampleLocationsPerPixel @@ -3441,7 +3445,7 @@ typedef void CAMetalLayer; VkQueueGlobalPriorityKHR priorities[VK_MAX_GLOBAL_PRIORITY_SIZE_KHR] - + VkStructureType sType const void* pNext VkObjectType objectType @@ -3506,7 +3510,7 @@ typedef void CAMetalLayer; uint64_t memoryObjectId VkDeviceSize size VkObjectType objectType - uint64_t objectHandle + uint64_t objectHandle uint32_t heapIndex @@ -4282,7 +4286,7 @@ typedef void CAMetalLayer; VkStructureType sType void* pNext uint32_t drmFormatModifierCount - VkDrmFormatModifierPropertiesEXT* pDrmFormatModifierProperties + VkDrmFormatModifierPropertiesEXT* pDrmFormatModifierProperties uint64_t drmFormatModifier @@ -4561,7 +4565,7 @@ typedef void CAMetalLayer; VkStructureType sType const void* pNext VkPipelineCreationFeedback* pPipelineCreationFeedbackOutput pipeline creation feedback. - uint32_t pipelineStageCreationFeedbackCount + uint32_t pipelineStageCreationFeedbackCount VkPipelineCreationFeedback* pPipelineStageCreationFeedbacksOne entry for each shader stage specified in the parent Vk*PipelineCreateInfo struct @@ -5292,7 +5296,7 @@ typedef void CAMetalLayer; uint32_t maxPipelineRayPayloadSize uint32_t maxPipelineRayHitAttributeSize - + VkStructureType sType const void* pNext uint32_t libraryCount @@ -5315,7 +5319,7 @@ typedef void CAMetalLayer; void* pNextPointer to next structure VkSurfaceTransformFlagBitsKHR transform - + VkStructureType sType const void* pNext VkSurfaceTransformFlagBitsKHR transform @@ -5536,7 +5540,7 @@ typedef void CAMetalLayer; VkStructureType sType const void* pNext VkExtent2D fragmentSize - VkFragmentShadingRateCombinerOpKHR combinerOps[2] + VkFragmentShadingRateCombinerOpKHR combinerOps[2] VkStructureType sType @@ -5588,14 +5592,14 @@ typedef void CAMetalLayer; VkStructureType sType void* pNext - VkSampleCountFlagBits maxFragmentShadingRateInvocationCount + VkSampleCountFlagBits maxFragmentShadingRateInvocationCount VkStructureType sType const void* pNext - VkFragmentShadingRateTypeNV shadingRateType - VkFragmentShadingRateNV shadingRate - VkFragmentShadingRateCombinerOpKHR combinerOps[2] + VkFragmentShadingRateTypeNV shadingRateType + VkFragmentShadingRateNV shadingRate + VkFragmentShadingRateCombinerOpKHR combinerOps[2] VkStructureType sType @@ -5604,6 +5608,12 @@ typedef void CAMetalLayer; VkDeviceSize updateScratchSize VkDeviceSize buildScratchSize + + VkStructureType sType + void* pNext + VkBool32 image2DViewOf3D + VkBool32 sampler2DViewOf3D + VkStructureType sType void* pNext @@ -5761,6 +5771,13 @@ typedef void CAMetalLayer; VkBool32 synchronization2 + + VkStructureType sType + void* pNext + VkBool32 primitivesGeneratedQuery + VkBool32 primitivesGeneratedQueryWithRasterizerDiscard + VkBool32 primitivesGeneratedQueryWithNonZeroStreams + VkStructureTypesType void* pNext @@ -5775,7 +5792,7 @@ typedef void CAMetalLayer; VkStructureTypesType void* pNext uint32_t profileCount - const VkVideoProfileKHR* pProfiles + const VkVideoProfileKHR* pProfiles VkStructureTypesType @@ -5798,7 +5815,7 @@ typedef void CAMetalLayer; VkStructureTypesType - void* pNext + void* pNext VkVideoCapabilityFlagsKHR capabilityFlags VkDeviceSize minBitstreamBufferOffsetAlignment VkDeviceSize minBitstreamBufferSizeAlignment @@ -5807,6 +5824,7 @@ typedef void CAMetalLayer; VkExtent2D maxExtent uint32_t maxReferencePicturesSlotsCount uint32_t maxReferencePicturesActiveCount + VkExtensionProperties stdHeaderVersion VkStructureTypesType @@ -5836,12 +5854,15 @@ typedef void CAMetalLayer; int8_t slotIndexThe reference slot index const VkVideoPictureResourceKHR* pPictureResourceThe reference picture resource + + VkStructureTypesType + void* pNext + VkVideoDecodeCapabilityFlagsKHR flags + VkStructureTypesType const void* pNext VkVideoDecodeFlagsKHR flags - VkOffset2D codedOffset - VkExtent2D codedExtent VkBuffer srcBuffer VkDeviceSize srcBufferOffset VkDeviceSize srcBufferRange @@ -5880,22 +5901,15 @@ typedef void CAMetalLayer; VkStructureTypesType - const void* pNext - StdVideoH264ProfileIdc stdProfileIdc - VkVideoDecodeH264PictureLayoutFlagsEXT pictureLayout + const void* pNext + StdVideoH264ProfileIdc stdProfileIdc + VkVideoDecodeH264PictureLayoutFlagsEXT pictureLayout - + VkStructureTypesType - void* pNext - uint32_t maxLevel + void* pNext + StdVideoH264Level maxLevel VkOffset2D fieldOffsetGranularity - VkExtensionProperties stdExtensionVersion - - - VkStructureTypesType - const void* pNext - VkVideoDecodeH264CreateFlagsEXT flags - const VkExtensionProperties* pStdExtensionVersion @@ -5960,21 +5974,16 @@ typedef void CAMetalLayer; const void* pNext StdVideoH265ProfileIdc stdProfileIdc - + VkStructureTypesType void* pNext - uint32_t maxLevel - VkExtensionProperties stdExtensionVersion - - - VkStructureTypesType - const void* pNext - VkVideoDecodeH265CreateFlagsEXT flags - const VkExtensionProperties* pStdExtensionVersion + StdVideoH265Level maxLevel VkStructureTypesType - const void* pNext + const void* pNext + uint32_t vpsStdCount + const StdVideoH265VideoParameterSet* pVpsStd uint32_t spsStdCount const StdVideoH265SequenceParameterSet* pSpsStd uint32_t ppsStdCount @@ -5982,7 +5991,8 @@ typedef void CAMetalLayer; VkStructureTypesType - const void* pNext + const void* pNext + uint32_t maxVpsStdCount uint32_t maxSpsStdCount uint32_t maxPpsStdCount const VkVideoDecodeH265SessionParametersAddInfoEXT* pParametersAddInfo @@ -6001,7 +6011,7 @@ typedef void CAMetalLayer; VkStructureTypesType - const void* pNext + const void* pNext uint32_t queueFamilyIndex VkVideoSessionCreateFlagsKHR flags const VkVideoProfileKHR* pVideoProfile @@ -6010,6 +6020,7 @@ typedef void CAMetalLayer; VkFormat referencePicturesFormat uint32_t maxReferencePicturesSlotsCount uint32_t maxReferencePicturesActiveCount + const VkExtensionProperties* pStdHeaderVersion VkStructureTypesType @@ -6047,7 +6058,6 @@ typedef void CAMetalLayer; const void* pNext VkVideoEncodeFlagsKHR flags uint32_t qualityLevel - VkExtent2D codedExtent VkBuffer dstBitstreamBuffer VkDeviceSize dstBitstreamBufferOffset VkDeviceSize dstBitstreamBufferMaxRange @@ -6075,34 +6085,38 @@ typedef void CAMetalLayer; uint32_t virtualBufferSizeInMs uint32_t initialVirtualBufferSizeInMs - + + VkStructureTypesType + void* pNext + VkVideoEncodeCapabilityFlagsKHR flags + VkVideoEncodeRateControlModeFlagsKHR rateControlModes + uint8_t rateControlLayerCount + uint8_t qualityLevelCount + VkExtent2D inputImageDataFillAlignment + + VkStructureTypesType - const void* pNext - VkVideoEncodeH264CapabilityFlagsEXT flags + void* pNext + VkVideoEncodeH264CapabilityFlagsEXT flags VkVideoEncodeH264InputModeFlagsEXT inputModeFlags VkVideoEncodeH264OutputModeFlagsEXT outputModeFlags - VkExtent2D minPictureSizeInMbs - VkExtent2D maxPictureSizeInMbs - VkExtent2D inputImageDataAlignment - uint8_t maxNumL0ReferenceForP - uint8_t maxNumL0ReferenceForB - uint8_t maxNumL1Reference - uint8_t qualityLevelCount - VkExtensionProperties stdExtensionVersion - - - VkStructureTypesType - const void* pNext - VkVideoEncodeH264CreateFlagsEXT flags - VkExtent2D maxPictureSizeInMbs - const VkExtensionProperties* pStdExtensionVersion + uint8_t maxPPictureL0ReferenceCount + uint8_t maxBPictureL0ReferenceCount + uint8_t maxL1ReferenceCount + VkBool32 motionVectorsOverPicBoundariesFlag + uint32_t maxBytesPerPicDenom + uint32_t maxBitsPerMbDenom + uint32_t log2MaxMvLengthHorizontal + uint32_t log2MaxMvLengthVertical #include "vk_video/vulkan_video_codec_h264std_encode.h" + + @@ -6125,18 +6139,24 @@ typedef void CAMetalLayer; VkStructureTypesType const void* pNext int8_t slotIndex - const StdVideoEncodeH264PictureInfo* pStdPictureInfo + const StdVideoEncodeH264ReferenceInfo* pStdReferenceInfo VkStructureTypesType const void* pNext - uint8_t refDefaultFinalList0EntryCount - const VkVideoEncodeH264DpbSlotInfoEXT* pRefDefaultFinalList0Entries - uint8_t refDefaultFinalList1EntryCount - const VkVideoEncodeH264DpbSlotInfoEXT* pRefDefaultFinalList1Entries - uint32_t naluSliceEntryCount + const VkVideoEncodeH264ReferenceListsEXT* pReferenceFinalLists + uint32_t naluSliceEntryCount const VkVideoEncodeH264NaluSliceEXT* pNaluSliceEntries - const VkVideoEncodeH264DpbSlotInfoEXT* pCurrentPictureInfo + const StdVideoEncodeH264PictureInfo* pCurrentPictureInfo + + + VkStructureTypesType + const void* pNext + uint8_t referenceList0EntryCount + const VkVideoEncodeH264DpbSlotInfoEXT* pReferenceList0Entries + uint8_t referenceList1EntryCount + const VkVideoEncodeH264DpbSlotInfoEXT* pReferenceList1Entries + const StdVideoEncodeH264RefMemMgmtCtrlOperations* pMemMgmtCtrlOperations VkStructureTypesType @@ -6154,12 +6174,9 @@ typedef void CAMetalLayer; VkStructureTypesType const void* pNext - const StdVideoEncodeH264SliceHeader* pSliceHeaderStd uint32_t mbCount - uint8_t refFinalList0EntryCount - const VkVideoEncodeH264DpbSlotInfoEXT* pRefFinalList0Entries - uint8_t refFinalList1EntryCount - const VkVideoEncodeH264DpbSlotInfoEXT* pRefFinalList1Entries + const VkVideoEncodeH264ReferenceListsEXT* pReferenceFinalLists + const StdVideoEncodeH264SliceHeader* pSliceHeaderStd VkStructureTypesType @@ -6193,34 +6210,37 @@ typedef void CAMetalLayer; VkBool32 useMaxFrameSize VkVideoEncodeH264FrameSizeEXT maxFrameSize - + VkStructureTypesType - const void* pNext - VkVideoEncodeH265CapabilityFlagsEXT flags + void* pNext + VkVideoEncodeH265CapabilityFlagsEXT flags VkVideoEncodeH265InputModeFlagsEXT inputModeFlags VkVideoEncodeH265OutputModeFlagsEXT outputModeFlags VkVideoEncodeH265CtbSizeFlagsEXT ctbSizes - VkExtent2D inputImageDataAlignment - uint8_t maxNumL0ReferenceForP - uint8_t maxNumL0ReferenceForB - uint8_t maxNumL1Reference - uint8_t maxNumSubLayers - uint8_t qualityLevelCount - VkExtensionProperties stdExtensionVersion - - - VkStructureTypesType - const void* pNext - VkVideoEncodeH265CreateFlagsEXT flags - const VkExtensionProperties* pStdExtensionVersion + VkVideoEncodeH265TransformBlockSizeFlagsEXT transformBlockSizes + uint8_t maxPPictureL0ReferenceCount + uint8_t maxBPictureL0ReferenceCount + uint8_t maxL1ReferenceCount + uint8_t maxSubLayersCount + uint8_t minLog2MinLumaCodingBlockSizeMinus3 + uint8_t maxLog2MinLumaCodingBlockSizeMinus3 + uint8_t minLog2MinLumaTransformBlockSizeMinus2 + uint8_t maxLog2MinLumaTransformBlockSizeMinus2 + uint8_t minMaxTransformHierarchyDepthInter + uint8_t maxMaxTransformHierarchyDepthInter + uint8_t minMaxTransformHierarchyDepthIntra + uint8_t maxMaxTransformHierarchyDepthIntra + uint8_t maxDiffCuQpDeltaDepth + uint8_t minMaxNumMergeCand + uint8_t maxMaxNumMergeCand #include "vk_video/vulkan_video_codec_h265std_encode.h" - + - + @@ -6245,8 +6265,8 @@ typedef void CAMetalLayer; VkStructureTypesType const void* pNext const VkVideoEncodeH265ReferenceListsEXT* pReferenceFinalLists - uint32_t naluSliceEntryCount - const VkVideoEncodeH265NaluSliceEXT* pNaluSliceEntries + uint32_t naluSliceSegmentEntryCount + const VkVideoEncodeH265NaluSliceSegmentEXT* pNaluSliceSegmentEntries const StdVideoEncodeH265PictureInfo* pCurrentPictureInfo @@ -6259,12 +6279,12 @@ typedef void CAMetalLayer; uint32_t ppsIdEntryCount const uint8_t* ppsIdEntries - - VkStructureTypesType + + VkStructureTypesType const void* pNext uint32_t ctbCount const VkVideoEncodeH265ReferenceListsEXT* pReferenceFinalLists - const StdVideoEncodeH265SliceHeader* pSliceHeaderStd + const StdVideoEncodeH265SliceSegmentHeader* pSliceSegmentHeaderStd VkStructureTypesType @@ -6386,7 +6406,7 @@ typedef void CAMetalLayer; VkBool32 shaderIntegerDotProduct - + VkStructureType sType void* pNext VkBool32 integerDotProduct8BitUnsignedAccelerated @@ -6562,7 +6582,7 @@ typedef void CAMetalLayer; VkImageFormatConstraintsFlagsFUCHSIA flags uint64_t sysmemPixelFormat uint32_t colorSpaceCount - const VkSysmemColorSpaceFUCHSIA* pColorSpaces + const VkSysmemColorSpaceFUCHSIA* pColorSpaces VkStructureType sType @@ -6598,7 +6618,7 @@ typedef void CAMetalLayer; VkStructureType sType void* pNext uint32_t drmFormatModifierCount - VkDrmFormatModifierProperties2EXT* pDrmFormatModifierProperties + VkDrmFormatModifierProperties2EXT* pDrmFormatModifierProperties uint64_t drmFormatModifier @@ -6622,9 +6642,9 @@ typedef void CAMetalLayer; const void* pNext uint32_t viewMask uint32_t colorAttachmentCount - const VkFormat* pColorAttachmentFormats - VkFormat depthAttachmentFormat - VkFormat stencilAttachmentFormat + const VkFormat* pColorAttachmentFormats + VkFormat depthAttachmentFormat + VkFormat stencilAttachmentFormat @@ -6687,9 +6707,9 @@ typedef void CAMetalLayer; VkStructureType sType const void* pNext - uint32_t colorAttachmentCount - const VkSampleCountFlagBits* pColorAttachmentSamples - VkSampleCountFlagBits depthStencilAttachmentSamples + uint32_t colorAttachmentCount + const VkSampleCountFlagBits* pColorAttachmentSamples + VkSampleCountFlagBits depthStencilAttachmentSamples @@ -6710,7 +6730,7 @@ typedef void CAMetalLayer; VkStructureType sType - const void* pNext + void* pNext VkBool32 rasterizationOrderColorAttachmentAccess VkBool32 rasterizationOrderDepthAttachmentAccess VkBool32 rasterizationOrderStencilAttachmentAccess @@ -6720,6 +6740,39 @@ typedef void CAMetalLayer; void* pNext VkBool32 linearColorAttachment + + VkStructureType sType + void* pNext + VkBool32 graphicsPipelineLibrary + + + VkStructureType sType + void* pNext + VkBool32 graphicsPipelineLibraryFastLinking + VkBool32 graphicsPipelineLibraryIndependentInterpolationDecoration + + + VkStructureType sType + void* pNext + VkGraphicsPipelineLibraryFlagsEXT flags + + + VkStructureType sType + void* pNext + VkBool32 descriptorSetHostMapping + + + VkStructureType sType + const void* pNext + VkDescriptorSetLayout descriptorSetLayout + uint32_t binding + + + VkStructureType sType + void* pNext + size_t descriptorOffset + uint32_t descriptorSize + Vulkan enumerant (token) definitions @@ -8233,7 +8286,7 @@ typedef void CAMetalLayer; - + @@ -8279,6 +8332,12 @@ typedef void CAMetalLayer; + + + + + + @@ -8323,6 +8382,11 @@ typedef void CAMetalLayer; + + + + + @@ -8331,6 +8395,10 @@ typedef void CAMetalLayer; + + + + @@ -8341,17 +8409,29 @@ typedef void CAMetalLayer; - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + @@ -8363,10 +8443,6 @@ typedef void CAMetalLayer; - - - - @@ -8445,27 +8521,62 @@ typedef void CAMetalLayer; + + + + + + + + + + + + + + + + + + + + + + + + + + + + - + - + - - - - - - + + + + + + + + + + + + + @@ -8696,7 +8807,7 @@ typedef void CAMetalLayer; VkResult vkQueueBindSparse VkQueue queue uint32_t bindInfoCount - const VkBindSparseInfo* pBindInfo + const VkBindSparseInfo* pBindInfo VkFence fence @@ -9170,7 +9281,7 @@ typedef void CAMetalLayer; VkPipelineLayout layout uint32_t firstSet uint32_t descriptorSetCount - const VkDescriptorSet* pDescriptorSets + const VkDescriptorSet* pDescriptorSets uint32_t dynamicOffsetCount const uint32_t* pDynamicOffsets @@ -11573,7 +11684,7 @@ typedef void CAMetalLayer; uint32_t connectorId VkDisplayKHR* display - + VkResult vkWaitForPresentKHR VkDevice device VkSwapchainKHR swapchain @@ -11622,6 +11733,18 @@ typedef void CAMetalLayer; VkCommandBuffer commandBuffer + + void vkGetDescriptorSetLayoutHostMappingInfoVALVE + VkDevice device + const VkDescriptorSetBindingReferenceVALVE* pBindingReference + VkDescriptorSetLayoutHostMappingInfoVALVE* pHostMapping + + + void vkGetDescriptorSetHostMappingVALVE + VkDevice device + VkDescriptorSet descriptorSet + void** ppData + @@ -11706,7 +11829,8 @@ typedef void CAMetalLayer; - + + @@ -12701,8 +12825,7 @@ typedef void CAMetalLayer; - - + @@ -12911,6 +13034,7 @@ typedef void CAMetalLayer; + @@ -13225,7 +13349,7 @@ typedef void CAMetalLayer; - + @@ -13308,9 +13432,10 @@ typedef void CAMetalLayer; - + + @@ -13326,6 +13451,10 @@ typedef void CAMetalLayer; + + + + @@ -13475,19 +13604,19 @@ typedef void CAMetalLayer; - + - - - - - - - - - - + + + + + + + + + + @@ -13496,13 +13625,11 @@ typedef void CAMetalLayer; - - - + @@ -13517,39 +13644,39 @@ typedef void CAMetalLayer; - + - - - - - - - - - - - + + + + + + + + + + + - + + - - + @@ -13562,23 +13689,20 @@ typedef void CAMetalLayer; - + - - - - - - - + + + + + + - - @@ -14750,7 +14874,7 @@ typedef void CAMetalLayer; - + @@ -15681,21 +15805,18 @@ typedef void CAMetalLayer; - + - - - - - - + + + + + - - @@ -16635,6 +16756,7 @@ typedef void CAMetalLayer; + @@ -16921,8 +17043,7 @@ typedef void CAMetalLayer; - - + @@ -16959,9 +17080,9 @@ typedef void CAMetalLayer; - + - + @@ -16969,6 +17090,7 @@ typedef void CAMetalLayer; + @@ -16986,13 +17108,17 @@ typedef void CAMetalLayer; + + + + - + @@ -17206,7 +17332,8 @@ typedef void CAMetalLayer; - + + @@ -17229,13 +17356,22 @@ typedef void CAMetalLayer; - + - - - - - + + + + + + + + + + + + + + @@ -17777,6 +17913,7 @@ typedef void CAMetalLayer; + @@ -17832,10 +17969,13 @@ typedef void CAMetalLayer; - + - - + + + + + @@ -17917,17 +18057,20 @@ typedef void CAMetalLayer; - + - - - + + + + + - + - - + + + @@ -17938,8 +18081,18 @@ typedef void CAMetalLayer; - - + + + + + + + + + + + + @@ -18055,7 +18208,7 @@ typedef void CAMetalLayer; - + @@ -18101,10 +18254,18 @@ typedef void CAMetalLayer; - + - - + + + + + + + + + + @@ -18316,6 +18477,113 @@ typedef void CAMetalLayer; + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + @@ -19873,6 +20141,13 @@ typedef void CAMetalLayer; + + + + + + + diff --git a/renderdoc/driver/vulkan/vk_common.h b/renderdoc/driver/vulkan/vk_common.h index 2ccc9640c..826dfd51c 100644 --- a/renderdoc/driver/vulkan/vk_common.h +++ b/renderdoc/driver/vulkan/vk_common.h @@ -1774,11 +1774,12 @@ DECLARE_REFLECTION_ENUM(VkPerformanceCounterUnitKHR); DECLARE_REFLECTION_ENUM(VkPhysicalDeviceType); DECLARE_REFLECTION_ENUM(VkPipelineBindPoint); DECLARE_REFLECTION_ENUM(VkPipelineCacheCreateFlagBits); +DECLARE_REFLECTION_ENUM(VkPipelineColorBlendStateCreateFlagBits); DECLARE_REFLECTION_ENUM(VkPipelineCreateFlagBits); DECLARE_REFLECTION_ENUM(VkPipelineCreationFeedbackFlagBits); -DECLARE_REFLECTION_ENUM(VkPipelineExecutableStatisticFormatKHR); -DECLARE_REFLECTION_ENUM(VkPipelineColorBlendStateCreateFlagBits); DECLARE_REFLECTION_ENUM(VkPipelineDepthStencilStateCreateFlagBits); +DECLARE_REFLECTION_ENUM(VkPipelineExecutableStatisticFormatKHR); +DECLARE_REFLECTION_ENUM(VkPipelineLayoutCreateFlagBits); DECLARE_REFLECTION_ENUM(VkPipelineShaderStageCreateFlagBits); DECLARE_REFLECTION_ENUM(VkPipelineStageFlagBits); DECLARE_REFLECTION_ENUM(VkPipelineStageFlagBits2); @@ -1786,7 +1787,6 @@ DECLARE_REFLECTION_ENUM(VkPointClippingBehavior); DECLARE_REFLECTION_ENUM(VkPolygonMode); DECLARE_REFLECTION_ENUM(VkPresentModeKHR); DECLARE_REFLECTION_ENUM(VkPrimitiveTopology); -DECLARE_REFLECTION_ENUM(VkPrivateDataSlotCreateFlagBits); DECLARE_REFLECTION_ENUM(VkRenderingFlagBits); DECLARE_REFLECTION_ENUM(VkQueryControlFlagBits); DECLARE_REFLECTION_ENUM(VkQueryPipelineStatisticFlagBits); diff --git a/renderdoc/driver/vulkan/vk_dispatch_defs.h b/renderdoc/driver/vulkan/vk_dispatch_defs.h index 4325602ed..ead27db3a 100644 --- a/renderdoc/driver/vulkan/vk_dispatch_defs.h +++ b/renderdoc/driver/vulkan/vk_dispatch_defs.h @@ -917,6 +917,10 @@ struct VkDevDispatchTable // VK_EXT_pageable_device_local_memory PFN_vkSetDeviceMemoryPriorityEXT SetDeviceMemoryPriorityEXT; + // VK_VALVE_descriptor_set_host_mapping + PFN_vkGetDescriptorSetLayoutHostMappingInfoVALVE GetDescriptorSetLayoutHostMappingInfoVALVE; + PFN_vkGetDescriptorSetHostMappingVALVE GetDescriptorSetHostMappingVALVE; + // for consistency with macros, we declare the CreateDevice pointer here // even though it won't actually ever get used and is on the instance dispatch chain PFN_vkCreateDevice CreateDevice; diff --git a/renderdoc/driver/vulkan/vk_next_chains.cpp b/renderdoc/driver/vulkan/vk_next_chains.cpp index 6d77b5b0b..891676529 100644 --- a/renderdoc/driver/vulkan/vk_next_chains.cpp +++ b/renderdoc/driver/vulkan/vk_next_chains.cpp @@ -727,6 +727,8 @@ static void AppendModifiedChainedStruct(byte *&tempMem, VkStruct *outputStruct, case VK_STRUCTURE_TYPE_CU_FUNCTION_CREATE_INFO_NVX: \ case VK_STRUCTURE_TYPE_CU_LAUNCH_INFO_NVX: \ case VK_STRUCTURE_TYPE_CU_MODULE_CREATE_INFO_NVX: \ + case VK_STRUCTURE_TYPE_DESCRIPTOR_SET_BINDING_REFERENCE_VALVE: \ + case VK_STRUCTURE_TYPE_DESCRIPTOR_SET_LAYOUT_HOST_MAPPING_INFO_VALVE: \ case VK_STRUCTURE_TYPE_DEVICE_DEVICE_MEMORY_REPORT_CREATE_INFO_EXT: \ case VK_STRUCTURE_TYPE_DEVICE_DIAGNOSTICS_CONFIG_CREATE_INFO_NV: \ case VK_STRUCTURE_TYPE_DEVICE_MEMORY_OVERALLOCATION_CREATE_INFO_AMD: \ @@ -740,6 +742,7 @@ static void AppendModifiedChainedStruct(byte *&tempMem, VkStruct *outputStruct, case VK_STRUCTURE_TYPE_GEOMETRY_NV: \ case VK_STRUCTURE_TYPE_GEOMETRY_TRIANGLES_NV: \ case VK_STRUCTURE_TYPE_GRAPHICS_PIPELINE_SHADER_GROUPS_CREATE_INFO_NV: \ + case VK_STRUCTURE_TYPE_GRAPHICS_PIPELINE_LIBRARY_CREATE_INFO_EXT: \ case VK_STRUCTURE_TYPE_GRAPHICS_SHADER_GROUP_CREATE_INFO_NV: \ case VK_STRUCTURE_TYPE_HEADLESS_SURFACE_CREATE_INFO_EXT: \ case VK_STRUCTURE_TYPE_IMAGE_CONSTRAINTS_INFO_FUCHSIA: \ @@ -777,6 +780,7 @@ static void AppendModifiedChainedStruct(byte *&tempMem, VkStruct *outputStruct, case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_CORNER_SAMPLED_IMAGE_FEATURES_NV: \ case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_COVERAGE_REDUCTION_MODE_FEATURES_NV: \ case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DEPTH_CLIP_CONTROL_FEATURES_EXT: \ + case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DESCRIPTOR_SET_HOST_MAPPING_FEATURES_VALVE: \ case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DEVICE_GENERATED_COMMANDS_FEATURES_NV: \ case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DEVICE_GENERATED_COMMANDS_PROPERTIES_NV: \ case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DEVICE_MEMORY_REPORT_FEATURES_EXT: \ @@ -787,6 +791,9 @@ static void AppendModifiedChainedStruct(byte *&tempMem, VkStruct *outputStruct, case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTERNAL_MEMORY_RDMA_FEATURES_NV: \ case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_SHADING_RATE_ENUMS_FEATURES_NV: \ case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_SHADING_RATE_ENUMS_PROPERTIES_NV: \ + case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_GRAPHICS_PIPELINE_LIBRARY_FEATURES_EXT: \ + case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_GRAPHICS_PIPELINE_LIBRARY_PROPERTIES_EXT: \ + case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGE_2D_VIEW_OF_3D_FEATURES_EXT: \ case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGE_DRM_FORMAT_MODIFIER_INFO_EXT: \ case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGE_VIEW_MIN_LOD_FEATURES_EXT: \ case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_INHERITED_VIEWPORT_SCISSOR_FEATURES_NV: \ @@ -800,6 +807,7 @@ static void AppendModifiedChainedStruct(byte *&tempMem, VkStruct *outputStruct, case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MUTABLE_DESCRIPTOR_TYPE_FEATURES_VALVE: \ case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PAGEABLE_DEVICE_LOCAL_MEMORY_FEATURES_EXT: \ case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PRIMITIVE_TOPOLOGY_LIST_RESTART_FEATURES_EXT: \ + case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PRIMITIVES_GENERATED_QUERY_FEATURES_EXT: \ case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PROVOKING_VERTEX_FEATURES_EXT: \ case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PROVOKING_VERTEX_PROPERTIES_EXT: \ case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_RASTERIZATION_ORDER_ATTACHMENT_ACCESS_FEATURES_ARM: \ diff --git a/renderdoc/driver/vulkan/vk_serialise.cpp b/renderdoc/driver/vulkan/vk_serialise.cpp index 883fec4a1..58da1c1d9 100644 --- a/renderdoc/driver/vulkan/vk_serialise.cpp +++ b/renderdoc/driver/vulkan/vk_serialise.cpp @@ -84,7 +84,7 @@ DECL_VKFLAG(VkImageAspect); DECL_VKFLAG(VkImageUsage); DECL_VKFLAG(VkImageCreate); DECL_VKFLAG(VkImageViewCreate); -DECL_VKFLAG_EMPTY(VkInstanceCreate); +DECL_VKFLAG(VkInstanceCreate); DECL_VKFLAG(VkFenceCreate); DECL_VKFLAG(VkFenceImport); DECL_VKFLAG(VkFramebufferCreate); @@ -99,7 +99,7 @@ DECL_VKFLAG(VkPipelineCreate); DECL_VKFLAG(VkPipelineDepthStencilStateCreate); DECL_VKFLAG_EMPTY(VkPipelineDynamicStateCreate); DECL_VKFLAG_EMPTY(VkPipelineInputAssemblyStateCreate); -DECL_VKFLAG_EMPTY(VkPipelineLayoutCreate); +DECL_VKFLAG(VkPipelineLayoutCreate); DECL_VKFLAG_EMPTY(VkPipelineMultisampleStateCreate); DECL_VKFLAG_EMPTY(VkPipelineRasterizationStateCreate); DECL_VKFLAG(VkPipelineShaderStageCreate); @@ -152,7 +152,7 @@ DECL_VKFLAG_EMPTY_EXT(VkPipelineDiscardRectangleStateCreate, EXT); DECL_VKFLAG_EMPTY_EXT(VkPipelineRasterizationConservativeStateCreate, EXT); DECL_VKFLAG_EMPTY_EXT(VkPipelineRasterizationStateStreamCreate, EXT); DECL_VKFLAG_EMPTY_EXT(VkPipelineViewportSwizzleStateCreate, NV); -DECL_VKFLAG(VkPrivateDataSlotCreate); +DECL_VKFLAG_EMPTY(VkPrivateDataSlotCreate); DECL_VKFLAG_EXT(VkSurfaceCounter, EXT); DECL_VKFLAG_EXT(VkSurfaceTransform, KHR); DECL_VKFLAG_EXT(VkSwapchainCreate, KHR); @@ -1336,6 +1336,9 @@ SERIALISE_VK_HANDLES(); /* VK_EXT_headless_surface */ \ PNEXT_UNSUPPORTED(VK_STRUCTURE_TYPE_HEADLESS_SURFACE_CREATE_INFO_EXT) \ \ + /* VK_EXT_image_2d_view_of_3d */ \ + PNEXT_UNSUPPORTED(VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGE_2D_VIEW_OF_3D_FEATURES_EXT) \ + \ /* VK_EXT_image_drm_format_modifier */ \ PNEXT_UNSUPPORTED(VK_STRUCTURE_TYPE_DRM_FORMAT_MODIFIER_PROPERTIES_LIST_EXT) \ PNEXT_UNSUPPORTED(VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGE_DRM_FORMAT_MODIFIER_INFO_EXT) \ @@ -1348,6 +1351,11 @@ SERIALISE_VK_HANDLES(); PNEXT_UNSUPPORTED(VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGE_VIEW_MIN_LOD_FEATURES_EXT) \ PNEXT_UNSUPPORTED(VK_STRUCTURE_TYPE_IMAGE_VIEW_MIN_LOD_CREATE_INFO_EXT) \ \ + /* VK_EXT_graphics_pipeline_library */ \ + PNEXT_UNSUPPORTED(VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_GRAPHICS_PIPELINE_LIBRARY_FEATURES_EXT) \ + PNEXT_UNSUPPORTED(VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_GRAPHICS_PIPELINE_LIBRARY_PROPERTIES_EXT) \ + PNEXT_UNSUPPORTED(VK_STRUCTURE_TYPE_GRAPHICS_PIPELINE_LIBRARY_CREATE_INFO_EXT) \ + \ /* VK_EXT_multi_draw */ \ PNEXT_UNSUPPORTED(VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MULTI_DRAW_FEATURES_EXT) \ PNEXT_UNSUPPORTED(VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MULTI_DRAW_PROPERTIES_EXT) \ @@ -1361,6 +1369,9 @@ SERIALISE_VK_HANDLES(); /* VK_EXT_primitive_topology_list_restart */ \ PNEXT_UNSUPPORTED(VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PRIMITIVE_TOPOLOGY_LIST_RESTART_FEATURES_EXT) \ \ + /* VK_EXT_primitives_generated_query */ \ + PNEXT_UNSUPPORTED(VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PRIMITIVES_GENERATED_QUERY_FEATURES_EXT) \ + \ /* VK_EXT_provoking_vertex */ \ PNEXT_UNSUPPORTED(VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PROVOKING_VERTEX_FEATURES_EXT) \ PNEXT_UNSUPPORTED(VK_STRUCTURE_TYPE_PIPELINE_RASTERIZATION_PROVOKING_VERTEX_STATE_CREATE_INFO_EXT) \ @@ -1543,6 +1554,11 @@ SERIALISE_VK_HANDLES(); /* VK_QCOM_rotated_copy_commands */ \ PNEXT_UNSUPPORTED(VK_STRUCTURE_TYPE_COPY_COMMAND_TRANSFORM_INFO_QCOM) \ \ + /* VK_VALVE_descriptor_set_host_mapping */ \ + PNEXT_UNSUPPORTED(VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DESCRIPTOR_SET_HOST_MAPPING_FEATURES_VALVE) \ + PNEXT_UNSUPPORTED(VK_STRUCTURE_TYPE_DESCRIPTOR_SET_BINDING_REFERENCE_VALVE) \ + PNEXT_UNSUPPORTED(VK_STRUCTURE_TYPE_DESCRIPTOR_SET_LAYOUT_HOST_MAPPING_INFO_VALVE) \ + \ /* VK_VALVE_mutable_descriptor_type */ \ PNEXT_UNSUPPORTED(VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MUTABLE_DESCRIPTOR_TYPE_FEATURES_VALVE) \ PNEXT_UNSUPPORTED(VK_STRUCTURE_TYPE_MUTABLE_DESCRIPTOR_TYPE_CREATE_INFO_VALVE) diff --git a/renderdoc/driver/vulkan/vk_stringise.cpp b/renderdoc/driver/vulkan/vk_stringise.cpp index c9a595a85..c8ba0070c 100644 --- a/renderdoc/driver/vulkan/vk_stringise.cpp +++ b/renderdoc/driver/vulkan/vk_stringise.cpp @@ -331,11 +331,23 @@ rdcstr DoStringise(const VkPipelineCreateFlagBits &el) STRINGISE_BITFIELD_BIT(VK_PIPELINE_CREATE_CAPTURE_INTERNAL_REPRESENTATIONS_BIT_KHR); STRINGISE_BITFIELD_BIT(VK_PIPELINE_CREATE_INDIRECT_BINDABLE_BIT_NV); STRINGISE_BITFIELD_BIT(VK_PIPELINE_CREATE_LIBRARY_BIT_KHR); + STRINGISE_BITFIELD_BIT(VK_PIPELINE_CREATE_RETAIN_LINK_TIME_OPTIMIZATION_INFO_BIT_EXT); + STRINGISE_BITFIELD_BIT(VK_PIPELINE_CREATE_LINK_TIME_OPTIMIZATION_BIT_EXT); STRINGISE_BITFIELD_BIT(VK_PIPELINE_CREATE_RAY_TRACING_ALLOW_MOTION_BIT_NV); } END_BITFIELD_STRINGISE(); } +template <> +rdcstr DoStringise(const VkPipelineLayoutCreateFlagBits &el) +{ + BEGIN_BITFIELD_STRINGISE(VkPipelineLayoutCreateFlagBits); + { + STRINGISE_BITFIELD_BIT(VK_PIPELINE_LAYOUT_CREATE_INDEPENDENT_SETS_BIT_EXT); + } + END_BITFIELD_STRINGISE(); +} + template <> rdcstr DoStringise(const VkPipelineStageFlagBits &el) { @@ -462,6 +474,7 @@ rdcstr DoStringise(const VkImageCreateFlagBits &el) STRINGISE_BITFIELD_BIT(VK_IMAGE_CREATE_CORNER_SAMPLED_BIT_NV); STRINGISE_BITFIELD_BIT(VK_IMAGE_CREATE_SAMPLE_LOCATIONS_COMPATIBLE_DEPTH_BIT_EXT); STRINGISE_BITFIELD_BIT(VK_IMAGE_CREATE_SUBSAMPLED_BIT_EXT); + STRINGISE_BITFIELD_BIT(VK_IMAGE_CREATE_2D_VIEW_COMPATIBLE_BIT_EXT); STRINGISE_BITFIELD_BIT(VK_IMAGE_CREATE_FRAGMENT_DENSITY_MAP_OFFSET_BIT_QCOM); } END_BITFIELD_STRINGISE(); @@ -632,6 +645,7 @@ rdcstr DoStringise(const VkImageAspectFlagBits &el) { BEGIN_BITFIELD_STRINGISE(VkImageAspectFlagBits); { + STRINGISE_BITFIELD_VALUE(VK_IMAGE_ASPECT_NONE); STRINGISE_BITFIELD_BIT(VK_IMAGE_ASPECT_COLOR_BIT); STRINGISE_BITFIELD_BIT(VK_IMAGE_ASPECT_DEPTH_BIT); STRINGISE_BITFIELD_BIT(VK_IMAGE_ASPECT_STENCIL_BIT); @@ -639,7 +653,6 @@ rdcstr DoStringise(const VkImageAspectFlagBits &el) STRINGISE_BITFIELD_BIT(VK_IMAGE_ASPECT_PLANE_0_BIT); STRINGISE_BITFIELD_BIT(VK_IMAGE_ASPECT_PLANE_1_BIT); STRINGISE_BITFIELD_BIT(VK_IMAGE_ASPECT_PLANE_2_BIT); - STRINGISE_BITFIELD_BIT(VK_IMAGE_ASPECT_NONE_KHR); STRINGISE_BITFIELD_BIT(VK_IMAGE_ASPECT_MEMORY_PLANE_0_BIT_EXT); STRINGISE_BITFIELD_BIT(VK_IMAGE_ASPECT_MEMORY_PLANE_1_BIT_EXT); STRINGISE_BITFIELD_BIT(VK_IMAGE_ASPECT_MEMORY_PLANE_2_BIT_EXT); @@ -900,15 +913,6 @@ rdcstr DoStringise(const VkAcquireProfilingLockFlagBitsKHR &el) END_BITFIELD_STRINGISE(); } -template <> -rdcstr DoStringise(const VkPrivateDataSlotCreateFlagBits &el) -{ - BEGIN_BITFIELD_STRINGISE(VkPrivateDataSlotCreateFlagBits); - { - } - END_BITFIELD_STRINGISE(); -} - template <> rdcstr DoStringise(const VkPerformanceCounterDescriptionFlagBitsKHR &el) { @@ -1413,6 +1417,7 @@ rdcstr DoStringise(const VkQueryType &el) STRINGISE_ENUM(VK_QUERY_TYPE_ACCELERATION_STRUCTURE_SERIALIZATION_SIZE_KHR) STRINGISE_ENUM(VK_QUERY_TYPE_ACCELERATION_STRUCTURE_COMPACTED_SIZE_NV) STRINGISE_ENUM(VK_QUERY_TYPE_PERFORMANCE_QUERY_INTEL) + STRINGISE_ENUM(VK_QUERY_TYPE_PRIMITIVES_GENERATED_EXT) } END_ENUM_STRINGISE(); } diff --git a/util/test/demos/3rdparty/volk/volk.c b/util/test/demos/3rdparty/volk/volk.c index c3383ee41..c01df88f8 100644 --- a/util/test/demos/3rdparty/volk/volk.c +++ b/util/test/demos/3rdparty/volk/volk.c @@ -949,6 +949,10 @@ static void volkGenLoadDevice(void* context, PFN_vkVoidFunction (*load)(void*, c vkCmdSetCoarseSampleOrderNV = (PFN_vkCmdSetCoarseSampleOrderNV)load(context, "vkCmdSetCoarseSampleOrderNV"); vkCmdSetViewportShadingRatePaletteNV = (PFN_vkCmdSetViewportShadingRatePaletteNV)load(context, "vkCmdSetViewportShadingRatePaletteNV"); #endif /* defined(VK_NV_shading_rate_image) */ +#if defined(VK_VALVE_descriptor_set_host_mapping) + vkGetDescriptorSetHostMappingVALVE = (PFN_vkGetDescriptorSetHostMappingVALVE)load(context, "vkGetDescriptorSetHostMappingVALVE"); + vkGetDescriptorSetLayoutHostMappingInfoVALVE = (PFN_vkGetDescriptorSetLayoutHostMappingInfoVALVE)load(context, "vkGetDescriptorSetLayoutHostMappingInfoVALVE"); +#endif /* defined(VK_VALVE_descriptor_set_host_mapping) */ #if (defined(VK_EXT_full_screen_exclusive) && defined(VK_KHR_device_group)) || (defined(VK_EXT_full_screen_exclusive) && defined(VK_VERSION_1_1)) vkGetDeviceGroupSurfacePresentModes2EXT = (PFN_vkGetDeviceGroupSurfacePresentModes2EXT)load(context, "vkGetDeviceGroupSurfacePresentModes2EXT"); #endif /* (defined(VK_EXT_full_screen_exclusive) && defined(VK_KHR_device_group)) || (defined(VK_EXT_full_screen_exclusive) && defined(VK_VERSION_1_1)) */ @@ -1566,6 +1570,10 @@ static void volkGenLoadDeviceTable(struct VolkDeviceTable* table, void* context, table->vkCmdSetCoarseSampleOrderNV = (PFN_vkCmdSetCoarseSampleOrderNV)load(context, "vkCmdSetCoarseSampleOrderNV"); table->vkCmdSetViewportShadingRatePaletteNV = (PFN_vkCmdSetViewportShadingRatePaletteNV)load(context, "vkCmdSetViewportShadingRatePaletteNV"); #endif /* defined(VK_NV_shading_rate_image) */ +#if defined(VK_VALVE_descriptor_set_host_mapping) + table->vkGetDescriptorSetHostMappingVALVE = (PFN_vkGetDescriptorSetHostMappingVALVE)load(context, "vkGetDescriptorSetHostMappingVALVE"); + table->vkGetDescriptorSetLayoutHostMappingInfoVALVE = (PFN_vkGetDescriptorSetLayoutHostMappingInfoVALVE)load(context, "vkGetDescriptorSetLayoutHostMappingInfoVALVE"); +#endif /* defined(VK_VALVE_descriptor_set_host_mapping) */ #if (defined(VK_EXT_full_screen_exclusive) && defined(VK_KHR_device_group)) || (defined(VK_EXT_full_screen_exclusive) && defined(VK_VERSION_1_1)) table->vkGetDeviceGroupSurfacePresentModes2EXT = (PFN_vkGetDeviceGroupSurfacePresentModes2EXT)load(context, "vkGetDeviceGroupSurfacePresentModes2EXT"); #endif /* (defined(VK_EXT_full_screen_exclusive) && defined(VK_KHR_device_group)) || (defined(VK_EXT_full_screen_exclusive) && defined(VK_VERSION_1_1)) */ @@ -2370,6 +2378,10 @@ PFN_vkCmdSetViewportShadingRatePaletteNV vkCmdSetViewportShadingRatePaletteNV; PFN_vkCreateScreenSurfaceQNX vkCreateScreenSurfaceQNX; PFN_vkGetPhysicalDeviceScreenPresentationSupportQNX vkGetPhysicalDeviceScreenPresentationSupportQNX; #endif /* defined(VK_QNX_screen_surface) */ +#if defined(VK_VALVE_descriptor_set_host_mapping) +PFN_vkGetDescriptorSetHostMappingVALVE vkGetDescriptorSetHostMappingVALVE; +PFN_vkGetDescriptorSetLayoutHostMappingInfoVALVE vkGetDescriptorSetLayoutHostMappingInfoVALVE; +#endif /* defined(VK_VALVE_descriptor_set_host_mapping) */ #if (defined(VK_EXT_full_screen_exclusive) && defined(VK_KHR_device_group)) || (defined(VK_EXT_full_screen_exclusive) && defined(VK_VERSION_1_1)) PFN_vkGetDeviceGroupSurfacePresentModes2EXT vkGetDeviceGroupSurfacePresentModes2EXT; #endif /* (defined(VK_EXT_full_screen_exclusive) && defined(VK_KHR_device_group)) || (defined(VK_EXT_full_screen_exclusive) && defined(VK_VERSION_1_1)) */ diff --git a/util/test/demos/3rdparty/volk/volk.h b/util/test/demos/3rdparty/volk/volk.h index 61a0fb5df..9678e8321 100644 --- a/util/test/demos/3rdparty/volk/volk.h +++ b/util/test/demos/3rdparty/volk/volk.h @@ -15,7 +15,7 @@ #endif /* VOLK_GENERATE_VERSION_DEFINE */ -#define VOLK_HEADER_VERSION 205 +#define VOLK_HEADER_VERSION 211 /* VOLK_GENERATE_VERSION_DEFINE */ #ifndef VK_NO_PROTOTYPES @@ -728,6 +728,10 @@ struct VolkDeviceTable PFN_vkCmdSetCoarseSampleOrderNV vkCmdSetCoarseSampleOrderNV; PFN_vkCmdSetViewportShadingRatePaletteNV vkCmdSetViewportShadingRatePaletteNV; #endif /* defined(VK_NV_shading_rate_image) */ +#if defined(VK_VALVE_descriptor_set_host_mapping) + PFN_vkGetDescriptorSetHostMappingVALVE vkGetDescriptorSetHostMappingVALVE; + PFN_vkGetDescriptorSetLayoutHostMappingInfoVALVE vkGetDescriptorSetLayoutHostMappingInfoVALVE; +#endif /* defined(VK_VALVE_descriptor_set_host_mapping) */ #if (defined(VK_EXT_full_screen_exclusive) && defined(VK_KHR_device_group)) || (defined(VK_EXT_full_screen_exclusive) && defined(VK_VERSION_1_1)) PFN_vkGetDeviceGroupSurfacePresentModes2EXT vkGetDeviceGroupSurfacePresentModes2EXT; #endif /* (defined(VK_EXT_full_screen_exclusive) && defined(VK_KHR_device_group)) || (defined(VK_EXT_full_screen_exclusive) && defined(VK_VERSION_1_1)) */ @@ -1524,6 +1528,10 @@ extern PFN_vkCmdSetViewportShadingRatePaletteNV vkCmdSetViewportShadingRatePalet extern PFN_vkCreateScreenSurfaceQNX vkCreateScreenSurfaceQNX; extern PFN_vkGetPhysicalDeviceScreenPresentationSupportQNX vkGetPhysicalDeviceScreenPresentationSupportQNX; #endif /* defined(VK_QNX_screen_surface) */ +#if defined(VK_VALVE_descriptor_set_host_mapping) +extern PFN_vkGetDescriptorSetHostMappingVALVE vkGetDescriptorSetHostMappingVALVE; +extern PFN_vkGetDescriptorSetLayoutHostMappingInfoVALVE vkGetDescriptorSetLayoutHostMappingInfoVALVE; +#endif /* defined(VK_VALVE_descriptor_set_host_mapping) */ #if (defined(VK_EXT_full_screen_exclusive) && defined(VK_KHR_device_group)) || (defined(VK_EXT_full_screen_exclusive) && defined(VK_VERSION_1_1)) extern PFN_vkGetDeviceGroupSurfacePresentModes2EXT vkGetDeviceGroupSurfacePresentModes2EXT; #endif /* (defined(VK_EXT_full_screen_exclusive) && defined(VK_KHR_device_group)) || (defined(VK_EXT_full_screen_exclusive) && defined(VK_VERSION_1_1)) */ diff --git a/util/test/demos/vk/official/vulkan/vulkan_android.h b/util/test/demos/vk/official/vulkan/vulkan_android.h index de79d382f..11f539796 100644 --- a/util/test/demos/vk/official/vulkan/vulkan_android.h +++ b/util/test/demos/vk/official/vulkan/vulkan_android.h @@ -44,7 +44,7 @@ VKAPI_ATTR VkResult VKAPI_CALL vkCreateAndroidSurfaceKHR( #define VK_ANDROID_external_memory_android_hardware_buffer 1 struct AHardwareBuffer; -#define VK_ANDROID_EXTERNAL_MEMORY_ANDROID_HARDWARE_BUFFER_SPEC_VERSION 4 +#define VK_ANDROID_EXTERNAL_MEMORY_ANDROID_HARDWARE_BUFFER_SPEC_VERSION 5 #define VK_ANDROID_EXTERNAL_MEMORY_ANDROID_HARDWARE_BUFFER_EXTENSION_NAME "VK_ANDROID_external_memory_android_hardware_buffer" typedef struct VkAndroidHardwareBufferUsageANDROID { VkStructureType sType; diff --git a/util/test/demos/vk/official/vulkan/vulkan_core.h b/util/test/demos/vk/official/vulkan/vulkan_core.h index 228e4ef6e..5c8b8461f 100644 --- a/util/test/demos/vk/official/vulkan/vulkan_core.h +++ b/util/test/demos/vk/official/vulkan/vulkan_core.h @@ -72,7 +72,7 @@ extern "C" { #define VK_API_VERSION_1_0 VK_MAKE_API_VERSION(0, 1, 0, 0)// Patch version should always be set to 0 // Version of this file -#define VK_HEADER_VERSION 204 +#define VK_HEADER_VERSION 211 // Complete version of this file #define VK_HEADER_VERSION_COMPLETE VK_MAKE_API_VERSION(0, 1, 3, VK_HEADER_VERSION) @@ -477,6 +477,9 @@ typedef enum VkStructureType { #endif #ifdef VK_ENABLE_BETA_EXTENSIONS VK_STRUCTURE_TYPE_VIDEO_DECODE_INFO_KHR = 1000024000, +#endif +#ifdef VK_ENABLE_BETA_EXTENSIONS + VK_STRUCTURE_TYPE_VIDEO_DECODE_CAPABILITIES_KHR = 1000024001, #endif VK_STRUCTURE_TYPE_DEDICATED_ALLOCATION_IMAGE_CREATE_INFO_NV = 1000026000, VK_STRUCTURE_TYPE_DEDICATED_ALLOCATION_BUFFER_CREATE_INFO_NV = 1000026001, @@ -493,94 +496,88 @@ typedef enum VkStructureType { VK_STRUCTURE_TYPE_VIDEO_ENCODE_H264_CAPABILITIES_EXT = 1000038000, #endif #ifdef VK_ENABLE_BETA_EXTENSIONS - VK_STRUCTURE_TYPE_VIDEO_ENCODE_H264_SESSION_CREATE_INFO_EXT = 1000038001, + VK_STRUCTURE_TYPE_VIDEO_ENCODE_H264_SESSION_PARAMETERS_CREATE_INFO_EXT = 1000038001, #endif #ifdef VK_ENABLE_BETA_EXTENSIONS - VK_STRUCTURE_TYPE_VIDEO_ENCODE_H264_SESSION_PARAMETERS_CREATE_INFO_EXT = 1000038002, + VK_STRUCTURE_TYPE_VIDEO_ENCODE_H264_SESSION_PARAMETERS_ADD_INFO_EXT = 1000038002, #endif #ifdef VK_ENABLE_BETA_EXTENSIONS - VK_STRUCTURE_TYPE_VIDEO_ENCODE_H264_SESSION_PARAMETERS_ADD_INFO_EXT = 1000038003, + VK_STRUCTURE_TYPE_VIDEO_ENCODE_H264_VCL_FRAME_INFO_EXT = 1000038003, #endif #ifdef VK_ENABLE_BETA_EXTENSIONS - VK_STRUCTURE_TYPE_VIDEO_ENCODE_H264_VCL_FRAME_INFO_EXT = 1000038004, + VK_STRUCTURE_TYPE_VIDEO_ENCODE_H264_DPB_SLOT_INFO_EXT = 1000038004, #endif #ifdef VK_ENABLE_BETA_EXTENSIONS - VK_STRUCTURE_TYPE_VIDEO_ENCODE_H264_DPB_SLOT_INFO_EXT = 1000038005, + VK_STRUCTURE_TYPE_VIDEO_ENCODE_H264_NALU_SLICE_EXT = 1000038005, #endif #ifdef VK_ENABLE_BETA_EXTENSIONS - VK_STRUCTURE_TYPE_VIDEO_ENCODE_H264_NALU_SLICE_EXT = 1000038006, + VK_STRUCTURE_TYPE_VIDEO_ENCODE_H264_EMIT_PICTURE_PARAMETERS_EXT = 1000038006, #endif #ifdef VK_ENABLE_BETA_EXTENSIONS - VK_STRUCTURE_TYPE_VIDEO_ENCODE_H264_EMIT_PICTURE_PARAMETERS_EXT = 1000038007, + VK_STRUCTURE_TYPE_VIDEO_ENCODE_H264_PROFILE_EXT = 1000038007, #endif #ifdef VK_ENABLE_BETA_EXTENSIONS - VK_STRUCTURE_TYPE_VIDEO_ENCODE_H264_PROFILE_EXT = 1000038008, + VK_STRUCTURE_TYPE_VIDEO_ENCODE_H264_RATE_CONTROL_INFO_EXT = 1000038008, #endif #ifdef VK_ENABLE_BETA_EXTENSIONS - VK_STRUCTURE_TYPE_VIDEO_ENCODE_H264_RATE_CONTROL_INFO_EXT = 1000038009, + VK_STRUCTURE_TYPE_VIDEO_ENCODE_H264_RATE_CONTROL_LAYER_INFO_EXT = 1000038009, #endif #ifdef VK_ENABLE_BETA_EXTENSIONS - VK_STRUCTURE_TYPE_VIDEO_ENCODE_H264_RATE_CONTROL_LAYER_INFO_EXT = 1000038010, + VK_STRUCTURE_TYPE_VIDEO_ENCODE_H264_REFERENCE_LISTS_EXT = 1000038010, #endif #ifdef VK_ENABLE_BETA_EXTENSIONS VK_STRUCTURE_TYPE_VIDEO_ENCODE_H265_CAPABILITIES_EXT = 1000039000, #endif #ifdef VK_ENABLE_BETA_EXTENSIONS - VK_STRUCTURE_TYPE_VIDEO_ENCODE_H265_SESSION_CREATE_INFO_EXT = 1000039001, + VK_STRUCTURE_TYPE_VIDEO_ENCODE_H265_SESSION_PARAMETERS_CREATE_INFO_EXT = 1000039001, #endif #ifdef VK_ENABLE_BETA_EXTENSIONS - VK_STRUCTURE_TYPE_VIDEO_ENCODE_H265_SESSION_PARAMETERS_CREATE_INFO_EXT = 1000039002, + VK_STRUCTURE_TYPE_VIDEO_ENCODE_H265_SESSION_PARAMETERS_ADD_INFO_EXT = 1000039002, #endif #ifdef VK_ENABLE_BETA_EXTENSIONS - VK_STRUCTURE_TYPE_VIDEO_ENCODE_H265_SESSION_PARAMETERS_ADD_INFO_EXT = 1000039003, + VK_STRUCTURE_TYPE_VIDEO_ENCODE_H265_VCL_FRAME_INFO_EXT = 1000039003, #endif #ifdef VK_ENABLE_BETA_EXTENSIONS - VK_STRUCTURE_TYPE_VIDEO_ENCODE_H265_VCL_FRAME_INFO_EXT = 1000039004, + VK_STRUCTURE_TYPE_VIDEO_ENCODE_H265_DPB_SLOT_INFO_EXT = 1000039004, #endif #ifdef VK_ENABLE_BETA_EXTENSIONS - VK_STRUCTURE_TYPE_VIDEO_ENCODE_H265_DPB_SLOT_INFO_EXT = 1000039005, + VK_STRUCTURE_TYPE_VIDEO_ENCODE_H265_NALU_SLICE_SEGMENT_EXT = 1000039005, #endif #ifdef VK_ENABLE_BETA_EXTENSIONS - VK_STRUCTURE_TYPE_VIDEO_ENCODE_H265_NALU_SLICE_EXT = 1000039006, + VK_STRUCTURE_TYPE_VIDEO_ENCODE_H265_EMIT_PICTURE_PARAMETERS_EXT = 1000039006, #endif #ifdef VK_ENABLE_BETA_EXTENSIONS - VK_STRUCTURE_TYPE_VIDEO_ENCODE_H265_EMIT_PICTURE_PARAMETERS_EXT = 1000039007, + VK_STRUCTURE_TYPE_VIDEO_ENCODE_H265_PROFILE_EXT = 1000039007, #endif #ifdef VK_ENABLE_BETA_EXTENSIONS - VK_STRUCTURE_TYPE_VIDEO_ENCODE_H265_PROFILE_EXT = 1000039008, + VK_STRUCTURE_TYPE_VIDEO_ENCODE_H265_REFERENCE_LISTS_EXT = 1000039008, #endif #ifdef VK_ENABLE_BETA_EXTENSIONS - VK_STRUCTURE_TYPE_VIDEO_ENCODE_H265_REFERENCE_LISTS_EXT = 1000039009, + VK_STRUCTURE_TYPE_VIDEO_ENCODE_H265_RATE_CONTROL_INFO_EXT = 1000039009, #endif #ifdef VK_ENABLE_BETA_EXTENSIONS - VK_STRUCTURE_TYPE_VIDEO_ENCODE_H265_RATE_CONTROL_INFO_EXT = 1000039010, -#endif -#ifdef VK_ENABLE_BETA_EXTENSIONS - VK_STRUCTURE_TYPE_VIDEO_ENCODE_H265_RATE_CONTROL_LAYER_INFO_EXT = 1000039011, + VK_STRUCTURE_TYPE_VIDEO_ENCODE_H265_RATE_CONTROL_LAYER_INFO_EXT = 1000039010, #endif #ifdef VK_ENABLE_BETA_EXTENSIONS VK_STRUCTURE_TYPE_VIDEO_DECODE_H264_CAPABILITIES_EXT = 1000040000, #endif #ifdef VK_ENABLE_BETA_EXTENSIONS - VK_STRUCTURE_TYPE_VIDEO_DECODE_H264_SESSION_CREATE_INFO_EXT = 1000040001, + VK_STRUCTURE_TYPE_VIDEO_DECODE_H264_PICTURE_INFO_EXT = 1000040001, #endif #ifdef VK_ENABLE_BETA_EXTENSIONS - VK_STRUCTURE_TYPE_VIDEO_DECODE_H264_PICTURE_INFO_EXT = 1000040002, + VK_STRUCTURE_TYPE_VIDEO_DECODE_H264_MVC_EXT = 1000040002, #endif #ifdef VK_ENABLE_BETA_EXTENSIONS - VK_STRUCTURE_TYPE_VIDEO_DECODE_H264_MVC_EXT = 1000040003, + VK_STRUCTURE_TYPE_VIDEO_DECODE_H264_PROFILE_EXT = 1000040003, #endif #ifdef VK_ENABLE_BETA_EXTENSIONS - VK_STRUCTURE_TYPE_VIDEO_DECODE_H264_PROFILE_EXT = 1000040004, + VK_STRUCTURE_TYPE_VIDEO_DECODE_H264_SESSION_PARAMETERS_CREATE_INFO_EXT = 1000040004, #endif #ifdef VK_ENABLE_BETA_EXTENSIONS - VK_STRUCTURE_TYPE_VIDEO_DECODE_H264_SESSION_PARAMETERS_CREATE_INFO_EXT = 1000040005, + VK_STRUCTURE_TYPE_VIDEO_DECODE_H264_SESSION_PARAMETERS_ADD_INFO_EXT = 1000040005, #endif #ifdef VK_ENABLE_BETA_EXTENSIONS - VK_STRUCTURE_TYPE_VIDEO_DECODE_H264_SESSION_PARAMETERS_ADD_INFO_EXT = 1000040006, -#endif -#ifdef VK_ENABLE_BETA_EXTENSIONS - VK_STRUCTURE_TYPE_VIDEO_DECODE_H264_DPB_SLOT_INFO_EXT = 1000040007, + VK_STRUCTURE_TYPE_VIDEO_DECODE_H264_DPB_SLOT_INFO_EXT = 1000040006, #endif VK_STRUCTURE_TYPE_TEXTURE_LOD_GATHER_FORMAT_PROPERTIES_AMD = 1000041000, VK_STRUCTURE_TYPE_RENDERING_FRAGMENT_SHADING_RATE_ATTACHMENT_INFO_KHR = 1000044006, @@ -745,22 +742,19 @@ typedef enum VkStructureType { VK_STRUCTURE_TYPE_VIDEO_DECODE_H265_CAPABILITIES_EXT = 1000187000, #endif #ifdef VK_ENABLE_BETA_EXTENSIONS - VK_STRUCTURE_TYPE_VIDEO_DECODE_H265_SESSION_CREATE_INFO_EXT = 1000187001, + VK_STRUCTURE_TYPE_VIDEO_DECODE_H265_SESSION_PARAMETERS_CREATE_INFO_EXT = 1000187001, #endif #ifdef VK_ENABLE_BETA_EXTENSIONS - VK_STRUCTURE_TYPE_VIDEO_DECODE_H265_SESSION_PARAMETERS_CREATE_INFO_EXT = 1000187002, + VK_STRUCTURE_TYPE_VIDEO_DECODE_H265_SESSION_PARAMETERS_ADD_INFO_EXT = 1000187002, #endif #ifdef VK_ENABLE_BETA_EXTENSIONS - VK_STRUCTURE_TYPE_VIDEO_DECODE_H265_SESSION_PARAMETERS_ADD_INFO_EXT = 1000187003, + VK_STRUCTURE_TYPE_VIDEO_DECODE_H265_PROFILE_EXT = 1000187003, #endif #ifdef VK_ENABLE_BETA_EXTENSIONS - VK_STRUCTURE_TYPE_VIDEO_DECODE_H265_PROFILE_EXT = 1000187004, + VK_STRUCTURE_TYPE_VIDEO_DECODE_H265_PICTURE_INFO_EXT = 1000187004, #endif #ifdef VK_ENABLE_BETA_EXTENSIONS - VK_STRUCTURE_TYPE_VIDEO_DECODE_H265_PICTURE_INFO_EXT = 1000187005, -#endif -#ifdef VK_ENABLE_BETA_EXTENSIONS - VK_STRUCTURE_TYPE_VIDEO_DECODE_H265_DPB_SLOT_INFO_EXT = 1000187006, + VK_STRUCTURE_TYPE_VIDEO_DECODE_H265_DPB_SLOT_INFO_EXT = 1000187005, #endif VK_STRUCTURE_TYPE_DEVICE_QUEUE_GLOBAL_PRIORITY_CREATE_INFO_KHR = 1000174000, VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_GLOBAL_PRIORITY_QUERY_FEATURES_KHR = 1000388000, @@ -871,11 +865,17 @@ typedef enum VkStructureType { #endif #ifdef VK_ENABLE_BETA_EXTENSIONS VK_STRUCTURE_TYPE_VIDEO_ENCODE_RATE_CONTROL_LAYER_INFO_KHR = 1000299002, +#endif +#ifdef VK_ENABLE_BETA_EXTENSIONS + VK_STRUCTURE_TYPE_VIDEO_ENCODE_CAPABILITIES_KHR = 1000299003, #endif VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DIAGNOSTICS_CONFIG_FEATURES_NV = 1000300000, VK_STRUCTURE_TYPE_DEVICE_DIAGNOSTICS_CONFIG_CREATE_INFO_NV = 1000300001, VK_STRUCTURE_TYPE_QUEUE_FAMILY_CHECKPOINT_PROPERTIES_2_NV = 1000314008, VK_STRUCTURE_TYPE_CHECKPOINT_DATA_2_NV = 1000314009, + VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_GRAPHICS_PIPELINE_LIBRARY_FEATURES_EXT = 1000320000, + VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_GRAPHICS_PIPELINE_LIBRARY_PROPERTIES_EXT = 1000320001, + VK_STRUCTURE_TYPE_GRAPHICS_PIPELINE_LIBRARY_CREATE_INFO_EXT = 1000320002, VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_SUBGROUP_UNIFORM_CONTROL_FLOW_FEATURES_KHR = 1000323000, VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_SHADING_RATE_ENUMS_PROPERTIES_NV = 1000326000, VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_SHADING_RATE_ENUMS_FEATURES_NV = 1000326001, @@ -926,13 +926,18 @@ typedef enum VkStructureType { VK_STRUCTURE_TYPE_SCREEN_SURFACE_CREATE_INFO_QNX = 1000378000, VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_COLOR_WRITE_ENABLE_FEATURES_EXT = 1000381000, VK_STRUCTURE_TYPE_PIPELINE_COLOR_WRITE_CREATE_INFO_EXT = 1000381001, + VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PRIMITIVES_GENERATED_QUERY_FEATURES_EXT = 1000382000, VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGE_VIEW_MIN_LOD_FEATURES_EXT = 1000391000, VK_STRUCTURE_TYPE_IMAGE_VIEW_MIN_LOD_CREATE_INFO_EXT = 1000391001, VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MULTI_DRAW_FEATURES_EXT = 1000392000, VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MULTI_DRAW_PROPERTIES_EXT = 1000392001, + VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGE_2D_VIEW_OF_3D_FEATURES_EXT = 1000393000, VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_BORDER_COLOR_SWIZZLE_FEATURES_EXT = 1000411000, VK_STRUCTURE_TYPE_SAMPLER_BORDER_COLOR_COMPONENT_MAPPING_CREATE_INFO_EXT = 1000411001, VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PAGEABLE_DEVICE_LOCAL_MEMORY_FEATURES_EXT = 1000412000, + VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DESCRIPTOR_SET_HOST_MAPPING_FEATURES_VALVE = 1000420000, + VK_STRUCTURE_TYPE_DESCRIPTOR_SET_BINDING_REFERENCE_VALVE = 1000420001, + VK_STRUCTURE_TYPE_DESCRIPTOR_SET_LAYOUT_HOST_MAPPING_INFO_VALVE = 1000420002, VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_DENSITY_MAP_OFFSET_FEATURES_QCOM = 1000425000, VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_DENSITY_MAP_OFFSET_PROPERTIES_QCOM = 1000425001, VK_STRUCTURE_TYPE_SUBPASS_FRAGMENT_DENSITY_MAP_OFFSET_END_INFO_QCOM = 1000425002, @@ -1590,6 +1595,7 @@ typedef enum VkQueryType { #ifdef VK_ENABLE_BETA_EXTENSIONS VK_QUERY_TYPE_VIDEO_ENCODE_BITSTREAM_BUFFER_RANGE_KHR = 1000299000, #endif + VK_QUERY_TYPE_PRIMITIVES_GENERATED_EXT = 1000382000, VK_QUERY_TYPE_MAX_ENUM = 0x7FFFFFFF } VkQueryType; @@ -1984,14 +1990,15 @@ typedef enum VkImageAspectFlagBits { VK_IMAGE_ASPECT_PLANE_0_BIT = 0x00000010, VK_IMAGE_ASPECT_PLANE_1_BIT = 0x00000020, VK_IMAGE_ASPECT_PLANE_2_BIT = 0x00000040, + VK_IMAGE_ASPECT_NONE = 0, VK_IMAGE_ASPECT_MEMORY_PLANE_0_BIT_EXT = 0x00000080, VK_IMAGE_ASPECT_MEMORY_PLANE_1_BIT_EXT = 0x00000100, VK_IMAGE_ASPECT_MEMORY_PLANE_2_BIT_EXT = 0x00000200, VK_IMAGE_ASPECT_MEMORY_PLANE_3_BIT_EXT = 0x00000400, - VK_IMAGE_ASPECT_NONE_KHR = 0, VK_IMAGE_ASPECT_PLANE_0_BIT_KHR = VK_IMAGE_ASPECT_PLANE_0_BIT, VK_IMAGE_ASPECT_PLANE_1_BIT_KHR = VK_IMAGE_ASPECT_PLANE_1_BIT, VK_IMAGE_ASPECT_PLANE_2_BIT_KHR = VK_IMAGE_ASPECT_PLANE_2_BIT, + VK_IMAGE_ASPECT_NONE_KHR = VK_IMAGE_ASPECT_NONE, VK_IMAGE_ASPECT_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF } VkImageAspectFlagBits; typedef VkFlags VkImageAspectFlags; @@ -2067,6 +2074,7 @@ typedef enum VkImageCreateFlagBits { VK_IMAGE_CREATE_CORNER_SAMPLED_BIT_NV = 0x00002000, VK_IMAGE_CREATE_SAMPLE_LOCATIONS_COMPATIBLE_DEPTH_BIT_EXT = 0x00001000, VK_IMAGE_CREATE_SUBSAMPLED_BIT_EXT = 0x00004000, + VK_IMAGE_CREATE_2D_VIEW_COMPATIBLE_BIT_EXT = 0x00020000, VK_IMAGE_CREATE_FRAGMENT_DENSITY_MAP_OFFSET_BIT_QCOM = 0x00008000, VK_IMAGE_CREATE_SPLIT_INSTANCE_BIND_REGIONS_BIT_KHR = VK_IMAGE_CREATE_SPLIT_INSTANCE_BIND_REGIONS_BIT, VK_IMAGE_CREATE_2D_ARRAY_COMPATIBLE_BIT_KHR = VK_IMAGE_CREATE_2D_ARRAY_COMPATIBLE_BIT, @@ -2124,6 +2132,11 @@ typedef enum VkImageUsageFlagBits { VK_IMAGE_USAGE_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF } VkImageUsageFlagBits; typedef VkFlags VkImageUsageFlags; + +typedef enum VkInstanceCreateFlagBits { + VK_INSTANCE_CREATE_ENUMERATE_PORTABILITY_BIT_KHR = 0x00000001, + VK_INSTANCE_CREATE_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF +} VkInstanceCreateFlagBits; typedef VkFlags VkInstanceCreateFlags; typedef enum VkMemoryHeapFlagBits { @@ -2360,6 +2373,8 @@ typedef enum VkPipelineCreateFlagBits { VK_PIPELINE_CREATE_CAPTURE_INTERNAL_REPRESENTATIONS_BIT_KHR = 0x00000080, VK_PIPELINE_CREATE_INDIRECT_BINDABLE_BIT_NV = 0x00040000, VK_PIPELINE_CREATE_LIBRARY_BIT_KHR = 0x00000800, + VK_PIPELINE_CREATE_RETAIN_LINK_TIME_OPTIMIZATION_INFO_BIT_EXT = 0x00800000, + VK_PIPELINE_CREATE_LINK_TIME_OPTIMIZATION_BIT_EXT = 0x00000400, VK_PIPELINE_CREATE_RAY_TRACING_ALLOW_MOTION_BIT_NV = 0x00100000, VK_PIPELINE_CREATE_DISPATCH_BASE = VK_PIPELINE_CREATE_DISPATCH_BASE_BIT, VK_PIPELINE_RASTERIZATION_STATE_CREATE_FRAGMENT_SHADING_RATE_ATTACHMENT_BIT_KHR = VK_PIPELINE_CREATE_RENDERING_FRAGMENT_SHADING_RATE_ATTACHMENT_BIT_KHR, @@ -2436,6 +2451,11 @@ typedef enum VkPipelineColorBlendStateCreateFlagBits { } VkPipelineColorBlendStateCreateFlagBits; typedef VkFlags VkPipelineColorBlendStateCreateFlags; typedef VkFlags VkPipelineDynamicStateCreateFlags; + +typedef enum VkPipelineLayoutCreateFlagBits { + VK_PIPELINE_LAYOUT_CREATE_INDEPENDENT_SETS_BIT_EXT = 0x00000002, + VK_PIPELINE_LAYOUT_CREATE_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF +} VkPipelineLayoutCreateFlagBits; typedef VkFlags VkPipelineLayoutCreateFlags; typedef VkFlags VkShaderStageFlags; @@ -6259,10 +6279,6 @@ typedef enum VkToolPurposeFlagBits { VK_TOOL_PURPOSE_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF } VkToolPurposeFlagBits; typedef VkFlags VkToolPurposeFlags; - -typedef enum VkPrivateDataSlotCreateFlagBits { - VK_PRIVATE_DATA_SLOT_CREATE_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF -} VkPrivateDataSlotCreateFlagBits; typedef VkFlags VkPrivateDataSlotCreateFlags; typedef VkFlags64 VkPipelineStageFlags2; @@ -9468,6 +9484,11 @@ typedef VkFormatProperties3 VkFormatProperties3KHR; +#define VK_KHR_portability_enumeration 1 +#define VK_KHR_PORTABILITY_ENUMERATION_SPEC_VERSION 1 +#define VK_KHR_PORTABILITY_ENUMERATION_EXTENSION_NAME "VK_KHR_portability_enumeration" + + #define VK_KHR_maintenance4 1 #define VK_KHR_MAINTENANCE_4_SPEC_VERSION 2 #define VK_KHR_MAINTENANCE_4_EXTENSION_NAME "VK_KHR_maintenance4" @@ -13127,8 +13148,6 @@ typedef VkPrivateDataSlot VkPrivateDataSlotEXT; #define VK_EXT_PRIVATE_DATA_EXTENSION_NAME "VK_EXT_private_data" typedef VkPrivateDataSlotCreateFlags VkPrivateDataSlotCreateFlagsEXT; -typedef VkPrivateDataSlotCreateFlagBits VkPrivateDataSlotCreateFlagBitsEXT; - typedef VkPhysicalDevicePrivateDataFeatures VkPhysicalDevicePrivateDataFeaturesEXT; typedef VkDevicePrivateDataCreateInfo VkDevicePrivateDataCreateInfoEXT; @@ -13205,6 +13224,39 @@ typedef struct VkDeviceDiagnosticsConfigCreateInfoNV { #define VK_QCOM_RENDER_PASS_STORE_OPS_EXTENSION_NAME "VK_QCOM_render_pass_store_ops" +#define VK_EXT_graphics_pipeline_library 1 +#define VK_EXT_GRAPHICS_PIPELINE_LIBRARY_SPEC_VERSION 1 +#define VK_EXT_GRAPHICS_PIPELINE_LIBRARY_EXTENSION_NAME "VK_EXT_graphics_pipeline_library" + +typedef enum VkGraphicsPipelineLibraryFlagBitsEXT { + VK_GRAPHICS_PIPELINE_LIBRARY_VERTEX_INPUT_INTERFACE_BIT_EXT = 0x00000001, + VK_GRAPHICS_PIPELINE_LIBRARY_PRE_RASTERIZATION_SHADERS_BIT_EXT = 0x00000002, + VK_GRAPHICS_PIPELINE_LIBRARY_FRAGMENT_SHADER_BIT_EXT = 0x00000004, + VK_GRAPHICS_PIPELINE_LIBRARY_FRAGMENT_OUTPUT_INTERFACE_BIT_EXT = 0x00000008, + VK_GRAPHICS_PIPELINE_LIBRARY_FLAG_BITS_MAX_ENUM_EXT = 0x7FFFFFFF +} VkGraphicsPipelineLibraryFlagBitsEXT; +typedef VkFlags VkGraphicsPipelineLibraryFlagsEXT; +typedef struct VkPhysicalDeviceGraphicsPipelineLibraryFeaturesEXT { + VkStructureType sType; + void* pNext; + VkBool32 graphicsPipelineLibrary; +} VkPhysicalDeviceGraphicsPipelineLibraryFeaturesEXT; + +typedef struct VkPhysicalDeviceGraphicsPipelineLibraryPropertiesEXT { + VkStructureType sType; + void* pNext; + VkBool32 graphicsPipelineLibraryFastLinking; + VkBool32 graphicsPipelineLibraryIndependentInterpolationDecoration; +} VkPhysicalDeviceGraphicsPipelineLibraryPropertiesEXT; + +typedef struct VkGraphicsPipelineLibraryCreateInfoEXT { + VkStructureType sType; + void* pNext; + VkGraphicsPipelineLibraryFlagsEXT flags; +} VkGraphicsPipelineLibraryCreateInfoEXT; + + + #define VK_NV_fragment_shading_rate_enums 1 #define VK_NV_FRAGMENT_SHADING_RATE_ENUMS_SPEC_VERSION 1 #define VK_NV_FRAGMENT_SHADING_RATE_ENUMS_EXTENSION_NAME "VK_NV_fragment_shading_rate_enums" @@ -13418,7 +13470,7 @@ typedef struct VkPhysicalDevice4444FormatsFeaturesEXT { #define VK_ARM_RASTERIZATION_ORDER_ATTACHMENT_ACCESS_EXTENSION_NAME "VK_ARM_rasterization_order_attachment_access" typedef struct VkPhysicalDeviceRasterizationOrderAttachmentAccessFeaturesARM { VkStructureType sType; - const void* pNext; + void* pNext; VkBool32 rasterizationOrderColorAttachmentAccess; VkBool32 rasterizationOrderDepthAttachmentAccess; VkBool32 rasterizationOrderStencilAttachmentAccess; @@ -13710,6 +13762,19 @@ VKAPI_ATTR void VKAPI_CALL vkCmdSetColorWrite #endif +#define VK_EXT_primitives_generated_query 1 +#define VK_EXT_PRIMITIVES_GENERATED_QUERY_SPEC_VERSION 1 +#define VK_EXT_PRIMITIVES_GENERATED_QUERY_EXTENSION_NAME "VK_EXT_primitives_generated_query" +typedef struct VkPhysicalDevicePrimitivesGeneratedQueryFeaturesEXT { + VkStructureType sType; + void* pNext; + VkBool32 primitivesGeneratedQuery; + VkBool32 primitivesGeneratedQueryWithRasterizerDiscard; + VkBool32 primitivesGeneratedQueryWithNonZeroStreams; +} VkPhysicalDevicePrimitivesGeneratedQueryFeaturesEXT; + + + #define VK_EXT_global_priority_query 1 #define VK_EXT_GLOBAL_PRIORITY_QUERY_SPEC_VERSION 1 #define VK_EXT_GLOBAL_PRIORITY_QUERY_EXTENSION_NAME "VK_EXT_global_priority_query" @@ -13786,6 +13851,18 @@ VKAPI_ATTR void VKAPI_CALL vkCmdDrawMultiIndexedEXT( #endif +#define VK_EXT_image_2d_view_of_3d 1 +#define VK_EXT_IMAGE_2D_VIEW_OF_3D_SPEC_VERSION 1 +#define VK_EXT_IMAGE_2D_VIEW_OF_3D_EXTENSION_NAME "VK_EXT_image_2d_view_of_3d" +typedef struct VkPhysicalDeviceImage2DViewOf3DFeaturesEXT { + VkStructureType sType; + void* pNext; + VkBool32 image2DViewOf3D; + VkBool32 sampler2DViewOf3D; +} VkPhysicalDeviceImage2DViewOf3DFeaturesEXT; + + + #define VK_EXT_load_store_op_none 1 #define VK_EXT_LOAD_STORE_OP_NONE_SPEC_VERSION 1 #define VK_EXT_LOAD_STORE_OP_NONE_EXTENSION_NAME "VK_EXT_load_store_op_none" @@ -13829,6 +13906,45 @@ VKAPI_ATTR void VKAPI_CALL vkSetDeviceMemoryPriorityEXT( #endif +#define VK_VALVE_descriptor_set_host_mapping 1 +#define VK_VALVE_DESCRIPTOR_SET_HOST_MAPPING_SPEC_VERSION 1 +#define VK_VALVE_DESCRIPTOR_SET_HOST_MAPPING_EXTENSION_NAME "VK_VALVE_descriptor_set_host_mapping" +typedef struct VkPhysicalDeviceDescriptorSetHostMappingFeaturesVALVE { + VkStructureType sType; + void* pNext; + VkBool32 descriptorSetHostMapping; +} VkPhysicalDeviceDescriptorSetHostMappingFeaturesVALVE; + +typedef struct VkDescriptorSetBindingReferenceVALVE { + VkStructureType sType; + const void* pNext; + VkDescriptorSetLayout descriptorSetLayout; + uint32_t binding; +} VkDescriptorSetBindingReferenceVALVE; + +typedef struct VkDescriptorSetLayoutHostMappingInfoVALVE { + VkStructureType sType; + void* pNext; + size_t descriptorOffset; + uint32_t descriptorSize; +} VkDescriptorSetLayoutHostMappingInfoVALVE; + +typedef void (VKAPI_PTR *PFN_vkGetDescriptorSetLayoutHostMappingInfoVALVE)(VkDevice device, const VkDescriptorSetBindingReferenceVALVE* pBindingReference, VkDescriptorSetLayoutHostMappingInfoVALVE* pHostMapping); +typedef void (VKAPI_PTR *PFN_vkGetDescriptorSetHostMappingVALVE)(VkDevice device, VkDescriptorSet descriptorSet, void** ppData); + +#ifndef VK_NO_PROTOTYPES +VKAPI_ATTR void VKAPI_CALL vkGetDescriptorSetLayoutHostMappingInfoVALVE( + VkDevice device, + const VkDescriptorSetBindingReferenceVALVE* pBindingReference, + VkDescriptorSetLayoutHostMappingInfoVALVE* pHostMapping); + +VKAPI_ATTR void VKAPI_CALL vkGetDescriptorSetHostMappingVALVE( + VkDevice device, + VkDescriptorSet descriptorSet, + void** ppData); +#endif + + #define VK_QCOM_fragment_density_map_offset 1 #define VK_QCOM_FRAGMENT_DENSITY_MAP_OFFSET_SPEC_VERSION 1 #define VK_QCOM_FRAGMENT_DENSITY_MAP_OFFSET_EXTENSION_NAME "VK_QCOM_fragment_density_map_offset"