diff --git a/.vscode/settings.json b/.vscode/settings.json index 45297e2..f4252d0 100644 --- a/.vscode/settings.json +++ b/.vscode/settings.json @@ -123,7 +123,8 @@ "latch": "cpp", "ranges": "cpp", "source_location": "cpp", - "syncstream": "cpp" + "syncstream": "cpp", + "stdfloat": "cpp" }, "cmake.skipConfigureIfCachePresent": false, "cmake.configureArgs": [ diff --git a/external/slang b/external/slang index 4547125..cc22270 160000 --- a/external/slang +++ b/external/slang @@ -1 +1 @@ -Subproject commit 4547125ce945140dc10542e9606b225dd06159b8 +Subproject commit cc222702a8d7a1fccf8ad14b256570bcec1554ae diff --git a/res/shaders/BasePass.slang b/res/shaders/BasePass.slang index 063c25e..11ecd29 100644 --- a/res/shaders/BasePass.slang +++ b/res/shaders/BasePass.slang @@ -15,9 +15,9 @@ layout(set=5) ParameterBlock pLightCullingData; [shader("pixel")] -void pixelMain(in MaterialParameter params : PARAMETER, out float4 baseColor) +float4 pixelMain(in MaterialParameter params : PARAMETER) : SV_Target { - BRDF brdf = pMaterial.prepare(params); + let brdf = pMaterial.prepare(params); float3 result = float3(0, 0, 0); for(int i = 0; i < pLightEnv.numDirectionalLights; ++i) { diff --git a/res/shaders/ComputeFrustums.slang b/res/shaders/ComputeFrustums.slang index 624d9c5..10dffaa 100644 --- a/res/shaders/ComputeFrustums.slang +++ b/res/shaders/ComputeFrustums.slang @@ -1,4 +1,5 @@ import Common; +import DispatchParams; struct ComputeShaderInput { @@ -8,17 +9,6 @@ struct ComputeShaderInput uint groupIndex : SV_GroupIndex; }; -struct DispatchParams -{ - uint3 numThreadGroups; - uint pad0; - uint3 numThreads; - uint pad1; - RWStructuredBuffer frustums; -} -ParameterBlock pDispatchParams; - - [numthreads(BLOCK_SIZE, BLOCK_SIZE, 1)] [shader("compute")] void computeFrustums(ComputeShaderInput in) diff --git a/res/shaders/LightCulling.slang b/res/shaders/LightCulling.slang index 1349e99..85414e8 100644 --- a/res/shaders/LightCulling.slang +++ b/res/shaders/LightCulling.slang @@ -1,4 +1,5 @@ import Common; +import DispatchParams; import LightEnv; struct ComputeShaderInput @@ -10,11 +11,6 @@ struct ComputeShaderInput }; struct CullingParams { - uint3 numThreadGroups; - uint pad0; - uint3 numThreads; - uint pad1; - Texture2D depthTextureVS; globallycoherent RWStructuredBuffer oLightIndexCounter; @@ -25,9 +21,8 @@ struct CullingParams RWTexture2D oLightGrid; RWTexture2D tLightGrid; - - StructuredBuffer frustums; }; +layout(set=2) ParameterBlock pCullingParams; // Debug //Texture2D lightCountHeatMap; @@ -81,7 +76,7 @@ void cullLights(ComputeShaderInput in) uMaxDepth = 0x0; oLightCount = 0; tLightCount = 0; - groupFrustum = pCullingParams.frustums[in.groupID.x + (in.groupID.y * pCullingParams.numThreadGroups.x)]; + groupFrustum = pDispatchParams.frustums[in.groupID.x + (in.groupID.y * pDispatchParams.numThreadGroups.x)]; } GroupMemoryBarrierWithGroupSync(); diff --git a/res/shaders/Skybox.slang b/res/shaders/Skybox.slang index 92997d1..302c5fe 100644 --- a/res/shaders/Skybox.slang +++ b/res/shaders/Skybox.slang @@ -15,6 +15,7 @@ struct SkyboxData float4x4 transformMatrix; float4 fogBlend; }; +layout(set=1) ParameterBlock pSkyboxData; [shader("vertex")] @@ -36,6 +37,7 @@ struct TextureData TextureCube cubeMap2; SamplerState sampler; }; +layout(set=2) ParameterBlock pTextures; static const float lowerLimit = 0.0; static const float upperLimit = 0.1; diff --git a/res/shaders/lib/DispatchParams.slang b/res/shaders/lib/DispatchParams.slang new file mode 100644 index 0000000..c8772e7 --- /dev/null +++ b/res/shaders/lib/DispatchParams.slang @@ -0,0 +1,12 @@ +import Common; + +struct DispatchParams +{ + uint3 numThreadGroups; + uint pad0; + uint3 numThreads; + uint pad1; + RWStructuredBuffer frustums; +} +layout(set=1) +ParameterBlock pDispatchParams; \ No newline at end of file diff --git a/src/Editor/Asset/TextureLoader.cpp b/src/Editor/Asset/TextureLoader.cpp index a4e4fca..5a2e600 100644 --- a/src/Editor/Asset/TextureLoader.cpp +++ b/src/Editor/Asset/TextureLoader.cpp @@ -133,9 +133,13 @@ void TextureLoader::import(TextureImportArgs args, PTextureAsset textureAsset) std::memcpy(memory.data(), dest, size); free(dest); + Array rawPixels(totalWidth * totalHeight * 4); + std::memcpy(rawPixels.data(), data, rawPixels.size()); + stbi_image_free(data); ArchiveBuffer temp(graphics); + Serialization::save(temp, rawPixels); Serialization::save(temp, memory); temp.rewind(); textureAsset->load(temp); @@ -149,6 +153,7 @@ void TextureLoader::import(TextureImportArgs args, PTextureAsset textureAsset) Serialization::save(archive, TextureAsset::IDENTIFIER); Serialization::save(archive, textureAsset->getName()); Serialization::save(archive, textureAsset->getFolderPath()); + Serialization::save(archive, rawPixels); Serialization::save(archive, memory); archive.writeToStream(stream); diff --git a/src/Engine/Asset/TextureAsset.cpp b/src/Engine/Asset/TextureAsset.cpp index 8b73638..c7b8717 100644 --- a/src/Engine/Asset/TextureAsset.cpp +++ b/src/Engine/Asset/TextureAsset.cpp @@ -73,6 +73,7 @@ void TextureAsset::save(ArchiveBuffer&) const void TextureAsset::load(ArchiveBuffer& buffer) { Gfx::PGraphics graphics = buffer.getGraphics(); + Serialization::load(buffer, rawPixels); Array rawData; Serialization::load(buffer, rawData); ktxTexture2* kTexture; @@ -119,3 +120,13 @@ void TextureAsset::setTexture(Gfx::OTexture _texture) { texture = std::move(_texture); } + +uint32 TextureAsset::getWidth() +{ + return texture->getSizeX(); +} + +uint32 TextureAsset::getHeight() +{ + return texture->getSizeY(); +} diff --git a/src/Engine/Asset/TextureAsset.h b/src/Engine/Asset/TextureAsset.h index 634376d..af275dc 100644 --- a/src/Engine/Asset/TextureAsset.h +++ b/src/Engine/Asset/TextureAsset.h @@ -18,7 +18,14 @@ public: { return texture; } + const Array& getRawPixels() + { + return rawPixels; + } + uint32 getWidth(); + uint32 getHeight(); private: + Array rawPixels; Gfx::OTexture texture; friend class TextureLoader; }; diff --git a/src/Engine/Component/Component.h b/src/Engine/Component/Component.h index bcc0c90..2e0fff2 100644 --- a/src/Engine/Component/Component.h +++ b/src/Engine/Component/Component.h @@ -35,7 +35,7 @@ concept has_dependencies = requires(Comp) { Comp::dependencies; }; x& get##x() { return *tl_##x; } \ const x& get##x() const { return *tl_##x; }; \ public: \ - constexpr static Dependencies dependencies; + constexpr static Dependencies dependencies = {}; #define DECLARE_COMPONENT(x) \ thread_local extern x* tl_##x; \ diff --git a/src/Engine/Graphics/RenderPass/BasePass.cpp b/src/Engine/Graphics/RenderPass/BasePass.cpp index e33e48e..baf008e 100644 --- a/src/Engine/Graphics/RenderPass/BasePass.cpp +++ b/src/Engine/Graphics/RenderPass/BasePass.cpp @@ -29,12 +29,13 @@ BasePass::BasePass(Gfx::PGraphics graphics, PScene scene) // tLightIndexList lightCullingLayout->addDescriptorBinding(1, Gfx::SE_DESCRIPTOR_TYPE_STORAGE_BUFFER); // oLightGrid - lightCullingLayout->addDescriptorBinding(2, Gfx::SE_DESCRIPTOR_TYPE_STORAGE_TEXEL_BUFFER); + lightCullingLayout->addDescriptorBinding(2, Gfx::SE_DESCRIPTOR_TYPE_STORAGE_IMAGE); // tLightGrid - lightCullingLayout->addDescriptorBinding(3, Gfx::SE_DESCRIPTOR_TYPE_STORAGE_TEXEL_BUFFER); + lightCullingLayout->addDescriptorBinding(3, Gfx::SE_DESCRIPTOR_TYPE_STORAGE_IMAGE); lightCullingLayout->create(); basePassLayout->addDescriptorLayout(INDEX_LIGHT_CULLING, lightCullingLayout); + graphics->getShaderCompiler()->registerRenderPass("BasePass", "LegacyBasePass", true, true, "BasePass"); } BasePass::~BasePass() @@ -72,7 +73,6 @@ void BasePass::render() descriptorSets[INDEX_LIGHT_CULLING]->updateTexture(3, tLightGrid); descriptorSets[INDEX_LIGHT_CULLING]->writeChanges(); - graphics->beginRenderPass(renderPass); Gfx::ShaderPermutation permutation; if (graphics->supportMeshShading()) { diff --git a/src/Engine/Graphics/RenderPass/LightCullingPass.cpp b/src/Engine/Graphics/RenderPass/LightCullingPass.cpp index 5f0f47d..470c9a8 100644 --- a/src/Engine/Graphics/RenderPass/LightCullingPass.cpp +++ b/src/Engine/Graphics/RenderPass/LightCullingPass.cpp @@ -32,15 +32,12 @@ void LightCullingPass::beginFrame(const Component::Camera& cam) cullingDescriptorLayout->reset(); cullingDescriptorSet = cullingDescriptorLayout->allocateDescriptorSet(); - cullingDescriptorSet->updateBuffer(0, dispatchParamsBuffer); - cullingDescriptorSet->updateTexture(1, depthAttachment); - cullingDescriptorSet->updateBuffer(2, oLightIndexCounter); - cullingDescriptorSet->updateBuffer(3, tLightIndexCounter); - cullingDescriptorSet->updateBuffer(4, oLightIndexList); - cullingDescriptorSet->updateBuffer(5, tLightIndexList); - cullingDescriptorSet->updateTexture(6, Gfx::PTexture2D(oLightGrid)); - cullingDescriptorSet->updateTexture(7, Gfx::PTexture2D(tLightGrid)); - cullingDescriptorSet->updateBuffer(8, frustumBuffer); + cullingDescriptorSet->updateBuffer(1, oLightIndexCounter); + cullingDescriptorSet->updateBuffer(2, tLightIndexCounter); + cullingDescriptorSet->updateBuffer(3, oLightIndexList); + cullingDescriptorSet->updateBuffer(4, tLightIndexList); + cullingDescriptorSet->updateTexture(5, Gfx::PTexture2D(oLightGrid)); + cullingDescriptorSet->updateTexture(6, Gfx::PTexture2D(tLightGrid)); //std::cout << "LightCulling beginFrame()" << std::endl; //co_return; } @@ -58,11 +55,11 @@ void LightCullingPass::render() Gfx::SE_ACCESS_SHADER_READ_BIT, Gfx::SE_PIPELINE_STAGE_COMPUTE_SHADER_BIT); depthAttachment->changeLayout(Gfx::SE_IMAGE_LAYOUT_GENERAL); depthAttachment->transferOwnership(Gfx::QueueType::COMPUTE); - cullingDescriptorSet->updateTexture(2, depthAttachment); + cullingDescriptorSet->updateTexture(0, depthAttachment); cullingDescriptorSet->writeChanges(); Gfx::PComputeCommand computeCommand = graphics->createComputeCommand("CullingCommand"); computeCommand->bindPipeline(cullingPipeline); - computeCommand->bindDescriptor({ viewParamsSet, lightEnv->getDescriptorSet(), cullingDescriptorSet }); + computeCommand->bindDescriptor({ viewParamsSet, dispatchParamsSet, cullingDescriptorSet, lightEnv->getDescriptorSet() }); computeCommand->dispatch(dispatchParams.numThreadGroups.x, dispatchParams.numThreadGroups.y, dispatchParams.numThreadGroups.z); Array commands = {computeCommand}; graphics->executeCommands(commands); @@ -95,32 +92,29 @@ void LightCullingPass::publishOutputs() }); cullingDescriptorLayout = graphics->createDescriptorLayout("CullingLayout"); - - // Dispatchparams - cullingDescriptorLayout->addDescriptorBinding(0, Gfx::SE_DESCRIPTOR_TYPE_UNIFORM_BUFFER); + //DepthTexture - cullingDescriptorLayout->addDescriptorBinding(1, Gfx::SE_DESCRIPTOR_TYPE_SAMPLED_IMAGE); + cullingDescriptorLayout->addDescriptorBinding(0, Gfx::SE_DESCRIPTOR_TYPE_SAMPLED_IMAGE); //o_lightIndexCounter - cullingDescriptorLayout->addDescriptorBinding(2, Gfx::SE_DESCRIPTOR_TYPE_STORAGE_BUFFER); + cullingDescriptorLayout->addDescriptorBinding(1, Gfx::SE_DESCRIPTOR_TYPE_STORAGE_BUFFER); //t_lightIndexCounter - cullingDescriptorLayout->addDescriptorBinding(3, Gfx::SE_DESCRIPTOR_TYPE_STORAGE_BUFFER); + cullingDescriptorLayout->addDescriptorBinding(2, Gfx::SE_DESCRIPTOR_TYPE_STORAGE_BUFFER); //o_lightIndexList - cullingDescriptorLayout->addDescriptorBinding(4, Gfx::SE_DESCRIPTOR_TYPE_STORAGE_BUFFER); + cullingDescriptorLayout->addDescriptorBinding(3, Gfx::SE_DESCRIPTOR_TYPE_STORAGE_BUFFER); //t_lightIndexList - cullingDescriptorLayout->addDescriptorBinding(5, Gfx::SE_DESCRIPTOR_TYPE_STORAGE_BUFFER); + cullingDescriptorLayout->addDescriptorBinding(4, Gfx::SE_DESCRIPTOR_TYPE_STORAGE_BUFFER); //o_lightGrid - cullingDescriptorLayout->addDescriptorBinding(6, Gfx::SE_DESCRIPTOR_TYPE_STORAGE_IMAGE); + cullingDescriptorLayout->addDescriptorBinding(5, Gfx::SE_DESCRIPTOR_TYPE_STORAGE_IMAGE); //t_lightGrid - cullingDescriptorLayout->addDescriptorBinding(7, Gfx::SE_DESCRIPTOR_TYPE_STORAGE_IMAGE); - //Frustums - cullingDescriptorLayout->addDescriptorBinding(8, Gfx::SE_DESCRIPTOR_TYPE_STORAGE_BUFFER, viewportWidth * viewportHeight); + cullingDescriptorLayout->addDescriptorBinding(6, Gfx::SE_DESCRIPTOR_TYPE_STORAGE_IMAGE); lightEnv = scene->getLightEnvironment(); Gfx::OPipelineLayout cullingLayout = graphics->createPipelineLayout(); cullingLayout->addDescriptorLayout(0, viewParamsLayout); - cullingLayout->addDescriptorLayout(1, lightEnv->getDescriptorLayout()); + cullingLayout->addDescriptorLayout(1, dispatchParamsLayout); cullingLayout->addDescriptorLayout(2, cullingDescriptorLayout); + cullingLayout->addDescriptorLayout(3, lightEnv->getDescriptorLayout()); cullingLayout->create(); ShaderCreateInfo createInfo; @@ -200,12 +194,12 @@ void LightCullingPass::setupFrustums() dispatchParams.numThreads = numThreads; dispatchParams.numThreadGroups = numThreadGroups; - frustumDescriptorLayout = graphics->createDescriptorLayout("FrustumLayout"); - frustumDescriptorLayout->addDescriptorBinding(0, Gfx::SE_DESCRIPTOR_TYPE_UNIFORM_BUFFER); - frustumDescriptorLayout->addDescriptorBinding(1, Gfx::SE_DESCRIPTOR_TYPE_STORAGE_BUFFER); + dispatchParamsLayout = graphics->createDescriptorLayout("FrustumLayout"); + dispatchParamsLayout->addDescriptorBinding(0, Gfx::SE_DESCRIPTOR_TYPE_UNIFORM_BUFFER); + dispatchParamsLayout->addDescriptorBinding(1, Gfx::SE_DESCRIPTOR_TYPE_STORAGE_BUFFER); Gfx::OPipelineLayout frustumLayout = graphics->createPipelineLayout(); frustumLayout->addDescriptorLayout(0, viewParamsLayout); - frustumLayout->addDescriptorLayout(1, frustumDescriptorLayout); + frustumLayout->addDescriptorLayout(1, dispatchParamsLayout); frustumLayout->create(); ShaderCreateInfo createInfo; createInfo.name = "Frustum"; @@ -236,14 +230,14 @@ void LightCullingPass::setupFrustums() .dynamic = false, }); - frustumDescriptorSet = frustumDescriptorLayout->allocateDescriptorSet(); - frustumDescriptorSet->updateBuffer(0, frustumDispatchParamsBuffer); - frustumDescriptorSet->updateBuffer(1, frustumBuffer); - frustumDescriptorSet->writeChanges(); + dispatchParamsSet = dispatchParamsLayout->allocateDescriptorSet(); + dispatchParamsSet->updateBuffer(0, frustumDispatchParamsBuffer); + dispatchParamsSet->updateBuffer(1, frustumBuffer); + dispatchParamsSet->writeChanges(); Gfx::PComputeCommand command = graphics->createComputeCommand("FrustumCommand"); command->bindPipeline(frustumPipeline); - command->bindDescriptor({ viewParamsSet, frustumDescriptorSet }); + command->bindDescriptor({ viewParamsSet, dispatchParamsSet }); command->dispatch(numThreadGroups.x, numThreadGroups.y, numThreadGroups.z); Array commands = {command}; graphics->executeCommands(commands); diff --git a/src/Engine/Graphics/RenderPass/LightCullingPass.h b/src/Engine/Graphics/RenderPass/LightCullingPass.h index 3ed3602..1f9afad 100644 --- a/src/Engine/Graphics/RenderPass/LightCullingPass.h +++ b/src/Engine/Graphics/RenderPass/LightCullingPass.h @@ -45,8 +45,8 @@ private: Gfx::OShaderBuffer frustumBuffer; Gfx::OUniformBuffer dispatchParamsBuffer; Gfx::OUniformBuffer viewParamsBuffer; - Gfx::ODescriptorLayout frustumDescriptorLayout; - Gfx::PDescriptorSet frustumDescriptorSet; + Gfx::ODescriptorLayout dispatchParamsLayout; + Gfx::PDescriptorSet dispatchParamsSet; Gfx::OComputeShader frustumShader; Gfx::PComputePipeline frustumPipeline; diff --git a/src/Engine/Graphics/RenderPass/RenderPass.cpp b/src/Engine/Graphics/RenderPass/RenderPass.cpp index 7aa23bf..d58db43 100644 --- a/src/Engine/Graphics/RenderPass/RenderPass.cpp +++ b/src/Engine/Graphics/RenderPass/RenderPass.cpp @@ -30,7 +30,6 @@ void RenderPass::beginFrame(const Component::Camera& cam) .projectionMatrix = viewport->getProjectionMatrix(), .cameraPosition = Vector4(cam.getCameraPosition(), 1), .screenDimensions = Vector2(static_cast(viewport->getSizeX()), static_cast(viewport->getSizeY())), - .pad0 = Vector2(0), }; DataSource uniformUpdate = { .size = sizeof(ViewParameter), diff --git a/src/Engine/Graphics/RenderPass/RenderPass.h b/src/Engine/Graphics/RenderPass/RenderPass.h index 3a88682..ed3312e 100644 --- a/src/Engine/Graphics/RenderPass/RenderPass.h +++ b/src/Engine/Graphics/RenderPass/RenderPass.h @@ -33,7 +33,6 @@ protected: Matrix4 projectionMatrix; Vector4 cameraPosition; Vector2 screenDimensions; - Vector2 pad0; } viewParams; PRenderGraphResources resources; Gfx::ODescriptorLayout viewParamsLayout; diff --git a/src/Engine/Graphics/RenderPass/SkyboxRenderPass.cpp b/src/Engine/Graphics/RenderPass/SkyboxRenderPass.cpp index 720e658..f7de63e 100644 --- a/src/Engine/Graphics/RenderPass/SkyboxRenderPass.cpp +++ b/src/Engine/Graphics/RenderPass/SkyboxRenderPass.cpp @@ -114,7 +114,7 @@ void SkyboxRenderPass::render() Gfx::PRenderCommand renderCommand = graphics->createRenderCommand("SkyboxRender"); renderCommand->setViewport(viewport); renderCommand->bindPipeline(pipeline); - renderCommand->bindDescriptor({skyboxDataSet, textureSet}); + renderCommand->bindDescriptor({viewParamsSet, skyboxDataSet, textureSet}); renderCommand->bindVertexBuffer({ cubeBuffer }); renderCommand->draw(36, 1, 0, 0); graphics->executeCommands(Array{ renderCommand }); @@ -141,9 +141,9 @@ void SkyboxRenderPass::publishOutputs() skyboxDataLayout->addDescriptorBinding(0, Gfx::SE_DESCRIPTOR_TYPE_UNIFORM_BUFFER); skyboxDataLayout->create(); textureLayout = graphics->createDescriptorLayout(); + textureLayout->addDescriptorBinding(0, Gfx::SE_DESCRIPTOR_TYPE_SAMPLED_IMAGE); textureLayout->addDescriptorBinding(1, Gfx::SE_DESCRIPTOR_TYPE_SAMPLED_IMAGE); - textureLayout->addDescriptorBinding(2, Gfx::SE_DESCRIPTOR_TYPE_SAMPLED_IMAGE); - textureLayout->addDescriptorBinding(3, Gfx::SE_DESCRIPTOR_TYPE_SAMPLER); + textureLayout->addDescriptorBinding(2, Gfx::SE_DESCRIPTOR_TYPE_SAMPLER); textureLayout->create(); skyboxSampler = graphics->createSamplerState({}); @@ -160,6 +160,7 @@ void SkyboxRenderPass::createRenderPass() ShaderCreateInfo createInfo; createInfo.name = "SkyboxVertex"; + createInfo.additionalModules.add("Skybox"); createInfo.mainModule = "Skybox"; createInfo.entryPoint = "vertexMain"; vertexShader = graphics->createVertexShader(createInfo); @@ -179,8 +180,9 @@ void SkyboxRenderPass::createRenderPass() }); Gfx::OPipelineLayout pipelineLayout = graphics->createPipelineLayout(); - pipelineLayout->addDescriptorLayout(0, skyboxDataLayout); - pipelineLayout->addDescriptorLayout(0, textureLayout); + pipelineLayout->addDescriptorLayout(0, viewParamsLayout); + pipelineLayout->addDescriptorLayout(1, skyboxDataLayout); + pipelineLayout->addDescriptorLayout(2, textureLayout); pipelineLayout->create(); Gfx::LegacyPipelineCreateInfo gfxInfo; diff --git a/src/Engine/Graphics/RenderTarget.cpp b/src/Engine/Graphics/RenderTarget.cpp index c00456e..8e0a911 100644 --- a/src/Engine/Graphics/RenderTarget.cpp +++ b/src/Engine/Graphics/RenderTarget.cpp @@ -57,8 +57,8 @@ Window::~Window() } Viewport::Viewport(PWindow owner, const ViewportCreateInfo& viewportInfo) - : sizeX(viewportInfo.dimensions.size.x) - , sizeY(viewportInfo.dimensions.size.y) + : sizeX(std::min(owner->getSizeX(), viewportInfo.dimensions.size.x)) + , sizeY(std::min(owner->getSizeY(), viewportInfo.dimensions.size.y)) , offsetX(viewportInfo.dimensions.offset.x) , offsetY(viewportInfo.dimensions.offset.y) , fieldOfView(viewportInfo.fieldOfView) diff --git a/src/Engine/Graphics/Vulkan/CommandBuffer.cpp b/src/Engine/Graphics/Vulkan/CommandBuffer.cpp index a8ef35e..f7ba17e 100644 --- a/src/Engine/Graphics/Vulkan/CommandBuffer.cpp +++ b/src/Engine/Graphics/Vulkan/CommandBuffer.cpp @@ -314,7 +314,7 @@ void RenderCommand::draw(uint32 vertexCount, uint32 instanceCount, int32 firstVe void RenderCommand::drawIndexed(uint32 indexCount, uint32 instanceCount, int32 firstIndex, uint32 vertexOffset, uint32 firstInstance) { assert(threadId == std::this_thread::get_id()); - vkCmdDrawIndexed(handle, indexCount, instanceCount, firstIndex, vertexOffset, firstIndex); + vkCmdDrawIndexed(handle, indexCount, instanceCount, firstIndex, vertexOffset, firstInstance); } void RenderCommand::dispatch(uint32 groupX, uint32 groupY, uint32 groupZ) { @@ -530,4 +530,4 @@ void CommandBufferManager::submitCommands(PSemaphore signalSemaphore) allocatedBuffers.add(new CmdBuffer(graphics, commandPool, this)); activeCmdBuffer = allocatedBuffers.back(); activeCmdBuffer->begin(); -} \ No newline at end of file +} diff --git a/src/Engine/Graphics/Vulkan/Enums.h b/src/Engine/Graphics/Vulkan/Enums.h index 5508d9b..5d4a3e9 100644 --- a/src/Engine/Graphics/Vulkan/Enums.h +++ b/src/Engine/Graphics/Vulkan/Enums.h @@ -4,17 +4,17 @@ #include #define VK_CHECK(f) \ - { \ - VkResult res = (f); \ - if (res != VK_SUCCESS) \ - { \ - if(res == VK_ERROR_DEVICE_LOST) \ - { \ - std::this_thread::sleep_for(std::chrono::seconds(3)); \ - } \ - std::cout << "Fatal : VkResult is \"" << res << "\" in " << __FILE__ << " at line " << __LINE__ << std::endl; \ - assert(res == VK_SUCCESS); \ - } \ + { \ + VkResult res = (f); \ + if (res != VK_SUCCESS) \ + { \ + if(res == VK_ERROR_DEVICE_LOST) \ + { \ + std::this_thread::sleep_for(std::chrono::seconds(3)); \ + } \ + std::cout << "Fatal : VkResult is " << res << " in " << __FILE__ << " at line " << __LINE__ << std::endl; \ + assert(res == VK_SUCCESS); \ + } \ } namespace Seele @@ -62,4 +62,4 @@ Gfx::SeFilter cast(const VkFilter &filter); VkSamplerMipmapMode cast(const Gfx::SeSamplerMipmapMode &filter); Gfx::SeSamplerMipmapMode cast(const VkSamplerMipmapMode &filter); } // namespace Vulkan -} // namespace Seele \ No newline at end of file +} // namespace Seele diff --git a/src/Engine/Graphics/Vulkan/RenderTarget.cpp b/src/Engine/Graphics/Vulkan/RenderTarget.cpp index 628e45e..f2c254a 100644 --- a/src/Engine/Graphics/Vulkan/RenderTarget.cpp +++ b/src/Engine/Graphics/Vulkan/RenderTarget.cpp @@ -62,6 +62,7 @@ Window::Window(PGraphics graphics, const WindowCreateInfo &createInfo) GLFWwindow *handle = glfwCreateWindow(createInfo.width, createInfo.height, createInfo.title, createInfo.bFullscreen ? glfwGetPrimaryMonitor() : nullptr, nullptr); windowHandle = handle; glfwSetWindowUserPointer(handle, this); + glfwGetWindowSize(handle, &windowState.width, &windowState.height); glfwSetKeyCallback(handle, &glfwKeyCallback); glfwSetCursorPosCallback(handle, &glfwMouseMoveCallback); @@ -93,7 +94,7 @@ Window::Window(PGraphics graphics, const WindowCreateInfo &createInfo) std::cerr << "Device not suitable for presenting to surface " << surface << ", use a different one" << std::endl; } - recreateSwapchain(createInfo); + recreateSwapchain(windowState); } Window::~Window() @@ -364,10 +365,10 @@ void Window::choosePresentMode(const Array &modes) Viewport::Viewport(PGraphics graphics, PWindow owner, const ViewportCreateInfo &viewportInfo) : Gfx::Viewport(owner, viewportInfo), graphics(graphics) { - handle.width = static_cast(viewportInfo.dimensions.size.x); - handle.height = static_cast(viewportInfo.dimensions.size.y); - handle.x = static_cast(viewportInfo.dimensions.offset.x); - handle.y = static_cast(viewportInfo.dimensions.offset.y) + handle.height; + handle.width = static_cast(sizeX); + handle.height = static_cast(sizeY); + handle.x = static_cast(offsetX); + handle.y = static_cast(offsetY) + handle.height; handle.height = -handle.height; handle.minDepth = 0.f; handle.maxDepth = 1.f; @@ -392,4 +393,4 @@ void Viewport::move(uint32 newOffsetX, uint32 newOffsetY) offsetY = newOffsetY; handle.x = static_cast(offsetX); handle.y = static_cast(offsetY + sizeY); -} \ No newline at end of file +} diff --git a/src/Engine/Material/Material.cpp b/src/Engine/Material/Material.cpp index 02bbcfe..45cbc2b 100644 --- a/src/Engine/Material/Material.cpp +++ b/src/Engine/Material/Material.cpp @@ -116,7 +116,7 @@ void Material::compile() handle->generateDeclaration(codeStream); } codeStream << "\ttypedef " << brdf.profile << " BRDF;\n"; - codeStream << "\t" << brdf.profile << " prepare(MaterialFragmentParameter input) {\n"; + codeStream << "\t" << brdf.profile << " prepare(MaterialParameter input) {\n"; codeStream << "\t\t" << brdf.profile << " result;\n"; Map varState; for(const auto& [_, expr] :codeExpressions) diff --git a/src/Engine/Window/GameView.cpp b/src/Engine/Window/GameView.cpp index ea42ddb..a68b136 100644 --- a/src/Engine/Window/GameView.cpp +++ b/src/Engine/Window/GameView.cpp @@ -57,7 +57,6 @@ void GameView::update() void GameView::commitUpdate() { - } void GameView::prepareRender() diff --git a/vkvia.html b/vkvia.html new file mode 100644 index 0000000..456bcc5 --- /dev/null +++ b/vkvia.html @@ -0,0 +1,5682 @@ + + + + + LunarG VIA + + + + + + + + +
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+

< NOTE: Click on section name to expand table >

+
+

System Info

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
Environment
Linux
DistroGaruda Linux
Kernel Build6.6.1-zen1-1-zen
Machine Targetx86_64
Version#1 ZEN SMP PREEMPT_DYNAMIC Wed, 08 Nov 2023 16:05:16 +0000
DESKTOP_SESSIONi3
LD_LIBRARY_PATH/home/dynamitos/vulkan/1.3.268.0//lib
DISPLAY:0
+ + + + + + + + + + + + + + + + + + + + + + + + +
Hardware
CPUs16
MemoryPhysical Available31 GB
System Disk SpaceFree73 GB
Current Dir Disk SpaceFree50G
+ + + + + + + + + + + + + + + + + + + + + + + + +
Executable Info
Exe Directory/home/dynamitos/vulkan/1.3.268.0/x86_64/bin
Current Directory/home/dynamitos/Seele
App VersionVersion 1.3
Vulkan API Version1.3.268
Byte Format64-bit
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
Vulkan Driver Info
Standard Paths
/etc/vulkan/icd.dNo such folder
/usr/share/vulkan/icd.d
[0]intel_hasvk_icd.i686.json
JSON File Version1.0.0
API Version1.3.255
Library Path/usr/lib32/libvulkan_intel_hasvk.so
FAILED TO LOAD!/usr/lib32/libvulkan_intel_hasvk.so: wrong ELF class: ELFCLASS32
[1]intel_icd.i686.json
JSON File Version1.0.0
API Version1.3.255
Library Path/usr/lib32/libvulkan_intel.so
FAILED TO LOAD!/usr/lib32/libvulkan_intel.so: wrong ELF class: ELFCLASS32
[2]radeon_icd.x86_64.json
JSON File Version1.0.0
API Version1.3.255
Library Path/usr/lib/libvulkan_radeon.so
[3]radeon_icd.i686.json
JSON File Version1.0.0
API Version1.3.255
Library Path/usr/lib32/libvulkan_radeon.so
FAILED TO LOAD!/usr/lib32/libvulkan_radeon.so: wrong ELF class: ELFCLASS32
[4]intel_hasvk_icd.x86_64.json
JSON File Version1.0.0
API Version1.3.255
Library Path/usr/lib/libvulkan_intel_hasvk.so
[5]intel_icd.x86_64.json
JSON File Version1.0.0
API Version1.3.255
Library Path/usr/lib/libvulkan_intel.so
[6]lvp_icd.x86_64.json
JSON File Version1.0.0
API Version1.1.255
Library Path/usr/lib/libvulkan_lvp.so
[7]nvidia_icd.json
JSON File Version1.0.0
API Version1.3.260
Library PathlibGLX_nvidia.so.0
/usr/local/etc/vulkan/icd.dNo such folder
/usr/local/share/vulkan/icd.dNo such folder
/home/dynamitos/.local/share/vulkan/icd.dNo such folder
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
Vulkan Runtimes
Possible Runtime Folders
/usr/lib
[0]/usr/lib/libvulkan.so.1libvulkan.so.1.3.269
/usr/lib/x86_64-linux-gnuNo such folder
/usr/lib64
[0]/usr/lib64/libvulkan.so.1libvulkan.so.1.3.269
/usr/local/lib
[0]/usr/local/lib/libvulkan.so.1libvulkan.so.1.3.268
/usr/local/lib64No such folder
/home/dynamitos/vulkan/1.3.268.0//libNo such folder
Runtime Folder Used By via/usr/lib
[0]/usr/lib/libvulkan.so.1libvulkan.so.1.3.269
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
Vulkan SDKs
VULKAN_SDK
/home/dynamitos/vulkan/1.3.268.0/x86_64//etc/vulkan/explicit_layer.d
[0]VkLayer_api_dump.json
NameVK_LAYER_LUNARG_api_dump
DescriptionLunarG API dump layer
API Version1.3.268
JSON File Version1.2.0
Library PathlibVkLayer_api_dump.so
Device Extensions1
[0]VK_EXT_tooling_info
[1]VkLayer_khronos_synchronization2.json
NameVK_LAYER_KHRONOS_synchronization2
DescriptionKhronos Synchronization2 layer
API Version1.3.268
JSON File Version1.2.0
Library PathlibVkLayer_khronos_synchronization2.so
Device Extensions1
[0]VK_KHR_synchronization2
Instance Extensions0
[2]VkLayer_khronos_validation.json
NameVK_LAYER_KHRONOS_validation
DescriptionKhronos Validation Layer
API Version1.3.268
JSON File Version1.2.0
Library PathlibVkLayer_khronos_validation.so
Device Extensions3
[0]VK_EXT_debug_marker
[0]VK_EXT_validation_cache
[0]VK_EXT_tooling_info
Instance Extensions3
[0]VK_EXT_debug_report
[0]VK_EXT_debug_utils
[0]VK_EXT_validation_features
[3]VkLayer_khronos_profiles.json
NameVK_LAYER_KHRONOS_profiles
DescriptionKhronos Profiles layer
API Version1.3.268
JSON File Version1.2.1
Library PathlibVkLayer_khronos_profiles.so
Device Extensions1
[0]VK_EXT_tooling_info
[4]VkLayer_monitor.json
NameVK_LAYER_LUNARG_monitor
DescriptionExecution Monitoring Layer
API Version1.3.268
JSON File Version1.0.0
Library PathlibVkLayer_monitor.so
Device Extensions1
[0]VK_EXT_tooling_info
[5]VkLayer_gfxreconstruct.json
NameVK_LAYER_LUNARG_gfxreconstruct
DescriptionGFXReconstruct Capture Layer Version 1.0.1
API Version1.3.268
JSON File Version1.2.0
Library PathlibVkLayer_gfxreconstruct.so
Device Extensions1
[0]VK_EXT_tooling_info
[6]VkLayer_screenshot.json
NameVK_LAYER_LUNARG_screenshot
DescriptionLunarG image capture layer
API Version1.3.268
JSON File Version1.2.0
Library PathlibVkLayer_screenshot.so
Device Extensions1
[0]VK_EXT_tooling_info
[7]VkLayer_khronos_shader_object.json
NameVK_LAYER_KHRONOS_shader_object
DescriptionKhronos Shader object layer
API Version1.3.268
JSON File Version1.2.0
Library PathlibVkLayer_khronos_shader_object.so
Device Extensions1
[0]VK_EXT_shader_object
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
Vulkan Implicit Layers
/etc/vulkan/implicit_layer.dDirectory does not exist
/usr/share/vulkan/implicit_layer.d
[0]MangoHud.x86_64.json
NameVK_LAYER_MANGOHUD_overlay_x86_64
DescriptionVulkan Hud Overlay
API Version1.3.0
JSON File Version1.0.0
Library Path/usr/lib/mangohud/libMangoHud.so
Enabled StateDISABLED
Enable Env VarMANGOHUDNot Defined
Disable Env VarDISABLE_MANGOHUDNot Defined
[1]libMangoApp.x86_64.json
NameVK_LAYER_MANGOAPP_overlay
DescriptionMangoapp Layer
API Version1.3.0
JSON File Version1.0.0
Library Path/usr/lib/mangohud/libMangoApp.so
Enabled StateDISABLED
Enable Env VarMANGOAPPNot Defined
Disable Env VarDISABLE_MANGOAPPNot Defined
[2]MangoHud.x86.json
NameVK_LAYER_MANGOHUD_overlay_x86
DescriptionVulkan Hud Overlay
API Version1.3.0
JSON File Version1.0.0
Library Path/usr/lib32/mangohud/libMangoHud.so
Enabled StateDISABLED
Enable Env VarMANGOHUDNot Defined
Disable Env VarDISABLE_MANGOHUDNot Defined
[3]libMangoApp.x86.json
NameVK_LAYER_MANGOAPP_overlay
DescriptionMangoapp Layer
API Version1.3.0
JSON File Version1.0.0
Library Path/usr/lib32/mangohud/libMangoApp.so
Enabled StateDISABLED
Enable Env VarMANGOAPPNot Defined
Disable Env VarDISABLE_MANGOAPPNot Defined
[4]vkBasalt.json
NameVK_LAYER_VKBASALT_post_processing
Descriptiona post processing layer
API Version1.3.223
JSON File Version1.0.0
Library Pathlibvkbasalt.so
Enabled StateDISABLED
Enable Env VarENABLE_VKBASALTNot Defined
Disable Env VarDISABLE_VKBASALTNot Defined
[5]vkBasalt.x86.json
NameVK_LAYER_VKBASALT_post_processing
Descriptiona post processing layer
API Version1.3.223
JSON File Version1.0.0
Library Pathlibvkbasalt.so
Enabled StateDISABLED
Enable Env VarENABLE_VKBASALTNot Defined
Disable Env VarDISABLE_VKBASALTNot Defined
[6]VkLayer_MESA_device_select.json
NameVK_LAYER_MESA_device_select
DescriptionLinux device selection layer
API Version1.3.211
JSON File Version1.0.0
Library PathlibVkLayer_MESA_device_select.so
Enabled StateENABLED
Enable Env Var--NONE--Not Defined
Disable Env VarNODEVICE_SELECTNot Defined
[7]nvidia_layers.json
NameVK_LAYER_NV_optimus
DescriptionNVIDIA Optimus layer
API Version1.3.260
JSON File Version1.0.0
Library PathlibGLX_nvidia.so.0
Enabled StateDISABLED
Enable Env Var__NV_PRIME_RENDER_OFFLOADNot Defined
Disable Env VarDISABLE_LAYER_NV_OPTIMUS_1Not Defined
/usr/local/etc/vulkan/implicit_layer.dDirectory does not exist
/usr/local/share/vulkan/implicit_layer.dDirectory does not exist
/home/dynamitos/.local/share/vulkan/implicit_layer.d
[8]steamoverlay_i386.json
NameVK_LAYER_VALVE_steam_overlay_32
DescriptionSteam Overlay Layer
API Version1.3.207
JSON File Version1.0.0
Library Path/home/dynamitos/.local/share/Steam/ubuntu12_32/steamoverlayvulkanlayer.so
Enabled StateDISABLED
Enable Env VarENABLE_VK_LAYER_VALVE_steam_overlay_1Not Defined
Disable Env VarDISABLE_VK_LAYER_VALVE_steam_overlay_1Not Defined
[9]steamoverlay_x86_64.json
NameVK_LAYER_VALVE_steam_overlay_64
DescriptionSteam Overlay Layer
API Version1.3.207
JSON File Version1.0.0
Library Path/home/dynamitos/.local/share/Steam/ubuntu12_64/steamoverlayvulkanlayer.so
Enabled StateDISABLED
Enable Env VarENABLE_VK_LAYER_VALVE_steam_overlay_1Not Defined
Disable Env VarDISABLE_VK_LAYER_VALVE_steam_overlay_1Not Defined
[10]steamfossilize_i386.json
NameVK_LAYER_VALVE_steam_fossilize_32
DescriptionSteam Pipeline Caching Layer
API Version1.3.207
JSON File Version1.0.0
Library Path/home/dynamitos/.local/share/Steam/ubuntu12_32/libVkLayer_steam_fossilize.so
Enabled StateDISABLED
Enable Env VarENABLE_VK_LAYER_VALVE_steam_fossilize_1Not Defined
Disable Env VarDISABLE_VK_LAYER_VALVE_steam_fossilize_1Not Defined
[11]steamfossilize_x86_64.json
NameVK_LAYER_VALVE_steam_fossilize_64
DescriptionSteam Pipeline Caching Layer
API Version1.3.207
JSON File Version1.0.0
Library Path/home/dynamitos/.local/share/Steam/ubuntu12_64/libVkLayer_steam_fossilize.so
Enabled StateDISABLED
Enable Env VarENABLE_VK_LAYER_VALVE_steam_fossilize_1Not Defined
Disable Env VarDISABLE_VK_LAYER_VALVE_steam_fossilize_1Not Defined
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
Vulkan Explicit Layers
VK_LAYER_PATH
Path 0/home/dynamitos/vulkan/1.3.268.0/x86_64//etc/vulkan/explicit_layer.d/
[0]VkLayer_api_dump.json
NameVK_LAYER_LUNARG_api_dump
DescriptionLunarG API dump layer
API Version1.3.268
JSON File Version1.2.0
Library PathlibVkLayer_api_dump.so
Device Extensions1
[0]VK_EXT_tooling_info
[1]VkLayer_khronos_synchronization2.json
NameVK_LAYER_KHRONOS_synchronization2
DescriptionKhronos Synchronization2 layer
API Version1.3.268
JSON File Version1.2.0
Library PathlibVkLayer_khronos_synchronization2.so
Device Extensions1
[0]VK_KHR_synchronization2
Instance Extensions0
[2]VkLayer_khronos_validation.json
NameVK_LAYER_KHRONOS_validation
DescriptionKhronos Validation Layer
API Version1.3.268
JSON File Version1.2.0
Library PathlibVkLayer_khronos_validation.so
Device Extensions3
[0]VK_EXT_debug_marker
[0]VK_EXT_validation_cache
[0]VK_EXT_tooling_info
Instance Extensions3
[0]VK_EXT_debug_report
[0]VK_EXT_debug_utils
[0]VK_EXT_validation_features
[3]VkLayer_khronos_profiles.json
NameVK_LAYER_KHRONOS_profiles
DescriptionKhronos Profiles layer
API Version1.3.268
JSON File Version1.2.1
Library PathlibVkLayer_khronos_profiles.so
Device Extensions1
[0]VK_EXT_tooling_info
[4]VkLayer_monitor.json
NameVK_LAYER_LUNARG_monitor
DescriptionExecution Monitoring Layer
API Version1.3.268
JSON File Version1.0.0
Library PathlibVkLayer_monitor.so
Device Extensions1
[0]VK_EXT_tooling_info
[5]VkLayer_gfxreconstruct.json
NameVK_LAYER_LUNARG_gfxreconstruct
DescriptionGFXReconstruct Capture Layer Version 1.0.1
API Version1.3.268
JSON File Version1.2.0
Library PathlibVkLayer_gfxreconstruct.so
Device Extensions1
[0]VK_EXT_tooling_info
[6]VkLayer_screenshot.json
NameVK_LAYER_LUNARG_screenshot
DescriptionLunarG image capture layer
API Version1.3.268
JSON File Version1.2.0
Library PathlibVkLayer_screenshot.so
Device Extensions1
[0]VK_EXT_tooling_info
[7]VkLayer_khronos_shader_object.json
NameVK_LAYER_KHRONOS_shader_object
DescriptionKhronos Shader object layer
API Version1.3.268
JSON File Version1.2.0
Library PathlibVkLayer_khronos_shader_object.so
Device Extensions1
[0]VK_EXT_shader_object
VK_ADD_LAYER_PATH
Path 0/home/dynamitos/vulkan/1.3.268.0/x86_64//etc/vulkan/explicit_layer.d/
[0]VkLayer_api_dump.json
NameVK_LAYER_LUNARG_api_dump
DescriptionLunarG API dump layer
API Version1.3.268
JSON File Version1.2.0
Library PathlibVkLayer_api_dump.so
Device Extensions1
[0]VK_EXT_tooling_info
[1]VkLayer_khronos_synchronization2.json
NameVK_LAYER_KHRONOS_synchronization2
DescriptionKhronos Synchronization2 layer
API Version1.3.268
JSON File Version1.2.0
Library PathlibVkLayer_khronos_synchronization2.so
Device Extensions1
[0]VK_KHR_synchronization2
Instance Extensions0
[2]VkLayer_khronos_validation.json
NameVK_LAYER_KHRONOS_validation
DescriptionKhronos Validation Layer
API Version1.3.268
JSON File Version1.2.0
Library PathlibVkLayer_khronos_validation.so
Device Extensions3
[0]VK_EXT_debug_marker
[0]VK_EXT_validation_cache
[0]VK_EXT_tooling_info
Instance Extensions3
[0]VK_EXT_debug_report
[0]VK_EXT_debug_utils
[0]VK_EXT_validation_features
[3]VkLayer_khronos_profiles.json
NameVK_LAYER_KHRONOS_profiles
DescriptionKhronos Profiles layer
API Version1.3.268
JSON File Version1.2.1
Library PathlibVkLayer_khronos_profiles.so
Device Extensions1
[0]VK_EXT_tooling_info
[4]VkLayer_monitor.json
NameVK_LAYER_LUNARG_monitor
DescriptionExecution Monitoring Layer
API Version1.3.268
JSON File Version1.0.0
Library PathlibVkLayer_monitor.so
Device Extensions1
[0]VK_EXT_tooling_info
[5]VkLayer_gfxreconstruct.json
NameVK_LAYER_LUNARG_gfxreconstruct
DescriptionGFXReconstruct Capture Layer Version 1.0.1
API Version1.3.268
JSON File Version1.2.0
Library PathlibVkLayer_gfxreconstruct.so
Device Extensions1
[0]VK_EXT_tooling_info
[6]VkLayer_screenshot.json
NameVK_LAYER_LUNARG_screenshot
DescriptionLunarG image capture layer
API Version1.3.268
JSON File Version1.2.0
Library PathlibVkLayer_screenshot.so
Device Extensions1
[0]VK_EXT_tooling_info
[7]VkLayer_khronos_shader_object.json
NameVK_LAYER_KHRONOS_shader_object
DescriptionKhronos Shader object layer
API Version1.3.268
JSON File Version1.2.0
Library PathlibVkLayer_khronos_shader_object.so
Device Extensions1
[0]VK_EXT_shader_object
Standard Paths
/etc/vulkan/etc/vulkan/explicit_layer.dNo such folder
/usr/share/vulkan/usr/share/vulkan/explicit_layer.d
[0]VkLayer_INTEL_nullhw.json
NameVK_LAYER_INTEL_nullhw
DescriptionINTEL NULL HW
API Version1.1.73
JSON File Version1.0.0
Library PathlibVkLayer_INTEL_nullhw.so
[1]VkLayer_MESA_overlay.json
NameVK_LAYER_MESA_overlay
DescriptionMesa Overlay layer
API Version1.3.211
JSON File Version1.0.0
Library PathlibVkLayer_MESA_overlay.so
/usr/local/etc/vulkan/usr/local/etc/vulkan/explicit_layer.dNo such folder
/usr/local/share/vulkan/usr/local/share/vulkan/explicit_layer.d
[0]VkLayer_api_dump.json
NameVK_LAYER_LUNARG_api_dump
DescriptionLunarG API dump layer
API Version1.3.268
JSON File Version1.2.0
Library PathlibVkLayer_api_dump.so
Device Extensions1
[0]VK_EXT_tooling_info
[1]VkLayer_gfxreconstruct.json
NameVK_LAYER_LUNARG_gfxreconstruct
DescriptionGFXReconstruct Capture Layer Version 1.0.1
API Version1.3.268
JSON File Version1.2.0
Library PathlibVkLayer_gfxreconstruct.so
Device Extensions1
[0]VK_EXT_tooling_info
[2]VkLayer_khronos_profiles.json
NameVK_LAYER_KHRONOS_profiles
DescriptionKhronos Profiles layer
API Version1.3.268
JSON File Version1.2.1
Library PathlibVkLayer_khronos_profiles.so
Device Extensions1
[0]VK_EXT_tooling_info
[3]VkLayer_khronos_shader_object.json
NameVK_LAYER_KHRONOS_shader_object
DescriptionKhronos Shader object layer
API Version1.3.268
JSON File Version1.2.0
Library PathlibVkLayer_khronos_shader_object.so
Device Extensions1
[0]VK_EXT_shader_object
[4]VkLayer_khronos_synchronization2.json
NameVK_LAYER_KHRONOS_synchronization2
DescriptionKhronos Synchronization2 layer
API Version1.3.268
JSON File Version1.2.0
Library PathlibVkLayer_khronos_synchronization2.so
Device Extensions1
[0]VK_KHR_synchronization2
Instance Extensions0
[5]VkLayer_khronos_validation.json
NameVK_LAYER_KHRONOS_validation
DescriptionKhronos Validation Layer
API Version1.3.268
JSON File Version1.2.0
Library PathlibVkLayer_khronos_validation.so
Device Extensions3
[0]VK_EXT_debug_marker
[0]VK_EXT_validation_cache
[0]VK_EXT_tooling_info
Instance Extensions3
[0]VK_EXT_debug_report
[0]VK_EXT_debug_utils
[0]VK_EXT_validation_features
[6]VkLayer_monitor.json
NameVK_LAYER_LUNARG_monitor
DescriptionExecution Monitoring Layer
API Version1.3.268
JSON File Version1.0.0
Library PathlibVkLayer_monitor.so
Device Extensions1
[0]VK_EXT_tooling_info
[7]VkLayer_screenshot.json
NameVK_LAYER_LUNARG_screenshot
DescriptionLunarG image capture layer
API Version1.3.268
JSON File Version1.2.0
Library PathlibVkLayer_screenshot.so
Device Extensions1
[0]VK_EXT_tooling_info
$HOME/.local/share/vulkan/explicit_layer.d/home/dynamitos/.local/share/vulkan/explicit_layer.dNo such folder
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
Vulkan Layer Settings File
VK_LAYER_SETTINGS_PATHNot Defined
/etc/vulkan/settings.d/vk_layer_settings.txtFile not found
/usr/share/vulkan/settings.d/vk_layer_settings.txtFile not found
/usr/local/etc/vulkan/settings.d/vk_layer_settings.txtFile not found
/usr/local/share/vulkan/settings.d/vk_layer_settings.txtFile not found
/home/dynamitos/.local/share/vulkan/settings.d/vk_layer_settings.txtFile not found
+
+
+

Vulkan API Calls

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
Instance
vkEnumerateInstanceVersionMax Instance Version1.3.269
vkEnumerateInstanceExtensionProperties23 extensions found
[0]VK_KHR_device_group_creationSpec Vers 1
[1]VK_KHR_displaySpec Vers 23
[2]VK_KHR_external_fence_capabilitiesSpec Vers 1
[3]VK_KHR_external_memory_capabilitiesSpec Vers 1
[4]VK_KHR_external_semaphore_capabilitiesSpec Vers 1
[5]VK_KHR_get_display_properties2Spec Vers 1
[6]VK_KHR_get_physical_device_properties2Spec Vers 2
[7]VK_KHR_get_surface_capabilities2Spec Vers 1
[8]VK_KHR_surfaceSpec Vers 25
[9]VK_KHR_surface_protected_capabilitiesSpec Vers 1
[10]VK_KHR_wayland_surfaceSpec Vers 6
[11]VK_KHR_xcb_surfaceSpec Vers 6
[12]VK_KHR_xlib_surfaceSpec Vers 6
[13]VK_EXT_acquire_drm_displaySpec Vers 1
[14]VK_EXT_acquire_xlib_displaySpec Vers 1
[15]VK_EXT_debug_reportSpec Vers 10
[16]VK_EXT_debug_utilsSpec Vers 2
[17]VK_EXT_direct_mode_displaySpec Vers 1
[18]VK_EXT_display_surface_counterSpec Vers 1
[19]VK_EXT_surface_maintenance1Spec Vers 1
[20]VK_EXT_swapchain_colorspaceSpec Vers 4
[21]VK_KHR_portability_enumerationSpec Vers 1
[22]VK_LUNARG_direct_driver_loadingSpec Vers 1
vkCreateInstance [1.0]VIA_SUCCESSFUL
vkCreateInstance [1.3]VIA_SUCCESSFUL
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
Physical Devices
vkEnumeratePhysicalDevices [1.0]2
[0]0x0x564df27e8c50
VendorNvidia [0x10de]
Device NameNVIDIA GeForce RTX 3080
Device ID0x2216
Device TypeDiscrete GPU
Driver Version545.116.128
API Version1.3.260
Queue Families5
[0]Queue Count16
Queue FlagsGRAPHICS | COMPUTE | TRANSFER | SPARSE_BINDING
Timestamp Valid Bits0x40
Image Granularity
Width0x1
Height0x1
Depth0x1
[1]Queue Count2
Queue FlagsTRANSFER | SPARSE_BINDING
Timestamp Valid Bits0x40
Image Granularity
Width0x1
Height0x1
Depth0x1
[2]Queue Count8
Queue FlagsCOMPUTE | TRANSFER | SPARSE_BINDING
Timestamp Valid Bits0x40
Image Granularity
Width0x1
Height0x1
Depth0x1
[3]Queue Count1
Queue FlagsTRANSFER | SPARSE_BINDING
Timestamp Valid Bits0x20
Image Granularity
Width0x1
Height0x1
Depth0x1
[4]Queue Count1
Queue FlagsTRANSFER | SPARSE_BINDING
Timestamp Valid Bits0x40
Image Granularity
Width0x1
Height0x1
Depth0x1
Memory Heaps2
[0]Property FlagsDEVICE_LOCAL
Heap Size10737418240
[1]Property Flags--NONE--
Heap Size25193702400
Memory Types5
[0]Property Flags--NONE--
Heap Index1
[1]Property FlagsDEVICE_LOCAL
Heap Index0
[2]Property FlagsHOST_VISIBLE | HOST_COHERENT
Heap Index1
[3]Property FlagsHOST_VISIBLE | HOST_COHERENT | HOST_CACHED
Heap Index1
[4]Property FlagsDEVICE_LOCAL | HOST_VISIBLE | HOST_COHERENT
Heap Index0
Device Extensions199
[0]VK_KHR_16bit_storageSpec Vers 1
[1]VK_KHR_8bit_storageSpec Vers 1
[2]VK_KHR_acceleration_structureSpec Vers 13
[3]VK_KHR_bind_memory2Spec Vers 1
[4]VK_KHR_buffer_device_addressSpec Vers 1
[5]VK_KHR_cooperative_matrixSpec Vers 2
[6]VK_KHR_copy_commands2Spec Vers 1
[7]VK_KHR_create_renderpass2Spec Vers 1
[8]VK_KHR_dedicated_allocationSpec Vers 3
[9]VK_KHR_deferred_host_operationsSpec Vers 4
[10]VK_KHR_depth_stencil_resolveSpec Vers 1
[11]VK_KHR_descriptor_update_templateSpec Vers 1
[12]VK_KHR_device_groupSpec Vers 4
[13]VK_KHR_draw_indirect_countSpec Vers 1
[14]VK_KHR_driver_propertiesSpec Vers 1
[15]VK_KHR_dynamic_renderingSpec Vers 1
[16]VK_KHR_external_fenceSpec Vers 1
[17]VK_KHR_external_fence_fdSpec Vers 1
[18]VK_KHR_external_memorySpec Vers 1
[19]VK_KHR_external_memory_fdSpec Vers 1
[20]VK_KHR_external_semaphoreSpec Vers 1
[21]VK_KHR_external_semaphore_fdSpec Vers 1
[22]VK_KHR_format_feature_flags2Spec Vers 2
[23]VK_KHR_fragment_shader_barycentricSpec Vers 1
[24]VK_KHR_fragment_shading_rateSpec Vers 2
[25]VK_KHR_get_memory_requirements2Spec Vers 1
[26]VK_KHR_global_prioritySpec Vers 1
[27]VK_KHR_image_format_listSpec Vers 1
[28]VK_KHR_imageless_framebufferSpec Vers 1
[29]VK_KHR_maintenance1Spec Vers 2
[30]VK_KHR_maintenance2Spec Vers 1
[31]VK_KHR_maintenance3Spec Vers 1
[32]VK_KHR_maintenance4Spec Vers 2
[33]VK_KHR_maintenance5Spec Vers 1
[34]VK_KHR_map_memory2Spec Vers 1
[35]VK_KHR_multiviewSpec Vers 1
[36]VK_KHR_pipeline_executable_propertiesSpec Vers 1
[37]VK_KHR_pipeline_librarySpec Vers 1
[38]VK_KHR_present_idSpec Vers 1
[39]VK_KHR_present_waitSpec Vers 1
[40]VK_KHR_push_descriptorSpec Vers 2
[41]VK_KHR_ray_querySpec Vers 1
[42]VK_KHR_ray_tracing_maintenance1Spec Vers 1
[43]VK_KHR_ray_tracing_pipelineSpec Vers 1
[44]VK_KHR_ray_tracing_position_fetchSpec Vers 1
[45]VK_KHR_relaxed_block_layoutSpec Vers 1
[46]VK_KHR_sampler_mirror_clamp_to_edgeSpec Vers 3
[47]VK_KHR_sampler_ycbcr_conversionSpec Vers 14
[48]VK_KHR_separate_depth_stencil_layoutsSpec Vers 1
[49]VK_KHR_shader_atomic_int64Spec Vers 1
[50]VK_KHR_shader_clockSpec Vers 1
[51]VK_KHR_shader_draw_parametersSpec Vers 1
[52]VK_KHR_shader_float16_int8Spec Vers 1
[53]VK_KHR_shader_float_controlsSpec Vers 4
[54]VK_KHR_shader_integer_dot_productSpec Vers 1
[55]VK_KHR_shader_non_semantic_infoSpec Vers 1
[56]VK_KHR_shader_subgroup_extended_typesSpec Vers 1
[57]VK_KHR_shader_subgroup_uniform_control_flowSpec Vers 1
[58]VK_KHR_shader_terminate_invocationSpec Vers 1
[59]VK_KHR_shared_presentable_imageSpec Vers 1
[60]VK_KHR_spirv_1_4Spec Vers 1
[61]VK_KHR_storage_buffer_storage_classSpec Vers 1
[62]VK_KHR_swapchainSpec Vers 70
[63]VK_KHR_swapchain_mutable_formatSpec Vers 1
[64]VK_KHR_synchronization2Spec Vers 1
[65]VK_KHR_timeline_semaphoreSpec Vers 2
[66]VK_KHR_uniform_buffer_standard_layoutSpec Vers 1
[67]VK_KHR_variable_pointersSpec Vers 1
[68]VK_KHR_video_decode_h264Spec Vers 8
[69]VK_KHR_video_decode_h265Spec Vers 7
[70]VK_KHR_video_decode_queueSpec Vers 7
[71]VK_KHR_video_queueSpec Vers 8
[72]VK_KHR_vulkan_memory_modelSpec Vers 3
[73]VK_KHR_workgroup_memory_explicit_layoutSpec Vers 1
[74]VK_KHR_zero_initialize_workgroup_memorySpec Vers 1
[75]VK_EXT_4444_formatsSpec Vers 1
[76]VK_EXT_attachment_feedback_loop_dynamic_stateSpec Vers 1
[77]VK_EXT_attachment_feedback_loop_layoutSpec Vers 2
[78]VK_EXT_blend_operation_advancedSpec Vers 2
[79]VK_EXT_border_color_swizzleSpec Vers 1
[80]VK_EXT_buffer_device_addressSpec Vers 2
[81]VK_EXT_calibrated_timestampsSpec Vers 2
[82]VK_EXT_color_write_enableSpec Vers 1
[83]VK_EXT_conditional_renderingSpec Vers 2
[84]VK_EXT_conservative_rasterizationSpec Vers 1
[85]VK_EXT_custom_border_colorSpec Vers 12
[86]VK_EXT_depth_bias_controlSpec Vers 1
[87]VK_EXT_depth_clamp_zero_oneSpec Vers 1
[88]VK_EXT_depth_clip_controlSpec Vers 1
[89]VK_EXT_depth_clip_enableSpec Vers 1
[90]VK_EXT_depth_range_unrestrictedSpec Vers 1
[91]VK_EXT_descriptor_bufferSpec Vers 1
[92]VK_EXT_descriptor_indexingSpec Vers 2
[93]VK_EXT_discard_rectanglesSpec Vers 2
[94]VK_EXT_display_controlSpec Vers 1
[95]VK_EXT_dynamic_rendering_unused_attachmentsSpec Vers 1
[96]VK_EXT_extended_dynamic_stateSpec Vers 1
[97]VK_EXT_extended_dynamic_state2Spec Vers 1
[98]VK_EXT_extended_dynamic_state3Spec Vers 2
[99]VK_EXT_external_memory_hostSpec Vers 1
[100]VK_EXT_fragment_shader_interlockSpec Vers 1
[101]VK_EXT_global_prioritySpec Vers 2
[102]VK_EXT_global_priority_querySpec Vers 1
[103]VK_EXT_graphics_pipeline_librarySpec Vers 1
[104]VK_EXT_host_image_copySpec Vers 1
[105]VK_EXT_host_query_resetSpec Vers 1
[106]VK_EXT_image_2d_view_of_3dSpec Vers 1
[107]VK_EXT_image_drm_format_modifierSpec Vers 2
[108]VK_EXT_image_robustnessSpec Vers 1
[109]VK_EXT_image_sliced_view_of_3dSpec Vers 1
[110]VK_EXT_image_view_min_lodSpec Vers 1
[111]VK_EXT_index_type_uint8Spec Vers 1
[112]VK_EXT_inline_uniform_blockSpec Vers 1
[113]VK_EXT_line_rasterizationSpec Vers 1
[114]VK_EXT_load_store_op_noneSpec Vers 1
[115]VK_EXT_memory_budgetSpec Vers 1
[116]VK_EXT_memory_prioritySpec Vers 1
[117]VK_EXT_mesh_shaderSpec Vers 1
[118]VK_EXT_multi_drawSpec Vers 1
[119]VK_EXT_mutable_descriptor_typeSpec Vers 1
[120]VK_EXT_non_seamless_cube_mapSpec Vers 1
[121]VK_EXT_opacity_micromapSpec Vers 2
[122]VK_EXT_pageable_device_local_memorySpec Vers 1
[123]VK_EXT_pci_bus_infoSpec Vers 2
[124]VK_EXT_physical_device_drmSpec Vers 1
[125]VK_EXT_pipeline_creation_cache_controlSpec Vers 3
[126]VK_EXT_pipeline_creation_feedbackSpec Vers 1
[127]VK_EXT_pipeline_library_group_handlesSpec Vers 1
[128]VK_EXT_pipeline_robustnessSpec Vers 1
[129]VK_EXT_post_depth_coverageSpec Vers 1
[130]VK_EXT_primitive_topology_list_restartSpec Vers 1
[131]VK_EXT_primitives_generated_querySpec Vers 1
[132]VK_EXT_private_dataSpec Vers 1
[133]VK_EXT_provoking_vertexSpec Vers 1
[134]VK_EXT_queue_family_foreignSpec Vers 1
[135]VK_EXT_robustness2Spec Vers 1
[136]VK_EXT_sample_locationsSpec Vers 1
[137]VK_EXT_sampler_filter_minmaxSpec Vers 2
[138]VK_EXT_scalar_block_layoutSpec Vers 1
[139]VK_EXT_separate_stencil_usageSpec Vers 1
[140]VK_EXT_shader_atomic_floatSpec Vers 1
[141]VK_EXT_shader_demote_to_helper_invocationSpec Vers 1
[142]VK_EXT_shader_image_atomic_int64Spec Vers 1
[143]VK_EXT_shader_module_identifierSpec Vers 1
[144]VK_EXT_shader_objectSpec Vers 1
[145]VK_EXT_shader_subgroup_ballotSpec Vers 1
[146]VK_EXT_shader_subgroup_voteSpec Vers 1
[147]VK_EXT_shader_viewport_index_layerSpec Vers 1
[148]VK_EXT_subgroup_size_controlSpec Vers 2
[149]VK_EXT_swapchain_maintenance1Spec Vers 1
[150]VK_EXT_texel_buffer_alignmentSpec Vers 1
[151]VK_EXT_tooling_infoSpec Vers 1
[152]VK_EXT_transform_feedbackSpec Vers 1
[153]VK_EXT_vertex_attribute_divisorSpec Vers 3
[154]VK_EXT_vertex_input_dynamic_stateSpec Vers 2
[155]VK_EXT_ycbcr_2plane_444_formatsSpec Vers 1
[156]VK_EXT_ycbcr_image_arraysSpec Vers 1
[157]VK_NV_clip_space_w_scalingSpec Vers 1
[158]VK_NV_compute_shader_derivativesSpec Vers 1
[159]VK_NV_cooperative_matrixSpec Vers 1
[160]VK_NV_copy_memory_indirectSpec Vers 1
[161]VK_NV_corner_sampled_imageSpec Vers 2
[162]VK_NV_coverage_reduction_modeSpec Vers 1
[163]VK_NV_cuda_kernel_launchSpec Vers 2
[164]VK_NV_dedicated_allocationSpec Vers 1
[165]VK_NV_dedicated_allocation_image_aliasingSpec Vers 1
[166]VK_NV_device_diagnostic_checkpointsSpec Vers 2
[167]VK_NV_device_diagnostics_configSpec Vers 2
[168]VK_NV_device_generated_commandsSpec Vers 3
[169]VK_NV_device_generated_commands_computeSpec Vers 2
[170]VK_NV_fill_rectangleSpec Vers 1
[171]VK_NV_fragment_coverage_to_colorSpec Vers 1
[172]VK_NV_fragment_shader_barycentricSpec Vers 1
[173]VK_NV_fragment_shading_rate_enumsSpec Vers 1
[174]VK_NV_framebuffer_mixed_samplesSpec Vers 1
[175]VK_NV_geometry_shader_passthroughSpec Vers 1
[176]VK_NV_inherited_viewport_scissorSpec Vers 1
[177]VK_NV_linear_color_attachmentSpec Vers 1
[178]VK_NV_low_latencySpec Vers 1
[179]VK_NV_low_latency2Spec Vers 1
[180]VK_NV_memory_decompressionSpec Vers 1
[181]VK_NV_mesh_shaderSpec Vers 1
[182]VK_NV_optical_flowSpec Vers 1
[183]VK_NV_ray_tracingSpec Vers 3
[184]VK_NV_ray_tracing_invocation_reorderSpec Vers 1
[185]VK_NV_ray_tracing_motion_blurSpec Vers 1
[186]VK_NV_representative_fragment_testSpec Vers 2
[187]VK_NV_sample_mask_override_coverageSpec Vers 1
[188]VK_NV_scissor_exclusiveSpec Vers 2
[189]VK_NV_shader_image_footprintSpec Vers 2
[190]VK_NV_shader_sm_builtinsSpec Vers 1
[191]VK_NV_shader_subgroup_partitionedSpec Vers 1
[192]VK_NV_shading_rate_imageSpec Vers 3
[193]VK_NV_viewport_array2Spec Vers 1
[194]VK_NV_viewport_swizzleSpec Vers 1
[195]VK_NVX_binary_importSpec Vers 1
[196]VK_NVX_image_view_handleSpec Vers 2
[197]VK_NVX_multiview_per_view_attributesSpec Vers 1
[198]VK_AMD_buffer_markerSpec Vers 1
[1]0x0x564df28110b0
Vendor0x10005
Device Namellvmpipe (LLVM 16.0.6, 256 bits)
Device ID0x0
Device TypeCPU
Driver Version0.0.1
API Version1.3.255
Queue Families1
[0]Queue Count1
Queue FlagsGRAPHICS | COMPUTE | TRANSFER
Timestamp Valid Bits0x40
Image Granularity
Width0x1
Height0x1
Depth0x1
Memory Heaps1
[0]Property FlagsDEVICE_LOCAL
Heap Size33591603200
Memory Types1
[0]Property FlagsDEVICE_LOCAL | HOST_VISIBLE | HOST_COHERENT | HOST_CACHED
Heap Index0
Device Extensions114
[0]VK_KHR_8bit_storageSpec Vers 1
[1]VK_KHR_16bit_storageSpec Vers 1
[2]VK_KHR_bind_memory2Spec Vers 1
[3]VK_KHR_buffer_device_addressSpec Vers 1
[4]VK_KHR_copy_commands2Spec Vers 1
[5]VK_KHR_create_renderpass2Spec Vers 1
[6]VK_KHR_dedicated_allocationSpec Vers 3
[7]VK_KHR_depth_stencil_resolveSpec Vers 1
[8]VK_KHR_descriptor_update_templateSpec Vers 1
[9]VK_KHR_device_groupSpec Vers 4
[10]VK_KHR_draw_indirect_countSpec Vers 1
[11]VK_KHR_driver_propertiesSpec Vers 1
[12]VK_KHR_dynamic_renderingSpec Vers 1
[13]VK_KHR_external_fenceSpec Vers 1
[14]VK_KHR_external_memorySpec Vers 1
[15]VK_KHR_external_memory_fdSpec Vers 1
[16]VK_KHR_external_semaphoreSpec Vers 1
[17]VK_KHR_format_feature_flags2Spec Vers 2
[18]VK_KHR_get_memory_requirements2Spec Vers 1
[19]VK_KHR_image_format_listSpec Vers 1
[20]VK_KHR_imageless_framebufferSpec Vers 1
[21]VK_KHR_incremental_presentSpec Vers 2
[22]VK_KHR_maintenance1Spec Vers 2
[23]VK_KHR_maintenance2Spec Vers 1
[24]VK_KHR_maintenance3Spec Vers 1
[25]VK_KHR_maintenance4Spec Vers 2
[26]VK_KHR_multiviewSpec Vers 1
[27]VK_KHR_pipeline_librarySpec Vers 1
[28]VK_KHR_push_descriptorSpec Vers 2
[29]VK_KHR_relaxed_block_layoutSpec Vers 1
[30]VK_KHR_sampler_mirror_clamp_to_edgeSpec Vers 3
[31]VK_KHR_separate_depth_stencil_layoutsSpec Vers 1
[32]VK_KHR_shader_atomic_int64Spec Vers 1
[33]VK_KHR_shader_clockSpec Vers 1
[34]VK_KHR_shader_draw_parametersSpec Vers 1
[35]VK_KHR_shader_float16_int8Spec Vers 1
[36]VK_KHR_shader_float_controlsSpec Vers 4
[37]VK_KHR_shader_integer_dot_productSpec Vers 1
[38]VK_KHR_shader_non_semantic_infoSpec Vers 1
[39]VK_KHR_shader_subgroup_extended_typesSpec Vers 1
[40]VK_KHR_shader_terminate_invocationSpec Vers 1
[41]VK_KHR_spirv_1_4Spec Vers 1
[42]VK_KHR_storage_buffer_storage_classSpec Vers 1
[43]VK_KHR_swapchainSpec Vers 70
[44]VK_KHR_swapchain_mutable_formatSpec Vers 1
[45]VK_KHR_synchronization2Spec Vers 1
[46]VK_KHR_timeline_semaphoreSpec Vers 2
[47]VK_KHR_uniform_buffer_standard_layoutSpec Vers 1
[48]VK_KHR_variable_pointersSpec Vers 1
[49]VK_KHR_vulkan_memory_modelSpec Vers 3
[50]VK_KHR_zero_initialize_workgroup_memorySpec Vers 1
[51]VK_EXT_4444_formatsSpec Vers 1
[52]VK_EXT_attachment_feedback_loop_dynamic_stateSpec Vers 1
[53]VK_EXT_attachment_feedback_loop_layoutSpec Vers 2
[54]VK_EXT_border_color_swizzleSpec Vers 1
[55]VK_EXT_calibrated_timestampsSpec Vers 2
[56]VK_EXT_color_write_enableSpec Vers 1
[57]VK_EXT_conditional_renderingSpec Vers 2
[58]VK_EXT_custom_border_colorSpec Vers 12
[59]VK_EXT_depth_clip_controlSpec Vers 1
[60]VK_EXT_depth_clip_enableSpec Vers 1
[61]VK_EXT_depth_range_unrestrictedSpec Vers 1
[62]VK_EXT_descriptor_bufferSpec Vers 1
[63]VK_EXT_descriptor_indexingSpec Vers 2
[64]VK_EXT_dynamic_rendering_unused_attachmentsSpec Vers 1
[65]VK_EXT_extended_dynamic_stateSpec Vers 1
[66]VK_EXT_extended_dynamic_state2Spec Vers 1
[67]VK_EXT_extended_dynamic_state3Spec Vers 2
[68]VK_EXT_external_memory_hostSpec Vers 1
[69]VK_EXT_graphics_pipeline_librarySpec Vers 1
[70]VK_EXT_host_query_resetSpec Vers 1
[71]VK_EXT_image_2d_view_of_3dSpec Vers 1
[72]VK_EXT_image_robustnessSpec Vers 1
[73]VK_EXT_image_sliced_view_of_3dSpec Vers 1
[74]VK_EXT_index_type_uint8Spec Vers 1
[75]VK_EXT_inline_uniform_blockSpec Vers 1
[76]VK_EXT_line_rasterizationSpec Vers 1
[77]VK_EXT_memory_budgetSpec Vers 1
[78]VK_EXT_memory_prioritySpec Vers 1
[79]VK_EXT_mesh_shaderSpec Vers 1
[80]VK_EXT_multi_drawSpec Vers 1
[81]VK_EXT_multisampled_render_to_single_sampledSpec Vers 1
[82]VK_EXT_mutable_descriptor_typeSpec Vers 1
[83]VK_EXT_non_seamless_cube_mapSpec Vers 1
[84]VK_EXT_pageable_device_local_memorySpec Vers 1
[85]VK_EXT_pipeline_creation_cache_controlSpec Vers 3
[86]VK_EXT_pipeline_creation_feedbackSpec Vers 1
[87]VK_EXT_post_depth_coverageSpec Vers 1
[88]VK_EXT_primitive_topology_list_restartSpec Vers 1
[89]VK_EXT_primitives_generated_querySpec Vers 1
[90]VK_EXT_private_dataSpec Vers 1
[91]VK_EXT_provoking_vertexSpec Vers 1
[92]VK_EXT_rasterization_order_attachment_accessSpec Vers 1
[93]VK_EXT_robustness2Spec Vers 1
[94]VK_EXT_sampler_filter_minmaxSpec Vers 2
[95]VK_EXT_scalar_block_layoutSpec Vers 1
[96]VK_EXT_separate_stencil_usageSpec Vers 1
[97]VK_EXT_shader_atomic_floatSpec Vers 1
[98]VK_EXT_shader_atomic_float2Spec Vers 1
[99]VK_EXT_shader_demote_to_helper_invocationSpec Vers 1
[100]VK_EXT_shader_objectSpec Vers 1
[101]VK_EXT_shader_stencil_exportSpec Vers 1
[102]VK_EXT_shader_subgroup_ballotSpec Vers 1
[103]VK_EXT_shader_subgroup_voteSpec Vers 1
[104]VK_EXT_shader_viewport_index_layerSpec Vers 1
[105]VK_EXT_subgroup_size_controlSpec Vers 2
[106]VK_EXT_texel_buffer_alignmentSpec Vers 1
[107]VK_EXT_transform_feedbackSpec Vers 1
[108]VK_EXT_vertex_attribute_divisorSpec Vers 3
[109]VK_EXT_vertex_input_dynamic_stateSpec Vers 2
[110]VK_ARM_rasterization_order_attachment_accessSpec Vers 1
[111]VK_GOOGLE_decorate_stringSpec Vers 1
[112]VK_GOOGLE_hlsl_functionality1Spec Vers 1
[113]VK_NV_device_generated_commandsSpec Vers 3
vkEnumeratePhysicalDevices [1.3]2
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
Logical Devices
vkCreateDevice [1.0]2
[0]VIA_SUCCESSFUL
[1]VIA_SUCCESSFUL
vkCreateDevice [1.3]2
[0]VIA_SUCCESSFUL
[1]VIA_SUCCESSFUL
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
Cleanup
vkDestroyDevice [1.0]2
[0]VIA_SUCCESSFUL
[1]VIA_SUCCESSFUL
vkDestroyInstance [1.0]VIA_SUCCESSFUL
vkDestroyDevice [1.3]2
[0]VIA_SUCCESSFUL
[1]VIA_SUCCESSFUL
vkDestroyInstance [1.3]VIA_SUCCESSFUL
+
+
+

External Tests

+ + + + + + + + + + + + +
Cube
./vkcube --c 100 --suppress_popupsVIA_SUCCESSFUL
./vkcube --c 100 --suppress_popups --validateFAILED!
+
+
+ + +