diff --git a/src/libs/karm-gfx/manifest.json b/src/libs/karm-gfx/manifest.json index 4ef96488d64..daaef2f4766 100644 --- a/src/libs/karm-gfx/manifest.json +++ b/src/libs/karm-gfx/manifest.json @@ -9,6 +9,7 @@ ], "subdirs": [ "mixbox", - "cpu" + "cpu", + "gpu" ] } diff --git a/src/libs/karm-gpu/base.h b/src/libs/karm-gpu/base.h new file mode 100644 index 00000000000..6ee56ae7a56 --- /dev/null +++ b/src/libs/karm-gpu/base.h @@ -0,0 +1,38 @@ +#pragma once + +#include +#include + +namespace Karm::Gpu { + +struct Device { + static Res> open(); + + virtual ~Device() = default; +}; + +struct Shader { + virtual ~Shader() = default; +}; + +struct CommandBuffer { + virtual ~CommandBuffer() = default; +}; + +struct RenderPass { + virtual ~RenderPass() = default; +}; + +struct Pipeline { + virtual ~Pipeline() = default; +}; + +struct Buffer { + virtual ~Buffer() = default; +}; + +struct Texture { + virtual ~Texture() = default; +}; + +} // namespace Karm::Gpu diff --git a/src/libs/karm-gpu/manifest.json b/src/libs/karm-gpu/manifest.json index cc6bbf2c132..4484f944674 100644 --- a/src/libs/karm-gpu/manifest.json +++ b/src/libs/karm-gpu/manifest.json @@ -5,6 +5,7 @@ "description": "GPU acceleration", "requires": [ "karm-io", - "karm-math" + "karm-math", + "karm-shader" ] } diff --git a/src/libs/karm-jit/arm/emit.h b/src/libs/karm-jit/arm/emit.h index 666cb2f3001..64a51c8d445 100644 --- a/src/libs/karm-jit/arm/emit.h +++ b/src/libs/karm-jit/arm/emit.h @@ -1,3 +1,5 @@ #pragma once -namespace Karm::Jit::Arm {} // namespace Karm::Jit::Arm +namespace Karm::Jit::Arm { + +} // namespace Karm::Jit::Arm diff --git a/src/libs/karm-jit/ir.h b/src/libs/karm-jit/ir.h new file mode 100644 index 00000000000..c11fdb746e9 --- /dev/null +++ b/src/libs/karm-jit/ir.h @@ -0,0 +1,32 @@ +#pragma once + +#include +#include + +namespace Karm::Jit { + +enum struct Op : u8 { +}; + +struct Ref { + enum struct _Type : u8 { + + }; + + using enum _Type; + + _Type type; +}; + +struct Inst { + Op op; + Ref out; + Ref lhs; + Ref rhs; +}; + +struct Block { + Vec insts; +}; + +} // namespace Karm::Jit diff --git a/src/libs/karm-jit/spirv/emit.h b/src/libs/karm-jit/spirv/emit.h new file mode 100644 index 00000000000..2cb10bf03c3 --- /dev/null +++ b/src/libs/karm-jit/spirv/emit.h @@ -0,0 +1,5 @@ +#pragma once + +namespace Karm::Jit::Spirv { + +} // namespace Karm::Jit::Spirv diff --git a/src/libs/karm-rpc/base.h b/src/libs/karm-rpc/base.h index 06229f23b61..b520746d8e4 100644 --- a/src/libs/karm-rpc/base.h +++ b/src/libs/karm-rpc/base.h @@ -6,19 +6,8 @@ #include #include #include -#include -#include -struct ChannelHook : public Sys::Service { - Sys::IpcConnection con; - - ChannelHook(Sys::IpcConnection con) - : con(std::move(con)) {} -}; - -inline ChannelHook &useChannel(Sys::Context &ctx = Sys::globalContext()) { - return ctx.use(); -} +#include "hooks.h" namespace Karm::Rpc { diff --git a/src/libs/karm-rpc/hooks.h b/src/libs/karm-rpc/hooks.h new file mode 100644 index 00000000000..bb297201516 --- /dev/null +++ b/src/libs/karm-rpc/hooks.h @@ -0,0 +1,15 @@ +#pragma once + +#include +#include + +struct ChannelHook : public Sys::Service { + Sys::IpcConnection con; + + ChannelHook(Sys::IpcConnection con) + : con(std::move(con)) {} +}; + +inline ChannelHook &useChannel(Sys::Context &ctx = Sys::globalContext()) { + return ctx.use(); +} diff --git a/src/libs/karm-shader/ast.h b/src/libs/karm-shader/ast.h new file mode 100644 index 00000000000..379c52979f2 --- /dev/null +++ b/src/libs/karm-shader/ast.h @@ -0,0 +1,7 @@ +#pragma once + +namespace Karm::Shader { + +struct Expr {}; + +} // namespace Karm::Shader diff --git a/src/libs/karm-shader/comp.h b/src/libs/karm-shader/comp.h new file mode 100644 index 00000000000..c77f8bb672a --- /dev/null +++ b/src/libs/karm-shader/comp.h @@ -0,0 +1,7 @@ +#include + +#include "ast.h" + +namespace Karm::Shader { + +} // namespace Karm::Shader diff --git a/src/libs/karm-shader/manifest.json b/src/libs/karm-shader/manifest.json new file mode 100644 index 00000000000..853a6865e16 --- /dev/null +++ b/src/libs/karm-shader/manifest.json @@ -0,0 +1,9 @@ +{ + "$schema": "https://schemas.cute.engineering/stable/cutekit.manifest.component.v1", + "id": "karm-shader", + "type": "lib", + "description": "Shader language & compiler", + "requires": [ + "karm-jit" + ] +}