mirror of
https://github.com/encounter/dawn-cmake.git
synced 2025-12-20 18:29:23 +00:00
src/sem: Generate ParameterUsage from intrinsics.def
Add a template file to generate parameter_usage.h and parameter_usage.cc when using tools/intrinsic-gen Bug: tint:832 Change-Id: I0ca4d092fdcda7d7846b968d43202f34450e516d Reviewed-on: https://dawn-review.googlesource.com/c/tint/+/52644 Kokoro: Kokoro <noreply+kokoro@google.com> Commit-Queue: Ben Clayton <bclayton@google.com> Reviewed-by: David Neto <dneto@google.com>
This commit is contained in:
committed by
Tint LUCI CQ
parent
21f8772d65
commit
1934f59427
@@ -18,6 +18,7 @@
|
||||
#include <vector>
|
||||
|
||||
#include "src/sem/node.h"
|
||||
#include "src/sem/parameter_usage.h"
|
||||
#include "src/sem/sampler_type.h"
|
||||
|
||||
namespace tint {
|
||||
@@ -28,28 +29,10 @@ class Type;
|
||||
|
||||
/// Parameter describes a single parameter of a call target
|
||||
struct Parameter {
|
||||
/// Usage is extra metadata for identifying a parameter based on its overload
|
||||
/// position
|
||||
enum class Usage {
|
||||
kNone,
|
||||
kArrayIndex,
|
||||
kBias,
|
||||
kCoords,
|
||||
kDepthRef,
|
||||
kDdx,
|
||||
kDdy,
|
||||
kLevel,
|
||||
kOffset,
|
||||
kSampler,
|
||||
kSampleIndex,
|
||||
kTexture,
|
||||
kValue,
|
||||
};
|
||||
|
||||
/// Parameter type
|
||||
sem::Type* const type;
|
||||
/// Parameter usage
|
||||
Usage const usage = Usage::kNone;
|
||||
ParameterUsage const usage = ParameterUsage::kNone;
|
||||
};
|
||||
|
||||
std::ostream& operator<<(std::ostream& out, Parameter parameter);
|
||||
@@ -59,9 +42,6 @@ static inline bool operator==(const Parameter& a, const Parameter& b) {
|
||||
return a.type == b.type && a.usage == b.usage;
|
||||
}
|
||||
|
||||
/// @returns a string representation of the given parameter usage.
|
||||
const char* str(Parameter::Usage usage);
|
||||
|
||||
/// ParameterList is a list of Parameter
|
||||
using ParameterList = std::vector<Parameter>;
|
||||
|
||||
@@ -69,7 +49,7 @@ using ParameterList = std::vector<Parameter>;
|
||||
/// @param usage the parameter usage to find
|
||||
/// @returns the index of the parameter with the given usage, or -1 if no
|
||||
/// parameter with the given usage exists.
|
||||
int IndexOf(const ParameterList& parameters, Parameter::Usage usage);
|
||||
int IndexOf(const ParameterList& parameters, ParameterUsage usage);
|
||||
|
||||
/// CallTarget is the base for callable functions
|
||||
class CallTarget : public Castable<CallTarget, Node> {
|
||||
|
||||
Reference in New Issue
Block a user