Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
17 changes: 17 additions & 0 deletions CLAUDE.md
Original file line number Diff line number Diff line change
Expand Up @@ -270,6 +270,23 @@ themselves — say exactly which toggle(s)/GUI setting(s) to flip and to what
value (e.g. "Shadow Src → RTX Ref"), and what to look for. Don't flip runtime
defaults, rebuild, and run the app repeatedly to eyeball it in their place.

## Say which rule you are following

When a rule in this file changes what you do — you ask instead of acting,
stop to ask for a visual check, don't clean up yet, decline a step — say so in
the reply itself, naming the rule by its section heading (e.g. "Per the
*Off-topic requests* rule in CLAUDE.md, …"). The user must be able to tell a
rule-driven question from an ordinary one by reading the reply, not by
guessing; reasoning that never reaches the reply doesn't count.

## Off-topic requests

Several sessions often run side by side, each on its own subject, and a
message can land in the wrong one. When a request has nothing to do with what
this session has been working on, ask first whether it was meant for this
session or for another one, before starting on it. Proceed once the user
confirms it belongs here.

## Status reports

End every report on a piece of work with these five sections, in this order,
Expand Down
20 changes: 20 additions & 0 deletions sources/HAL/autogen/autogen.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -129,6 +129,11 @@ std::optional<SlotID> get_slot(std::string_view slot_name)
if(slot_name == "NinePatch") return SlotID::NinePatch;
if(slot_name == "ColorRect") return SlotID::ColorRect;
if(slot_name == "FlowGraph") return SlotID::FlowGraph;
if(slot_name == "BackdropBlur") return SlotID::BackdropBlur;
if(slot_name == "BackdropDraw") return SlotID::BackdropDraw;
if(slot_name == "UIShadow") return SlotID::UIShadow;
if(slot_name == "UIFx") return SlotID::UIFx;
if(slot_name == "UILayerRestore") return SlotID::UILayerRestore;
if(slot_name == "LineRender") return SlotID::LineRender;
if(slot_name == "FrameGraph_Debug_Common") return SlotID::FrameGraph_Debug_Common;
if(slot_name == "FrameGraph_Debug_Texture2D") return SlotID::FrameGraph_Debug_Texture2D;
Expand Down Expand Up @@ -422,6 +427,16 @@ uint get_table_index(SlotID id)

if(id == SlotID::FlowGraph) return Slots::UI::FlowGraph::Slot::ID;

if(id == SlotID::BackdropBlur) return Slots::UI::BackdropBlur::Slot::ID;

if(id == SlotID::BackdropDraw) return Slots::UI::BackdropDraw::Slot::ID;

if(id == SlotID::UIShadow) return Slots::UI::UIShadow::Slot::ID;

if(id == SlotID::UIFx) return Slots::UI::UIFx::Slot::ID;

if(id == SlotID::UILayerRestore) return Slots::UI::UILayerRestore::Slot::ID;

if(id == SlotID::LineRender) return Slots::UI::LineRender::Slot::ID;

if(id == SlotID::FrameGraph_Debug_Common) return Slots::Dev::FrameGraph_Debug_Common::Slot::ID;
Expand Down Expand Up @@ -640,6 +655,11 @@ std::string get_slot_name(SlotID id)
if(id == SlotID::NinePatch) return "NinePatch";
if(id == SlotID::ColorRect) return "ColorRect";
if(id == SlotID::FlowGraph) return "FlowGraph";
if(id == SlotID::BackdropBlur) return "BackdropBlur";
if(id == SlotID::BackdropDraw) return "BackdropDraw";
if(id == SlotID::UIShadow) return "UIShadow";
if(id == SlotID::UIFx) return "UIFx";
if(id == SlotID::UILayerRestore) return "UILayerRestore";
if(id == SlotID::LineRender) return "LineRender";
if(id == SlotID::FrameGraph_Debug_Common) return "FrameGraph_Debug_Common";
if(id == SlotID::FrameGraph_Debug_Texture2D) return "FrameGraph_Debug_Texture2D";
Expand Down
15 changes: 15 additions & 0 deletions sources/HAL/autogen/autogen.ixx
Original file line number Diff line number Diff line change
Expand Up @@ -311,6 +311,16 @@ export import :Autogen.Slots.UI.ColorRect;
export import :Autogen.Tables.UI.ColorRect;
export import :Autogen.Slots.UI.FlowGraph;
export import :Autogen.Tables.UI.FlowGraph;
export import :Autogen.Slots.UI.BackdropBlur;
export import :Autogen.Tables.UI.BackdropBlur;
export import :Autogen.Slots.UI.BackdropDraw;
export import :Autogen.Tables.UI.BackdropDraw;
export import :Autogen.Slots.UI.UIShadow;
export import :Autogen.Tables.UI.UIShadow;
export import :Autogen.Slots.UI.UIFx;
export import :Autogen.Tables.UI.UIFx;
export import :Autogen.Slots.UI.UILayerRestore;
export import :Autogen.Tables.UI.UILayerRestore;
export import :Autogen.Tables.UI.VSLine;
export import :Autogen.Slots.UI.LineRender;
export import :Autogen.Tables.UI.LineRender;
Expand Down Expand Up @@ -505,6 +515,7 @@ export import :Autogen.PSO.Post.TonemapHistogramClear;
export import :Autogen.PSO.Post.TonemapHistogramBuild;
export import :Autogen.PSO.Post.TonemapExposureAdapt;
export import :Autogen.PSO.Post.TonemapApply;
export import :Autogen.PSO.UI.BackdropBlur;
export import :Autogen.PSO.Dev.FrameGraph_Debug_Texture2D;
export import :Autogen.PSO.Dev.FrameGraph_Debug_Texture2DArray;
export import :Autogen.PSO.Dev.FrameGraph_Debug_Texture3D;
Expand Down Expand Up @@ -579,6 +590,10 @@ export import :Autogen.PSO.Editor.StencilerLast;
export import :Autogen.PSO.UI.NinePatch;
export import :Autogen.PSO.UI.SimpleRect;
export import :Autogen.PSO.UI.CanvasBack;
export import :Autogen.PSO.UI.UILayerRestore;
export import :Autogen.PSO.UI.UIFx;
export import :Autogen.PSO.UI.UIShadow;
export import :Autogen.PSO.UI.BackdropDraw;
export import :Autogen.PSO.UI.CanvasLines;
export import :Autogen.PSO.Dev.StatGraphLines;
export import :Autogen.PSO.GI.Voxel.Dev.VoxelDebug;
Expand Down
10 changes: 10 additions & 0 deletions sources/HAL/autogen/enums.ixx
Original file line number Diff line number Diff line change
Expand Up @@ -104,6 +104,7 @@ export
TonemapHistogramBuild,
TonemapExposureAdapt,
TonemapApply,
BackdropBlur,
FrameGraph_Debug_Texture2D,
FrameGraph_Debug_Texture2DArray,
FrameGraph_Debug_Texture3D,
Expand Down Expand Up @@ -178,6 +179,10 @@ export
NinePatch,
SimpleRect,
CanvasBack,
UILayerRestore,
UIFx,
UIShadow,
BackdropDraw,
CanvasLines,
StatGraphLines,
VoxelDebug,
Expand Down Expand Up @@ -361,6 +366,11 @@ export
NinePatch = "NinePatch"_crc32,
ColorRect = "ColorRect"_crc32,
FlowGraph = "FlowGraph"_crc32,
BackdropBlur = "BackdropBlur"_crc32,
BackdropDraw = "BackdropDraw"_crc32,
UIShadow = "UIShadow"_crc32,
UIFx = "UIFx"_crc32,
UILayerRestore = "UILayerRestore"_crc32,
VSLine = "VSLine"_crc32,
LineRender = "LineRender"_crc32,
FrameGraph_Debug_Common = "FrameGraph_Debug_Common"_crc32,
Expand Down
9 changes: 8 additions & 1 deletion sources/HAL/autogen/pso.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -112,6 +112,7 @@ void init_pso(HAL::Device& device, enum_array<PSO, PSOBase::ptr>& pso)
tasks.emplace_back(PSOBase::create<PSOS::Post::TonemapHistogramBuild>(device, pso[PSO::TonemapHistogramBuild]));
tasks.emplace_back(PSOBase::create<PSOS::Post::TonemapExposureAdapt>(device, pso[PSO::TonemapExposureAdapt]));
tasks.emplace_back(PSOBase::create<PSOS::Post::TonemapApply>(device, pso[PSO::TonemapApply]));
tasks.emplace_back(PSOBase::create<PSOS::UI::BackdropBlur>(device, pso[PSO::BackdropBlur]));
tasks.emplace_back(PSOBase::create<PSOS::Dev::FrameGraph_Debug_Texture2D>(device, pso[PSO::FrameGraph_Debug_Texture2D]));
tasks.emplace_back(PSOBase::create<PSOS::Dev::FrameGraph_Debug_Texture2DArray>(device, pso[PSO::FrameGraph_Debug_Texture2DArray]));
tasks.emplace_back(PSOBase::create<PSOS::Dev::FrameGraph_Debug_Texture3D>(device, pso[PSO::FrameGraph_Debug_Texture3D]));
Expand Down Expand Up @@ -187,6 +188,10 @@ void init_pso(HAL::Device& device, enum_array<PSO, PSOBase::ptr>& pso)
tasks.emplace_back(PSOBase::create<PSOS::UI::NinePatch>(device, pso[PSO::NinePatch]));
tasks.emplace_back(PSOBase::create<PSOS::UI::SimpleRect>(device, pso[PSO::SimpleRect]));
tasks.emplace_back(PSOBase::create<PSOS::UI::CanvasBack>(device, pso[PSO::CanvasBack]));
tasks.emplace_back(PSOBase::create<PSOS::UI::UILayerRestore>(device, pso[PSO::UILayerRestore]));
tasks.emplace_back(PSOBase::create<PSOS::UI::UIFx>(device, pso[PSO::UIFx]));
tasks.emplace_back(PSOBase::create<PSOS::UI::UIShadow>(device, pso[PSO::UIShadow]));
tasks.emplace_back(PSOBase::create<PSOS::UI::BackdropDraw>(device, pso[PSO::BackdropDraw]));
tasks.emplace_back(PSOBase::create<PSOS::UI::CanvasLines>(device, pso[PSO::CanvasLines]));
tasks.emplace_back(PSOBase::create<PSOS::Dev::StatGraphLines>(device, pso[PSO::StatGraphLines]));
tasks.emplace_back(PSOBase::create<PSOS::GI::Voxel::Dev::VoxelDebug>(device, pso[PSO::VoxelDebug]));
Expand Down Expand Up @@ -219,6 +224,7 @@ void init_pso(HAL::Device& device, enum_array<PSO, PSOBase::ptr>& pso)
//decltype(PSOS::MipMapping::NonPowerOfTwo) PSOS::MipMapping::NonPowerOfTwo;
//decltype(PSOS::MipMapping::Gamma) PSOS::MipMapping::Gamma;
//decltype(PSOS::MipMapping::Slices) PSOS::MipMapping::Slices;
//decltype(PSOS::BackdropBlur::Up) PSOS::BackdropBlur::Up;
//decltype(PSOS::Lighting::SecondBounce) PSOS::Lighting::SecondBounce;
//decltype(PSOS::VoxelDownsample::Count) PSOS::VoxelDownsample::Count;
//decltype(PSOS::VSMShadowBlur::VsmRtxVerify) PSOS::VSMShadowBlur::VsmRtxVerify;
Expand All @@ -228,4 +234,5 @@ void init_pso(HAL::Device& device, enum_array<PSO, PSOBase::ptr>& pso)
//decltype(PSOS::GBufferDraw::CaptureMeshlets) PSOS::GBufferDraw::CaptureMeshlets;
//decltype(PSOS::GBufferDraw::ClusterLod) PSOS::GBufferDraw::ClusterLod;
//decltype(PSOS::DepthDraw::HiZOcclusion) PSOS::DepthDraw::HiZOcclusion;
//decltype(PSOS::Voxelization::Dynamic) PSOS::Voxelization::Dynamic;
//decltype(PSOS::Voxelization::Dynamic) PSOS::Voxelization::Dynamic;
//decltype(PSOS::BackdropDraw::Direct) PSOS::BackdropDraw::Direct;
60 changes: 60 additions & 0 deletions sources/HAL/autogen/pso/UI/BackdropBlur.pso.ixx
Original file line number Diff line number Diff line change
@@ -0,0 +1,60 @@
// ============================================================================
// THIS FILE IS AUTOMATICALLY GENERATED - DO NOT MANUALLY EDIT
// ============================================================================
// Generated by Prism from .prism files in sources/Prism/defs/
// Changes will be lost on next generation. Edit the .prism source files instead.
// ============================================================================
export module HAL:Autogen.PSO.UI.BackdropBlur;

import Core;
import :PSO;
import :Enums;
import :Types;


export namespace PSOS
{
namespace UI
{
struct BackdropBlur: public PSOBase
{
struct Keys {
KeyValue<int, Nullable> Up;
GEN_DEF_COMP(Keys);
private:
SERIALIZE()
{
ar&NVP(Up);
}
};

GEN_COMPUTE_PSO(BackdropBlur, Up)
GEN_KEY(Up, true);


SimplePSO init_pso(Keys & key, std::function<void(SimplePSO&, Keys&)> f)
{
static const ShaderDefine<&Keys::Up,&SimpleComputePSO::compute> Up = "BACKDROP_UP";


SimplePSO mpso("BackdropBlur");
if(f) f(mpso,key);

mpso.root_signature = Layouts::DefaultLayout;

mpso.compute.file_name = "shaders/gui/backdrop_blur.hlsl";
mpso.compute.entry_point = "CS";
mpso.compute.flags = HAL::ShaderOptions::None;

Up.Apply(mpso, key);
return mpso;
}

private:
SERIALIZE()
{
ar&NVP(wrap(psos));
}
};
}
}
70 changes: 70 additions & 0 deletions sources/HAL/autogen/pso/UI/BackdropDraw.pso.ixx
Original file line number Diff line number Diff line change
@@ -0,0 +1,70 @@
// ============================================================================
// THIS FILE IS AUTOMATICALLY GENERATED - DO NOT MANUALLY EDIT
// ============================================================================
// Generated by Prism from .prism files in sources/Prism/defs/
// Changes will be lost on next generation. Edit the .prism source files instead.
// ============================================================================
export module HAL:Autogen.PSO.UI.BackdropDraw;

import Core;
import :PSO;
import :Enums;
import :Types;


export namespace PSOS
{
namespace UI
{
struct BackdropDraw: public PSOBase
{
struct Keys {
KeyValue<int, Nullable> Direct;
GEN_DEF_COMP(Keys);
private:
SERIALIZE()
{
ar&NVP(Direct);
}
};

GEN_GRAPHICS_PSO(BackdropDraw, Direct)
GEN_KEY(Direct, true);


SimplePSO init_pso(Keys & key, std::function<void(SimplePSO&, Keys&)> f)
{
static const ShaderDefine<&Keys::Direct,&SimpleGraphicsPSO::pixel> Direct = "BACKDROP_DIRECT";


SimplePSO mpso("BackdropDraw");
if(f) f(mpso,key);

mpso.root_signature = Layouts::DefaultLayout;

mpso.vertex.file_name = "shaders/gui/backdrop_draw.hlsl";
mpso.vertex.entry_point = "VS";
mpso.vertex.flags = HAL::ShaderOptions::None;

mpso.pixel.file_name = "shaders/gui/backdrop_draw.hlsl";
mpso.pixel.entry_point = "PS";
mpso.pixel.flags = HAL::ShaderOptions::None;

Direct.Apply(mpso, key);

mpso.rtv_formats = { HAL::Format::R16G16B16A16_FLOAT };
mpso.blend = { HAL::Blends::AlphaBlend };

mpso.cull =HAL::CullMode::None;
mpso.enable_depth =false;
return mpso;
}

private:
SERIALIZE()
{
ar&NVP(wrap(psos));
}
};
}
}
65 changes: 65 additions & 0 deletions sources/HAL/autogen/pso/UI/UIFx.pso.ixx
Original file line number Diff line number Diff line change
@@ -0,0 +1,65 @@
// ============================================================================
// THIS FILE IS AUTOMATICALLY GENERATED - DO NOT MANUALLY EDIT
// ============================================================================
// Generated by Prism from .prism files in sources/Prism/defs/
// Changes will be lost on next generation. Edit the .prism source files instead.
// ============================================================================
export module HAL:Autogen.PSO.UI.UIFx;

import Core;
import :PSO;
import :Enums;
import :Types;


export namespace PSOS
{
namespace UI
{
struct UIFx: public PSOBase
{
struct Keys {
GEN_DEF_COMP(Keys);
private:
SERIALIZE()
{
}
};

GEN_GRAPHICS_PSO(UIFx)


SimplePSO init_pso(Keys & key, std::function<void(SimplePSO&, Keys&)> f)
{


SimplePSO mpso("UIFx");
if(f) f(mpso,key);

mpso.root_signature = Layouts::DefaultLayout;

mpso.vertex.file_name = "shaders/gui/fx.hlsl";
mpso.vertex.entry_point = "VS";
mpso.vertex.flags = HAL::ShaderOptions::None;

mpso.pixel.file_name = "shaders/gui/fx.hlsl";
mpso.pixel.entry_point = "PS";
mpso.pixel.flags = HAL::ShaderOptions::None;


mpso.rtv_formats = { HAL::Format::R16G16B16A16_FLOAT };
mpso.blend = { HAL::Blends::AlphaBlend };

mpso.cull =HAL::CullMode::None;
mpso.enable_depth =false;
return mpso;
}

private:
SERIALIZE()
{
ar&NVP(wrap(psos));
}
};
}
}
Loading
Loading