From 1f8f102ee1710ffcc4bdfc00cdca909d83eafd9d Mon Sep 17 00:00:00 2001 From: Anish Bhobe Date: Tue, 13 May 2025 13:00:11 +0200 Subject: [PATCH] Fixes added for clang. - Enum values now assigned with C-enums instead of type-safe enums. - Atomic included at `constants.h` so it's available everywhere. - Fixed CommitManager forward declaration. - Added `scalarLayout` option to slang compiler. --- aster/include/aster/core/constants.h | 2 ++ aster/include/aster/systems/device.h | 18 ++++++++++-------- aster/src/aster/systems/device.cpp | 1 + 3 files changed, 13 insertions(+), 8 deletions(-) diff --git a/aster/include/aster/core/constants.h b/aster/include/aster/core/constants.h index fe4b587..e21ccc8 100644 --- a/aster/include/aster/core/constants.h +++ b/aster/include/aster/core/constants.h @@ -13,6 +13,8 @@ #include #include +#include + using c8 = char; using u8 = uint8_t; using u16 = uint16_t; diff --git a/aster/include/aster/systems/device.h b/aster/include/aster/systems/device.h index 27d4b13..6e22706 100644 --- a/aster/include/aster/systems/device.h +++ b/aster/include/aster/systems/device.h @@ -272,14 +272,14 @@ struct VertexInput enum class ShaderType { eInvalid = 0, - eVertex = vk::ShaderStageFlagBits::eVertex, - eTesselationControl = vk::ShaderStageFlagBits::eTessellationControl, - eTesselationEvaluation = vk::ShaderStageFlagBits::eTessellationEvaluation, - eGeometry = vk::ShaderStageFlagBits::eGeometry, - eFragment = vk::ShaderStageFlagBits::eFragment, - eCompute = vk::ShaderStageFlagBits::eCompute, - eTask = vk::ShaderStageFlagBits::eTaskEXT, - eMesh = vk::ShaderStageFlagBits::eMeshEXT, + eVertex = VK_SHADER_STAGE_VERTEX_BIT, + eTesselationControl = VK_SHADER_STAGE_TESSELLATION_CONTROL_BIT, + eTesselationEvaluation = VK_SHADER_STAGE_TESSELLATION_EVALUATION_BIT, + eGeometry = VK_SHADER_STAGE_GEOMETRY_BIT, + eFragment = VK_SHADER_STAGE_FRAGMENT_BIT, + eCompute = VK_SHADER_STAGE_COMPUTE_BIT, + eTask = VK_SHADER_STAGE_TASK_BIT_EXT, + eMesh = VK_SHADER_STAGE_MESH_BIT_EXT, eMax, }; @@ -473,6 +473,8 @@ struct Frame ~Frame() = default; }; +class CommitManager; + class Device final { public: // TODO: Temp diff --git a/aster/src/aster/systems/device.cpp b/aster/src/aster/systems/device.cpp index f46bc6c..302dc8f 100644 --- a/aster/src/aster/systems/device.cpp +++ b/aster/src/aster/systems/device.cpp @@ -1070,6 +1070,7 @@ systems::Device::Device(const DeviceCreateInfo &createInfo) std::array compilerOptions = { useOriginalEntrypointNames, bindlessSpaceIndex, + scalarLayout, }; const slang::TargetDesc spirvTargetDesc = {