Foundation
Loading...
Searching...
No Matches
Shader.hpp
Go to the documentation of this file.
1#pragma once
2#include <Core/Core.hpp>
3#include "RHICore/Common.hpp"
4
6 using namespace Core;
10 class Shader {
22 void Sort();
23 public:
24 struct Entrypoint {
27 // Applies to Compute, Task and Mesh shaders
29 };
37 struct PushConstant {
39 // TODO: add size, offset, type info?
40 // This would require us to parse all OpType.. instructions however.
41 // Caller is also expected to know the layout of push constants - TODO for now.
42 };
45
47 };
48}
General Purpose Allocator (GPA) interface.
Definition Allocator.hpp:24
Runtime reflection data for a shader module.
Definition Shader.hpp:10
Vector< Binding > mBindings
Definition Shader.hpp:36
Allocator * mAllocator
Definition Shader.hpp:11
Vector< PushConstant > mPushConstants
Definition Shader.hpp:43
void ParseSPIRV(Span< const char > bytecode)
Parse SPIR-V shader code and populate reflection data.
Definition Shader.cpp:8
String DbgDumpShaderInfo() const
Definition Shader.cpp:184
Vector< Entrypoint > mEntrypoints
Definition Shader.hpp:30
void Sort()
Definition Shader.cpp:168
std::basic_string< char > String
Alias for std::basic_string<char>, without an explicit allocator constructor.
Definition Container.hpp:141
std::unique_ptr< T, StlDeleter< T > > UniquePtr
std::unique_ptr with custom deleter that uses a Foundation::Core::Allocator to deallocate memory.
Definition Allocator.hpp:161
Core functionalities for rendering, including the Frame Graph implementation.
Definition Renderer.hpp:12
uint32_t binding
Definition Shader.hpp:34
uint32_t descriptorSet
Definition Shader.hpp:33
String name
Definition Shader.hpp:32
Tuple< uint32_t, uint32_t, uint32_t > groupLocalSize
Definition Shader.hpp:28
String name
Definition Shader.hpp:25
RHI::RHIShaderStage stage
Definition Shader.hpp:26
String name
Definition Shader.hpp:38