webgpu sponza
This commit is contained in:
parent
5553ded476
commit
b5d0f52da0
21 changed files with 1426 additions and 58 deletions
|
|
@ -26,22 +26,31 @@ import std;
|
|||
import :RT;
|
||||
import :WebGPU;
|
||||
import :ShaderBindingTableWebGPU;
|
||||
import :WebGPUComputeShader;
|
||||
|
||||
export namespace Crafter {
|
||||
class PipelineRTWebGPU {
|
||||
public:
|
||||
std::uint32_t pipelineHandle = 0;
|
||||
// Mirror of the bindings handed to Init. Kept for the example /
|
||||
// RTPass to consult when packing the handles[] array at dispatch
|
||||
// time (one resolved u32 handle per binding, in declaration order).
|
||||
std::vector<UICustomBinding> userBindings;
|
||||
|
||||
// Build the megakernel pipeline. Groups carry indices into
|
||||
// `sbt.shaders`. The library generates one `case` per registered
|
||||
// group: closest-hit groups dispatch to their closestHitShader's
|
||||
// entryFn, miss groups to their generalShader's entryFn, etc.
|
||||
// The `cmd` parameter is unused on WebGPU; kept for API symmetry.
|
||||
// `userBindings` declares extra @group(2)+ resources the user's
|
||||
// closest-hit / miss / raygen WGSL touches (material SSBOs,
|
||||
// albedo textures, samplers).
|
||||
void Init(WebGPUCommandEncoderRef cmd,
|
||||
std::span<const RTShaderGroup> raygenGroups,
|
||||
std::span<const RTShaderGroup> missGroups,
|
||||
std::span<const RTShaderGroup> hitGroups,
|
||||
const ShaderBindingTableWebGPU& sbt);
|
||||
const ShaderBindingTableWebGPU& sbt,
|
||||
std::span<const UICustomBinding> bindings = {});
|
||||
|
||||
PipelineRTWebGPU() = default;
|
||||
PipelineRTWebGPU(const PipelineRTWebGPU&) = delete;
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue