Compiled * compiled
Definition frameop.h:186
const bool GetEnabled() const
get if operation is enabled
Definition frameop.h:223
virtual void Discard()
discard operation
Definition frameop.cc:35
const Util::Array< Frame::FrameOp * > & GetChildren()
get children
Definition frameop.h:242
void SetEnabled(bool b)
set if operation should be enabled
Definition frameop.h:214
Util::StringAtom name
Definition frameop.h:187
virtual void Build(const BuildContext &ctx)
build operation
Definition frameop.cc:53
Util::Dictionary< CoreGraphics::BufferId, Util::Tuple< Util::StringAtom, CoreGraphics::PipelineStage, CoreGraphics::BufferSubresourceInfo > > bufferDeps
Definition frameop.h:80
void SetupSynchronization(Memory::ArenaAllocator< BIG_CHUNK > &allocator, Util::Array< CoreGraphics::EventId > &events, Util::Array< CoreGraphics::BarrierId > &barriers, Util::Dictionary< CoreGraphics::BufferId, Util::Array< BufferDependency > > &buffers, Util::Dictionary< CoreGraphics::TextureId, Util::Array< TextureDependency > > &textures)
setup synchronization
Definition frameop.cc:300
Util::Dictionary< const CoreGraphics::BufferId *, Util::Tuple< Util::StringAtom, CoreGraphics::PipelineStage, CoreGraphics::BufferSubresourceInfo > > bufferDepRefs
Definition frameop.h:82
virtual ~FrameOp()
destructor
Definition frameop.cc:26
virtual Compiled * AllocCompiled(Memory::ArenaAllocator< BIG_CHUNK > &allocator)=0
allocate instance of compiled
Util::Dictionary< const CoreGraphics::TextureId *, Util::Tuple< Util::StringAtom, CoreGraphics::PipelineStage, CoreGraphics::TextureSubresourceInfo > > textureDepRefs
Definition frameop.h:81
Util::Array< FrameOp * > children
Definition frameop.h:184
static void AnalyzeAndSetupBufferBarriers(struct FrameOp::Compiled *op, CoreGraphics::BufferId buf, const Util::StringAtom &bufferName, DependencyIntent readOrWrite, CoreGraphics::PipelineStage stage, CoreGraphics::BarrierDomain domain, const CoreGraphics::BufferSubresourceInfo &subres, CoreGraphics::QueueType fromQueue, Util::Dictionary< Util::Tuple< CoreGraphics::PipelineStage, CoreGraphics::PipelineStage >, CoreGraphics::BarrierCreateInfo > &barriers, Util::Dictionary< Util::Tuple< CoreGraphics::PipelineStage, CoreGraphics::PipelineStage >, CoreGraphics::EventCreateInfo > &waitEvents, Util::Dictionary< Util::Tuple< CoreGraphics::PipelineStage, CoreGraphics::PipelineStage >, struct FrameOp::Compiled * > &signalEvents, Util::Array< FrameOp::BufferDependency > &bufferDependencies)
Definition frameop.cc:198
void AddChild(FrameOp *op)
add child operation
Definition frameop.h:232
IndexT index
Definition frameop.h:188
Util::Dictionary< Util::StringAtom, FrameOp * > childrenByName
Definition frameop.h:185
CoreGraphics::BarrierDomain domain
Definition frameop.h:61
CoreGraphics::QueueType queue
Definition frameop.h:62
FrameOp()
constructor
Definition frameop.cc:15
Util::Dictionary< CoreGraphics::TextureId, Util::Tuple< Util::StringAtom, CoreGraphics::PipelineStage, CoreGraphics::TextureSubresourceInfo > > textureDeps
Definition frameop.h:79
static void AnalyzeAndSetupTextureBarriers(struct FrameOp::Compiled *op, CoreGraphics::TextureId tex, const Util::StringAtom &textureName, DependencyIntent readOrWrite, CoreGraphics::PipelineStage stage, CoreGraphics::BarrierDomain domain, const CoreGraphics::TextureSubresourceInfo &subres, CoreGraphics::QueueType fromQueue, Util::Dictionary< Util::Tuple< CoreGraphics::PipelineStage, CoreGraphics::PipelineStage >, CoreGraphics::BarrierCreateInfo > &barriers, Util::Dictionary< Util::Tuple< CoreGraphics::PipelineStage, CoreGraphics::PipelineStage >, CoreGraphics::EventCreateInfo > &waitEvents, Util::Dictionary< Util::Tuple< CoreGraphics::PipelineStage, CoreGraphics::PipelineStage >, struct FrameOp::Compiled * > &signalEvents, Util::Array< FrameOp::TextureDependency > &renderTextureDependencies)
Analyze and setup barriers if needed.
Definition frameop.cc:71
bool enabled
Definition frameop.h:189
void SetName(const Util::StringAtom &name)
set name
Definition frameop.h:196
const Util::StringAtom & GetName() const
get name
Definition frameop.h:205
virtual void OnWindowResized()
handle display resizing
Definition frameop.cc:43
Definition framepass.h:22
A FrameScript describes render operations being done to produce a single frame.
Definition framescript.h:41
Definition framescriptloader.h:22
Definition framesubgraph.h:15
Definition framesubmission.h:17
Definition framesubpass.h:18
Allocates memory in chunks.
Definition arenaallocator.h:36
Nebula's dynamic array class.
Definition array.h:60
A collection of key/value pairs with quick value retrieval by key at roughly O(log n).
Definition dictionary.h:34
A StringAtom.
Definition stringatom.h:22
QueueType
Definition config.h:40
BarrierDomain
Definition config.h:185
PipelineStage
Definition config.h:191
ImGUI debug interface for inspecting frame scripts.
Definition shaderserverbase.h:52
DependencyIntent
Definition frameop.h:26
std::tuple< T... > Tuple
Wrap std::tuple.
Definition tupleutility.h:19
Compile time configuration options for the CoreGraphics subsystem.
A semaphore is an inter-GPU queue synchronization primitive.
Definition commandbuffer.h:155
texture type
Definition texture.h:25
CoreGraphics::PipelineStage stage
Definition frameop.h:124
CoreGraphics::QueueType queue
Definition frameop.h:127
CoreGraphics::BufferSubresourceInfo subres
Definition frameop.h:126
DependencyIntent intent
Definition frameop.h:125
Util::StringAtom name
Definition frameop.h:67
CoreGraphics::PipelineStage stage
Definition frameop.h:68
CoreGraphics::BufferSubresourceInfo subres
Definition frameop.h:69
Util::Array< CoreGraphics::EventId > & events
Definition frameop.h:167
Util::Array< CoreGraphics::BarrierId > & barriers
Definition frameop.h:168
Util::Array< FrameOp::Compiled * > & compiledOps
Definition frameop.h:166
Memory::ArenaAllocator< BIG_CHUNK > & allocator
Definition frameop.h:165
uint subpass
Definition frameop.h:164
Util::Dictionary< CoreGraphics::TextureId, Util::Array< TextureDependency > > & textures
Definition frameop.h:170
CoreGraphics::PassId currentPass
Definition frameop.h:163
Util::Dictionary< CoreGraphics::BufferId, Util::Array< BufferDependency > > & buffers
Definition frameop.h:169
virtual void SetupConstants(const IndexT bufferIndex)
Setup constants.
Definition frameop.cc:465
Compiled()
Definition frameop.h:95
virtual void Discard()
Discard operation.
Definition frameop.cc:454
CoreGraphics::QueueType queue
Definition frameop.h:111
Util::Array< CoreGraphics::BarrierId > barriers
Definition frameop.h:110
virtual void QueuePreSync(const CoreGraphics::CmdBufferId cmdBuf)
Perform synchronization prior to execution of operation.
Definition frameop.cc:474
virtual void Run(const CoreGraphics::CmdBufferId cmdBuf, const IndexT frameIndex, const IndexT bufferIndex)=0
Run operation on a specific command buffer.
Definition frameop.cc:445
CoreGraphics::TextureSubresourceInfo subres
Definition frameop.h:118
DependencyIntent intent
Definition frameop.h:117
CoreGraphics::PipelineStage stage
Definition frameop.h:116
CoreGraphics::QueueType queue
Definition frameop.h:119
Util::StringAtom name
Definition frameop.h:74
CoreGraphics::PipelineStage stage
Definition frameop.h:75
CoreGraphics::TextureSubresourceInfo subres
Definition frameop.h:76
unsigned int uint
Definition types.h:31
int IndexT
Definition types.h:48