summaryrefslogtreecommitdiffstats
path: root/source/slang/slang-ir-entry-point-uniforms.h
blob: 21cee3c4ed7d881de569c7e979e157e07dbf967b (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
// slang-ir-entry-point-uniform.h
#pragma once

#include "slang-compiler.h"

namespace Slang
{
struct IRModule;

struct CollectEntryPointUniformParamsOptions
{
    // TODO(JS): Not sure if it makes sense to initialize to true or false. Go with false as
    // seems to fit usage.
    bool alwaysCreateCollectedParam = false;
    TargetRequest* targetReq = nullptr;
};

/// Collect entry point uniform parameters into a wrapper `struct` and/or buffer
void collectEntryPointUniformParams(
    IRModule* module,
    CollectEntryPointUniformParamsOptions const& options);

/// Move any uniform parameters of entry points to the global scope instead.
void moveEntryPointUniformParamsToGlobalScope(IRModule* module);

} // namespace Slang