spirv: Use generic transform to process shader IO

The refactored CanonicalizeEntryPointIO transform makes it much easier
to handle SPIR-V style IO as well, and doing this removes a lot of
duplicated code. Remove all of the SPIR-V transform code for shader IO
and vertex point size.

Bug: tint:920
Change-Id: Id1b97517619b4d2fd09b45d5aee848259f3dfa77
Reviewed-on: https://dawn-review.googlesource.com/c/tint/+/60840
Kokoro: Kokoro <noreply+kokoro@google.com>
Commit-Queue: James Price <jrprice@google.com>
Auto-Submit: James Price <jrprice@google.com>
Reviewed-by: Ben Clayton <bclayton@google.com>
This commit is contained in:
James Price 2021-08-05 17:34:19 +00:00 committed by Tint LUCI CQ
parent 11e172ab64
commit 11c6fcdb51
1981 changed files with 55207 additions and 57171 deletions

View File

@ -20,6 +20,7 @@
#include <utility>
#include <vector>
#include "src/ast/disable_validation_decoration.h"
#include "src/program_builder.h"
#include "src/sem/function.h"
@ -148,11 +149,30 @@ struct CanonicalizeEntryPointIO::State {
ast::Expression* AddInput(std::string name,
ast::Type* type,
ast::DecorationList attributes) {
if (cfg.builtin_style == BuiltinStyle::kParameter &&
ast::HasDecoration<ast::BuiltinDecoration>(attributes)) {
// If this input is a builtin and we are emitting those as parameters,
// then add it to the parameter list and pass it directly to the inner
// function.
if (cfg.shader_style == ShaderStyle::kSpirv) {
// Vulkan requires that integer user-defined fragment inputs are
// always decorated with `Flat`.
if (type->is_integer_scalar_or_vector() &&
ast::HasDecoration<ast::LocationDecoration>(attributes) &&
func_ast->pipeline_stage() == ast::PipelineStage::kFragment) {
attributes.push_back(ctx.dst->Interpolate(
ast::InterpolationType::kFlat, ast::InterpolationSampling::kNone));
}
// Disable validation for use of the `input` storage class.
attributes.push_back(
ctx.dst->ASTNodes().Create<ast::DisableValidationDecoration>(
ctx.dst->ID(), ast::DisabledValidation::kIgnoreStorageClass));
// Create the global variable and use its value for the shader input.
auto var = ctx.dst->Symbols().New(name);
ctx.dst->Global(var, type, ast::StorageClass::kInput,
std::move(attributes));
return ctx.dst->Expr(var);
} else if (cfg.shader_style == ShaderStyle::kMsl &&
ast::HasDecoration<ast::BuiltinDecoration>(attributes)) {
// If this input is a builtin and we are targeting MSL, then add it to the
// parameter list and pass it directly to the inner function.
wrapper_ep_parameters.push_back(
ctx.dst->Param(name, type, std::move(attributes)));
return ctx.dst->Expr(name);
@ -173,6 +193,16 @@ struct CanonicalizeEntryPointIO::State {
ast::Type* type,
ast::DecorationList attributes,
ast::Expression* value) {
// Vulkan requires that integer user-defined vertex outputs are
// always decorated with `Flat`.
if (cfg.shader_style == ShaderStyle::kSpirv &&
type->is_integer_scalar_or_vector() &&
ast::HasDecoration<ast::LocationDecoration>(attributes) &&
func_ast->pipeline_stage() == ast::PipelineStage::kVertex) {
attributes.push_back(ctx.dst->Interpolate(
ast::InterpolationType::kFlat, ast::InterpolationSampling::kNone));
}
OutputValue output;
output.name = name;
output.type = type;
@ -359,6 +389,23 @@ struct CanonicalizeEntryPointIO::State {
return out_struct;
}
/// Create and assign the wrapper function's output variables.
void CreateOutputVariables() {
for (auto& outval : wrapper_output_values) {
// Disable validation for use of the `output` storage class.
ast::DecorationList attributes = std::move(outval.attributes);
attributes.push_back(
ctx.dst->ASTNodes().Create<ast::DisableValidationDecoration>(
ctx.dst->ID(), ast::DisabledValidation::kIgnoreStorageClass));
// Create the global variable and assign it the output value.
auto name = ctx.dst->Symbols().New(outval.name);
ctx.dst->Global(name, outval.type, ast::StorageClass::kOutput,
std::move(attributes));
wrapper_body.push_back(ctx.dst->Assign(name, outval.value));
}
}
// Recreate the original function without entry point attributes and call it.
/// @returns the inner function call expression
ast::CallExpression* CallInnerFunction() {
@ -450,10 +497,14 @@ struct CanonicalizeEntryPointIO::State {
// Produce the entry point outputs, if necessary.
if (!wrapper_output_values.empty()) {
auto* output_struct = CreateOutputStruct();
wrapper_ret_type = [&, output_struct] {
return ctx.dst->ty.type_name(output_struct->name());
};
if (cfg.shader_style == ShaderStyle::kSpirv) {
CreateOutputVariables();
} else {
auto* output_struct = CreateOutputStruct();
wrapper_ret_type = [&, output_struct] {
return ctx.dst->ty.type_name(output_struct->name());
};
}
}
// Create the wrapper entry point function.
@ -505,10 +556,10 @@ void CanonicalizeEntryPointIO::Run(CloneContext& ctx,
ctx.Clone();
}
CanonicalizeEntryPointIO::Config::Config(BuiltinStyle builtins,
CanonicalizeEntryPointIO::Config::Config(ShaderStyle style,
uint32_t sample_mask,
bool emit_point_size)
: builtin_style(builtins),
: shader_style(style),
fixed_sample_mask(sample_mask),
emit_vertex_point_size(emit_point_size) {}

View File

@ -24,9 +24,9 @@ namespace transform {
/// interfaces into a form that the generators can handle. Each entry point
/// function is stripped of all shader IO attributes and wrapped in a function
/// that provides the shader interface.
/// The transform config determines how shader IO parameters will be exposed.
/// Entry point return values are always produced as a structure, and optionally
/// include additional builtins as per the transform config.
/// The transform config determines whether to use global variables, structures,
/// or parameters for the shader inputs and outputs, and optionally adds
/// additional builtins to the shader interface.
///
/// Before:
/// ```
@ -83,21 +83,23 @@ namespace transform {
class CanonicalizeEntryPointIO
: public Castable<CanonicalizeEntryPointIO, Transform> {
public:
/// BuiltinStyle is an enumerator of different ways to emit builtins.
enum class BuiltinStyle {
/// Use non-struct function parameters for all builtins.
kParameter,
/// Use struct members for all builtins.
kStructMember,
/// ShaderStyle is an enumerator of different ways to emit shader IO.
enum class ShaderStyle {
/// Target SPIR-V (using global variables).
kSpirv,
/// Target MSL (using non-struct function parameters for builtins).
kMsl,
/// Target HLSL (using structures for all IO).
kHlsl,
};
/// Configuration options for the transform.
struct Config : public Castable<Config, Data> {
/// Constructor
/// @param builtins the approach to use for emitting builtins.
/// @param style the approach to use for emitting shader IO.
/// @param sample_mask an optional sample mask to combine with shader masks
/// @param emit_vertex_point_size `true` to generate a pointsize builtin
explicit Config(BuiltinStyle builtins,
explicit Config(ShaderStyle style,
uint32_t sample_mask = 0xFFFFFFFF,
bool emit_vertex_point_size = false);
@ -107,8 +109,8 @@ class CanonicalizeEntryPointIO
/// Destructor
~Config() override;
/// The approach to use for emitting builtins.
BuiltinStyle const builtin_style;
/// The approach to use for emitting shader IO.
ShaderStyle const shader_style;
/// A fixed sample mask to combine into masks produced by fragment shaders.
uint32_t const fixed_sample_mask;

File diff suppressed because it is too large Load Diff

View File

@ -73,7 +73,7 @@ Output Hlsl::Run(const Program* in, const DataMap& inputs) {
manager.Add<PadArrayElements>();
data.Add<CanonicalizeEntryPointIO::Config>(
CanonicalizeEntryPointIO::BuiltinStyle::kStructMember);
CanonicalizeEntryPointIO::ShaderStyle::kHlsl);
auto out = manager.Run(in, data);
if (!out.program.IsValid()) {
return out;

View File

@ -64,7 +64,7 @@ Output Msl::Run(const Program* in, const DataMap& inputs) {
auto array_length_from_uniform_cfg = ArrayLengthFromUniform::Config(
sem::BindingPoint{0, buffer_size_ubo_index});
auto entry_point_io_cfg = CanonicalizeEntryPointIO::Config(
CanonicalizeEntryPointIO::BuiltinStyle::kParameter, fixed_sample_mask,
CanonicalizeEntryPointIO::ShaderStyle::kMsl, fixed_sample_mask,
emit_point_size);
// Use the SSBO binding numbers as the indices for the buffer size lookups.

View File

@ -17,16 +17,10 @@
#include <string>
#include <utility>
#include "src/ast/call_statement.h"
#include "src/ast/disable_validation_decoration.h"
#include "src/ast/return_statement.h"
#include "src/ast/stage_decoration.h"
#include "src/program_builder.h"
#include "src/sem/block_statement.h"
#include "src/sem/function.h"
#include "src/sem/statement.h"
#include "src/sem/struct.h"
#include "src/sem/variable.h"
#include "src/transform/canonicalize_entry_point_io.h"
#include "src/transform/external_texture_transform.h"
#include "src/transform/fold_constants.h"
#include "src/transform/for_loop_to_loop.h"
@ -48,6 +42,7 @@ Output Spirv::Run(const Program* in, const DataMap& data) {
auto* cfg = data.Get<Config>();
Manager manager;
DataMap internal_inputs;
if (!cfg || !cfg->disable_workgroup_init) {
manager.Add<ZeroInitWorkgroupMemory>();
}
@ -56,174 +51,27 @@ Output Spirv::Run(const Program* in, const DataMap& data) {
manager.Add<FoldConstants>();
manager.Add<ExternalTextureTransform>();
manager.Add<ForLoopToLoop>(); // Must come after ZeroInitWorkgroupMemory
auto transformedInput = manager.Run(in, data);
manager.Add<CanonicalizeEntryPointIO>();
internal_inputs.Add<CanonicalizeEntryPointIO::Config>(
CanonicalizeEntryPointIO::Config(
CanonicalizeEntryPointIO::ShaderStyle::kSpirv, 0xFFFFFFFF,
(cfg && cfg->emit_vertex_point_size)));
auto transformedInput = manager.Run(in, internal_inputs);
if (transformedInput.program.Diagnostics().contains_errors()) {
return transformedInput;
}
ProgramBuilder out;
CloneContext ctx(&out, &transformedInput.program);
HandleEntryPointIOTypes(ctx);
ProgramBuilder builder;
CloneContext ctx(&builder, &transformedInput.program);
HandleSampleMaskBuiltins(ctx);
AddEmptyEntryPoint(ctx);
ctx.Clone();
// TODO(jrprice): Look into combining these transforms into a single clone.
Program tmp(std::move(out));
ProgramBuilder out2;
CloneContext ctx2(&out2, &tmp);
HandleSampleMaskBuiltins(ctx2);
AddEmptyEntryPoint(ctx2);
if (cfg && cfg->emit_vertex_point_size) {
EmitVertexPointSize(ctx2);
}
ctx2.Clone();
out2.SetTransformApplied(this);
return Output{Program(std::move(out2))};
}
void Spirv::HandleEntryPointIOTypes(CloneContext& ctx) const {
// Hoist entry point parameters, return values, and struct members out to
// global variables. Declare and construct struct parameters in the function
// body. Replace entry point return statements with calls to a function that
// assigns the return value to the global output variables.
//
// Before:
// ```
// struct FragmentInput {
// [[builtin(sample_index)]] sample_index : u32;
// [[builtin(sample_mask)]] sample_mask : u32;
// };
// struct FragmentOutput {
// [[builtin(frag_depth)]] depth: f32;
// [[builtin(sample_mask)]] mask_out : u32;
// };
//
// [[stage(fragment)]]
// fn frag_main(
// [[builtin(position)]] coord : vec4<f32>,
// samples : FragmentInput
// ) -> FragmentOutput {
// var output : FragmentOutput = FragmentOutput(1.0,
// samples.sample_mask);
// return output;
// }
// ```
//
// After:
// ```
// struct FragmentInput {
// sample_index : u32;
// sample_mask : u32;
// };
// struct FragmentOutput {
// depth: f32;
// mask_out : u32;
// };
//
// [[builtin(position)]] var<in> coord : vec4<f32>,
// [[builtin(sample_index)]] var<in> sample_index : u32,
// [[builtin(sample_mask)]] var<in> sample_mask : u32,
// [[builtin(frag_depth)]] var<out> depth: f32;
// [[builtin(sample_mask)]] var<out> mask_out : u32;
//
// fn frag_main_ret(retval : FragmentOutput) {
// depth = reval.depth;
// mask_out = retval.mask_out;
// }
//
// [[stage(fragment)]]
// fn frag_main() {
// let samples : FragmentInput(sample_index, sample_mask);
// var output : FragmentOutput = FragmentOutput(1.0,
// samples.sample_mask);
// frag_main_ret(output);
// return;
// }
// ```
// Strip entry point IO decorations from struct declarations.
for (auto* ty : ctx.src->AST().TypeDecls()) {
if (auto* struct_ty = ty->As<ast::Struct>()) {
// Build new list of struct members without entry point IO decorations.
ast::StructMemberList new_struct_members;
for (auto* member : struct_ty->members()) {
ast::DecorationList new_decorations = RemoveDecorations(
ctx, member->decorations(), [](const ast::Decoration* deco) {
return deco->IsAnyOf<
ast::BuiltinDecoration, ast::InterpolateDecoration,
ast::InvariantDecoration, ast::LocationDecoration>();
});
new_struct_members.push_back(
ctx.dst->Member(ctx.Clone(member->symbol()),
ctx.Clone(member->type()), new_decorations));
}
// Redeclare the struct.
auto new_struct_name = ctx.Clone(struct_ty->name());
auto* new_struct =
ctx.dst->create<ast::Struct>(new_struct_name, new_struct_members,
ctx.Clone(struct_ty->decorations()));
ctx.Replace(struct_ty, new_struct);
}
}
for (auto* func_ast : ctx.src->AST().Functions()) {
if (!func_ast->IsEntryPoint()) {
continue;
}
auto* func = ctx.src->Sem().Get(func_ast);
for (auto* param : func->Parameters()) {
Symbol new_var = HoistToInputVariables(
ctx, func_ast, param->Type(), param->Declaration()->type(),
param->Declaration()->decorations());
// Replace all uses of the function parameter with the new variable.
for (auto* user : param->Users()) {
ctx.Replace<ast::Expression>(user->Declaration(),
ctx.dst->Expr(new_var));
}
}
if (!func->ReturnType()->Is<sem::Void>()) {
ast::StatementList stores;
auto store_value_symbol = ctx.dst->Sym();
HoistToOutputVariables(
ctx, func_ast, func->ReturnType(), func_ast->return_type(),
func_ast->return_type_decorations(), {}, store_value_symbol, stores);
// Create a function that writes a return value to all output variables.
auto* store_value = ctx.dst->Param(store_value_symbol,
ctx.Clone(func_ast->return_type()));
auto return_func_symbol = ctx.dst->Sym();
auto* return_func = ctx.dst->create<ast::Function>(
return_func_symbol, ast::VariableList{store_value},
ctx.dst->ty.void_(), ctx.dst->create<ast::BlockStatement>(stores),
ast::DecorationList{}, ast::DecorationList{});
ctx.InsertBefore(ctx.src->AST().GlobalDeclarations(), func_ast,
return_func);
// Replace all return statements with calls to the output function.
for (auto* ret : func->ReturnStatements()) {
auto* ret_sem = ctx.src->Sem().Get(ret);
auto* call = ctx.dst->Call(return_func_symbol, ctx.Clone(ret->value()));
ctx.InsertBefore(ret_sem->Block()->Declaration()->statements(), ret,
ctx.dst->create<ast::CallStatement>(call));
ctx.Replace(ret, ctx.dst->Return());
}
}
// Rewrite the function header to remove the parameters and return value.
auto name = ctx.Clone(func_ast->symbol());
auto* body = ctx.Clone(func_ast->body());
auto decos = ctx.Clone(func_ast->decorations());
auto* new_func = ctx.dst->create<ast::Function>(
func_ast->source(), name, ast::VariableList{}, ctx.dst->ty.void_(),
body, decos, ast::DecorationList{});
ctx.Replace(func_ast, new_func);
}
builder.SetTransformApplied(this);
return Output{Program(std::move(builder))};
}
void Spirv::HandleSampleMaskBuiltins(CloneContext& ctx) const {
@ -274,31 +122,6 @@ void Spirv::HandleSampleMaskBuiltins(CloneContext& ctx) const {
}
}
void Spirv::EmitVertexPointSize(CloneContext& ctx) const {
// No-op if there are no vertex stages in the module.
if (!ctx.src->AST().Functions().HasStage(ast::PipelineStage::kVertex)) {
return;
}
// Create a module-scope pointsize builtin output variable.
Symbol pointsize = ctx.dst->Symbols().New("tint_pointsize");
ctx.dst->Global(
pointsize, ctx.dst->ty.f32(), ast::StorageClass::kOutput,
ast::DecorationList{
ctx.dst->Builtin(ast::Builtin::kPointSize),
ctx.dst->ASTNodes().Create<ast::DisableValidationDecoration>(
ctx.dst->ID(), ast::DisabledValidation::kIgnoreStorageClass)});
// Assign 1.0 to the global at the start of all vertex shader entry points.
ctx.ReplaceAll([&ctx, pointsize](ast::Function* func) -> ast::Function* {
if (func->pipeline_stage() == ast::PipelineStage::kVertex) {
ctx.InsertFront(func->body()->statements(),
ctx.dst->Assign(pointsize, 1.0f));
}
return nullptr;
});
}
void Spirv::AddEmptyEntryPoint(CloneContext& ctx) const {
for (auto* func : ctx.src->AST().Functions()) {
if (func->IsEntryPoint()) {
@ -310,125 +133,6 @@ void Spirv::AddEmptyEntryPoint(CloneContext& ctx) const {
ctx.dst->WorkgroupSize(1)});
}
Symbol Spirv::HoistToInputVariables(
CloneContext& ctx,
const ast::Function* func,
sem::Type* ty,
ast::Type* declared_ty,
const ast::DecorationList& decorations) const {
if (!ty->Is<sem::Struct>()) {
// Base case: create a global variable and return.
ast::DecorationList new_decorations =
RemoveDecorations(ctx, decorations, [](const ast::Decoration* deco) {
return !deco->IsAnyOf<
ast::BuiltinDecoration, ast::InterpolateDecoration,
ast::InvariantDecoration, ast::LocationDecoration>();
});
new_decorations.push_back(
ctx.dst->ASTNodes().Create<ast::DisableValidationDecoration>(
ctx.dst->ID(), ast::DisabledValidation::kIgnoreStorageClass));
if (ty->is_integer_scalar_or_vector() &&
ast::HasDecoration<ast::LocationDecoration>(new_decorations) &&
func->pipeline_stage() == ast::PipelineStage::kFragment) {
// Vulkan requires that integer user-defined fragment inputs are
// always decorated with `Flat`.
new_decorations.push_back(ctx.dst->Interpolate(
ast::InterpolationType::kFlat, ast::InterpolationSampling::kNone));
}
auto global_var_symbol = ctx.dst->Sym();
auto* global_var =
ctx.dst->Var(global_var_symbol, ctx.Clone(declared_ty),
ast::StorageClass::kInput, nullptr, new_decorations);
ctx.InsertBefore(ctx.src->AST().GlobalDeclarations(), func, global_var);
return global_var_symbol;
}
// Recurse into struct members and build the initializer list.
std::vector<Symbol> init_value_names;
auto* struct_ty = ty->As<sem::Struct>();
for (auto* member : struct_ty->Members()) {
auto member_var = HoistToInputVariables(
ctx, func, member->Type(), member->Declaration()->type(),
member->Declaration()->decorations());
init_value_names.emplace_back(member_var);
}
auto func_var_symbol = ctx.dst->Sym();
if (func->body()->empty()) {
// The return value should never get used.
return func_var_symbol;
}
ast::ExpressionList init_values;
for (auto name : init_value_names) {
init_values.push_back(ctx.dst->Expr(name));
}
// Create a function-scope variable for the struct.
auto* initializer = ctx.dst->Construct(ctx.Clone(declared_ty), init_values);
auto* func_var =
ctx.dst->Const(func_var_symbol, ctx.Clone(declared_ty), initializer);
ctx.InsertBefore(func->body()->statements(), *func->body()->begin(),
ctx.dst->WrapInStatement(func_var));
return func_var_symbol;
}
void Spirv::HoistToOutputVariables(CloneContext& ctx,
const ast::Function* func,
sem::Type* ty,
ast::Type* declared_ty,
const ast::DecorationList& decorations,
std::vector<Symbol> member_accesses,
Symbol store_value,
ast::StatementList& stores) const {
// Base case.
if (!ty->Is<sem::Struct>()) {
// Create a global variable.
ast::DecorationList new_decorations =
RemoveDecorations(ctx, decorations, [](const ast::Decoration* deco) {
return !deco->IsAnyOf<
ast::BuiltinDecoration, ast::InterpolateDecoration,
ast::InvariantDecoration, ast::LocationDecoration>();
});
new_decorations.push_back(
ctx.dst->ASTNodes().Create<ast::DisableValidationDecoration>(
ctx.dst->ID(), ast::DisabledValidation::kIgnoreStorageClass));
if (ty->is_integer_scalar_or_vector() &&
ast::HasDecoration<ast::LocationDecoration>(new_decorations) &&
func->pipeline_stage() == ast::PipelineStage::kVertex) {
// Vulkan requires that integer user-defined vertex outputs are
// always decorated with `Flat`.
new_decorations.push_back(ctx.dst->Interpolate(
ast::InterpolationType::kFlat, ast::InterpolationSampling::kNone));
}
auto global_var_symbol = ctx.dst->Sym();
auto* global_var =
ctx.dst->Var(global_var_symbol, ctx.Clone(declared_ty),
ast::StorageClass::kOutput, nullptr, new_decorations);
ctx.InsertBefore(ctx.src->AST().GlobalDeclarations(), func, global_var);
// Create the assignment instruction.
ast::Expression* rhs = ctx.dst->Expr(store_value);
for (auto member : member_accesses) {
rhs = ctx.dst->MemberAccessor(rhs, member);
}
stores.push_back(ctx.dst->Assign(ctx.dst->Expr(global_var_symbol), rhs));
return;
}
// Recurse into struct members.
auto* struct_ty = ty->As<sem::Struct>();
for (auto* member : struct_ty->Members()) {
member_accesses.push_back(ctx.Clone(member->Declaration()->symbol()));
HoistToOutputVariables(ctx, func, member->Type(),
member->Declaration()->type(),
member->Declaration()->decorations(),
member_accesses, store_value, stores);
member_accesses.pop_back();
}
}
Spirv::Config::Config(bool emit_vps, bool disable_wi)
: emit_vertex_point_size(emit_vps), disable_workgroup_init(disable_wi) {}

View File

@ -69,46 +69,10 @@ class Spirv : public Castable<Spirv, Transform> {
Output Run(const Program* program, const DataMap& data = {}) override;
private:
/// Hoist entry point parameters, return values, and struct members out to
/// global variables.
void HandleEntryPointIOTypes(CloneContext& ctx) const;
/// Change type of sample mask builtin variables to single element arrays.
void HandleSampleMaskBuiltins(CloneContext& ctx) const;
/// Add a PointSize builtin output to the module and set it to 1.0 from all
/// vertex stage entry points.
void EmitVertexPointSize(CloneContext& ctx) const;
/// Add an empty shader entry point if none exist in the module.
void AddEmptyEntryPoint(CloneContext& ctx) const;
/// Recursively create module-scope input variables for `ty` and add
/// function-scope variables for structs to `func`.
///
/// For non-structures, create a module-scope input variable.
/// For structures, recurse into members and then create a function-scope
/// variable initialized using the variables created for its members.
/// Return the symbol for the variable that was created.
Symbol HoistToInputVariables(CloneContext& ctx,
const ast::Function* func,
sem::Type* ty,
ast::Type* declared_ty,
const ast::DecorationList& decorations) const;
/// Recursively create module-scope output variables for `ty` and build a list
/// of assignment instructions to write to them from `store_value`.
///
/// For non-structures, create a module-scope output variable and generate the
/// assignment instruction.
/// For structures, recurse into members, tracking the chain of member
/// accessors.
/// Returns the list of variable assignments in `stores`.
void HoistToOutputVariables(CloneContext& ctx,
const ast::Function* func,
sem::Type* ty,
ast::Type* declared_ty,
const ast::DecorationList& decorations,
std::vector<Symbol> member_accesses,
Symbol store_value,
ast::StatementList& stores) const;
};
} // namespace transform

View File

@ -22,738 +22,6 @@ namespace {
using SpirvTest = TransformTest;
TEST_F(SpirvTest, HandleEntryPointIOTypes_Parameters) {
auto* src = R"(
[[stage(fragment)]]
fn frag_main([[builtin(position)]] coord : vec4<f32>,
[[location(1)]] loc1 : f32) {
var col : f32 = (coord.x * loc1);
}
[[stage(compute), workgroup_size(8, 1, 1)]]
fn compute_main([[builtin(local_invocation_id)]] local_id : vec3<u32>,
[[builtin(local_invocation_index)]] local_index : u32) {
var id_x : u32 = local_id.x;
}
)";
auto* expect = R"(
[[builtin(position), internal(disable_validation__ignore_storage_class)]] var<in> tint_symbol : vec4<f32>;
[[location(1), internal(disable_validation__ignore_storage_class)]] var<in> tint_symbol_1 : f32;
[[stage(fragment)]]
fn frag_main() {
var col : f32 = (tint_symbol.x * tint_symbol_1);
}
[[builtin(local_invocation_id), internal(disable_validation__ignore_storage_class)]] var<in> tint_symbol_2 : vec3<u32>;
[[builtin(local_invocation_index), internal(disable_validation__ignore_storage_class)]] var<in> tint_symbol_3 : u32;
[[stage(compute), workgroup_size(8, 1, 1)]]
fn compute_main() {
var id_x : u32 = tint_symbol_2.x;
}
)";
auto got = Run<Spirv>(src);
EXPECT_EQ(expect, str(got));
}
TEST_F(SpirvTest, HandleEntryPointIOTypes_Parameter_TypeAlias) {
auto* src = R"(
type myf32 = f32;
[[stage(fragment)]]
fn frag_main([[location(1)]] loc1 : myf32) {
}
)";
auto* expect = R"(
type myf32 = f32;
[[location(1), internal(disable_validation__ignore_storage_class)]] var<in> tint_symbol : myf32;
[[stage(fragment)]]
fn frag_main() {
}
)";
auto got = Run<Spirv>(src);
EXPECT_EQ(expect, str(got));
}
TEST_F(SpirvTest, HandleEntryPointIOTypes_ReturnBuiltin) {
auto* src = R"(
[[stage(vertex)]]
fn vert_main() -> [[builtin(position)]] vec4<f32> {
return vec4<f32>(1.0, 2.0, 3.0, 0.0);
}
)";
auto* expect = R"(
[[builtin(position), internal(disable_validation__ignore_storage_class)]] var<out> tint_symbol_1 : vec4<f32>;
fn tint_symbol_2(tint_symbol : vec4<f32>) {
tint_symbol_1 = tint_symbol;
}
[[stage(vertex)]]
fn vert_main() {
tint_symbol_2(vec4<f32>(1.0, 2.0, 3.0, 0.0));
return;
}
)";
auto got = Run<Spirv>(src);
EXPECT_EQ(expect, str(got));
}
TEST_F(SpirvTest, HandleEntryPointIOTypes_ReturnLocation) {
auto* src = R"(
[[stage(fragment)]]
fn frag_main([[location(0)]] loc_in : u32) -> [[location(0)]] f32 {
if (loc_in > 10u) {
return 0.5;
}
return 1.0;
}
)";
auto* expect = R"(
[[location(0), internal(disable_validation__ignore_storage_class), interpolate(flat)]] var<in> tint_symbol : u32;
[[location(0), internal(disable_validation__ignore_storage_class)]] var<out> tint_symbol_2 : f32;
fn tint_symbol_3(tint_symbol_1 : f32) {
tint_symbol_2 = tint_symbol_1;
}
[[stage(fragment)]]
fn frag_main() {
if ((tint_symbol > 10u)) {
tint_symbol_3(0.5);
return;
}
tint_symbol_3(1.0);
return;
}
)";
auto got = Run<Spirv>(src);
EXPECT_EQ(expect, str(got));
}
TEST_F(SpirvTest, HandleEntryPointIOTypes_ReturnLocation_TypeAlias) {
auto* src = R"(
type myf32 = f32;
[[stage(fragment)]]
fn frag_main([[location(0)]] loc_in : u32) -> [[location(0)]] myf32 {
if (loc_in > 10u) {
return 0.5;
}
return 1.0;
}
)";
auto* expect = R"(
type myf32 = f32;
[[location(0), internal(disable_validation__ignore_storage_class), interpolate(flat)]] var<in> tint_symbol : u32;
[[location(0), internal(disable_validation__ignore_storage_class)]] var<out> tint_symbol_2 : myf32;
fn tint_symbol_3(tint_symbol_1 : myf32) {
tint_symbol_2 = tint_symbol_1;
}
[[stage(fragment)]]
fn frag_main() {
if ((tint_symbol > 10u)) {
tint_symbol_3(0.5);
return;
}
tint_symbol_3(1.0);
return;
}
)";
auto got = Run<Spirv>(src);
EXPECT_EQ(expect, str(got));
}
TEST_F(SpirvTest, HandleEntryPointIOTypes_StructParameters) {
auto* src = R"(
struct FragmentInput {
[[builtin(position)]] coord : vec4<f32>;
[[location(1)]] value : f32;
};
[[stage(fragment)]]
fn frag_main(inputs : FragmentInput) {
var col : f32 = inputs.coord.x * inputs.value;
}
)";
auto* expect = R"(
struct FragmentInput {
coord : vec4<f32>;
value : f32;
};
[[builtin(position), internal(disable_validation__ignore_storage_class)]] var<in> tint_symbol : vec4<f32>;
[[location(1), internal(disable_validation__ignore_storage_class)]] var<in> tint_symbol_1 : f32;
[[stage(fragment)]]
fn frag_main() {
let tint_symbol_2 : FragmentInput = FragmentInput(tint_symbol, tint_symbol_1);
var col : f32 = (tint_symbol_2.coord.x * tint_symbol_2.value);
}
)";
auto got = Run<Spirv>(src);
EXPECT_EQ(expect, str(got));
}
TEST_F(SpirvTest, HandleEntryPointIOTypes_StructParameters_EmptyBody) {
auto* src = R"(
struct FragmentInput {
[[location(1)]] value : f32;
};
[[stage(fragment)]]
fn frag_main(inputs : FragmentInput) {
}
)";
auto* expect = R"(
struct FragmentInput {
value : f32;
};
[[location(1), internal(disable_validation__ignore_storage_class)]] var<in> tint_symbol : f32;
[[stage(fragment)]]
fn frag_main() {
}
)";
auto got = Run<Spirv>(src);
EXPECT_EQ(expect, str(got));
}
TEST_F(SpirvTest, HandleEntryPointIOTypes_ReturnStruct) {
auto* src = R"(
struct VertexOutput {
[[builtin(position)]] pos : vec4<f32>;
[[location(1)]] value : f32;
};
[[stage(vertex)]]
fn vert_main() -> VertexOutput {
if (false) {
return VertexOutput();
}
var pos : vec4<f32> = vec4<f32>(1.0, 2.0, 3.0, 0.0);
return VertexOutput(pos, 2.0);
}
)";
auto* expect = R"(
struct VertexOutput {
pos : vec4<f32>;
value : f32;
};
[[builtin(position), internal(disable_validation__ignore_storage_class)]] var<out> tint_symbol_1 : vec4<f32>;
[[location(1), internal(disable_validation__ignore_storage_class)]] var<out> tint_symbol_2 : f32;
fn tint_symbol_3(tint_symbol : VertexOutput) {
tint_symbol_1 = tint_symbol.pos;
tint_symbol_2 = tint_symbol.value;
}
[[stage(vertex)]]
fn vert_main() {
if (false) {
tint_symbol_3(VertexOutput());
return;
}
var pos : vec4<f32> = vec4<f32>(1.0, 2.0, 3.0, 0.0);
tint_symbol_3(VertexOutput(pos, 2.0));
return;
}
)";
auto got = Run<Spirv>(src);
EXPECT_EQ(expect, str(got));
}
TEST_F(SpirvTest, HandleEntryPointIOTypes_SharedStruct_SameShader) {
auto* src = R"(
struct Interface {
[[location(1)]] value : f32;
};
[[stage(fragment)]]
fn frag_main(inputs : Interface) -> Interface {
return inputs;
}
)";
auto* expect = R"(
struct Interface {
value : f32;
};
[[location(1), internal(disable_validation__ignore_storage_class)]] var<in> tint_symbol : f32;
[[location(1), internal(disable_validation__ignore_storage_class)]] var<out> tint_symbol_3 : f32;
fn tint_symbol_4(tint_symbol_2 : Interface) {
tint_symbol_3 = tint_symbol_2.value;
}
[[stage(fragment)]]
fn frag_main() {
let tint_symbol_1 : Interface = Interface(tint_symbol);
tint_symbol_4(tint_symbol_1);
return;
}
)";
auto got = Run<Spirv>(src);
EXPECT_EQ(expect, str(got));
}
TEST_F(SpirvTest, HandleEntryPointIOTypes_SharedStruct_DifferentShaders) {
auto* src = R"(
struct Interface {
[[builtin(position)]] pos : vec4<f32>;
[[location(1)]] value : f32;
};
[[stage(vertex)]]
fn vert_main() -> Interface {
return Interface(vec4<f32>(), 42.0);
}
[[stage(fragment)]]
fn frag_main(inputs : Interface) {
var x : f32 = inputs.value;
}
)";
auto* expect = R"(
struct Interface {
pos : vec4<f32>;
value : f32;
};
[[builtin(position), internal(disable_validation__ignore_storage_class)]] var<out> tint_symbol_1 : vec4<f32>;
[[location(1), internal(disable_validation__ignore_storage_class)]] var<out> tint_symbol_2 : f32;
fn tint_symbol_3(tint_symbol : Interface) {
tint_symbol_1 = tint_symbol.pos;
tint_symbol_2 = tint_symbol.value;
}
[[stage(vertex)]]
fn vert_main() {
tint_symbol_3(Interface(vec4<f32>(), 42.0));
return;
}
[[builtin(position), internal(disable_validation__ignore_storage_class)]] var<in> tint_symbol_4 : vec4<f32>;
[[location(1), internal(disable_validation__ignore_storage_class)]] var<in> tint_symbol_5 : f32;
[[stage(fragment)]]
fn frag_main() {
let tint_symbol_6 : Interface = Interface(tint_symbol_4, tint_symbol_5);
var x : f32 = tint_symbol_6.value;
}
)";
auto got = Run<Spirv>(src);
EXPECT_EQ(expect, str(got));
}
TEST_F(SpirvTest, HandleEntryPointIOTypes_InterpolateAttributes) {
auto* src = R"(
struct VertexOut {
[[builtin(position)]] pos : vec4<f32>;
[[location(1), interpolate(flat)]] loc1: f32;
[[location(2), interpolate(linear, sample)]] loc2 : f32;
[[location(3), interpolate(perspective, centroid)]] loc3 : f32;
};
struct FragmentIn {
[[location(1), interpolate(flat)]] loc1: f32;
[[location(2), interpolate(linear, sample)]] loc2 : f32;
};
[[stage(vertex)]]
fn vert_main() -> VertexOut {
return VertexOut();
}
[[stage(fragment)]]
fn frag_main(inputs : FragmentIn,
[[location(3), interpolate(perspective, centroid)]] loc3 : f32) {
let x = inputs.loc1 + inputs.loc2 + loc3;
}
)";
auto* expect = R"(
struct VertexOut {
pos : vec4<f32>;
loc1 : f32;
loc2 : f32;
loc3 : f32;
};
struct FragmentIn {
loc1 : f32;
loc2 : f32;
};
[[builtin(position), internal(disable_validation__ignore_storage_class)]] var<out> tint_symbol_1 : vec4<f32>;
[[location(1), interpolate(flat), internal(disable_validation__ignore_storage_class)]] var<out> tint_symbol_2 : f32;
[[location(2), interpolate(linear, sample), internal(disable_validation__ignore_storage_class)]] var<out> tint_symbol_3 : f32;
[[location(3), interpolate(perspective, centroid), internal(disable_validation__ignore_storage_class)]] var<out> tint_symbol_4 : f32;
fn tint_symbol_5(tint_symbol : VertexOut) {
tint_symbol_1 = tint_symbol.pos;
tint_symbol_2 = tint_symbol.loc1;
tint_symbol_3 = tint_symbol.loc2;
tint_symbol_4 = tint_symbol.loc3;
}
[[stage(vertex)]]
fn vert_main() {
tint_symbol_5(VertexOut());
return;
}
[[location(1), interpolate(flat), internal(disable_validation__ignore_storage_class)]] var<in> tint_symbol_6 : f32;
[[location(2), interpolate(linear, sample), internal(disable_validation__ignore_storage_class)]] var<in> tint_symbol_7 : f32;
[[location(3), interpolate(perspective, centroid), internal(disable_validation__ignore_storage_class)]] var<in> tint_symbol_9 : f32;
[[stage(fragment)]]
fn frag_main() {
let tint_symbol_8 : FragmentIn = FragmentIn(tint_symbol_6, tint_symbol_7);
let x = ((tint_symbol_8.loc1 + tint_symbol_8.loc2) + tint_symbol_9);
}
)";
auto got = Run<Spirv>(src);
EXPECT_EQ(expect, str(got));
}
TEST_F(SpirvTest, HandleEntryPointIOTypes_InterpolateAttributes_Integers) {
// Test that we add a Flat attribute to integers that are vertex outputs and
// fragment inputs, but not vertex inputs or fragment outputs.
auto* src = R"(
struct VertexIn {
[[location(0)]] i : i32;
[[location(1)]] u : u32;
[[location(2)]] vi : vec4<i32>;
[[location(3)]] vu : vec4<u32>;
};
struct VertexOut {
[[location(0)]] i : i32;
[[location(1)]] u : u32;
[[location(2)]] vi : vec4<i32>;
[[location(3)]] vu : vec4<u32>;
[[builtin(position)]] pos : vec4<f32>;
};
struct FragmentInterface {
[[location(0)]] i : i32;
[[location(1)]] u : u32;
[[location(2)]] vi : vec4<i32>;
[[location(3)]] vu : vec4<u32>;
};
[[stage(vertex)]]
fn vert_main(in : VertexIn) -> VertexOut {
return VertexOut(in.i, in.u, in.vi, in.vu, vec4<f32>());
}
[[stage(fragment)]]
fn frag_main(inputs : FragmentInterface) -> FragmentInterface {
return inputs;
}
)";
auto* expect = R"(
struct VertexIn {
i : i32;
u : u32;
vi : vec4<i32>;
vu : vec4<u32>;
};
struct VertexOut {
i : i32;
u : u32;
vi : vec4<i32>;
vu : vec4<u32>;
pos : vec4<f32>;
};
struct FragmentInterface {
i : i32;
u : u32;
vi : vec4<i32>;
vu : vec4<u32>;
};
[[location(0), internal(disable_validation__ignore_storage_class)]] var<in> tint_symbol : i32;
[[location(1), internal(disable_validation__ignore_storage_class)]] var<in> tint_symbol_1 : u32;
[[location(2), internal(disable_validation__ignore_storage_class)]] var<in> tint_symbol_2 : vec4<i32>;
[[location(3), internal(disable_validation__ignore_storage_class)]] var<in> tint_symbol_3 : vec4<u32>;
[[location(0), internal(disable_validation__ignore_storage_class), interpolate(flat)]] var<out> tint_symbol_6 : i32;
[[location(1), internal(disable_validation__ignore_storage_class), interpolate(flat)]] var<out> tint_symbol_7 : u32;
[[location(2), internal(disable_validation__ignore_storage_class), interpolate(flat)]] var<out> tint_symbol_8 : vec4<i32>;
[[location(3), internal(disable_validation__ignore_storage_class), interpolate(flat)]] var<out> tint_symbol_9 : vec4<u32>;
[[builtin(position), internal(disable_validation__ignore_storage_class)]] var<out> tint_symbol_10 : vec4<f32>;
fn tint_symbol_11(tint_symbol_5 : VertexOut) {
tint_symbol_6 = tint_symbol_5.i;
tint_symbol_7 = tint_symbol_5.u;
tint_symbol_8 = tint_symbol_5.vi;
tint_symbol_9 = tint_symbol_5.vu;
tint_symbol_10 = tint_symbol_5.pos;
}
[[stage(vertex)]]
fn vert_main() {
let tint_symbol_4 : VertexIn = VertexIn(tint_symbol, tint_symbol_1, tint_symbol_2, tint_symbol_3);
tint_symbol_11(VertexOut(tint_symbol_4.i, tint_symbol_4.u, tint_symbol_4.vi, tint_symbol_4.vu, vec4<f32>()));
return;
}
[[location(0), internal(disable_validation__ignore_storage_class), interpolate(flat)]] var<in> tint_symbol_12 : i32;
[[location(1), internal(disable_validation__ignore_storage_class), interpolate(flat)]] var<in> tint_symbol_13 : u32;
[[location(2), internal(disable_validation__ignore_storage_class), interpolate(flat)]] var<in> tint_symbol_14 : vec4<i32>;
[[location(3), internal(disable_validation__ignore_storage_class), interpolate(flat)]] var<in> tint_symbol_15 : vec4<u32>;
[[location(0), internal(disable_validation__ignore_storage_class)]] var<out> tint_symbol_18 : i32;
[[location(1), internal(disable_validation__ignore_storage_class)]] var<out> tint_symbol_19 : u32;
[[location(2), internal(disable_validation__ignore_storage_class)]] var<out> tint_symbol_20 : vec4<i32>;
[[location(3), internal(disable_validation__ignore_storage_class)]] var<out> tint_symbol_21 : vec4<u32>;
fn tint_symbol_22(tint_symbol_17 : FragmentInterface) {
tint_symbol_18 = tint_symbol_17.i;
tint_symbol_19 = tint_symbol_17.u;
tint_symbol_20 = tint_symbol_17.vi;
tint_symbol_21 = tint_symbol_17.vu;
}
[[stage(fragment)]]
fn frag_main() {
let tint_symbol_16 : FragmentInterface = FragmentInterface(tint_symbol_12, tint_symbol_13, tint_symbol_14, tint_symbol_15);
tint_symbol_22(tint_symbol_16);
return;
}
)";
auto got = Run<Spirv>(src);
EXPECT_EQ(expect, str(got));
}
TEST_F(SpirvTest, HandleEntryPointIOTypes_InvariantAttributes) {
auto* src = R"(
struct VertexOut {
[[builtin(position), invariant]] pos : vec4<f32>;
};
[[stage(vertex)]]
fn main1() -> VertexOut {
return VertexOut();
}
[[stage(vertex)]]
fn main2() -> [[builtin(position), invariant]] vec4<f32> {
return vec4<f32>();
}
)";
auto* expect = R"(
struct VertexOut {
pos : vec4<f32>;
};
[[builtin(position), invariant, internal(disable_validation__ignore_storage_class)]] var<out> tint_symbol_1 : vec4<f32>;
fn tint_symbol_2(tint_symbol : VertexOut) {
tint_symbol_1 = tint_symbol.pos;
}
[[stage(vertex)]]
fn main1() {
tint_symbol_2(VertexOut());
return;
}
[[builtin(position), invariant, internal(disable_validation__ignore_storage_class)]] var<out> tint_symbol_4 : vec4<f32>;
fn tint_symbol_5(tint_symbol_3 : vec4<f32>) {
tint_symbol_4 = tint_symbol_3;
}
[[stage(vertex)]]
fn main2() {
tint_symbol_5(vec4<f32>());
return;
}
)";
auto got = Run<Spirv>(src);
EXPECT_EQ(expect, str(got));
}
TEST_F(SpirvTest, HandleEntryPointIOTypes_StructLayoutDecorations) {
auto* src = R"(
[[block]]
struct FragmentInput {
[[size(16), location(1)]] value : f32;
[[builtin(position)]] [[align(32)]] coord : vec4<f32>;
[[location(0), interpolate(linear, sample)]] [[align(128)]] loc0 : f32;
};
struct FragmentOutput {
[[size(16), location(1), interpolate(flat)]] value : f32;
};
[[stage(fragment)]]
fn frag_main(inputs : FragmentInput) -> FragmentOutput {
return FragmentOutput(inputs.coord.x * inputs.value + inputs.loc0);
}
)";
auto* expect = R"(
[[block]]
struct FragmentInput {
[[size(16)]]
value : f32;
[[align(32)]]
coord : vec4<f32>;
[[align(128)]]
loc0 : f32;
};
struct FragmentOutput {
[[size(16)]]
value : f32;
};
[[location(1), internal(disable_validation__ignore_storage_class)]] var<in> tint_symbol : f32;
[[builtin(position), internal(disable_validation__ignore_storage_class)]] var<in> tint_symbol_1 : vec4<f32>;
[[location(0), interpolate(linear, sample), internal(disable_validation__ignore_storage_class)]] var<in> tint_symbol_2 : f32;
[[location(1), interpolate(flat), internal(disable_validation__ignore_storage_class)]] var<out> tint_symbol_5 : f32;
fn tint_symbol_6(tint_symbol_4 : FragmentOutput) {
tint_symbol_5 = tint_symbol_4.value;
}
[[stage(fragment)]]
fn frag_main() {
let tint_symbol_3 : FragmentInput = FragmentInput(tint_symbol, tint_symbol_1, tint_symbol_2);
tint_symbol_6(FragmentOutput(((tint_symbol_3.coord.x * tint_symbol_3.value) + tint_symbol_3.loc0)));
return;
}
)";
auto got = Run<Spirv>(src);
EXPECT_EQ(expect, str(got));
}
TEST_F(SpirvTest, HandleEntryPointIOTypes_WithPrivateGlobalVariable) {
// Test with a global variable to ensure that symbols are cloned correctly.
// crbug.com/tint/701
auto* src = R"(
var<private> x : f32;
struct VertexOutput {
[[builtin(position)]] Position : vec4<f32>;
};
[[stage(vertex)]]
fn main() -> VertexOutput {
return VertexOutput(vec4<f32>());
}
)";
auto* expect = R"(
var<private> x : f32;
struct VertexOutput {
Position : vec4<f32>;
};
[[builtin(position), internal(disable_validation__ignore_storage_class)]] var<out> tint_symbol_1 : vec4<f32>;
fn tint_symbol_2(tint_symbol : VertexOutput) {
tint_symbol_1 = tint_symbol.Position;
}
[[stage(vertex)]]
fn main() {
tint_symbol_2(VertexOutput(vec4<f32>()));
return;
}
)";
auto got = Run<Spirv>(src);
EXPECT_EQ(expect, str(got));
}
TEST_F(SpirvTest, HandleSampleMaskBuiltins_Basic) {
auto* src = R"(
[[stage(fragment)]]
@ -765,20 +33,20 @@ fn main([[builtin(sample_index)]] sample_index : u32,
)";
auto* expect = R"(
[[builtin(sample_index), internal(disable_validation__ignore_storage_class)]] var<in> tint_symbol : u32;
[[builtin(sample_index), internal(disable_validation__ignore_storage_class)]] var<in> sample_index_1 : u32;
[[builtin(sample_mask), internal(disable_validation__ignore_storage_class)]] var<in> tint_symbol_1 : array<u32, 1>;
[[builtin(sample_mask), internal(disable_validation__ignore_storage_class)]] var<in> mask_in_1 : array<u32, 1>;
[[builtin(sample_mask), internal(disable_validation__ignore_storage_class)]] var<out> tint_symbol_3 : array<u32, 1>;
[[builtin(sample_mask), internal(disable_validation__ignore_storage_class)]] var<out> value : array<u32, 1>;
fn tint_symbol_4(tint_symbol_2 : u32) {
tint_symbol_3[0] = tint_symbol_2;
fn main_inner(sample_index : u32, mask_in : u32) -> u32 {
return mask_in;
}
[[stage(fragment)]]
fn main() {
tint_symbol_4(tint_symbol_1[0]);
return;
let inner_result = main_inner(sample_index_1, mask_in_1[0]);
value[0] = inner_result;
}
)";
@ -805,6 +73,10 @@ fn main([[builtin(sample_mask)]] mask_in : u32
)";
auto* expect = R"(
[[builtin(sample_mask), internal(disable_validation__ignore_storage_class)]] var<in> mask_in_1 : array<u32, 1>;
[[builtin(sample_mask), internal(disable_validation__ignore_storage_class)]] var<out> value : array<u32, 1>;
fn filter(mask : u32) -> u32 {
return (mask & 3u);
}
@ -813,18 +85,14 @@ fn set_mask(input : u32) -> u32 {
return input;
}
[[builtin(sample_mask), internal(disable_validation__ignore_storage_class)]] var<in> tint_symbol : array<u32, 1>;
[[builtin(sample_mask), internal(disable_validation__ignore_storage_class)]] var<out> tint_symbol_2 : array<u32, 1>;
fn tint_symbol_3(tint_symbol_1 : u32) {
tint_symbol_2[0] = tint_symbol_1;
fn main_inner(mask_in : u32) -> u32 {
return set_mask(filter(mask_in));
}
[[stage(fragment)]]
fn main() {
tint_symbol_3(set_mask(filter(tint_symbol[0])));
return;
let inner_result = main_inner(mask_in_1[0]);
value[0] = inner_result;
}
)";
@ -833,128 +101,6 @@ fn main() {
EXPECT_EQ(expect, str(got));
}
TEST_F(SpirvTest, EmitVertexPointSize_Basic) {
auto* src = R"(
fn non_entry_point() {
}
[[stage(vertex)]]
fn main() -> [[builtin(position)]] vec4<f32> {
non_entry_point();
return vec4<f32>();
}
)";
auto* expect = R"(
[[builtin(pointsize), internal(disable_validation__ignore_storage_class)]] var<out> tint_pointsize : f32;
fn non_entry_point() {
}
[[builtin(position), internal(disable_validation__ignore_storage_class)]] var<out> tint_symbol_1 : vec4<f32>;
fn tint_symbol_2(tint_symbol : vec4<f32>) {
tint_symbol_1 = tint_symbol;
}
[[stage(vertex)]]
fn main() {
tint_pointsize = 1.0;
non_entry_point();
tint_symbol_2(vec4<f32>());
return;
}
)";
DataMap data;
data.Add<Spirv::Config>(true);
auto got = Run<Spirv>(src, data);
EXPECT_EQ(expect, str(got));
}
TEST_F(SpirvTest, EmitVertexPointSize_MultipleVertexShaders) {
auto* src = R"(
[[stage(vertex)]]
fn main1() -> [[builtin(position)]] vec4<f32> {
return vec4<f32>();
}
[[stage(vertex)]]
fn main2() -> [[builtin(position)]] vec4<f32> {
return vec4<f32>();
}
[[stage(vertex)]]
fn main3() -> [[builtin(position)]] vec4<f32> {
return vec4<f32>();
}
)";
auto* expect = R"(
[[builtin(pointsize), internal(disable_validation__ignore_storage_class)]] var<out> tint_pointsize : f32;
[[builtin(position), internal(disable_validation__ignore_storage_class)]] var<out> tint_symbol_1 : vec4<f32>;
fn tint_symbol_2(tint_symbol : vec4<f32>) {
tint_symbol_1 = tint_symbol;
}
[[stage(vertex)]]
fn main1() {
tint_pointsize = 1.0;
tint_symbol_2(vec4<f32>());
return;
}
[[builtin(position), internal(disable_validation__ignore_storage_class)]] var<out> tint_symbol_4 : vec4<f32>;
fn tint_symbol_5(tint_symbol_3 : vec4<f32>) {
tint_symbol_4 = tint_symbol_3;
}
[[stage(vertex)]]
fn main2() {
tint_pointsize = 1.0;
tint_symbol_5(vec4<f32>());
return;
}
[[builtin(position), internal(disable_validation__ignore_storage_class)]] var<out> tint_symbol_7 : vec4<f32>;
fn tint_symbol_8(tint_symbol_6 : vec4<f32>) {
tint_symbol_7 = tint_symbol_6;
}
[[stage(vertex)]]
fn main3() {
tint_pointsize = 1.0;
tint_symbol_8(vec4<f32>());
return;
}
)";
DataMap data;
data.Add<Spirv::Config>(true);
auto got = Run<Spirv>(src, data);
EXPECT_EQ(expect, str(got));
}
TEST_F(SpirvTest, EmitVertexPointSize_NoVertexShaders) {
auto* src = R"(
[[stage(compute), workgroup_size(8, 1, 1)]]
fn main() {
}
)";
DataMap data;
data.Add<Spirv::Config>(true);
auto got = Run<Spirv>(src, data);
EXPECT_EQ(src, str(got));
}
TEST_F(SpirvTest, AddEmptyEntryPoint) {
auto* src = R"()";
@ -986,35 +132,35 @@ fn frag_main([[builtin(sample_index)]] sample_index : u32,
)";
auto* expect = R"(
[[builtin(pointsize), internal(disable_validation__ignore_storage_class)]] var<out> tint_pointsize : f32;
[[builtin(position), internal(disable_validation__ignore_storage_class)]] var<out> value : vec4<f32>;
[[builtin(position), internal(disable_validation__ignore_storage_class)]] var<out> tint_symbol_1 : vec4<f32>;
[[builtin(pointsize), internal(disable_validation__ignore_storage_class)]] var<out> vertex_point_size : f32;
fn tint_symbol_2(tint_symbol : vec4<f32>) {
tint_symbol_1 = tint_symbol;
[[builtin(sample_index), internal(disable_validation__ignore_storage_class)]] var<in> sample_index_1 : u32;
[[builtin(sample_mask), internal(disable_validation__ignore_storage_class)]] var<in> mask_in_1 : array<u32, 1>;
[[builtin(sample_mask), internal(disable_validation__ignore_storage_class)]] var<out> value_1 : array<u32, 1>;
fn vert_main_inner() -> vec4<f32> {
return vec4<f32>();
}
[[stage(vertex)]]
fn vert_main() {
tint_pointsize = 1.0;
tint_symbol_2(vec4<f32>());
return;
let inner_result = vert_main_inner();
value = inner_result;
vertex_point_size = 1.0;
}
[[builtin(sample_index), internal(disable_validation__ignore_storage_class)]] var<in> tint_symbol_3 : u32;
[[builtin(sample_mask), internal(disable_validation__ignore_storage_class)]] var<in> tint_symbol_4 : array<u32, 1>;
[[builtin(sample_mask), internal(disable_validation__ignore_storage_class)]] var<out> tint_symbol_6 : array<u32, 1>;
fn tint_symbol_7(tint_symbol_5 : u32) {
tint_symbol_6[0] = tint_symbol_5;
fn frag_main_inner(sample_index : u32, mask_in : u32) -> u32 {
return mask_in;
}
[[stage(fragment)]]
fn frag_main() {
tint_symbol_7(tint_symbol_4[0]);
return;
let inner_result_1 = frag_main_inner(sample_index_1, mask_in_1[0]);
value_1[0] = inner_result_1;
}
)";

View File

@ -61,12 +61,15 @@ TEST_F(BuilderTest, EntryPoint_Parameters) {
// Input storage class, retaining their decorations.
EXPECT_EQ(DumpBuilder(b), R"(OpCapability Shader
OpMemoryModel Logical GLSL450
OpEntryPoint Fragment %9 "frag_main" %1 %5
OpExecutionMode %9 OriginUpperLeft
OpName %1 "tint_symbol"
OpName %5 "tint_symbol_1"
OpName %9 "frag_main"
OpName %17 "col"
OpEntryPoint Fragment %19 "frag_main" %1 %5
OpExecutionMode %19 OriginUpperLeft
OpName %1 "coord_1"
OpName %5 "loc1_1"
OpName %9 "frag_main_inner"
OpName %10 "coord"
OpName %11 "loc1"
OpName %15 "col"
OpName %19 "frag_main"
OpDecorate %1 BuiltIn FragCoord
OpDecorate %5 Location 1
%4 = OpTypeFloat 32
@ -76,19 +79,25 @@ OpDecorate %5 Location 1
%6 = OpTypePointer Input %4
%5 = OpVariable %6 Input
%8 = OpTypeVoid
%7 = OpTypeFunction %8
%11 = OpTypeInt 32 0
%12 = OpConstant %11 0
%18 = OpTypePointer Function %4
%19 = OpConstantNull %4
%7 = OpTypeFunction %8 %3 %4
%16 = OpTypePointer Function %4
%17 = OpConstantNull %4
%18 = OpTypeFunction %8
%9 = OpFunction %8 None %7
%10 = OpLabel
%17 = OpVariable %18 Function %19
%13 = OpAccessChain %6 %1 %12
%14 = OpLoad %4 %13
%15 = OpLoad %4 %5
%16 = OpFMul %4 %14 %15
OpStore %17 %16
%10 = OpFunctionParameter %3
%11 = OpFunctionParameter %4
%12 = OpLabel
%15 = OpVariable %16 Function %17
%13 = OpCompositeExtract %4 %10 0
%14 = OpFMul %4 %13 %11
OpStore %15 %14
OpReturn
OpFunctionEnd
%19 = OpFunction %8 None %18
%20 = OpLabel
%22 = OpLoad %3 %1
%23 = OpLoad %4 %5
%21 = OpFunctionCall %8 %9 %22 %23
OpReturn
OpFunctionEnd
)");
@ -125,13 +134,13 @@ TEST_F(BuilderTest, EntryPoint_ReturnValue) {
// Output storage class, and the return statements are replaced with stores.
EXPECT_EQ(DumpBuilder(b), R"(OpCapability Shader
OpMemoryModel Logical GLSL450
OpEntryPoint Fragment %14 "frag_main" %1 %4
OpExecutionMode %14 OriginUpperLeft
OpName %1 "tint_symbol"
OpName %4 "tint_symbol_2"
OpName %10 "tint_symbol_3"
OpName %11 "tint_symbol_1"
OpName %14 "frag_main"
OpEntryPoint Fragment %21 "frag_main" %1 %4
OpExecutionMode %21 OriginUpperLeft
OpName %1 "loc_in_1"
OpName %4 "value"
OpName %9 "frag_main_inner"
OpName %10 "loc_in"
OpName %21 "frag_main"
OpDecorate %1 Location 0
OpDecorate %1 Flat
OpDecorate %4 Location 0
@ -142,30 +151,29 @@ OpDecorate %4 Location 0
%5 = OpTypePointer Output %6
%7 = OpConstantNull %6
%4 = OpVariable %5 Output %7
%9 = OpTypeVoid
%8 = OpTypeFunction %9 %6
%13 = OpTypeFunction %9
%17 = OpConstant %3 10
%19 = OpTypeBool
%23 = OpConstant %6 0.5
%25 = OpConstant %6 1
%10 = OpFunction %9 None %8
%11 = OpFunctionParameter %6
%12 = OpLabel
OpStore %4 %11
OpReturn
OpFunctionEnd
%14 = OpFunction %9 None %13
%8 = OpTypeFunction %6 %3
%12 = OpConstant %3 10
%14 = OpTypeBool
%17 = OpConstant %6 0.5
%18 = OpConstant %6 1
%20 = OpTypeVoid
%19 = OpTypeFunction %20
%9 = OpFunction %6 None %8
%10 = OpFunctionParameter %3
%11 = OpLabel
%13 = OpUGreaterThan %14 %10 %12
OpSelectionMerge %15 None
OpBranchConditional %13 %16 %15
%16 = OpLabel
OpReturnValue %17
%15 = OpLabel
%16 = OpLoad %3 %1
%18 = OpUGreaterThan %19 %16 %17
OpSelectionMerge %20 None
OpBranchConditional %18 %21 %20
%21 = OpLabel
%22 = OpFunctionCall %9 %10 %23
OpReturn
%20 = OpLabel
%24 = OpFunctionCall %9 %10 %25
OpReturnValue %18
OpFunctionEnd
%21 = OpFunction %20 None %19
%22 = OpLabel
%24 = OpLoad %3 %1
%23 = OpFunctionCall %6 %9 %24
OpStore %4 %23
OpReturn
OpFunctionEnd
)");
@ -214,31 +222,30 @@ TEST_F(BuilderTest, EntryPoint_SharedStruct) {
EXPECT_EQ(DumpBuilder(b), R"(OpCapability Shader
OpMemoryModel Logical GLSL450
OpEntryPoint Vertex %23 "vert_main" %1 %5
OpEntryPoint Vertex %22 "vert_main" %1 %5
OpEntryPoint Fragment %32 "frag_main" %9 %11 %13
OpExecutionMode %32 OriginUpperLeft
OpExecutionMode %32 DepthReplacing
OpName %1 "tint_symbol_1"
OpName %5 "tint_symbol_2"
OpName %9 "tint_symbol_4"
OpName %11 "tint_symbol_5"
OpName %13 "tint_symbol_8"
OpName %16 "Interface"
OpMemberName %16 0 "value"
OpMemberName %16 1 "pos"
OpName %17 "tint_symbol_3"
OpName %18 "tint_symbol"
OpName %23 "vert_main"
OpName %29 "tint_symbol_9"
OpName %30 "tint_symbol_7"
OpName %1 "value_1"
OpName %5 "pos_1"
OpName %9 "value_2"
OpName %11 "pos_2"
OpName %13 "value_3"
OpName %15 "Interface"
OpMemberName %15 0 "value"
OpMemberName %15 1 "pos"
OpName %16 "vert_main_inner"
OpName %22 "vert_main"
OpName %28 "frag_main_inner"
OpName %29 "inputs"
OpName %32 "frag_main"
OpDecorate %1 Location 1
OpDecorate %5 BuiltIn Position
OpDecorate %9 Location 1
OpDecorate %11 BuiltIn FragCoord
OpDecorate %13 BuiltIn FragDepth
OpMemberDecorate %16 0 Offset 0
OpMemberDecorate %16 1 Offset 16
OpMemberDecorate %15 0 Offset 0
OpMemberDecorate %15 1 Offset 16
%3 = OpTypeFloat 32
%2 = OpTypePointer Output %3
%4 = OpConstantNull %3
@ -252,40 +259,39 @@ OpMemberDecorate %16 1 Offset 16
%12 = OpTypePointer Input %7
%11 = OpVariable %12 Input
%13 = OpVariable %2 Output %4
%15 = OpTypeVoid
%16 = OpTypeStruct %3 %7
%14 = OpTypeFunction %15 %16
%22 = OpTypeFunction %15
%26 = OpConstant %3 42
%27 = OpConstantComposite %16 %26 %8
%28 = OpTypeFunction %15 %3
%17 = OpFunction %15 None %14
%18 = OpFunctionParameter %16
%19 = OpLabel
%20 = OpCompositeExtract %3 %18 0
OpStore %1 %20
%21 = OpCompositeExtract %7 %18 1
OpStore %5 %21
%15 = OpTypeStruct %3 %7
%14 = OpTypeFunction %15
%18 = OpConstant %3 42
%19 = OpConstantComposite %15 %18 %8
%21 = OpTypeVoid
%20 = OpTypeFunction %21
%27 = OpTypeFunction %3 %15
%16 = OpFunction %15 None %14
%17 = OpLabel
OpReturnValue %19
OpFunctionEnd
%22 = OpFunction %21 None %20
%23 = OpLabel
%24 = OpFunctionCall %15 %16
%25 = OpCompositeExtract %3 %24 0
OpStore %1 %25
%26 = OpCompositeExtract %7 %24 1
OpStore %5 %26
OpReturn
OpFunctionEnd
%23 = OpFunction %15 None %22
%24 = OpLabel
%25 = OpFunctionCall %15 %17 %27
OpReturn
%28 = OpFunction %3 None %27
%29 = OpFunctionParameter %15
%30 = OpLabel
%31 = OpCompositeExtract %3 %29 0
OpReturnValue %31
OpFunctionEnd
%29 = OpFunction %15 None %28
%30 = OpFunctionParameter %3
%31 = OpLabel
OpStore %13 %30
OpReturn
OpFunctionEnd
%32 = OpFunction %15 None %22
%32 = OpFunction %21 None %20
%33 = OpLabel
%34 = OpLoad %3 %9
%35 = OpLoad %7 %11
%36 = OpCompositeConstruct %16 %34 %35
%38 = OpCompositeExtract %3 %36 0
%37 = OpFunctionCall %15 %29 %38
%35 = OpLoad %3 %9
%36 = OpLoad %7 %11
%37 = OpCompositeConstruct %15 %35 %36
%34 = OpFunctionCall %3 %28 %37
OpStore %13 %34
OpReturn
OpFunctionEnd
)");

View File

@ -1,12 +1,13 @@
; SPIR-V
; Version: 1.3
; Generator: Google Tint Compiler; 0
; Bound: 68
; Bound: 65
; Schema: 0
OpCapability Shader
OpMemoryModel Logical GLSL450
OpEntryPoint GLCompute %main "main" %tint_symbol
OpEntryPoint GLCompute %main "main" %idx_1
OpExecutionMode %main LocalSize 1 1 1
OpName %idx_1 "idx_1"
OpName %S "S"
OpMemberName %S 0 "arr"
OpName %Inner "Inner"
@ -20,8 +21,10 @@
OpMemberName %Inner 7 "h"
OpMemberName %Inner 8 "i"
OpName %s "s"
OpName %tint_symbol "tint_symbol"
OpName %main_inner "main_inner"
OpName %idx "idx"
OpName %main "main"
OpDecorate %idx_1 BuiltIn LocalInvocationIndex
OpDecorate %S Block
OpMemberDecorate %S 0 Offset 0
OpMemberDecorate %Inner 0 Offset 0
@ -42,10 +45,11 @@
OpDecorate %s NonWritable
OpDecorate %s Binding 0
OpDecorate %s DescriptorSet 0
OpDecorate %tint_symbol BuiltIn LocalInvocationIndex
%uint = OpTypeInt 32 0
%_ptr_Input_uint = OpTypePointer Input %uint
%idx_1 = OpVariable %_ptr_Input_uint Input
%int = OpTypeInt 32 1
%v3int = OpTypeVector %int 3
%uint = OpTypeInt 32 0
%v3uint = OpTypeVector %uint 3
%float = OpTypeFloat 32
%v3float = OpTypeVector %float 3
@ -60,10 +64,8 @@
%S = OpTypeStruct %_runtimearr_Inner
%_ptr_StorageBuffer_S = OpTypePointer StorageBuffer %S
%s = OpVariable %_ptr_StorageBuffer_S StorageBuffer
%_ptr_Input_uint = OpTypePointer Input %uint
%tint_symbol = OpVariable %_ptr_Input_uint Input
%void = OpTypeVoid
%20 = OpTypeFunction %void
%20 = OpTypeFunction %void %uint
%uint_0 = OpConstant %uint 0
%_ptr_StorageBuffer_v3int = OpTypePointer StorageBuffer %v3int
%uint_1 = OpConstant %uint 1
@ -81,34 +83,33 @@
%_ptr_StorageBuffer_mat3v2float = OpTypePointer StorageBuffer %mat3v2float
%uint_8 = OpConstant %uint 8
%_ptr_StorageBuffer__arr_v4int_uint_4 = OpTypePointer StorageBuffer %_arr_v4int_uint_4
%main = OpFunction %void None %20
%23 = OpLabel
%25 = OpLoad %uint %tint_symbol
%27 = OpAccessChain %_ptr_StorageBuffer_v3int %s %uint_0 %25 %uint_0
%60 = OpTypeFunction %void
%main_inner = OpFunction %void None %20
%idx = OpFunctionParameter %uint
%24 = OpLabel
%27 = OpAccessChain %_ptr_StorageBuffer_v3int %s %uint_0 %idx %uint_0
%28 = OpLoad %v3int %27
%29 = OpLoad %uint %tint_symbol
%32 = OpAccessChain %_ptr_StorageBuffer_int %s %uint_0 %29 %uint_1
%33 = OpLoad %int %32
%34 = OpLoad %uint %tint_symbol
%37 = OpAccessChain %_ptr_StorageBuffer_v3uint %s %uint_0 %34 %uint_2
%38 = OpLoad %v3uint %37
%39 = OpLoad %uint %tint_symbol
%42 = OpAccessChain %_ptr_StorageBuffer_uint %s %uint_0 %39 %uint_3
%43 = OpLoad %uint %42
%44 = OpLoad %uint %tint_symbol
%46 = OpAccessChain %_ptr_StorageBuffer_v3float %s %uint_0 %44 %uint_4
%47 = OpLoad %v3float %46
%48 = OpLoad %uint %tint_symbol
%51 = OpAccessChain %_ptr_StorageBuffer_float %s %uint_0 %48 %uint_5
%52 = OpLoad %float %51
%53 = OpLoad %uint %tint_symbol
%56 = OpAccessChain %_ptr_StorageBuffer_mat2v3float %s %uint_0 %53 %uint_6
%57 = OpLoad %mat2v3float %56
%58 = OpLoad %uint %tint_symbol
%61 = OpAccessChain %_ptr_StorageBuffer_mat3v2float %s %uint_0 %58 %uint_7
%62 = OpLoad %mat3v2float %61
%63 = OpLoad %uint %tint_symbol
%66 = OpAccessChain %_ptr_StorageBuffer__arr_v4int_uint_4 %s %uint_0 %63 %uint_8
%67 = OpLoad %_arr_v4int_uint_4 %66
%31 = OpAccessChain %_ptr_StorageBuffer_int %s %uint_0 %idx %uint_1
%32 = OpLoad %int %31
%35 = OpAccessChain %_ptr_StorageBuffer_v3uint %s %uint_0 %idx %uint_2
%36 = OpLoad %v3uint %35
%39 = OpAccessChain %_ptr_StorageBuffer_uint %s %uint_0 %idx %uint_3
%40 = OpLoad %uint %39
%42 = OpAccessChain %_ptr_StorageBuffer_v3float %s %uint_0 %idx %uint_4
%43 = OpLoad %v3float %42
%46 = OpAccessChain %_ptr_StorageBuffer_float %s %uint_0 %idx %uint_5
%47 = OpLoad %float %46
%50 = OpAccessChain %_ptr_StorageBuffer_mat2v3float %s %uint_0 %idx %uint_6
%51 = OpLoad %mat2v3float %50
%54 = OpAccessChain %_ptr_StorageBuffer_mat3v2float %s %uint_0 %idx %uint_7
%55 = OpLoad %mat3v2float %54
%58 = OpAccessChain %_ptr_StorageBuffer__arr_v4int_uint_4 %s %uint_0 %idx %uint_8
%59 = OpLoad %_arr_v4int_uint_4 %58
OpReturn
OpFunctionEnd
%main = OpFunction %void None %60
%62 = OpLabel
%64 = OpLoad %uint %idx_1
%63 = OpFunctionCall %void %main_inner %64
OpReturn
OpFunctionEnd

View File

@ -1,12 +1,13 @@
; SPIR-V
; Version: 1.3
; Generator: Google Tint Compiler; 0
; Bound: 68
; Bound: 65
; Schema: 0
OpCapability Shader
OpMemoryModel Logical GLSL450
OpEntryPoint GLCompute %main "main" %tint_symbol
OpEntryPoint GLCompute %main "main" %idx_1
OpExecutionMode %main LocalSize 1 1 1
OpName %idx_1 "idx_1"
OpName %S "S"
OpMemberName %S 0 "arr"
OpName %Inner "Inner"
@ -20,8 +21,10 @@
OpMemberName %Inner 7 "h"
OpMemberName %Inner 8 "i"
OpName %s "s"
OpName %tint_symbol "tint_symbol"
OpName %main_inner "main_inner"
OpName %idx "idx"
OpName %main "main"
OpDecorate %idx_1 BuiltIn LocalInvocationIndex
OpDecorate %S Block
OpMemberDecorate %S 0 Offset 0
OpMemberDecorate %Inner 0 Offset 0
@ -41,10 +44,11 @@
OpDecorate %_runtimearr_Inner ArrayStride 176
OpDecorate %s Binding 0
OpDecorate %s DescriptorSet 0
OpDecorate %tint_symbol BuiltIn LocalInvocationIndex
%uint = OpTypeInt 32 0
%_ptr_Input_uint = OpTypePointer Input %uint
%idx_1 = OpVariable %_ptr_Input_uint Input
%int = OpTypeInt 32 1
%v3int = OpTypeVector %int 3
%uint = OpTypeInt 32 0
%v3uint = OpTypeVector %uint 3
%float = OpTypeFloat 32
%v3float = OpTypeVector %float 3
@ -59,64 +63,61 @@
%S = OpTypeStruct %_runtimearr_Inner
%_ptr_StorageBuffer_S = OpTypePointer StorageBuffer %S
%s = OpVariable %_ptr_StorageBuffer_S StorageBuffer
%_ptr_Input_uint = OpTypePointer Input %uint
%tint_symbol = OpVariable %_ptr_Input_uint Input
%void = OpTypeVoid
%20 = OpTypeFunction %void
%20 = OpTypeFunction %void %uint
%uint_0 = OpConstant %uint 0
%_ptr_StorageBuffer_v3int = OpTypePointer StorageBuffer %v3int
%28 = OpConstantNull %v3int
%uint_1 = OpConstant %uint 1
%_ptr_StorageBuffer_int = OpTypePointer StorageBuffer %int
%33 = OpConstantNull %int
%32 = OpConstantNull %int
%uint_2 = OpConstant %uint 2
%_ptr_StorageBuffer_v3uint = OpTypePointer StorageBuffer %v3uint
%38 = OpConstantNull %v3uint
%36 = OpConstantNull %v3uint
%uint_3 = OpConstant %uint 3
%_ptr_StorageBuffer_uint = OpTypePointer StorageBuffer %uint
%43 = OpConstantNull %uint
%40 = OpConstantNull %uint
%_ptr_StorageBuffer_v3float = OpTypePointer StorageBuffer %v3float
%47 = OpConstantNull %v3float
%43 = OpConstantNull %v3float
%uint_5 = OpConstant %uint 5
%_ptr_StorageBuffer_float = OpTypePointer StorageBuffer %float
%52 = OpConstantNull %float
%47 = OpConstantNull %float
%uint_6 = OpConstant %uint 6
%_ptr_StorageBuffer_mat2v3float = OpTypePointer StorageBuffer %mat2v3float
%57 = OpConstantNull %mat2v3float
%51 = OpConstantNull %mat2v3float
%uint_7 = OpConstant %uint 7
%_ptr_StorageBuffer_mat3v2float = OpTypePointer StorageBuffer %mat3v2float
%62 = OpConstantNull %mat3v2float
%55 = OpConstantNull %mat3v2float
%uint_8 = OpConstant %uint 8
%_ptr_StorageBuffer__arr_v4int_uint_4 = OpTypePointer StorageBuffer %_arr_v4int_uint_4
%67 = OpConstantNull %_arr_v4int_uint_4
%main = OpFunction %void None %20
%23 = OpLabel
%25 = OpLoad %uint %tint_symbol
%27 = OpAccessChain %_ptr_StorageBuffer_v3int %s %uint_0 %25 %uint_0
%59 = OpConstantNull %_arr_v4int_uint_4
%60 = OpTypeFunction %void
%main_inner = OpFunction %void None %20
%idx = OpFunctionParameter %uint
%24 = OpLabel
%27 = OpAccessChain %_ptr_StorageBuffer_v3int %s %uint_0 %idx %uint_0
OpStore %27 %28
%29 = OpLoad %uint %tint_symbol
%32 = OpAccessChain %_ptr_StorageBuffer_int %s %uint_0 %29 %uint_1
OpStore %32 %33
%34 = OpLoad %uint %tint_symbol
%37 = OpAccessChain %_ptr_StorageBuffer_v3uint %s %uint_0 %34 %uint_2
OpStore %37 %38
%39 = OpLoad %uint %tint_symbol
%42 = OpAccessChain %_ptr_StorageBuffer_uint %s %uint_0 %39 %uint_3
%31 = OpAccessChain %_ptr_StorageBuffer_int %s %uint_0 %idx %uint_1
OpStore %31 %32
%35 = OpAccessChain %_ptr_StorageBuffer_v3uint %s %uint_0 %idx %uint_2
OpStore %35 %36
%39 = OpAccessChain %_ptr_StorageBuffer_uint %s %uint_0 %idx %uint_3
OpStore %39 %40
%42 = OpAccessChain %_ptr_StorageBuffer_v3float %s %uint_0 %idx %uint_4
OpStore %42 %43
%44 = OpLoad %uint %tint_symbol
%46 = OpAccessChain %_ptr_StorageBuffer_v3float %s %uint_0 %44 %uint_4
%46 = OpAccessChain %_ptr_StorageBuffer_float %s %uint_0 %idx %uint_5
OpStore %46 %47
%48 = OpLoad %uint %tint_symbol
%51 = OpAccessChain %_ptr_StorageBuffer_float %s %uint_0 %48 %uint_5
OpStore %51 %52
%53 = OpLoad %uint %tint_symbol
%56 = OpAccessChain %_ptr_StorageBuffer_mat2v3float %s %uint_0 %53 %uint_6
OpStore %56 %57
%58 = OpLoad %uint %tint_symbol
%61 = OpAccessChain %_ptr_StorageBuffer_mat3v2float %s %uint_0 %58 %uint_7
OpStore %61 %62
%63 = OpLoad %uint %tint_symbol
%66 = OpAccessChain %_ptr_StorageBuffer__arr_v4int_uint_4 %s %uint_0 %63 %uint_8
OpStore %66 %67
%50 = OpAccessChain %_ptr_StorageBuffer_mat2v3float %s %uint_0 %idx %uint_6
OpStore %50 %51
%54 = OpAccessChain %_ptr_StorageBuffer_mat3v2float %s %uint_0 %idx %uint_7
OpStore %54 %55
%58 = OpAccessChain %_ptr_StorageBuffer__arr_v4int_uint_4 %s %uint_0 %idx %uint_8
OpStore %58 %59
OpReturn
OpFunctionEnd
%main = OpFunction %void None %60
%62 = OpLabel
%64 = OpLoad %uint %idx_1
%63 = OpFunctionCall %void %main_inner %64
OpReturn
OpFunctionEnd

View File

@ -1,12 +1,13 @@
; SPIR-V
; Version: 1.3
; Generator: Google Tint Compiler; 0
; Bound: 68
; Bound: 65
; Schema: 0
OpCapability Shader
OpMemoryModel Logical GLSL450
OpEntryPoint GLCompute %main "main" %tint_symbol
OpEntryPoint GLCompute %main "main" %idx_1
OpExecutionMode %main LocalSize 1 1 1
OpName %idx_1 "idx_1"
OpName %S "S"
OpMemberName %S 0 "arr"
OpName %Inner "Inner"
@ -22,8 +23,10 @@
OpMemberName %Inner 9 "j"
OpMemberName %Inner 10 "k"
OpName %s "s"
OpName %tint_symbol "tint_symbol"
OpName %main_inner "main_inner"
OpName %idx "idx"
OpName %main "main"
OpDecorate %idx_1 BuiltIn LocalInvocationIndex
OpDecorate %S Block
OpMemberDecorate %S 0 Offset 0
OpMemberDecorate %Inner 0 Offset 0
@ -46,10 +49,11 @@
OpDecorate %s NonWritable
OpDecorate %s Binding 0
OpDecorate %s DescriptorSet 0
OpDecorate %tint_symbol BuiltIn LocalInvocationIndex
%uint = OpTypeInt 32 0
%_ptr_Input_uint = OpTypePointer Input %uint
%idx_1 = OpVariable %_ptr_Input_uint Input
%int = OpTypeInt 32 1
%v3int = OpTypeVector %int 3
%uint = OpTypeInt 32 0
%v3uint = OpTypeVector %uint 3
%float = OpTypeFloat 32
%v3float = OpTypeVector %float 3
@ -66,10 +70,8 @@
%S = OpTypeStruct %_arr_Inner_uint_8
%_ptr_Uniform_S = OpTypePointer Uniform %S
%s = OpVariable %_ptr_Uniform_S Uniform
%_ptr_Input_uint = OpTypePointer Input %uint
%tint_symbol = OpVariable %_ptr_Input_uint Input
%void = OpTypeVoid
%22 = OpTypeFunction %void
%22 = OpTypeFunction %void %uint
%uint_0 = OpConstant %uint 0
%_ptr_Uniform_v3int = OpTypePointer Uniform %v3int
%uint_1 = OpConstant %uint 1
@ -85,34 +87,33 @@
%_ptr_Uniform_v2int = OpTypePointer Uniform %v2int
%uint_7 = OpConstant %uint 7
%_ptr_Uniform_mat2v3float = OpTypePointer Uniform %mat2v3float
%main = OpFunction %void None %22
%25 = OpLabel
%27 = OpLoad %uint %tint_symbol
%29 = OpAccessChain %_ptr_Uniform_v3int %s %uint_0 %27 %uint_0
%60 = OpTypeFunction %void
%main_inner = OpFunction %void None %22
%idx = OpFunctionParameter %uint
%26 = OpLabel
%29 = OpAccessChain %_ptr_Uniform_v3int %s %uint_0 %idx %uint_0
%30 = OpLoad %v3int %29
%31 = OpLoad %uint %tint_symbol
%34 = OpAccessChain %_ptr_Uniform_int %s %uint_0 %31 %uint_1
%35 = OpLoad %int %34
%36 = OpLoad %uint %tint_symbol
%39 = OpAccessChain %_ptr_Uniform_v3uint %s %uint_0 %36 %uint_2
%40 = OpLoad %v3uint %39
%41 = OpLoad %uint %tint_symbol
%44 = OpAccessChain %_ptr_Uniform_uint %s %uint_0 %41 %uint_3
%45 = OpLoad %uint %44
%46 = OpLoad %uint %tint_symbol
%48 = OpAccessChain %_ptr_Uniform_v3float %s %uint_0 %46 %uint_4
%49 = OpLoad %v3float %48
%50 = OpLoad %uint %tint_symbol
%53 = OpAccessChain %_ptr_Uniform_float %s %uint_0 %50 %uint_5
%54 = OpLoad %float %53
%55 = OpLoad %uint %tint_symbol
%58 = OpAccessChain %_ptr_Uniform_v2int %s %uint_0 %55 %uint_6
%59 = OpLoad %v2int %58
%60 = OpLoad %uint %tint_symbol
%62 = OpAccessChain %_ptr_Uniform_v2int %s %uint_0 %60 %uint_7
%63 = OpLoad %v2int %62
%64 = OpLoad %uint %tint_symbol
%66 = OpAccessChain %_ptr_Uniform_mat2v3float %s %uint_0 %64 %uint_8
%67 = OpLoad %mat2v3float %66
%33 = OpAccessChain %_ptr_Uniform_int %s %uint_0 %idx %uint_1
%34 = OpLoad %int %33
%37 = OpAccessChain %_ptr_Uniform_v3uint %s %uint_0 %idx %uint_2
%38 = OpLoad %v3uint %37
%41 = OpAccessChain %_ptr_Uniform_uint %s %uint_0 %idx %uint_3
%42 = OpLoad %uint %41
%44 = OpAccessChain %_ptr_Uniform_v3float %s %uint_0 %idx %uint_4
%45 = OpLoad %v3float %44
%48 = OpAccessChain %_ptr_Uniform_float %s %uint_0 %idx %uint_5
%49 = OpLoad %float %48
%52 = OpAccessChain %_ptr_Uniform_v2int %s %uint_0 %idx %uint_6
%53 = OpLoad %v2int %52
%55 = OpAccessChain %_ptr_Uniform_v2int %s %uint_0 %idx %uint_7
%56 = OpLoad %v2int %55
%58 = OpAccessChain %_ptr_Uniform_mat2v3float %s %uint_0 %idx %uint_8
%59 = OpLoad %mat2v3float %58
OpReturn
OpFunctionEnd
%main = OpFunction %void None %60
%62 = OpLabel
%64 = OpLoad %uint %idx_1
%63 = OpFunctionCall %void %main_inner %64
OpReturn
OpFunctionEnd

View File

@ -1,221 +1,217 @@
; SPIR-V
; Version: 1.3
; Generator: Google Tint Compiler; 0
; Bound: 141
; Bound: 137
; Schema: 0
OpCapability Shader
%120 = OpExtInstImport "GLSL.std.450"
%116 = OpExtInstImport "GLSL.std.450"
OpMemoryModel Logical GLSL450
OpEntryPoint Vertex %vs_main "vs_main" %tint_pointsize %tint_symbol %tint_symbol_2 %tint_symbol_3
OpEntryPoint Fragment %fs_main "fs_main" %tint_symbol_5 %tint_symbol_7
OpEntryPoint Vertex %vs_main "vs_main" %VertexIndex_1 %texcoords_1 %position_1 %vertex_point_size
OpEntryPoint Fragment %fs_main "fs_main" %texcoord_1 %value
OpExecutionMode %fs_main OriginUpperLeft
OpName %tint_pointsize "tint_pointsize"
OpName %VertexIndex_1 "VertexIndex_1"
OpName %texcoords_1 "texcoords_1"
OpName %position_1 "position_1"
OpName %vertex_point_size "vertex_point_size"
OpName %texcoord_1 "texcoord_1"
OpName %value "value"
OpName %Uniforms "Uniforms"
OpMemberName %Uniforms 0 "u_scale"
OpMemberName %Uniforms 1 "u_offset"
OpName %uniforms "uniforms"
OpName %tint_symbol "tint_symbol"
OpName %tint_symbol_2 "tint_symbol_2"
OpName %tint_symbol_3 "tint_symbol_3"
OpName %mySampler "mySampler"
OpName %myTexture "myTexture"
OpName %tint_symbol_5 "tint_symbol_5"
OpName %tint_symbol_7 "tint_symbol_7"
OpName %VertexOutputs "VertexOutputs"
OpMemberName %VertexOutputs 0 "texcoords"
OpMemberName %VertexOutputs 1 "position"
OpName %tint_symbol_4 "tint_symbol_4"
OpName %tint_symbol_1 "tint_symbol_1"
OpName %vs_main "vs_main"
OpName %vs_main_inner "vs_main_inner"
OpName %VertexIndex "VertexIndex"
OpName %texcoord "texcoord"
OpName %output "output"
OpName %flipY "flipY"
OpName %tint_symbol_8 "tint_symbol_8"
OpName %tint_symbol_6 "tint_symbol_6"
OpName %fs_main "fs_main"
OpName %vs_main "vs_main"
OpName %fs_main_inner "fs_main_inner"
OpName %texcoord_0 "texcoord"
OpName %clampedTexcoord "clampedTexcoord"
OpName %srcColor "srcColor"
OpDecorate %tint_pointsize BuiltIn PointSize
OpName %fs_main "fs_main"
OpDecorate %VertexIndex_1 BuiltIn VertexIndex
OpDecorate %texcoords_1 Location 0
OpDecorate %position_1 BuiltIn Position
OpDecorate %vertex_point_size BuiltIn PointSize
OpDecorate %texcoord_1 Location 0
OpDecorate %value Location 0
OpDecorate %Uniforms Block
OpMemberDecorate %Uniforms 0 Offset 0
OpMemberDecorate %Uniforms 1 Offset 8
OpDecorate %uniforms NonWritable
OpDecorate %uniforms Binding 0
OpDecorate %uniforms DescriptorSet 0
OpDecorate %tint_symbol BuiltIn VertexIndex
OpDecorate %tint_symbol_2 Location 0
OpDecorate %tint_symbol_3 BuiltIn Position
OpDecorate %mySampler Binding 1
OpDecorate %mySampler DescriptorSet 0
OpDecorate %myTexture Binding 2
OpDecorate %myTexture DescriptorSet 0
OpDecorate %tint_symbol_5 Location 0
OpDecorate %tint_symbol_7 Location 0
OpMemberDecorate %VertexOutputs 0 Offset 0
OpMemberDecorate %VertexOutputs 1 Offset 16
OpDecorate %_arr_v2float_uint_3 ArrayStride 8
%uint = OpTypeInt 32 0
%_ptr_Input_uint = OpTypePointer Input %uint
%VertexIndex_1 = OpVariable %_ptr_Input_uint Input
%float = OpTypeFloat 32
%_ptr_Output_float = OpTypePointer Output %float
%4 = OpConstantNull %float
%tint_pointsize = OpVariable %_ptr_Output_float Output %4
%v2float = OpTypeVector %float 2
%_ptr_Output_v2float = OpTypePointer Output %v2float
%8 = OpConstantNull %v2float
%texcoords_1 = OpVariable %_ptr_Output_v2float Output %8
%v4float = OpTypeVector %float 4
%_ptr_Output_v4float = OpTypePointer Output %v4float
%12 = OpConstantNull %v4float
%position_1 = OpVariable %_ptr_Output_v4float Output %12
%_ptr_Output_float = OpTypePointer Output %float
%15 = OpConstantNull %float
%vertex_point_size = OpVariable %_ptr_Output_float Output %15
%_ptr_Input_v2float = OpTypePointer Input %v2float
%texcoord_1 = OpVariable %_ptr_Input_v2float Input
%value = OpVariable %_ptr_Output_v4float Output %12
%Uniforms = OpTypeStruct %v2float %v2float
%_ptr_Uniform_Uniforms = OpTypePointer Uniform %Uniforms
%uniforms = OpVariable %_ptr_Uniform_Uniforms Uniform
%uint = OpTypeInt 32 0
%_ptr_Input_uint = OpTypePointer Input %uint
%tint_symbol = OpVariable %_ptr_Input_uint Input
%_ptr_Output_v2float = OpTypePointer Output %v2float
%14 = OpConstantNull %v2float
%tint_symbol_2 = OpVariable %_ptr_Output_v2float Output %14
%v4float = OpTypeVector %float 4
%_ptr_Output_v4float = OpTypePointer Output %v4float
%18 = OpConstantNull %v4float
%tint_symbol_3 = OpVariable %_ptr_Output_v4float Output %18
%21 = OpTypeSampler
%_ptr_UniformConstant_21 = OpTypePointer UniformConstant %21
%mySampler = OpVariable %_ptr_UniformConstant_21 UniformConstant
%24 = OpTypeImage %float 2D 0 0 0 1 Unknown
%24 = OpTypeSampler
%_ptr_UniformConstant_24 = OpTypePointer UniformConstant %24
%myTexture = OpVariable %_ptr_UniformConstant_24 UniformConstant
%_ptr_Input_v2float = OpTypePointer Input %v2float
%tint_symbol_5 = OpVariable %_ptr_Input_v2float Input
%tint_symbol_7 = OpVariable %_ptr_Output_v4float Output %18
%void = OpTypeVoid
%mySampler = OpVariable %_ptr_UniformConstant_24 UniformConstant
%27 = OpTypeImage %float 2D 0 0 0 1 Unknown
%_ptr_UniformConstant_27 = OpTypePointer UniformConstant %27
%myTexture = OpVariable %_ptr_UniformConstant_27 UniformConstant
%VertexOutputs = OpTypeStruct %v2float %v4float
%28 = OpTypeFunction %void %VertexOutputs
%36 = OpTypeFunction %void
%float_1 = OpConstant %float 1
%28 = OpTypeFunction %VertexOutputs %uint
%uint_3 = OpConstant %uint 3
%_arr_v2float_uint_3 = OpTypeArray %v2float %uint_3
%float_n0_5 = OpConstant %float -0.5
%float_0 = OpConstant %float 0
%44 = OpConstantComposite %v2float %float_n0_5 %float_0
%37 = OpConstantComposite %v2float %float_n0_5 %float_0
%float_1_5 = OpConstant %float 1.5
%46 = OpConstantComposite %v2float %float_1_5 %float_0
%39 = OpConstantComposite %v2float %float_1_5 %float_0
%float_0_5 = OpConstant %float 0.5
%float_2 = OpConstant %float 2
%49 = OpConstantComposite %v2float %float_0_5 %float_2
%50 = OpConstantComposite %_arr_v2float_uint_3 %44 %46 %49
%42 = OpConstantComposite %v2float %float_0_5 %float_2
%43 = OpConstantComposite %_arr_v2float_uint_3 %37 %39 %42
%_ptr_Function__arr_v2float_uint_3 = OpTypePointer Function %_arr_v2float_uint_3
%53 = OpConstantNull %_arr_v2float_uint_3
%46 = OpConstantNull %_arr_v2float_uint_3
%_ptr_Function_VertexOutputs = OpTypePointer Function %VertexOutputs
%56 = OpConstantNull %VertexOutputs
%49 = OpConstantNull %VertexOutputs
%uint_1 = OpConstant %uint 1
%_ptr_Function_v4float = OpTypePointer Function %v4float
%_ptr_Function_v2float = OpTypePointer Function %v2float
%65 = OpConstantComposite %v2float %float_1 %float_1
%float_1 = OpConstant %float 1
%58 = OpConstantComposite %v2float %float_1 %float_1
%uint_0 = OpConstant %uint 0
%_ptr_Uniform_float = OpTypePointer Uniform %float
%bool = OpTypeBool
%_ptr_Function_bool = OpTypePointer Function %bool
%78 = OpConstantNull %bool
%71 = OpConstantNull %bool
%_ptr_Uniform_v2float = OpTypePointer Uniform %v2float
%float_n1 = OpConstant %float -1
%95 = OpConstantComposite %v2float %float_1 %float_n1
%97 = OpConstantComposite %v2float %float_0 %float_1
%113 = OpTypeFunction %void %v4float
%122 = OpConstantComposite %v2float %float_0 %float_0
%87 = OpConstantComposite %v2float %float_1 %float_n1
%89 = OpConstantComposite %v2float %float_0 %float_1
%void = OpTypeVoid
%103 = OpTypeFunction %void
%111 = OpTypeFunction %v4float %v2float
%117 = OpConstantComposite %v2float %float_0 %float_0
%v2bool = OpTypeVector %bool 2
%135 = OpTypeSampledImage %24
%tint_symbol_4 = OpFunction %void None %28
%tint_symbol_1 = OpFunctionParameter %VertexOutputs
%33 = OpLabel
%34 = OpCompositeExtract %v2float %tint_symbol_1 0
OpStore %tint_symbol_2 %34
%35 = OpCompositeExtract %v4float %tint_symbol_1 1
OpStore %tint_symbol_3 %35
%129 = OpTypeSampledImage %27
%vs_main_inner = OpFunction %VertexOutputs None %28
%VertexIndex = OpFunctionParameter %uint
%32 = OpLabel
%texcoord = OpVariable %_ptr_Function__arr_v2float_uint_3 Function %46
%output = OpVariable %_ptr_Function_VertexOutputs Function %49
%flipY = OpVariable %_ptr_Function_bool Function %71
OpStore %texcoord %43
%52 = OpAccessChain %_ptr_Function_v4float %output %uint_1
%54 = OpAccessChain %_ptr_Function_v2float %texcoord %VertexIndex
%55 = OpLoad %v2float %54
%56 = OpVectorTimesScalar %v2float %55 %float_2
%59 = OpFSub %v2float %56 %58
%60 = OpCompositeExtract %float %59 0
%61 = OpCompositeExtract %float %59 1
%62 = OpCompositeConstruct %v4float %60 %61 %float_0 %float_1
OpStore %52 %62
%65 = OpAccessChain %_ptr_Uniform_float %uniforms %uint_0 %uint_1
%66 = OpLoad %float %65
%67 = OpFOrdLessThan %bool %66 %float_0
OpStore %flipY %67
%72 = OpLoad %bool %flipY
OpSelectionMerge %73 None
OpBranchConditional %72 %74 %75
%74 = OpLabel
%76 = OpAccessChain %_ptr_Function_v2float %output %uint_0
%77 = OpAccessChain %_ptr_Function_v2float %texcoord %VertexIndex
%78 = OpLoad %v2float %77
%80 = OpAccessChain %_ptr_Uniform_v2float %uniforms %uint_0
%81 = OpLoad %v2float %80
%82 = OpFMul %v2float %78 %81
%83 = OpAccessChain %_ptr_Uniform_v2float %uniforms %uint_1
%84 = OpLoad %v2float %83
%85 = OpFAdd %v2float %82 %84
%88 = OpFMul %v2float %85 %87
%90 = OpFAdd %v2float %88 %89
OpStore %76 %90
OpBranch %73
%75 = OpLabel
%91 = OpAccessChain %_ptr_Function_v2float %output %uint_0
%92 = OpAccessChain %_ptr_Function_v2float %texcoord %VertexIndex
%93 = OpLoad %v2float %92
%94 = OpFMul %v2float %93 %87
%95 = OpFAdd %v2float %94 %89
%96 = OpAccessChain %_ptr_Uniform_v2float %uniforms %uint_0
%97 = OpLoad %v2float %96
%98 = OpFMul %v2float %95 %97
%99 = OpAccessChain %_ptr_Uniform_v2float %uniforms %uint_1
%100 = OpLoad %v2float %99
%101 = OpFAdd %v2float %98 %100
OpStore %91 %101
OpBranch %73
%73 = OpLabel
%102 = OpLoad %VertexOutputs %output
OpReturnValue %102
OpFunctionEnd
%vs_main = OpFunction %void None %103
%106 = OpLabel
%108 = OpLoad %uint %VertexIndex_1
%107 = OpFunctionCall %VertexOutputs %vs_main_inner %108
%109 = OpCompositeExtract %v2float %107 0
OpStore %texcoords_1 %109
%110 = OpCompositeExtract %v4float %107 1
OpStore %position_1 %110
OpStore %vertex_point_size %float_1
OpReturn
OpFunctionEnd
%vs_main = OpFunction %void None %36
%38 = OpLabel
%texcoord = OpVariable %_ptr_Function__arr_v2float_uint_3 Function %53
%output = OpVariable %_ptr_Function_VertexOutputs Function %56
%flipY = OpVariable %_ptr_Function_bool Function %78
OpStore %tint_pointsize %float_1
OpStore %texcoord %50
%59 = OpAccessChain %_ptr_Function_v4float %output %uint_1
%60 = OpLoad %uint %tint_symbol
%62 = OpAccessChain %_ptr_Function_v2float %texcoord %60
%63 = OpLoad %v2float %62
%64 = OpVectorTimesScalar %v2float %63 %float_2
%66 = OpFSub %v2float %64 %65
%67 = OpCompositeExtract %float %66 0
%68 = OpCompositeExtract %float %66 1
%69 = OpCompositeConstruct %v4float %67 %68 %float_0 %float_1
OpStore %59 %69
%72 = OpAccessChain %_ptr_Uniform_float %uniforms %uint_0 %uint_1
%73 = OpLoad %float %72
%74 = OpFOrdLessThan %bool %73 %float_0
OpStore %flipY %74
%79 = OpLoad %bool %flipY
OpSelectionMerge %80 None
OpBranchConditional %79 %81 %82
%81 = OpLabel
%83 = OpAccessChain %_ptr_Function_v2float %output %uint_0
%84 = OpLoad %uint %tint_symbol
%85 = OpAccessChain %_ptr_Function_v2float %texcoord %84
%86 = OpLoad %v2float %85
%88 = OpAccessChain %_ptr_Uniform_v2float %uniforms %uint_0
%89 = OpLoad %v2float %88
%90 = OpFMul %v2float %86 %89
%91 = OpAccessChain %_ptr_Uniform_v2float %uniforms %uint_1
%92 = OpLoad %v2float %91
%93 = OpFAdd %v2float %90 %92
%96 = OpFMul %v2float %93 %95
%98 = OpFAdd %v2float %96 %97
OpStore %83 %98
OpBranch %80
%82 = OpLabel
%99 = OpAccessChain %_ptr_Function_v2float %output %uint_0
%100 = OpLoad %uint %tint_symbol
%101 = OpAccessChain %_ptr_Function_v2float %texcoord %100
%102 = OpLoad %v2float %101
%103 = OpFMul %v2float %102 %95
%104 = OpFAdd %v2float %103 %97
%105 = OpAccessChain %_ptr_Uniform_v2float %uniforms %uint_0
%106 = OpLoad %v2float %105
%107 = OpFMul %v2float %104 %106
%108 = OpAccessChain %_ptr_Uniform_v2float %uniforms %uint_1
%109 = OpLoad %v2float %108
%110 = OpFAdd %v2float %107 %109
OpStore %99 %110
OpBranch %80
%80 = OpLabel
%112 = OpLoad %VertexOutputs %output
%111 = OpFunctionCall %void %tint_symbol_4 %112
OpReturn
OpFunctionEnd
%tint_symbol_8 = OpFunction %void None %113
%tint_symbol_6 = OpFunctionParameter %v4float
%116 = OpLabel
OpStore %tint_symbol_7 %tint_symbol_6
OpReturn
OpFunctionEnd
%fs_main = OpFunction %void None %36
%118 = OpLabel
%clampedTexcoord = OpVariable %_ptr_Function_v2float Function %14
%srcColor = OpVariable %_ptr_Function_v4float Function %18
%121 = OpLoad %v2float %tint_symbol_5
%119 = OpExtInst %v2float %120 NClamp %121 %122 %65
OpStore %clampedTexcoord %119
%126 = OpLoad %v2float %clampedTexcoord
%127 = OpLoad %v2float %tint_symbol_5
%128 = OpFOrdEqual %v2bool %126 %127
%125 = OpAll %bool %128
%124 = OpLogicalNot %bool %125
OpSelectionMerge %130 None
OpBranchConditional %124 %131 %130
%131 = OpLabel
%fs_main_inner = OpFunction %v4float None %111
%texcoord_0 = OpFunctionParameter %v2float
%114 = OpLabel
%clampedTexcoord = OpVariable %_ptr_Function_v2float Function %8
%srcColor = OpVariable %_ptr_Function_v4float Function %12
%115 = OpExtInst %v2float %116 NClamp %texcoord_0 %117 %58
OpStore %clampedTexcoord %115
%121 = OpLoad %v2float %clampedTexcoord
%122 = OpFOrdEqual %v2bool %121 %texcoord_0
%120 = OpAll %bool %122
%119 = OpLogicalNot %bool %120
OpSelectionMerge %124 None
OpBranchConditional %119 %125 %124
%125 = OpLabel
OpKill
%130 = OpLabel
%133 = OpLoad %21 %mySampler
%134 = OpLoad %24 %myTexture
%136 = OpSampledImage %135 %134 %133
%137 = OpLoad %v2float %tint_symbol_5
%132 = OpImageSampleImplicitLod %v4float %136 %137
OpStore %srcColor %132
%140 = OpLoad %v4float %srcColor
%139 = OpFunctionCall %void %tint_symbol_8 %140
%124 = OpLabel
%127 = OpLoad %24 %mySampler
%128 = OpLoad %27 %myTexture
%130 = OpSampledImage %129 %128 %127
%126 = OpImageSampleImplicitLod %v4float %130 %texcoord_0
OpStore %srcColor %126
%132 = OpLoad %v4float %srcColor
OpReturnValue %132
OpFunctionEnd
%fs_main = OpFunction %void None %103
%134 = OpLabel
%136 = OpLoad %v2float %texcoord_1
%135 = OpFunctionCall %v4float %fs_main_inner %136
OpStore %value %135
OpReturn
OpFunctionEnd

View File

@ -1,12 +1,13 @@
; SPIR-V
; Version: 1.3
; Generator: Google Tint Compiler; 0
; Bound: 52
; Bound: 57
; Schema: 0
OpCapability Shader
OpMemoryModel Logical GLSL450
OpEntryPoint GLCompute %f "f" %tint_symbol
OpEntryPoint GLCompute %f "f" %local_invocation_index_1
OpExecutionMode %f LocalSize 1 1 1
OpName %local_invocation_index_1 "local_invocation_index_1"
OpName %UBO "UBO"
OpMemberName %UBO 0 "dynamic_idx"
OpName %ubo "ubo"
@ -16,9 +17,11 @@
OpName %S "S"
OpMemberName %S 0 "data"
OpName %s "s"
OpName %tint_symbol "tint_symbol"
OpName %f "f"
OpName %f_inner "f_inner"
OpName %local_invocation_index "local_invocation_index"
OpName %idx "idx"
OpName %f "f"
OpDecorate %local_invocation_index_1 BuiltIn LocalInvocationIndex
OpDecorate %UBO Block
OpMemberDecorate %UBO 0 Offset 0
OpDecorate %ubo NonWritable
@ -30,7 +33,9 @@
OpDecorate %result Binding 1
OpMemberDecorate %S 0 Offset 0
OpDecorate %_arr_int_uint_64 ArrayStride 4
OpDecorate %tint_symbol BuiltIn LocalInvocationIndex
%uint = OpTypeInt 32 0
%_ptr_Input_uint = OpTypePointer Input %uint
%local_invocation_index_1 = OpVariable %_ptr_Input_uint Input
%int = OpTypeInt 32 1
%UBO = OpTypeStruct %int
%_ptr_Uniform_UBO = OpTypePointer Uniform %UBO
@ -38,16 +43,13 @@
%Result = OpTypeStruct %int
%_ptr_StorageBuffer_Result = OpTypePointer StorageBuffer %Result
%result = OpVariable %_ptr_StorageBuffer_Result StorageBuffer
%uint = OpTypeInt 32 0
%uint_64 = OpConstant %uint 64
%_arr_int_uint_64 = OpTypeArray %int %uint_64
%S = OpTypeStruct %_arr_int_uint_64
%_ptr_Workgroup_S = OpTypePointer Workgroup %S
%s = OpVariable %_ptr_Workgroup_S Workgroup
%_ptr_Input_uint = OpTypePointer Input %uint
%tint_symbol = OpVariable %_ptr_Input_uint Input
%void = OpTypeVoid
%16 = OpTypeFunction %void
%16 = OpTypeFunction %void %uint
%_ptr_Function_uint = OpTypePointer Function %uint
%23 = OpConstantNull %uint
%bool = OpTypeBool
@ -59,11 +61,12 @@
%uint_264 = OpConstant %uint 264
%_ptr_StorageBuffer_int = OpTypePointer StorageBuffer %int
%_ptr_Uniform_int = OpTypePointer Uniform %int
%f = OpFunction %void None %16
%19 = OpLabel
%52 = OpTypeFunction %void
%f_inner = OpFunction %void None %16
%local_invocation_index = OpFunctionParameter %uint
%20 = OpLabel
%idx = OpVariable %_ptr_Function_uint Function %23
%20 = OpLoad %uint %tint_symbol
OpStore %idx %20
OpStore %idx %local_invocation_index
OpBranch %24
%24 = OpLabel
OpLoopMerge %25 %26 None
@ -96,3 +99,9 @@
OpStore %46 %51
OpReturn
OpFunctionEnd
%f = OpFunction %void None %52
%54 = OpLabel
%56 = OpLoad %uint %local_invocation_index_1
%55 = OpFunctionCall %void %f_inner %56
OpReturn
OpFunctionEnd

View File

@ -1,12 +1,13 @@
; SPIR-V
; Version: 1.3
; Generator: Google Tint Compiler; 0
; Bound: 55
; Bound: 60
; Schema: 0
OpCapability Shader
OpMemoryModel Logical GLSL450
OpEntryPoint GLCompute %f "f" %tint_symbol
OpEntryPoint GLCompute %f "f" %local_invocation_index_1
OpExecutionMode %f LocalSize 1 1 1
OpName %local_invocation_index_1 "local_invocation_index_1"
OpName %UBO "UBO"
OpMemberName %UBO 0 "dynamic_idx"
OpName %ubo "ubo"
@ -16,9 +17,11 @@
OpName %S "S"
OpMemberName %S 0 "data"
OpName %s "s"
OpName %tint_symbol "tint_symbol"
OpName %f "f"
OpName %f_inner "f_inner"
OpName %local_invocation_index "local_invocation_index"
OpName %idx "idx"
OpName %f "f"
OpDecorate %local_invocation_index_1 BuiltIn LocalInvocationIndex
OpDecorate %UBO Block
OpMemberDecorate %UBO 0 Offset 0
OpDecorate %ubo NonWritable
@ -30,7 +33,9 @@
OpDecorate %result Binding 1
OpMemberDecorate %S 0 Offset 0
OpDecorate %_arr_int_uint_64 ArrayStride 4
OpDecorate %tint_symbol BuiltIn LocalInvocationIndex
%uint = OpTypeInt 32 0
%_ptr_Input_uint = OpTypePointer Input %uint
%local_invocation_index_1 = OpVariable %_ptr_Input_uint Input
%int = OpTypeInt 32 1
%UBO = OpTypeStruct %int
%_ptr_Uniform_UBO = OpTypePointer Uniform %UBO
@ -38,16 +43,13 @@
%Result = OpTypeStruct %int
%_ptr_StorageBuffer_Result = OpTypePointer StorageBuffer %Result
%result = OpVariable %_ptr_StorageBuffer_Result StorageBuffer
%uint = OpTypeInt 32 0
%uint_64 = OpConstant %uint 64
%_arr_int_uint_64 = OpTypeArray %int %uint_64
%S = OpTypeStruct %_arr_int_uint_64
%_ptr_Workgroup_S = OpTypePointer Workgroup %S
%s = OpVariable %_ptr_Workgroup_S Workgroup
%_ptr_Input_uint = OpTypePointer Input %uint
%tint_symbol = OpVariable %_ptr_Input_uint Input
%void = OpTypeVoid
%16 = OpTypeFunction %void
%16 = OpTypeFunction %void %uint
%_ptr_Function_uint = OpTypePointer Function %uint
%23 = OpConstantNull %uint
%bool = OpTypeBool
@ -61,11 +63,12 @@
%int_1 = OpConstant %int 1
%_ptr_StorageBuffer_int = OpTypePointer StorageBuffer %int
%int_3 = OpConstant %int 3
%f = OpFunction %void None %16
%19 = OpLabel
%55 = OpTypeFunction %void
%f_inner = OpFunction %void None %16
%local_invocation_index = OpFunctionParameter %uint
%20 = OpLabel
%idx = OpVariable %_ptr_Function_uint Function %23
%20 = OpLoad %uint %tint_symbol
OpStore %idx %20
OpStore %idx %local_invocation_index
OpBranch %24
%24 = OpLabel
OpLoopMerge %25 %26 None
@ -100,3 +103,9 @@
OpStore %51 %54
OpReturn
OpFunctionEnd
%f = OpFunction %void None %55
%57 = OpLabel
%59 = OpLoad %uint %local_invocation_index_1
%58 = OpFunctionCall %void %f_inner %59
OpReturn
OpFunctionEnd

View File

@ -5,8 +5,14 @@
; Schema: 0
OpCapability Shader
OpMemoryModel Logical GLSL450
OpEntryPoint Fragment %main "main" %tint_symbol %tint_symbol_1 %tint_symbol_2 %tint_symbol_3 %tint_symbol_4 %tint_symbol_7
OpEntryPoint Fragment %main "main" %position_1 %view_position_1 %normal_1 %uv_1 %color_1 %color_2
OpExecutionMode %main OriginUpperLeft
OpName %position_1 "position_1"
OpName %view_position_1 "view_position_1"
OpName %normal_1 "normal_1"
OpName %uv_1 "uv_1"
OpName %color_1 "color_1"
OpName %color_2 "color_2"
OpName %Uniforms "Uniforms"
OpMemberName %Uniforms 0 "worldView"
OpMemberName %Uniforms 1 "proj"
@ -21,12 +27,6 @@
OpName %pointLights "pointLights"
OpName %mySampler "mySampler"
OpName %myTexture "myTexture"
OpName %tint_symbol "tint_symbol"
OpName %tint_symbol_1 "tint_symbol_1"
OpName %tint_symbol_2 "tint_symbol_2"
OpName %tint_symbol_3 "tint_symbol_3"
OpName %tint_symbol_4 "tint_symbol_4"
OpName %tint_symbol_7 "tint_symbol_7"
OpName %FragmentInput "FragmentInput"
OpMemberName %FragmentInput 0 "position"
OpMemberName %FragmentInput 1 "view_position"
@ -38,10 +38,16 @@
OpName %color "color"
OpName %FragmentOutput "FragmentOutput"
OpMemberName %FragmentOutput 0 "color"
OpName %tint_symbol_8 "tint_symbol_8"
OpName %tint_symbol_6 "tint_symbol_6"
OpName %main "main"
OpName %main_inner "main_inner"
OpName %fragment_0 "fragment"
OpName %output "output"
OpName %main "main"
OpDecorate %position_1 BuiltIn FragCoord
OpDecorate %view_position_1 Location 0
OpDecorate %normal_1 Location 1
OpDecorate %uv_1 Location 2
OpDecorate %color_1 Location 3
OpDecorate %color_2 Location 0
OpDecorate %Uniforms Block
OpMemberDecorate %Uniforms 0 Offset 0
OpMemberDecorate %Uniforms 0 ColMajor
@ -66,12 +72,6 @@
OpDecorate %mySampler DescriptorSet 0
OpDecorate %myTexture Binding 3
OpDecorate %myTexture DescriptorSet 0
OpDecorate %tint_symbol BuiltIn FragCoord
OpDecorate %tint_symbol_1 Location 0
OpDecorate %tint_symbol_2 Location 1
OpDecorate %tint_symbol_3 Location 2
OpDecorate %tint_symbol_4 Location 3
OpDecorate %tint_symbol_7 Location 0
OpMemberDecorate %FragmentInput 0 Offset 0
OpMemberDecorate %FragmentInput 1 Offset 16
OpMemberDecorate %FragmentInput 2 Offset 32
@ -80,6 +80,17 @@
OpMemberDecorate %FragmentOutput 0 Offset 0
%float = OpTypeFloat 32
%v4float = OpTypeVector %float 4
%_ptr_Input_v4float = OpTypePointer Input %v4float
%position_1 = OpVariable %_ptr_Input_v4float Input
%view_position_1 = OpVariable %_ptr_Input_v4float Input
%normal_1 = OpVariable %_ptr_Input_v4float Input
%v2float = OpTypeVector %float 2
%_ptr_Input_v2float = OpTypePointer Input %v2float
%uv_1 = OpVariable %_ptr_Input_v2float Input
%color_1 = OpVariable %_ptr_Input_v4float Input
%_ptr_Output_v4float = OpTypePointer Output %v4float
%13 = OpConstantNull %v4float
%color_2 = OpVariable %_ptr_Output_v4float Output %13
%mat4v4float = OpTypeMatrix %v4float 4
%uint = OpTypeInt 32 0
%Uniforms = OpTypeStruct %mat4v4float %mat4v4float %uint %uint %v4float
@ -90,23 +101,12 @@
%PointLights = OpTypeStruct %_runtimearr_PointLight
%_ptr_StorageBuffer_PointLights = OpTypePointer StorageBuffer %PointLights
%pointLights = OpVariable %_ptr_StorageBuffer_PointLights StorageBuffer
%15 = OpTypeSampler
%_ptr_UniformConstant_15 = OpTypePointer UniformConstant %15
%mySampler = OpVariable %_ptr_UniformConstant_15 UniformConstant
%18 = OpTypeImage %float 2D 0 0 0 1 Unknown
%_ptr_UniformConstant_18 = OpTypePointer UniformConstant %18
%myTexture = OpVariable %_ptr_UniformConstant_18 UniformConstant
%_ptr_Input_v4float = OpTypePointer Input %v4float
%tint_symbol = OpVariable %_ptr_Input_v4float Input
%tint_symbol_1 = OpVariable %_ptr_Input_v4float Input
%tint_symbol_2 = OpVariable %_ptr_Input_v4float Input
%v2float = OpTypeVector %float 2
%_ptr_Input_v2float = OpTypePointer Input %v2float
%tint_symbol_3 = OpVariable %_ptr_Input_v2float Input
%tint_symbol_4 = OpVariable %_ptr_Input_v4float Input
%_ptr_Output_v4float = OpTypePointer Output %v4float
%29 = OpConstantNull %v4float
%tint_symbol_7 = OpVariable %_ptr_Output_v4float Output %29
%26 = OpTypeSampler
%_ptr_UniformConstant_26 = OpTypePointer UniformConstant %26
%mySampler = OpVariable %_ptr_UniformConstant_26 UniformConstant
%29 = OpTypeImage %float 2D 0 0 0 1 Unknown
%_ptr_UniformConstant_29 = OpTypePointer UniformConstant %29
%myTexture = OpVariable %_ptr_UniformConstant_29 UniformConstant
%FragmentInput = OpTypeStruct %v4float %v4float %v4float %v2float %v4float
%30 = OpTypeFunction %v4float %FragmentInput
%_ptr_Function_v4float = OpTypePointer Function %v4float
@ -120,19 +120,19 @@
%uint_2 = OpConstant %uint 2
%uint_4 = OpConstant %uint 4
%_ptr_Uniform_v4float = OpTypePointer Uniform %v4float
%78 = OpTypeSampledImage %18
%void = OpTypeVoid
%78 = OpTypeSampledImage %29
%FragmentOutput = OpTypeStruct %v4float
%82 = OpTypeFunction %void %FragmentOutput
%89 = OpTypeFunction %void
%82 = OpTypeFunction %FragmentOutput %FragmentInput
%_ptr_Function_FragmentOutput = OpTypePointer Function %FragmentOutput
%100 = OpConstantNull %FragmentOutput
%89 = OpConstantNull %FragmentOutput
%float_0 = OpConstant %float 0
%103 = OpConstantComposite %v4float %float_1 %float_0 %float_0 %float_1
%92 = OpConstantComposite %v4float %float_1 %float_0 %float_0 %float_1
%void = OpTypeVoid
%103 = OpTypeFunction %void
%getColor = OpFunction %v4float None %30
%fragment = OpFunctionParameter %FragmentInput
%34 = OpLabel
%color = OpVariable %_ptr_Function_v4float Function %29
%color = OpVariable %_ptr_Function_v4float Function %13
%39 = OpAccessChain %_ptr_Uniform_uint %uniforms %uint_3
%40 = OpLoad %uint %39
%42 = OpIEqual %bool %40 %uint_0
@ -172,8 +172,8 @@
OpSelectionMerge %73 None
OpBranchConditional %72 %74 %73
%74 = OpLabel
%76 = OpLoad %15 %mySampler
%77 = OpLoad %18 %myTexture
%76 = OpLoad %26 %mySampler
%77 = OpLoad %29 %myTexture
%79 = OpSampledImage %78 %77 %76
%80 = OpCompositeExtract %v2float %fragment 3
%75 = OpImageSampleImplicitLod %v4float %79 %80
@ -189,29 +189,29 @@
%81 = OpLoad %v4float %color
OpReturnValue %81
OpFunctionEnd
%tint_symbol_8 = OpFunction %void None %82
%tint_symbol_6 = OpFunctionParameter %FragmentOutput
%87 = OpLabel
%88 = OpCompositeExtract %v4float %tint_symbol_6 0
OpStore %tint_symbol_7 %88
OpReturn
OpFunctionEnd
%main = OpFunction %void None %89
%91 = OpLabel
%output = OpVariable %_ptr_Function_FragmentOutput Function %100
%92 = OpLoad %v4float %tint_symbol
%93 = OpLoad %v4float %tint_symbol_1
%94 = OpLoad %v4float %tint_symbol_2
%95 = OpLoad %v2float %tint_symbol_3
%96 = OpLoad %v4float %tint_symbol_4
%97 = OpCompositeConstruct %FragmentInput %92 %93 %94 %95 %96
%101 = OpAccessChain %_ptr_Function_v4float %output %uint_0
OpStore %101 %103
%105 = OpLoad %Uniforms %uniforms
%107 = OpLoad %15 %mySampler
%109 = OpLoad %18 %myTexture
%111 = OpLoad %PointLights %pointLights
%113 = OpLoad %FragmentOutput %output
%112 = OpFunctionCall %void %tint_symbol_8 %113
%main_inner = OpFunction %FragmentOutput None %82
%fragment_0 = OpFunctionParameter %FragmentInput
%86 = OpLabel
%output = OpVariable %_ptr_Function_FragmentOutput Function %89
%90 = OpAccessChain %_ptr_Function_v4float %output %uint_0
OpStore %90 %92
%95 = OpLoad %Uniforms %uniforms
%97 = OpLoad %26 %mySampler
%99 = OpLoad %29 %myTexture
%101 = OpLoad %PointLights %pointLights
%102 = OpLoad %FragmentOutput %output
OpReturnValue %102
OpFunctionEnd
%main = OpFunction %void None %103
%105 = OpLabel
%107 = OpLoad %v4float %position_1
%108 = OpLoad %v4float %view_position_1
%109 = OpLoad %v4float %normal_1
%110 = OpLoad %v2float %uv_1
%111 = OpLoad %v4float %color_1
%112 = OpCompositeConstruct %FragmentInput %107 %108 %109 %110 %111
%106 = OpFunctionCall %FragmentOutput %main_inner %112
%113 = OpCompositeExtract %v4float %106 0
OpStore %color_2 %113
OpReturn
OpFunctionEnd

View File

@ -5,78 +5,79 @@
; Schema: 0
OpCapability Shader
OpMemoryModel Logical GLSL450
OpEntryPoint Fragment %main "main" %tint_symbol %tint_symbol_1 %tint_symbol_5 %tint_symbol_6 %tint_symbol_3
OpEntryPoint Fragment %main "main" %a_1 %mask_1 %b_1 %a_2 %mask_2
OpExecutionMode %main OriginUpperLeft
OpName %tint_symbol "tint_symbol"
OpName %tint_symbol_1 "tint_symbol_1"
OpName %tint_symbol_3 "tint_symbol_3"
OpName %tint_symbol_5 "tint_symbol_5"
OpName %tint_symbol_6 "tint_symbol_6"
OpName %a_1 "a_1"
OpName %mask_1 "mask_1"
OpName %b_1 "b_1"
OpName %a_2 "a_2"
OpName %mask_2 "mask_2"
OpName %FragIn "FragIn"
OpMemberName %FragIn 0 "a"
OpMemberName %FragIn 1 "mask"
OpName %tint_symbol_7 "tint_symbol_7"
OpName %tint_symbol_4 "tint_symbol_4"
OpName %main_inner "main_inner"
OpName %in "in"
OpName %b "b"
OpName %main "main"
OpDecorate %tint_symbol Location 0
OpDecorate %a_1 Location 0
OpDecorate %_arr_uint_uint_1 ArrayStride 4
OpDecorate %tint_symbol_1 BuiltIn SampleMask
OpDecorate %tint_symbol_3 Location 1
OpDecorate %tint_symbol_5 Location 0
OpDecorate %tint_symbol_6 BuiltIn SampleMask
OpDecorate %mask_1 BuiltIn SampleMask
OpDecorate %b_1 Location 1
OpDecorate %a_2 Location 0
OpDecorate %mask_2 BuiltIn SampleMask
OpMemberDecorate %FragIn 0 Offset 0
OpMemberDecorate %FragIn 1 Offset 4
%float = OpTypeFloat 32
%_ptr_Input_float = OpTypePointer Input %float
%tint_symbol = OpVariable %_ptr_Input_float Input
%a_1 = OpVariable %_ptr_Input_float Input
%uint = OpTypeInt 32 0
%uint_1 = OpConstant %uint 1
%_arr_uint_uint_1 = OpTypeArray %uint %uint_1
%_ptr_Input__arr_uint_uint_1 = OpTypePointer Input %_arr_uint_uint_1
%tint_symbol_1 = OpVariable %_ptr_Input__arr_uint_uint_1 Input
%tint_symbol_3 = OpVariable %_ptr_Input_float Input
%mask_1 = OpVariable %_ptr_Input__arr_uint_uint_1 Input
%b_1 = OpVariable %_ptr_Input_float Input
%_ptr_Output_float = OpTypePointer Output %float
%12 = OpConstantNull %float
%tint_symbol_5 = OpVariable %_ptr_Output_float Output %12
%a_2 = OpVariable %_ptr_Output_float Output %12
%_ptr_Output__arr_uint_uint_1 = OpTypePointer Output %_arr_uint_uint_1
%15 = OpConstantNull %_arr_uint_uint_1
%tint_symbol_6 = OpVariable %_ptr_Output__arr_uint_uint_1 Output %15
%void = OpTypeVoid
%mask_2 = OpVariable %_ptr_Output__arr_uint_uint_1 Output %15
%FragIn = OpTypeStruct %float %uint
%16 = OpTypeFunction %void %FragIn
%int = OpTypeInt 32 1
%int_0 = OpConstant %int 0
%_ptr_Output_uint = OpTypePointer Output %uint
%28 = OpTypeFunction %void
%_ptr_Input_uint = OpTypePointer Input %uint
%16 = OpTypeFunction %FragIn %FragIn %float
%uint_0 = OpConstant %uint 0
%bool = OpTypeBool
%tint_symbol_7 = OpFunction %void None %16
%tint_symbol_4 = OpFunctionParameter %FragIn
%void = OpTypeVoid
%29 = OpTypeFunction %void
%int = OpTypeInt 32 1
%int_0 = OpConstant %int 0
%_ptr_Input_uint = OpTypePointer Input %uint
%_ptr_Output_uint = OpTypePointer Output %uint
%main_inner = OpFunction %FragIn None %16
%in = OpFunctionParameter %FragIn
%b = OpFunctionParameter %float
%21 = OpLabel
%22 = OpCompositeExtract %float %tint_symbol_4 0
OpStore %tint_symbol_5 %22
%26 = OpAccessChain %_ptr_Output_uint %tint_symbol_6 %int_0
%27 = OpCompositeExtract %uint %tint_symbol_4 1
OpStore %26 %27
OpReturn
OpFunctionEnd
%main = OpFunction %void None %28
%30 = OpLabel
%31 = OpLoad %float %tint_symbol
%33 = OpAccessChain %_ptr_Input_uint %tint_symbol_1 %int_0
%34 = OpLoad %uint %33
%35 = OpCompositeConstruct %FragIn %31 %34
%36 = OpCompositeExtract %uint %35 1
%38 = OpIEqual %bool %36 %uint_0
OpSelectionMerge %40 None
OpBranchConditional %38 %41 %40
%41 = OpLabel
%42 = OpFunctionCall %void %tint_symbol_7 %35
OpReturn
%40 = OpLabel
%44 = OpLoad %float %tint_symbol_3
%45 = OpCompositeConstruct %FragIn %44 %uint_1
%43 = OpFunctionCall %void %tint_symbol_7 %45
%22 = OpCompositeExtract %uint %in 1
%24 = OpIEqual %bool %22 %uint_0
OpSelectionMerge %26 None
OpBranchConditional %24 %27 %26
%27 = OpLabel
OpReturnValue %in
%26 = OpLabel
%28 = OpCompositeConstruct %FragIn %b %uint_1
OpReturnValue %28
OpFunctionEnd
%main = OpFunction %void None %29
%32 = OpLabel
%34 = OpLoad %float %a_1
%38 = OpAccessChain %_ptr_Input_uint %mask_1 %int_0
%39 = OpLoad %uint %38
%40 = OpCompositeConstruct %FragIn %34 %39
%41 = OpLoad %float %b_1
%33 = OpFunctionCall %FragIn %main_inner %40 %41
%42 = OpCompositeExtract %float %33 0
OpStore %a_2 %42
%44 = OpAccessChain %_ptr_Output_uint %mask_2 %int_0
%45 = OpCompositeExtract %uint %33 1
OpStore %44 %45
OpReturn
OpFunctionEnd

View File

@ -1,53 +1,51 @@
; SPIR-V
; Version: 1.3
; Generator: Google Tint Compiler; 0
; Bound: 29
; Bound: 28
; Schema: 0
OpCapability Shader
OpMemoryModel Logical GLSL450
OpEntryPoint Vertex %main "main" %tint_pointsize %tint_symbol_1
OpName %tint_pointsize "tint_pointsize"
OpName %tint_symbol_1 "tint_symbol_1"
OpName %tint_symbol_2 "tint_symbol_2"
OpName %tint_symbol "tint_symbol"
OpName %main "main"
OpEntryPoint Vertex %main "main" %value %vertex_point_size
OpName %value "value"
OpName %vertex_point_size "vertex_point_size"
OpName %main_inner "main_inner"
OpName %light "light"
OpName %negative_light "negative_light"
OpDecorate %tint_pointsize BuiltIn PointSize
OpDecorate %tint_symbol_1 BuiltIn Position
OpName %main "main"
OpDecorate %value BuiltIn Position
OpDecorate %vertex_point_size BuiltIn PointSize
%float = OpTypeFloat 32
%_ptr_Output_float = OpTypePointer Output %float
%4 = OpConstantNull %float
%tint_pointsize = OpVariable %_ptr_Output_float Output %4
%v4float = OpTypeVector %float 4
%_ptr_Output_v4float = OpTypePointer Output %v4float
%8 = OpConstantNull %v4float
%tint_symbol_1 = OpVariable %_ptr_Output_v4float Output %8
%void = OpTypeVoid
%9 = OpTypeFunction %void %v4float
%14 = OpTypeFunction %void
%float_1 = OpConstant %float 1
%5 = OpConstantNull %v4float
%value = OpVariable %_ptr_Output_v4float Output %5
%_ptr_Output_float = OpTypePointer Output %float
%8 = OpConstantNull %float
%vertex_point_size = OpVariable %_ptr_Output_float Output %8
%9 = OpTypeFunction %v4float
%v3float = OpTypeVector %float 3
%float_1_20000005 = OpConstant %float 1.20000005
%float_1 = OpConstant %float 1
%float_2 = OpConstant %float 2
%21 = OpConstantComposite %v3float %float_1_20000005 %float_1 %float_2
%16 = OpConstantComposite %v3float %float_1_20000005 %float_1 %float_2
%_ptr_Function_v3float = OpTypePointer Function %v3float
%24 = OpConstantNull %v3float
%tint_symbol_2 = OpFunction %void None %9
%tint_symbol = OpFunctionParameter %v4float
%13 = OpLabel
OpStore %tint_symbol_1 %tint_symbol
OpReturn
OpFunctionEnd
%main = OpFunction %void None %14
%16 = OpLabel
%light = OpVariable %_ptr_Function_v3float Function %24
%negative_light = OpVariable %_ptr_Function_v3float Function %24
OpStore %tint_pointsize %float_1
OpStore %light %21
%26 = OpLoad %v3float %light
%25 = OpFNegate %v3float %26
OpStore %negative_light %25
%28 = OpFunctionCall %void %tint_symbol_2 %8
%19 = OpConstantNull %v3float
%void = OpTypeVoid
%23 = OpTypeFunction %void
%main_inner = OpFunction %v4float None %9
%11 = OpLabel
%light = OpVariable %_ptr_Function_v3float Function %19
%negative_light = OpVariable %_ptr_Function_v3float Function %19
OpStore %light %16
%21 = OpLoad %v3float %light
%20 = OpFNegate %v3float %21
OpStore %negative_light %20
OpReturnValue %5
OpFunctionEnd
%main = OpFunction %void None %23
%26 = OpLabel
%27 = OpFunctionCall %v4float %main_inner
OpStore %value %27
OpStore %vertex_point_size %float_1
OpReturn
OpFunctionEnd

View File

@ -5,21 +5,23 @@
; Schema: 0
OpCapability Shader
OpMemoryModel Logical GLSL450
OpEntryPoint Vertex %main "main" %tint_pointsize %tint_symbol %tint_symbol_2
OpName %tint_pointsize "tint_pointsize"
OpEntryPoint Vertex %main "main" %gl_VertexIndex_1 %value %vertex_point_size
OpName %gl_VertexIndex_1 "gl_VertexIndex_1"
OpName %value "value"
OpName %vertex_point_size "vertex_point_size"
OpName %vertexUniformBuffer1 "vertexUniformBuffer1"
OpMemberName %vertexUniformBuffer1 0 "transform1"
OpName %x_20 "x_20"
OpName %vertexUniformBuffer2 "vertexUniformBuffer2"
OpMemberName %vertexUniformBuffer2 0 "transform2"
OpName %x_26 "x_26"
OpName %tint_symbol "tint_symbol"
OpName %tint_symbol_2 "tint_symbol_2"
OpName %tint_symbol_3 "tint_symbol_3"
OpName %tint_symbol_1 "tint_symbol_1"
OpName %main "main"
OpName %main_inner "main_inner"
OpName %gl_VertexIndex "gl_VertexIndex"
OpName %indexable "indexable"
OpDecorate %tint_pointsize BuiltIn PointSize
OpName %main "main"
OpDecorate %gl_VertexIndex_1 BuiltIn VertexIndex
OpDecorate %value BuiltIn Position
OpDecorate %vertex_point_size BuiltIn PointSize
OpDecorate %vertexUniformBuffer1 Block
OpMemberDecorate %vertexUniformBuffer1 0 Offset 0
OpMemberDecorate %vertexUniformBuffer1 0 ColMajor
@ -34,13 +36,18 @@
OpDecorate %x_26 NonWritable
OpDecorate %x_26 DescriptorSet 1
OpDecorate %x_26 Binding 0
OpDecorate %tint_symbol BuiltIn VertexIndex
OpDecorate %tint_symbol_2 BuiltIn Position
OpDecorate %_arr_v2float_uint_3 ArrayStride 8
%uint = OpTypeInt 32 0
%_ptr_Input_uint = OpTypePointer Input %uint
%gl_VertexIndex_1 = OpVariable %_ptr_Input_uint Input
%float = OpTypeFloat 32
%v4float = OpTypeVector %float 4
%_ptr_Output_v4float = OpTypePointer Output %v4float
%8 = OpConstantNull %v4float
%value = OpVariable %_ptr_Output_v4float Output %8
%_ptr_Output_float = OpTypePointer Output %float
%4 = OpConstantNull %float
%tint_pointsize = OpVariable %_ptr_Output_float Output %4
%11 = OpConstantNull %float
%vertex_point_size = OpVariable %_ptr_Output_float Output %11
%v2float = OpTypeVector %float 2
%mat2v2float = OpTypeMatrix %v2float 2
%vertexUniformBuffer1 = OpTypeStruct %mat2v2float
@ -49,60 +56,53 @@
%vertexUniformBuffer2 = OpTypeStruct %mat2v2float
%_ptr_Uniform_vertexUniformBuffer2 = OpTypePointer Uniform %vertexUniformBuffer2
%x_26 = OpVariable %_ptr_Uniform_vertexUniformBuffer2 Uniform
%uint = OpTypeInt 32 0
%_ptr_Input_uint = OpTypePointer Input %uint
%tint_symbol = OpVariable %_ptr_Input_uint Input
%v4float = OpTypeVector %float 4
%_ptr_Output_v4float = OpTypePointer Output %v4float
%19 = OpConstantNull %v4float
%tint_symbol_2 = OpVariable %_ptr_Output_v4float Output %19
%void = OpTypeVoid
%20 = OpTypeFunction %void %v4float
%25 = OpTypeFunction %void
%float_1 = OpConstant %float 1
%20 = OpTypeFunction %v4float %uint
%uint_3 = OpConstant %uint 3
%_arr_v2float_uint_3 = OpTypeArray %v2float %uint_3
%_ptr_Function__arr_v2float_uint_3 = OpTypePointer Function %_arr_v2float_uint_3
%33 = OpConstantNull %_arr_v2float_uint_3
%28 = OpConstantNull %_arr_v2float_uint_3
%uint_0 = OpConstant %uint 0
%_ptr_Uniform_mat2v2float = OpTypePointer Uniform %mat2v2float
%float_n1 = OpConstant %float -1
%42 = OpConstantComposite %v2float %float_n1 %float_1
%43 = OpConstantComposite %v2float %float_1 %float_1
%44 = OpConstantComposite %v2float %float_n1 %float_n1
%45 = OpConstantComposite %_arr_v2float_uint_3 %42 %43 %44
%float_1 = OpConstant %float 1
%37 = OpConstantComposite %v2float %float_n1 %float_1
%38 = OpConstantComposite %v2float %float_1 %float_1
%39 = OpConstantComposite %v2float %float_n1 %float_n1
%40 = OpConstantComposite %_arr_v2float_uint_3 %37 %38 %39
%_ptr_Function_v2float = OpTypePointer Function %v2float
%uint_1 = OpConstant %uint 1
%float_0 = OpConstant %float 0
%tint_symbol_3 = OpFunction %void None %20
%tint_symbol_1 = OpFunctionParameter %v4float
%24 = OpLabel
OpStore %tint_symbol_2 %tint_symbol_1
OpReturn
OpFunctionEnd
%main = OpFunction %void None %25
%27 = OpLabel
%indexable = OpVariable %_ptr_Function__arr_v2float_uint_3 Function %33
OpStore %tint_pointsize %float_1
%36 = OpAccessChain %_ptr_Uniform_mat2v2float %x_20 %uint_0
%37 = OpLoad %mat2v2float %36
%38 = OpAccessChain %_ptr_Uniform_mat2v2float %x_26 %uint_0
%39 = OpLoad %mat2v2float %38
%40 = OpLoad %uint %tint_symbol
OpStore %indexable %45
%47 = OpAccessChain %_ptr_Function_v2float %indexable %40
%48 = OpLoad %v2float %47
%49 = OpCompositeExtract %v2float %37 0
%50 = OpCompositeExtract %v2float %39 0
%51 = OpFAdd %v2float %49 %50
%53 = OpCompositeExtract %v2float %37 1
%54 = OpCompositeExtract %v2float %39 1
%55 = OpFAdd %v2float %53 %54
%56 = OpCompositeConstruct %mat2v2float %51 %55
%57 = OpMatrixTimesVector %v2float %56 %48
%59 = OpCompositeExtract %float %57 0
%60 = OpCompositeExtract %float %57 1
%62 = OpCompositeConstruct %v4float %59 %60 %float_0 %float_1
%58 = OpFunctionCall %void %tint_symbol_3 %62
%void = OpTypeVoid
%57 = OpTypeFunction %void
%main_inner = OpFunction %v4float None %20
%gl_VertexIndex = OpFunctionParameter %uint
%23 = OpLabel
%indexable = OpVariable %_ptr_Function__arr_v2float_uint_3 Function %28
%31 = OpAccessChain %_ptr_Uniform_mat2v2float %x_20 %uint_0
%32 = OpLoad %mat2v2float %31
%33 = OpAccessChain %_ptr_Uniform_mat2v2float %x_26 %uint_0
%34 = OpLoad %mat2v2float %33
OpStore %indexable %40
%42 = OpAccessChain %_ptr_Function_v2float %indexable %gl_VertexIndex
%43 = OpLoad %v2float %42
%44 = OpCompositeExtract %v2float %32 0
%45 = OpCompositeExtract %v2float %34 0
%46 = OpFAdd %v2float %44 %45
%48 = OpCompositeExtract %v2float %32 1
%49 = OpCompositeExtract %v2float %34 1
%50 = OpFAdd %v2float %48 %49
%51 = OpCompositeConstruct %mat2v2float %46 %50
%52 = OpMatrixTimesVector %v2float %51 %43
%53 = OpCompositeExtract %float %52 0
%54 = OpCompositeExtract %float %52 1
%56 = OpCompositeConstruct %v4float %53 %54 %float_0 %float_1
OpReturnValue %56
OpFunctionEnd
%main = OpFunction %void None %57
%60 = OpLabel
%62 = OpLoad %uint %gl_VertexIndex_1
%61 = OpFunctionCall %v4float %main_inner %62
OpStore %value %61
OpStore %vertex_point_size %float_1
OpReturn
OpFunctionEnd

View File

@ -1,13 +1,14 @@
; SPIR-V
; Version: 1.3
; Generator: Google Tint Compiler; 0
; Bound: 135
; Bound: 137
; Schema: 0
OpCapability Shader
OpCapability ImageQuery
OpMemoryModel Logical GLSL450
OpEntryPoint GLCompute %main "main" %tint_symbol
OpEntryPoint GLCompute %main "main" %GlobalInvocationID_1
OpExecutionMode %main LocalSize 1 1 1
OpName %GlobalInvocationID_1 "GlobalInvocationID_1"
OpName %src "src"
OpName %dst "dst"
OpName %OutputBuf "OutputBuf"
@ -19,10 +20,10 @@
OpMemberName %Uniforms 2 "isRGB10A2Unorm"
OpMemberName %Uniforms 3 "channelCount"
OpName %uniforms "uniforms"
OpName %tint_symbol "tint_symbol"
OpName %ConvertToFp16FloatValue "ConvertToFp16FloatValue"
OpName %fp32 "fp32"
OpName %main "main"
OpName %main_inner "main_inner"
OpName %GlobalInvocationID "GlobalInvocationID"
OpName %size "size"
OpName %dstTexCoord "dstTexCoord"
OpName %srcTexCoord "srcTexCoord"
@ -33,6 +34,8 @@
OpName %dstColorBits "dstColorBits"
OpName %i "i"
OpName %outputIndex "outputIndex"
OpName %main "main"
OpDecorate %GlobalInvocationID_1 BuiltIn GlobalInvocationId
OpDecorate %src DescriptorSet 0
OpDecorate %src Binding 0
OpDecorate %dst DescriptorSet 0
@ -50,13 +53,15 @@
OpDecorate %uniforms NonWritable
OpDecorate %uniforms DescriptorSet 0
OpDecorate %uniforms Binding 3
OpDecorate %tint_symbol BuiltIn GlobalInvocationId
%float = OpTypeFloat 32
%3 = OpTypeImage %float 2D 0 0 0 1 Unknown
%_ptr_UniformConstant_3 = OpTypePointer UniformConstant %3
%src = OpVariable %_ptr_UniformConstant_3 UniformConstant
%dst = OpVariable %_ptr_UniformConstant_3 UniformConstant
%uint = OpTypeInt 32 0
%v3uint = OpTypeVector %uint 3
%_ptr_Input_v3uint = OpTypePointer Input %v3uint
%GlobalInvocationID_1 = OpVariable %_ptr_Input_v3uint Input
%float = OpTypeFloat 32
%7 = OpTypeImage %float 2D 0 0 0 1 Unknown
%_ptr_UniformConstant_7 = OpTypePointer UniformConstant %7
%src = OpVariable %_ptr_UniformConstant_7 UniformConstant
%dst = OpVariable %_ptr_UniformConstant_7 UniformConstant
%_runtimearr_uint = OpTypeRuntimeArray %uint
%OutputBuf = OpTypeStruct %_runtimearr_uint
%_ptr_StorageBuffer_OutputBuf = OpTypePointer StorageBuffer %OutputBuf
@ -64,18 +69,15 @@
%Uniforms = OpTypeStruct %uint %uint %uint %uint
%_ptr_Uniform_Uniforms = OpTypePointer Uniform %Uniforms
%uniforms = OpVariable %_ptr_Uniform_Uniforms Uniform
%v3uint = OpTypeVector %uint 3
%_ptr_Input_v3uint = OpTypePointer Input %v3uint
%tint_symbol = OpVariable %_ptr_Input_v3uint Input
%17 = OpTypeFunction %uint %float
%uint_1 = OpConstant %uint 1
%void = OpTypeVoid
%22 = OpTypeFunction %void
%22 = OpTypeFunction %void %v3uint
%int = OpTypeInt 32 1
%v2int = OpTypeVector %int 2
%int_0 = OpConstant %int 0
%_ptr_Function_v2int = OpTypePointer Function %v2int
%33 = OpConstantNull %v2int
%34 = OpConstantNull %v2int
%v2uint = OpTypeVector %uint 2
%uint_0 = OpConstant %uint 0
%_ptr_Uniform_uint = OpTypePointer Uniform %uint
@ -95,18 +97,19 @@
%82 = OpConstantNull %uint
%uint_3 = OpConstant %uint 3
%_ptr_Function_float = OpTypePointer Function %float
%_ptr_Input_uint = OpTypePointer Input %uint
%_ptr_StorageBuffer_uint = OpTypePointer StorageBuffer %uint
%132 = OpTypeFunction %void
%ConvertToFp16FloatValue = OpFunction %uint None %17
%fp32 = OpFunctionParameter %float
%20 = OpLabel
OpReturnValue %uint_1
OpFunctionEnd
%main = OpFunction %void None %22
%25 = OpLabel
%size = OpVariable %_ptr_Function_v2int Function %33
%dstTexCoord = OpVariable %_ptr_Function_v2int Function %33
%srcTexCoord = OpVariable %_ptr_Function_v2int Function %33
%main_inner = OpFunction %void None %22
%GlobalInvocationID = OpFunctionParameter %v3uint
%26 = OpLabel
%size = OpVariable %_ptr_Function_v2int Function %34
%dstTexCoord = OpVariable %_ptr_Function_v2int Function %34
%srcTexCoord = OpVariable %_ptr_Function_v2int Function %34
%srcColor = OpVariable %_ptr_Function_v4float Function %64
%dstColor = OpVariable %_ptr_Function_v4float Function %64
%success = OpVariable %_ptr_Function_bool Function %72
@ -114,13 +117,12 @@
%dstColorBits = OpVariable %_ptr_Function_v4uint Function %76
%i = OpVariable %_ptr_Function_uint Function %82
%outputIndex = OpVariable %_ptr_Function_uint Function %82
%29 = OpLoad %3 %src
%26 = OpImageQuerySizeLod %v2int %29 %int_0
OpStore %size %26
%36 = OpLoad %v3uint %tint_symbol
%37 = OpVectorShuffle %v2uint %36 %36 0 1
%34 = OpBitcast %v2int %37
OpStore %dstTexCoord %34
%30 = OpLoad %7 %src
%27 = OpImageQuerySizeLod %v2int %30 %int_0
OpStore %size %27
%37 = OpVectorShuffle %v2uint %GlobalInvocationID %GlobalInvocationID 0 1
%35 = OpBitcast %v2int %37
OpStore %dstTexCoord %35
%39 = OpLoad %v2int %dstTexCoord
OpStore %srcTexCoord %39
%43 = OpAccessChain %_ptr_Uniform_uint %uniforms %uint_0
@ -139,11 +141,11 @@
OpStore %50 %57
OpBranch %47
%47 = OpLabel
%60 = OpLoad %3 %src
%60 = OpLoad %7 %src
%61 = OpLoad %v2int %srcTexCoord
%58 = OpImageFetch %v4float %60 %61 Lod %int_0
OpStore %srcColor %58
%66 = OpLoad %3 %dst
%66 = OpLoad %7 %dst
%67 = OpLoad %v2int %dstTexCoord
%65 = OpImageFetch %v4float %66 %67 Lod %int_0
OpStore %dstColor %65
@ -196,29 +198,33 @@
OpStore %i %114
OpBranch %83
%84 = OpLabel
%116 = OpAccessChain %_ptr_Input_uint %tint_symbol %uint_1
%117 = OpLoad %uint %116
%119 = OpAccessChain %_ptr_Function_int %size %uint_0
%120 = OpLoad %int %119
%118 = OpBitcast %uint %120
%121 = OpIMul %uint %117 %118
%122 = OpAccessChain %_ptr_Input_uint %tint_symbol %uint_0
%123 = OpLoad %uint %122
%124 = OpIAdd %uint %121 %123
OpStore %outputIndex %124
%126 = OpLoad %bool %success
OpSelectionMerge %127 None
OpBranchConditional %126 %128 %129
%128 = OpLabel
%115 = OpCompositeExtract %uint %GlobalInvocationID 1
%117 = OpAccessChain %_ptr_Function_int %size %uint_0
%118 = OpLoad %int %117
%116 = OpBitcast %uint %118
%119 = OpIMul %uint %115 %116
%120 = OpCompositeExtract %uint %GlobalInvocationID 0
%121 = OpIAdd %uint %119 %120
OpStore %outputIndex %121
%123 = OpLoad %bool %success
OpSelectionMerge %124 None
OpBranchConditional %123 %125 %126
%125 = OpLabel
%127 = OpLoad %uint %outputIndex
%129 = OpAccessChain %_ptr_StorageBuffer_uint %output %uint_0 %127
OpStore %129 %uint_1
OpBranch %124
%126 = OpLabel
%130 = OpLoad %uint %outputIndex
%132 = OpAccessChain %_ptr_StorageBuffer_uint %output %uint_0 %130
OpStore %132 %uint_1
OpBranch %127
%129 = OpLabel
%133 = OpLoad %uint %outputIndex
%134 = OpAccessChain %_ptr_StorageBuffer_uint %output %uint_0 %133
OpStore %134 %uint_0
OpBranch %127
%127 = OpLabel
%131 = OpAccessChain %_ptr_StorageBuffer_uint %output %uint_0 %130
OpStore %131 %uint_0
OpBranch %124
%124 = OpLabel
OpReturn
OpFunctionEnd
%main = OpFunction %void None %132
%134 = OpLabel
%136 = OpLoad %v3uint %GlobalInvocationID_1
%135 = OpFunctionCall %void %main_inner %136
OpReturn
OpFunctionEnd

View File

@ -1,12 +1,13 @@
; SPIR-V
; Version: 1.3
; Generator: Google Tint Compiler; 0
; Bound: 71
; Bound: 74
; Schema: 0
OpCapability Shader
OpMemoryModel Logical GLSL450
OpEntryPoint GLCompute %main "main" %tint_symbol
OpEntryPoint GLCompute %main "main" %global_id_1
OpExecutionMode %main LocalSize 2 2 1
OpName %global_id_1 "global_id_1"
OpName %Matrix "Matrix"
OpMemberName %Matrix 0 "numbers"
OpName %firstMatrix "firstMatrix"
@ -17,10 +18,12 @@
OpMemberName %Uniforms 1 "bShape"
OpMemberName %Uniforms 2 "outShape"
OpName %uniforms "uniforms"
OpName %tint_symbol "tint_symbol"
OpName %main "main"
OpName %main_inner "main_inner"
OpName %global_id "global_id"
OpName %result "result"
OpName %i "i"
OpName %main "main"
OpDecorate %global_id_1 BuiltIn GlobalInvocationId
OpDecorate %Matrix Block
OpMemberDecorate %Matrix 0 Offset 0
OpDecorate %_runtimearr_uint ArrayStride 4
@ -40,8 +43,10 @@
OpDecorate %uniforms NonWritable
OpDecorate %uniforms DescriptorSet 0
OpDecorate %uniforms Binding 3
OpDecorate %tint_symbol BuiltIn GlobalInvocationId
%uint = OpTypeInt 32 0
%v3uint = OpTypeVector %uint 3
%_ptr_Input_v3uint = OpTypePointer Input %v3uint
%global_id_1 = OpVariable %_ptr_Input_v3uint Input
%_runtimearr_uint = OpTypeRuntimeArray %uint
%Matrix = OpTypeStruct %_runtimearr_uint
%_ptr_StorageBuffer_Matrix = OpTypePointer StorageBuffer %Matrix
@ -52,77 +57,79 @@
%Uniforms = OpTypeStruct %v2uint %v2uint %v2uint
%_ptr_Uniform_Uniforms = OpTypePointer Uniform %Uniforms
%uniforms = OpVariable %_ptr_Uniform_Uniforms Uniform
%v3uint = OpTypeVector %uint 3
%_ptr_Input_v3uint = OpTypePointer Input %v3uint
%tint_symbol = OpVariable %_ptr_Input_v3uint Input
%void = OpTypeVoid
%15 = OpTypeFunction %void
%uint_1 = OpConstant %uint 1
%_ptr_Input_uint = OpTypePointer Input %uint
%15 = OpTypeFunction %void %v3uint
%uint_0 = OpConstant %uint 0
%uint_1 = OpConstant %uint 1
%_ptr_Uniform_uint = OpTypePointer Uniform %uint
%uint_2 = OpConstant %uint 2
%_ptr_Function_uint = OpTypePointer Function %uint
%35 = OpConstantNull %uint
%33 = OpConstantNull %uint
%bool = OpTypeBool
%_ptr_StorageBuffer_uint = OpTypePointer StorageBuffer %uint
%main = OpFunction %void None %15
%18 = OpLabel
%result = OpVariable %_ptr_Function_uint Function %35
%i = OpVariable %_ptr_Function_uint Function %35
%21 = OpAccessChain %_ptr_Input_uint %tint_symbol %uint_1
%22 = OpLoad %uint %21
%24 = OpAccessChain %_ptr_Input_uint %tint_symbol %uint_0
%25 = OpLoad %uint %24
%26 = OpCompositeConstruct %v2uint %22 %25
%28 = OpAccessChain %_ptr_Uniform_uint %uniforms %uint_0 %uint_1
%29 = OpLoad %uint %28
%31 = OpAccessChain %_ptr_Uniform_uint %uniforms %uint_2 %uint_1
%32 = OpLoad %uint %31
%69 = OpTypeFunction %void
%main_inner = OpFunction %void None %15
%global_id = OpFunctionParameter %v3uint
%19 = OpLabel
%result = OpVariable %_ptr_Function_uint Function %33
%i = OpVariable %_ptr_Function_uint Function %33
%20 = OpCompositeExtract %uint %global_id 1
%21 = OpCompositeExtract %uint %global_id 0
%22 = OpCompositeConstruct %v2uint %20 %21
%26 = OpAccessChain %_ptr_Uniform_uint %uniforms %uint_0 %uint_1
%27 = OpLoad %uint %26
%29 = OpAccessChain %_ptr_Uniform_uint %uniforms %uint_2 %uint_1
%30 = OpLoad %uint %29
OpStore %result %uint_0
OpStore %i %uint_0
OpBranch %35
%35 = OpLabel
OpLoopMerge %36 %37 None
OpBranch %38
%38 = OpLabel
%40 = OpLoad %uint %i
%41 = OpULessThan %bool %40 %27
%39 = OpLogicalNot %bool %41
OpSelectionMerge %43 None
OpBranchConditional %39 %44 %43
%44 = OpLabel
OpBranch %36
%43 = OpLabel
%45 = OpLoad %uint %i
%46 = OpCompositeExtract %uint %22 0
%47 = OpIMul %uint %46 %27
%48 = OpIAdd %uint %45 %47
%49 = OpCompositeExtract %uint %22 1
%50 = OpLoad %uint %i
%51 = OpIMul %uint %50 %30
%52 = OpIAdd %uint %49 %51
%53 = OpLoad %uint %result
%55 = OpAccessChain %_ptr_StorageBuffer_uint %firstMatrix %uint_0 %48
%56 = OpLoad %uint %55
%57 = OpAccessChain %_ptr_StorageBuffer_uint %secondMatrix %uint_0 %52
%58 = OpLoad %uint %57
%59 = OpIMul %uint %56 %58
%60 = OpIAdd %uint %53 %59
OpStore %result %60
OpBranch %37
%37 = OpLabel
OpLoopMerge %38 %39 None
OpBranch %40
%40 = OpLabel
%42 = OpLoad %uint %i
%43 = OpULessThan %bool %42 %29
%41 = OpLogicalNot %bool %43
OpSelectionMerge %45 None
OpBranchConditional %41 %46 %45
%46 = OpLabel
OpBranch %38
%45 = OpLabel
%47 = OpLoad %uint %i
%48 = OpCompositeExtract %uint %26 0
%49 = OpIMul %uint %48 %29
%50 = OpIAdd %uint %47 %49
%51 = OpCompositeExtract %uint %26 1
%52 = OpLoad %uint %i
%53 = OpIMul %uint %52 %32
%54 = OpIAdd %uint %51 %53
%55 = OpLoad %uint %result
%57 = OpAccessChain %_ptr_StorageBuffer_uint %firstMatrix %uint_0 %50
%58 = OpLoad %uint %57
%59 = OpAccessChain %_ptr_StorageBuffer_uint %secondMatrix %uint_0 %54
%60 = OpLoad %uint %59
%61 = OpIMul %uint %58 %60
%62 = OpIAdd %uint %55 %61
OpStore %result %62
OpBranch %39
%39 = OpLabel
%63 = OpLoad %uint %i
%64 = OpIAdd %uint %63 %uint_1
OpStore %i %64
OpBranch %37
%38 = OpLabel
%65 = OpCompositeExtract %uint %26 1
%66 = OpCompositeExtract %uint %26 0
%67 = OpIMul %uint %66 %32
%68 = OpIAdd %uint %65 %67
%69 = OpAccessChain %_ptr_StorageBuffer_uint %resultMatrix %uint_0 %68
%70 = OpLoad %uint %result
OpStore %69 %70
%61 = OpLoad %uint %i
%62 = OpIAdd %uint %61 %uint_1
OpStore %i %62
OpBranch %35
%36 = OpLabel
%63 = OpCompositeExtract %uint %22 1
%64 = OpCompositeExtract %uint %22 0
%65 = OpIMul %uint %64 %30
%66 = OpIAdd %uint %63 %65
%67 = OpAccessChain %_ptr_StorageBuffer_uint %resultMatrix %uint_0 %66
%68 = OpLoad %uint %result
OpStore %67 %68
OpReturn
OpFunctionEnd
%main = OpFunction %void None %69
%71 = OpLabel
%73 = OpLoad %v3uint %global_id_1
%72 = OpFunctionCall %void %main_inner %73
OpReturn
OpFunctionEnd

View File

@ -6,8 +6,10 @@
OpCapability Shader
%1694 = OpExtInstImport "GLSL.std.450"
OpMemoryModel Logical GLSL450
OpEntryPoint Fragment %main "main" %tint_symbol %tint_symbol_2
OpEntryPoint Fragment %main "main" %gl_FragCoord_param_1 %x_GLF_color_1_1
OpExecutionMode %main OriginUpperLeft
OpName %gl_FragCoord_param_1 "gl_FragCoord_param_1"
OpName %x_GLF_color_1_1 "x_GLF_color_1_1"
OpName %QuicksortObject "QuicksortObject"
OpMemberName %QuicksortObject 0 "numbers"
OpName %obj "obj"
@ -16,8 +18,6 @@
OpMemberName %buf0 0 "resolution"
OpName %x_188 "x_188"
OpName %x_GLF_color "x_GLF_color"
OpName %tint_symbol "tint_symbol"
OpName %tint_symbol_2 "tint_symbol_2"
OpName %swap_i1_i1_ "swap_i1_i1_"
OpName %i "i"
OpName %j "j"
@ -48,9 +48,11 @@
OpName %uv "uv"
OpName %main_out "main_out"
OpMemberName %main_out 0 "x_GLF_color_1"
OpName %tint_symbol_3 "tint_symbol_3"
OpName %tint_symbol_1 "tint_symbol_1"
OpName %main_inner "main_inner"
OpName %gl_FragCoord_param "gl_FragCoord_param"
OpName %main "main"
OpDecorate %gl_FragCoord_param_1 BuiltIn FragCoord
OpDecorate %x_GLF_color_1_1 Location 0
OpMemberDecorate %QuicksortObject 0 Offset 0
OpDecorate %_arr_int_uint_10 ArrayStride 4
OpDecorate %buf0 Block
@ -58,31 +60,29 @@
OpDecorate %x_188 NonWritable
OpDecorate %x_188 DescriptorSet 0
OpDecorate %x_188 Binding 0
OpDecorate %tint_symbol BuiltIn FragCoord
OpDecorate %tint_symbol_2 Location 0
OpMemberDecorate %main_out 0 Offset 0
%float = OpTypeFloat 32
%v4float = OpTypeVector %float 4
%_ptr_Input_v4float = OpTypePointer Input %v4float
%gl_FragCoord_param_1 = OpVariable %_ptr_Input_v4float Input
%_ptr_Output_v4float = OpTypePointer Output %v4float
%7 = OpConstantNull %v4float
%x_GLF_color_1_1 = OpVariable %_ptr_Output_v4float Output %7
%int = OpTypeInt 32 1
%uint = OpTypeInt 32 0
%uint_10 = OpConstant %uint 10
%_arr_int_uint_10 = OpTypeArray %int %uint_10
%QuicksortObject = OpTypeStruct %_arr_int_uint_10
%_ptr_Private_QuicksortObject = OpTypePointer Private %QuicksortObject
%8 = OpConstantNull %QuicksortObject
%obj = OpVariable %_ptr_Private_QuicksortObject Private %8
%float = OpTypeFloat 32
%v4float = OpTypeVector %float 4
%15 = OpConstantNull %QuicksortObject
%obj = OpVariable %_ptr_Private_QuicksortObject Private %15
%_ptr_Private_v4float = OpTypePointer Private %v4float
%13 = OpConstantNull %v4float
%gl_FragCoord = OpVariable %_ptr_Private_v4float Private %13
%gl_FragCoord = OpVariable %_ptr_Private_v4float Private %7
%v2float = OpTypeVector %float 2
%buf0 = OpTypeStruct %v2float
%_ptr_Uniform_buf0 = OpTypePointer Uniform %buf0
%x_188 = OpVariable %_ptr_Uniform_buf0 Uniform
%x_GLF_color = OpVariable %_ptr_Private_v4float Private %13
%_ptr_Input_v4float = OpTypePointer Input %v4float
%tint_symbol = OpVariable %_ptr_Input_v4float Input
%_ptr_Output_v4float = OpTypePointer Output %v4float
%tint_symbol_2 = OpVariable %_ptr_Output_v4float Output %13
%x_GLF_color = OpVariable %_ptr_Private_v4float Private %7
%void = OpTypeVoid
%_ptr_Function_int = OpTypePointer Function %int
%23 = OpTypeFunction %void %_ptr_Function_int %_ptr_Function_int
@ -129,7 +129,7 @@
%int_8 = OpConstant %int 8
%uint_9 = OpConstant %uint 9
%main_out = OpTypeStruct %v4float
%1820 = OpTypeFunction %void %main_out
%1820 = OpTypeFunction %main_out %v4float
%swap_i1_i1_ = OpFunction %void None %23
%i = OpFunctionParameter %_ptr_Function_int
%j = OpFunctionParameter %_ptr_Function_int
@ -2624,20 +2624,20 @@
OpStore %1819 %1817
OpReturn
OpFunctionEnd
%tint_symbol_3 = OpFunction %void None %1820
%tint_symbol_1 = OpFunctionParameter %main_out
%main_inner = OpFunction %main_out None %1820
%gl_FragCoord_param = OpFunctionParameter %v4float
%1824 = OpLabel
%1825 = OpCompositeExtract %v4float %tint_symbol_1 0
OpStore %tint_symbol_2 %1825
OpReturn
OpStore %gl_FragCoord %gl_FragCoord_param
%1825 = OpFunctionCall %void %main_1
%1826 = OpLoad %v4float %x_GLF_color
%1827 = OpCompositeConstruct %main_out %1826
OpReturnValue %1827
OpFunctionEnd
%main = OpFunction %void None %419
%1827 = OpLabel
%1828 = OpLoad %v4float %tint_symbol
OpStore %gl_FragCoord %1828
%1829 = OpFunctionCall %void %main_1
%1831 = OpLoad %v4float %x_GLF_color
%1832 = OpCompositeConstruct %main_out %1831
%1830 = OpFunctionCall %void %tint_symbol_3 %1832
%1829 = OpLabel
%1831 = OpLoad %v4float %gl_FragCoord_param_1
%1830 = OpFunctionCall %main_out %main_inner %1831
%1832 = OpCompositeExtract %v4float %1830 0
OpStore %x_GLF_color_1_1 %1832
OpReturn
OpFunctionEnd

View File

@ -1,12 +1,13 @@
; SPIR-V
; Version: 1.3
; Generator: Google Tint Compiler; 0
; Bound: 78
; Bound: 79
; Schema: 0
OpCapability Shader
OpMemoryModel Logical GLSL450
OpEntryPoint GLCompute %main "main" %tint_symbol
OpEntryPoint GLCompute %main "main" %GlobalInvocationID_1
OpExecutionMode %main LocalSize 1 1 1
OpName %GlobalInvocationID_1 "GlobalInvocationID_1"
OpName %Constants "Constants"
OpMemberName %Constants 0 "level"
OpName %constants "constants"
@ -14,11 +15,13 @@
OpName %Result "Result"
OpMemberName %Result 0 "values"
OpName %result "result"
OpName %tint_symbol "tint_symbol"
OpName %main "main"
OpName %main_inner "main_inner"
OpName %GlobalInvocationID "GlobalInvocationID"
OpName %flatIndex "flatIndex"
OpName %texel "texel"
OpName %i "i"
OpName %main "main"
OpDecorate %GlobalInvocationID_1 BuiltIn GlobalInvocationId
OpDecorate %Constants Block
OpMemberDecorate %Constants 0 Offset 0
OpDecorate %constants NonWritable
@ -31,97 +34,99 @@
OpDecorate %_runtimearr_float ArrayStride 4
OpDecorate %result DescriptorSet 0
OpDecorate %result Binding 3
OpDecorate %tint_symbol BuiltIn GlobalInvocationId
%uint = OpTypeInt 32 0
%v3uint = OpTypeVector %uint 3
%_ptr_Input_v3uint = OpTypePointer Input %v3uint
%GlobalInvocationID_1 = OpVariable %_ptr_Input_v3uint Input
%int = OpTypeInt 32 1
%Constants = OpTypeStruct %int
%_ptr_Uniform_Constants = OpTypePointer Uniform %Constants
%constants = OpVariable %_ptr_Uniform_Constants Uniform
%float = OpTypeFloat 32
%7 = OpTypeImage %float 2D 0 1 0 1 Unknown
%_ptr_UniformConstant_7 = OpTypePointer UniformConstant %7
%myTexture = OpVariable %_ptr_UniformConstant_7 UniformConstant
%11 = OpTypeImage %float 2D 0 1 0 1 Unknown
%_ptr_UniformConstant_11 = OpTypePointer UniformConstant %11
%myTexture = OpVariable %_ptr_UniformConstant_11 UniformConstant
%_runtimearr_float = OpTypeRuntimeArray %float
%Result = OpTypeStruct %_runtimearr_float
%_ptr_StorageBuffer_Result = OpTypePointer StorageBuffer %Result
%result = OpVariable %_ptr_StorageBuffer_Result StorageBuffer
%uint = OpTypeInt 32 0
%v3uint = OpTypeVector %uint 3
%_ptr_Input_v3uint = OpTypePointer Input %v3uint
%tint_symbol = OpVariable %_ptr_Input_v3uint Input
%void = OpTypeVoid
%17 = OpTypeFunction %void
%17 = OpTypeFunction %void %v3uint
%uint_2 = OpConstant %uint 2
%_ptr_Input_uint = OpTypePointer Input %uint
%uint_1 = OpConstant %uint 1
%uint_0 = OpConstant %uint 0
%_ptr_Function_uint = OpTypePointer Function %uint
%38 = OpConstantNull %uint
%33 = OpConstantNull %uint
%uint_1 = OpConstant %uint 1
%v4float = OpTypeVector %float 4
%v3int = OpTypeVector %int 3
%v2int = OpTypeVector %int 2
%v2uint = OpTypeVector %uint 2
%int_0 = OpConstant %int 0
%_ptr_Function_v4float = OpTypePointer Function %v4float
%56 = OpConstantNull %v4float
%51 = OpConstantNull %v4float
%uint_0 = OpConstant %uint 0
%bool = OpTypeBool
%_ptr_StorageBuffer_float = OpTypePointer StorageBuffer %float
%_ptr_Function_float = OpTypePointer Function %float
%main = OpFunction %void None %17
%20 = OpLabel
%flatIndex = OpVariable %_ptr_Function_uint Function %38
%texel = OpVariable %_ptr_Function_v4float Function %56
%i = OpVariable %_ptr_Function_uint Function %38
%22 = OpIMul %uint %uint_2 %uint_2
%24 = OpAccessChain %_ptr_Input_uint %tint_symbol %uint_2
%25 = OpLoad %uint %24
%26 = OpIMul %uint %22 %25
%28 = OpAccessChain %_ptr_Input_uint %tint_symbol %uint_1
%29 = OpLoad %uint %28
%30 = OpIMul %uint %uint_2 %29
%31 = OpIAdd %uint %26 %30
%33 = OpAccessChain %_ptr_Input_uint %tint_symbol %uint_0
%34 = OpLoad %uint %33
%35 = OpIAdd %uint %31 %34
OpStore %flatIndex %35
%39 = OpLoad %uint %flatIndex
%40 = OpIMul %uint %39 %uint_1
OpStore %flatIndex %40
%43 = OpLoad %7 %myTexture
%48 = OpLoad %v3uint %tint_symbol
%49 = OpVectorShuffle %v2uint %48 %48 0 1
%45 = OpBitcast %v2int %49
%50 = OpCompositeExtract %int %45 0
%51 = OpCompositeExtract %int %45 1
%53 = OpCompositeConstruct %v3int %50 %51 %int_0
%41 = OpImageFetch %v4float %43 %53 Lod %int_0
OpStore %texel %41
%74 = OpTypeFunction %void
%main_inner = OpFunction %void None %17
%GlobalInvocationID = OpFunctionParameter %v3uint
%21 = OpLabel
%flatIndex = OpVariable %_ptr_Function_uint Function %33
%texel = OpVariable %_ptr_Function_v4float Function %51
%i = OpVariable %_ptr_Function_uint Function %33
%23 = OpIMul %uint %uint_2 %uint_2
%24 = OpCompositeExtract %uint %GlobalInvocationID 2
%25 = OpIMul %uint %23 %24
%26 = OpCompositeExtract %uint %GlobalInvocationID 1
%27 = OpIMul %uint %uint_2 %26
%28 = OpIAdd %uint %25 %27
%29 = OpCompositeExtract %uint %GlobalInvocationID 0
%30 = OpIAdd %uint %28 %29
OpStore %flatIndex %30
%34 = OpLoad %uint %flatIndex
%36 = OpIMul %uint %34 %uint_1
OpStore %flatIndex %36
%39 = OpLoad %11 %myTexture
%44 = OpVectorShuffle %v2uint %GlobalInvocationID %GlobalInvocationID 0 1
%41 = OpBitcast %v2int %44
%45 = OpCompositeExtract %int %41 0
%46 = OpCompositeExtract %int %41 1
%48 = OpCompositeConstruct %v3int %45 %46 %int_0
%37 = OpImageFetch %v4float %39 %48 Lod %int_0
OpStore %texel %37
OpStore %i %uint_0
OpBranch %58
%58 = OpLabel
OpLoopMerge %59 %60 None
OpBranch %61
%61 = OpLabel
%63 = OpLoad %uint %i
%64 = OpULessThan %bool %63 %uint_1
%62 = OpLogicalNot %bool %64
OpSelectionMerge %66 None
OpBranchConditional %62 %67 %66
%67 = OpLabel
OpBranch %59
%66 = OpLabel
%68 = OpLoad %uint %flatIndex
%69 = OpLoad %uint %i
%70 = OpIAdd %uint %68 %69
%72 = OpAccessChain %_ptr_StorageBuffer_float %result %uint_0 %70
%74 = OpAccessChain %_ptr_Function_float %texel %uint_0
%75 = OpLoad %float %74
OpStore %72 %75
OpBranch %60
%60 = OpLabel
%76 = OpLoad %uint %i
%77 = OpIAdd %uint %76 %uint_1
OpStore %i %77
OpBranch %58
%59 = OpLabel
OpBranch %54
%54 = OpLabel
OpLoopMerge %55 %56 None
OpBranch %57
%57 = OpLabel
%59 = OpLoad %uint %i
%60 = OpULessThan %bool %59 %uint_1
%58 = OpLogicalNot %bool %60
OpSelectionMerge %62 None
OpBranchConditional %58 %63 %62
%63 = OpLabel
OpBranch %55
%62 = OpLabel
%64 = OpLoad %uint %flatIndex
%65 = OpLoad %uint %i
%66 = OpIAdd %uint %64 %65
%68 = OpAccessChain %_ptr_StorageBuffer_float %result %uint_0 %66
%70 = OpAccessChain %_ptr_Function_float %texel %uint_0
%71 = OpLoad %float %70
OpStore %68 %71
OpBranch %56
%56 = OpLabel
%72 = OpLoad %uint %i
%73 = OpIAdd %uint %72 %uint_1
OpStore %i %73
OpBranch %54
%55 = OpLabel
OpReturn
OpFunctionEnd
%main = OpFunction %void None %74
%76 = OpLabel
%78 = OpLoad %v3uint %GlobalInvocationID_1
%77 = OpFunctionCall %void %main_inner %78
OpReturn
OpFunctionEnd

View File

@ -1,111 +1,113 @@
; SPIR-V
; Version: 1.3
; Generator: Google Tint Compiler; 0
; Bound: 70
; Bound: 71
; Schema: 0
OpCapability Shader
OpMemoryModel Logical GLSL450
OpEntryPoint Vertex %main "main" %tint_pointsize %tint_symbol_1 %tint_symbol_3 %tint_symbol_4
OpName %tint_pointsize "tint_pointsize"
OpName %tint_symbol "tint_symbol"
OpName %tint_symbol_1 "tint_symbol_1"
OpName %tint_symbol_3 "tint_symbol_3"
OpName %tint_symbol_4 "tint_symbol_4"
OpEntryPoint Vertex %main "main" %VertexIndex_1 %InstanceIndex_1 %Position_1 %color_1 %vertex_point_size
OpName %VertexIndex_1 "VertexIndex_1"
OpName %InstanceIndex_1 "InstanceIndex_1"
OpName %Position_1 "Position_1"
OpName %color_1 "color_1"
OpName %vertex_point_size "vertex_point_size"
OpName %Output "Output"
OpMemberName %Output 0 "Position"
OpMemberName %Output 1 "color"
OpName %tint_symbol_5 "tint_symbol_5"
OpName %tint_symbol_2 "tint_symbol_2"
OpName %main "main"
OpName %main_inner "main_inner"
OpName %VertexIndex "VertexIndex"
OpName %InstanceIndex "InstanceIndex"
OpName %zv "zv"
OpName %output "output"
OpName %colors "colors"
OpDecorate %tint_pointsize BuiltIn PointSize
OpDecorate %tint_symbol BuiltIn VertexIndex
OpDecorate %tint_symbol_1 BuiltIn InstanceIndex
OpDecorate %tint_symbol_3 BuiltIn Position
OpDecorate %tint_symbol_4 Location 0
OpName %main "main"
OpDecorate %VertexIndex_1 BuiltIn VertexIndex
OpDecorate %InstanceIndex_1 BuiltIn InstanceIndex
OpDecorate %Position_1 BuiltIn Position
OpDecorate %color_1 Location 0
OpDecorate %vertex_point_size BuiltIn PointSize
OpMemberDecorate %Output 0 Offset 0
OpMemberDecorate %Output 1 Offset 16
OpDecorate %_arr_v2float_uint_4 ArrayStride 8
OpDecorate %_arr_v4float_uint_4 ArrayStride 16
%float = OpTypeFloat 32
%_ptr_Output_float = OpTypePointer Output %float
%4 = OpConstantNull %float
%tint_pointsize = OpVariable %_ptr_Output_float Output %4
%uint = OpTypeInt 32 0
%_ptr_Input_uint = OpTypePointer Input %uint
%tint_symbol = OpVariable %_ptr_Input_uint Input
%tint_symbol_1 = OpVariable %_ptr_Input_uint Input
%VertexIndex_1 = OpVariable %_ptr_Input_uint Input
%InstanceIndex_1 = OpVariable %_ptr_Input_uint Input
%float = OpTypeFloat 32
%v4float = OpTypeVector %float 4
%_ptr_Output_v4float = OpTypePointer Output %v4float
%12 = OpConstantNull %v4float
%tint_symbol_3 = OpVariable %_ptr_Output_v4float Output %12
%tint_symbol_4 = OpVariable %_ptr_Output_v4float Output %12
%void = OpTypeVoid
%9 = OpConstantNull %v4float
%Position_1 = OpVariable %_ptr_Output_v4float Output %9
%color_1 = OpVariable %_ptr_Output_v4float Output %9
%_ptr_Output_float = OpTypePointer Output %float
%13 = OpConstantNull %float
%vertex_point_size = OpVariable %_ptr_Output_float Output %13
%Output = OpTypeStruct %v4float %v4float
%14 = OpTypeFunction %void %Output
%22 = OpTypeFunction %void
%float_1 = OpConstant %float 1
%14 = OpTypeFunction %Output %uint %uint
%v2float = OpTypeVector %float 2
%uint_4 = OpConstant %uint 4
%_arr_v2float_uint_4 = OpTypeArray %v2float %uint_4
%float_0_200000003 = OpConstant %float 0.200000003
%30 = OpConstantComposite %v2float %float_0_200000003 %float_0_200000003
%24 = OpConstantComposite %v2float %float_0_200000003 %float_0_200000003
%float_0_300000012 = OpConstant %float 0.300000012
%32 = OpConstantComposite %v2float %float_0_300000012 %float_0_300000012
%26 = OpConstantComposite %v2float %float_0_300000012 %float_0_300000012
%float_n0_100000001 = OpConstant %float -0.100000001
%34 = OpConstantComposite %v2float %float_n0_100000001 %float_n0_100000001
%28 = OpConstantComposite %v2float %float_n0_100000001 %float_n0_100000001
%float_1_10000002 = OpConstant %float 1.10000002
%36 = OpConstantComposite %v2float %float_1_10000002 %float_1_10000002
%37 = OpConstantComposite %_arr_v2float_uint_4 %30 %32 %34 %36
%30 = OpConstantComposite %v2float %float_1_10000002 %float_1_10000002
%31 = OpConstantComposite %_arr_v2float_uint_4 %24 %26 %28 %30
%_ptr_Function__arr_v2float_uint_4 = OpTypePointer Function %_arr_v2float_uint_4
%40 = OpConstantNull %_arr_v2float_uint_4
%34 = OpConstantNull %_arr_v2float_uint_4
%uint_0 = OpConstant %uint 0
%_ptr_Function_float = OpTypePointer Function %float
%_ptr_Function_Output = OpTypePointer Function %Output
%48 = OpConstantNull %Output
%41 = OpConstantNull %Output
%_ptr_Function_v4float = OpTypePointer Function %v4float
%float_0_5 = OpConstant %float 0.5
%float_1 = OpConstant %float 1
%_arr_v4float_uint_4 = OpTypeArray %v4float %uint_4
%float_0 = OpConstant %float 0
%55 = OpConstantComposite %v4float %float_1 %float_0 %float_0 %float_1
%56 = OpConstantComposite %v4float %float_0 %float_1 %float_0 %float_1
%57 = OpConstantComposite %v4float %float_0 %float_0 %float_1 %float_1
%58 = OpConstantComposite %v4float %float_1 %float_1 %float_1 %float_1
%59 = OpConstantComposite %_arr_v4float_uint_4 %55 %56 %57 %58
%49 = OpConstantComposite %v4float %float_1 %float_0 %float_0 %float_1
%50 = OpConstantComposite %v4float %float_0 %float_1 %float_0 %float_1
%51 = OpConstantComposite %v4float %float_0 %float_0 %float_1 %float_1
%52 = OpConstantComposite %v4float %float_1 %float_1 %float_1 %float_1
%53 = OpConstantComposite %_arr_v4float_uint_4 %49 %50 %51 %52
%_ptr_Function__arr_v4float_uint_4 = OpTypePointer Function %_arr_v4float_uint_4
%62 = OpConstantNull %_arr_v4float_uint_4
%56 = OpConstantNull %_arr_v4float_uint_4
%uint_1 = OpConstant %uint 1
%tint_symbol_5 = OpFunction %void None %14
%tint_symbol_2 = OpFunctionParameter %Output
%void = OpTypeVoid
%62 = OpTypeFunction %void
%main_inner = OpFunction %Output None %14
%VertexIndex = OpFunctionParameter %uint
%InstanceIndex = OpFunctionParameter %uint
%19 = OpLabel
%20 = OpCompositeExtract %v4float %tint_symbol_2 0
OpStore %tint_symbol_3 %20
%21 = OpCompositeExtract %v4float %tint_symbol_2 1
OpStore %tint_symbol_4 %21
OpReturn
OpFunctionEnd
%main = OpFunction %void None %22
%24 = OpLabel
%zv = OpVariable %_ptr_Function__arr_v2float_uint_4 Function %40
%output = OpVariable %_ptr_Function_Output Function %48
%colors = OpVariable %_ptr_Function__arr_v4float_uint_4 Function %62
OpStore %tint_pointsize %float_1
OpStore %zv %37
%41 = OpLoad %uint %tint_symbol_1
%44 = OpAccessChain %_ptr_Function_float %zv %41 %uint_0
%45 = OpLoad %float %44
%50 = OpAccessChain %_ptr_Function_v4float %output %uint_0
%52 = OpCompositeConstruct %v4float %float_0_5 %float_0_5 %45 %float_1
OpStore %50 %52
OpStore %colors %59
%64 = OpAccessChain %_ptr_Function_v4float %output %uint_1
%65 = OpLoad %uint %tint_symbol_1
%66 = OpAccessChain %_ptr_Function_v4float %colors %65
%67 = OpLoad %v4float %66
OpStore %64 %67
%69 = OpLoad %Output %output
%68 = OpFunctionCall %void %tint_symbol_5 %69
%zv = OpVariable %_ptr_Function__arr_v2float_uint_4 Function %34
%output = OpVariable %_ptr_Function_Output Function %41
%colors = OpVariable %_ptr_Function__arr_v4float_uint_4 Function %56
OpStore %zv %31
%37 = OpAccessChain %_ptr_Function_float %zv %InstanceIndex %uint_0
%38 = OpLoad %float %37
%43 = OpAccessChain %_ptr_Function_v4float %output %uint_0
%46 = OpCompositeConstruct %v4float %float_0_5 %float_0_5 %38 %float_1
OpStore %43 %46
OpStore %colors %53
%58 = OpAccessChain %_ptr_Function_v4float %output %uint_1
%59 = OpAccessChain %_ptr_Function_v4float %colors %InstanceIndex
%60 = OpLoad %v4float %59
OpStore %58 %60
%61 = OpLoad %Output %output
OpReturnValue %61
OpFunctionEnd
%main = OpFunction %void None %62
%65 = OpLabel
%67 = OpLoad %uint %VertexIndex_1
%68 = OpLoad %uint %InstanceIndex_1
%66 = OpFunctionCall %Output %main_inner %67 %68
%69 = OpCompositeExtract %v4float %66 0
OpStore %Position_1 %69
%70 = OpCompositeExtract %v4float %66 1
OpStore %color_1 %70
OpStore %vertex_point_size %float_1
OpReturn
OpFunctionEnd

View File

@ -5,15 +5,18 @@
; Schema: 0
OpCapability Shader
OpMemoryModel Logical GLSL450
OpEntryPoint GLCompute %main "main" %tint_symbol
OpEntryPoint GLCompute %main "main" %GlobalInvocationId_1
OpExecutionMode %main LocalSize 1 1 1
OpName %GlobalInvocationId_1 "GlobalInvocationId_1"
OpName %width "width"
OpName %tex "tex"
OpName %Result "Result"
OpMemberName %Result 0 "values"
OpName %result "result"
OpName %tint_symbol "tint_symbol"
OpName %main_inner "main_inner"
OpName %GlobalInvocationId "GlobalInvocationId"
OpName %main "main"
OpDecorate %GlobalInvocationId_1 BuiltIn GlobalInvocationId
OpDecorate %tex DescriptorSet 0
OpDecorate %tex Binding 0
OpDecorate %Result Block
@ -21,49 +24,50 @@
OpDecorate %_runtimearr_float ArrayStride 4
OpDecorate %result DescriptorSet 0
OpDecorate %result Binding 1
OpDecorate %tint_symbol BuiltIn GlobalInvocationId
%uint = OpTypeInt 32 0
%v3uint = OpTypeVector %uint 3
%_ptr_Input_v3uint = OpTypePointer Input %v3uint
%GlobalInvocationId_1 = OpVariable %_ptr_Input_v3uint Input
%width = OpConstant %uint 128
%float = OpTypeFloat 32
%5 = OpTypeImage %float 2D 1 0 0 1 Unknown
%_ptr_UniformConstant_5 = OpTypePointer UniformConstant %5
%tex = OpVariable %_ptr_UniformConstant_5 UniformConstant
%8 = OpTypeImage %float 2D 1 0 0 1 Unknown
%_ptr_UniformConstant_8 = OpTypePointer UniformConstant %8
%tex = OpVariable %_ptr_UniformConstant_8 UniformConstant
%_runtimearr_float = OpTypeRuntimeArray %float
%Result = OpTypeStruct %_runtimearr_float
%_ptr_StorageBuffer_Result = OpTypePointer StorageBuffer %Result
%result = OpVariable %_ptr_StorageBuffer_Result StorageBuffer
%v3uint = OpTypeVector %uint 3
%_ptr_Input_v3uint = OpTypePointer Input %v3uint
%tint_symbol = OpVariable %_ptr_Input_v3uint Input
%void = OpTypeVoid
%14 = OpTypeFunction %void
%14 = OpTypeFunction %void %v3uint
%uint_0 = OpConstant %uint 0
%uint_1 = OpConstant %uint 1
%_ptr_Input_uint = OpTypePointer Input %uint
%_ptr_StorageBuffer_float = OpTypePointer StorageBuffer %float
%v4float = OpTypeVector %float 4
%int = OpTypeInt 32 1
%v2int = OpTypeVector %int 2
%int_0 = OpConstant %int 0
%main = OpFunction %void None %14
%17 = OpLabel
%21 = OpAccessChain %_ptr_Input_uint %tint_symbol %uint_1
%22 = OpLoad %uint %21
%23 = OpIMul %uint %22 %width
%24 = OpAccessChain %_ptr_Input_uint %tint_symbol %uint_0
%25 = OpLoad %uint %24
%26 = OpIAdd %uint %23 %25
%28 = OpAccessChain %_ptr_StorageBuffer_float %result %uint_0 %26
%32 = OpLoad %5 %tex
%36 = OpAccessChain %_ptr_Input_uint %tint_symbol %uint_0
%37 = OpLoad %uint %36
%35 = OpBitcast %int %37
%39 = OpAccessChain %_ptr_Input_uint %tint_symbol %uint_1
%40 = OpLoad %uint %39
%38 = OpBitcast %int %40
%41 = OpCompositeConstruct %v2int %35 %38
%30 = OpImageFetch %v4float %32 %41 Lod %int_0
%29 = OpCompositeExtract %float %30 0
OpStore %28 %29
%38 = OpTypeFunction %void
%main_inner = OpFunction %void None %14
%GlobalInvocationId = OpFunctionParameter %v3uint
%18 = OpLabel
%20 = OpCompositeExtract %uint %GlobalInvocationId 1
%21 = OpIMul %uint %20 %width
%22 = OpCompositeExtract %uint %GlobalInvocationId 0
%23 = OpIAdd %uint %21 %22
%25 = OpAccessChain %_ptr_StorageBuffer_float %result %uint_0 %23
%29 = OpLoad %8 %tex
%33 = OpCompositeExtract %uint %GlobalInvocationId 0
%32 = OpBitcast %int %33
%35 = OpCompositeExtract %uint %GlobalInvocationId 1
%34 = OpBitcast %int %35
%36 = OpCompositeConstruct %v2int %32 %34
%27 = OpImageFetch %v4float %29 %36 Lod %int_0
%26 = OpCompositeExtract %float %27 0
OpStore %25 %26
OpReturn
OpFunctionEnd
%main = OpFunction %void None %38
%40 = OpLabel
%42 = OpLoad %v3uint %GlobalInvocationId_1
%41 = OpFunctionCall %void %main_inner %42
OpReturn
OpFunctionEnd

View File

@ -1,14 +1,15 @@
; SPIR-V
; Version: 1.3
; Generator: Google Tint Compiler; 0
; Bound: 191
; Bound: 193
; Schema: 0
OpCapability Shader
OpCapability ImageQuery
%25 = OpExtInstImport "GLSL.std.450"
OpMemoryModel Logical GLSL450
OpEntryPoint GLCompute %main "main" %tint_symbol
OpEntryPoint GLCompute %main "main" %GlobalInvocationID_1
OpExecutionMode %main LocalSize 1 1 1
OpName %GlobalInvocationID_1 "GlobalInvocationID_1"
OpName %src "src"
OpName %dst "dst"
OpName %OutputBuf "OutputBuf"
@ -21,13 +22,15 @@
OpMemberName %Uniforms 3 "dstCopyOrigin"
OpMemberName %Uniforms 4 "copySize"
OpName %uniforms "uniforms"
OpName %tint_symbol "tint_symbol"
OpName %aboutEqual "aboutEqual"
OpName %value "value"
OpName %expect "expect"
OpName %main "main"
OpName %main_inner "main_inner"
OpName %GlobalInvocationID "GlobalInvocationID"
OpName %success "success"
OpName %srcTexCoord "srcTexCoord"
OpName %main "main"
OpDecorate %GlobalInvocationID_1 BuiltIn GlobalInvocationId
OpDecorate %src DescriptorSet 0
OpDecorate %src Binding 0
OpDecorate %dst DescriptorSet 0
@ -46,13 +49,15 @@
OpDecorate %uniforms NonWritable
OpDecorate %uniforms DescriptorSet 0
OpDecorate %uniforms Binding 3
OpDecorate %tint_symbol BuiltIn GlobalInvocationId
%float = OpTypeFloat 32
%3 = OpTypeImage %float 2D 0 0 0 1 Unknown
%_ptr_UniformConstant_3 = OpTypePointer UniformConstant %3
%src = OpVariable %_ptr_UniformConstant_3 UniformConstant
%dst = OpVariable %_ptr_UniformConstant_3 UniformConstant
%uint = OpTypeInt 32 0
%v3uint = OpTypeVector %uint 3
%_ptr_Input_v3uint = OpTypePointer Input %v3uint
%GlobalInvocationID_1 = OpVariable %_ptr_Input_v3uint Input
%float = OpTypeFloat 32
%7 = OpTypeImage %float 2D 0 0 0 1 Unknown
%_ptr_UniformConstant_7 = OpTypePointer UniformConstant %7
%src = OpVariable %_ptr_UniformConstant_7 UniformConstant
%dst = OpVariable %_ptr_UniformConstant_7 UniformConstant
%_runtimearr_uint = OpTypeRuntimeArray %uint
%OutputBuf = OpTypeStruct %_runtimearr_uint
%_ptr_StorageBuffer_OutputBuf = OpTypePointer StorageBuffer %OutputBuf
@ -61,14 +66,11 @@
%Uniforms = OpTypeStruct %uint %uint %v2uint %v2uint %v2uint
%_ptr_Uniform_Uniforms = OpTypePointer Uniform %Uniforms
%uniforms = OpVariable %_ptr_Uniform_Uniforms Uniform
%v3uint = OpTypeVector %uint 3
%_ptr_Input_v3uint = OpTypePointer Input %v3uint
%tint_symbol = OpVariable %_ptr_Input_v3uint Input
%bool = OpTypeBool
%18 = OpTypeFunction %bool %float %float
%float_0_00100000005 = OpConstant %float 0.00100000005
%void = OpTypeVoid
%29 = OpTypeFunction %void
%29 = OpTypeFunction %void %v3uint
%int = OpTypeInt 32 1
%v2int = OpTypeVector %int 2
%int_0 = OpConstant %int 0
@ -90,8 +92,8 @@
%_ptr_Function_v2uint = OpTypePointer Function %v2uint
%110 = OpConstantNull %v2uint
%_ptr_Function_uint = OpTypePointer Function %uint
%_ptr_Input_uint = OpTypePointer Input %uint
%_ptr_StorageBuffer_uint = OpTypePointer StorageBuffer %uint
%188 = OpTypeFunction %void
%aboutEqual = OpFunction %bool None %18
%value = OpFunctionParameter %float
%expect = OpFunctionParameter %float
@ -101,16 +103,16 @@
%28 = OpFOrdLessThan %bool %24 %float_0_00100000005
OpReturnValue %28
OpFunctionEnd
%main = OpFunction %void None %29
%32 = OpLabel
%main_inner = OpFunction %void None %29
%GlobalInvocationID = OpFunctionParameter %v3uint
%33 = OpLabel
%success = OpVariable %_ptr_Function_bool Function %50
%srcTexCoord = OpVariable %_ptr_Function_v2uint Function %110
%36 = OpLoad %3 %src
%33 = OpImageQuerySizeLod %v2int %36 %int_0
%39 = OpLoad %3 %dst
%38 = OpImageQuerySizeLod %v2int %39 %int_0
%41 = OpLoad %v3uint %tint_symbol
%42 = OpVectorShuffle %v2uint %41 %41 0 1
%37 = OpLoad %7 %src
%34 = OpImageQuerySizeLod %v2int %37 %int_0
%40 = OpLoad %7 %dst
%39 = OpImageQuerySizeLod %v2int %40 %int_0
%42 = OpVectorShuffle %v2uint %GlobalInvocationID %GlobalInvocationID 0 1
OpStore %success %true
%51 = OpCompositeExtract %uint %42 0
%55 = OpAccessChain %_ptr_Uniform_uint %uniforms %uint_3 %uint_0
@ -125,7 +127,7 @@
%64 = OpULessThan %bool %60 %63
OpBranch %58
%58 = OpLabel
%65 = OpPhi %bool %57 %32 %64 %59
%65 = OpPhi %bool %57 %33 %64 %59
OpSelectionMerge %66 None
OpBranchConditional %65 %66 %67
%67 = OpLabel
@ -159,7 +161,7 @@
OpSelectionMerge %91 None
OpBranchConditional %90 %92 %91
%92 = OpLabel
%95 = OpLoad %3 %dst
%95 = OpLoad %7 %dst
%96 = OpBitcast %v2int %42
%94 = OpImageFetch %v4float %95 %96 Lod %int_0
%97 = OpFOrdEqual %v4bool %94 %46
@ -184,7 +186,7 @@
OpBranchConditional %113 %115 %114
%115 = OpLabel
%117 = OpAccessChain %_ptr_Function_uint %srcTexCoord %uint_1
%119 = OpCompositeExtract %int %33 1
%119 = OpCompositeExtract %int %34 1
%118 = OpBitcast %uint %119
%120 = OpAccessChain %_ptr_Function_uint %srcTexCoord %uint_1
%121 = OpLoad %uint %120
@ -193,11 +195,11 @@
OpStore %117 %123
OpBranch %114
%114 = OpLabel
%125 = OpLoad %3 %src
%125 = OpLoad %7 %src
%127 = OpLoad %v2uint %srcTexCoord
%126 = OpBitcast %v2int %127
%124 = OpImageFetch %v4float %125 %126 Lod %int_0
%129 = OpLoad %3 %dst
%129 = OpLoad %7 %dst
%130 = OpBitcast %v2int %42
%128 = OpImageFetch %v4float %129 %130 Lod %int_0
%131 = OpAccessChain %_ptr_Uniform_uint %uniforms %uint_1
@ -270,25 +272,29 @@
%134 = OpLabel
OpBranch %87
%87 = OpLabel
%176 = OpAccessChain %_ptr_Input_uint %tint_symbol %uint_1
%177 = OpLoad %uint %176
%179 = OpCompositeExtract %int %38 0
%178 = OpBitcast %uint %179
%180 = OpIMul %uint %177 %178
%181 = OpAccessChain %_ptr_Input_uint %tint_symbol %uint_0
%182 = OpLoad %uint %181
%183 = OpIAdd %uint %180 %182
%184 = OpLoad %bool %success
OpSelectionMerge %185 None
OpBranchConditional %184 %186 %187
%186 = OpLabel
%189 = OpAccessChain %_ptr_StorageBuffer_uint %output %uint_0 %183
OpStore %189 %uint_1
OpBranch %185
%187 = OpLabel
%190 = OpAccessChain %_ptr_StorageBuffer_uint %output %uint_0 %183
OpStore %190 %uint_0
OpBranch %185
%185 = OpLabel
%175 = OpCompositeExtract %uint %GlobalInvocationID 1
%177 = OpCompositeExtract %int %39 0
%176 = OpBitcast %uint %177
%178 = OpIMul %uint %175 %176
%179 = OpCompositeExtract %uint %GlobalInvocationID 0
%180 = OpIAdd %uint %178 %179
%181 = OpLoad %bool %success
OpSelectionMerge %182 None
OpBranchConditional %181 %183 %184
%183 = OpLabel
%186 = OpAccessChain %_ptr_StorageBuffer_uint %output %uint_0 %180
OpStore %186 %uint_1
OpBranch %182
%184 = OpLabel
%187 = OpAccessChain %_ptr_StorageBuffer_uint %output %uint_0 %180
OpStore %187 %uint_0
OpBranch %182
%182 = OpLabel
OpReturn
OpFunctionEnd
%main = OpFunction %void None %188
%190 = OpLabel
%192 = OpLoad %v3uint %GlobalInvocationID_1
%191 = OpFunctionCall %void %main_inner %192
OpReturn
OpFunctionEnd

View File

@ -1,12 +1,15 @@
; SPIR-V
; Version: 1.3
; Generator: Google Tint Compiler; 0
; Bound: 372
; Bound: 375
; Schema: 0
OpCapability Shader
OpMemoryModel Logical GLSL450
OpEntryPoint GLCompute %main "main" %tint_symbol_2 %tint_symbol %tint_symbol_1
OpEntryPoint GLCompute %main "main" %local_id_1 %global_id_1 %local_invocation_index_1
OpExecutionMode %main LocalSize 16 16 1
OpName %local_id_1 "local_id_1"
OpName %global_id_1 "global_id_1"
OpName %local_invocation_index_1 "local_invocation_index_1"
OpName %Matrix "Matrix"
OpMemberName %Matrix 0 "numbers"
OpName %firstMatrix "firstMatrix"
@ -24,9 +27,6 @@
OpName %TileAOuter "TileInner"
OpName %mm_Asub "mm_Asub"
OpName %mm_Bsub "mm_Bsub"
OpName %tint_symbol "tint_symbol"
OpName %tint_symbol_1 "tint_symbol_1"
OpName %tint_symbol_2 "tint_symbol_2"
OpName %mm_readA "mm_readA"
OpName %row "row"
OpName %col "col"
@ -37,7 +37,10 @@
OpName %row_1 "row"
OpName %col_1 "col"
OpName %value "value"
OpName %main "main"
OpName %main_inner "main_inner"
OpName %local_id "local_id"
OpName %global_id "global_id"
OpName %local_invocation_index "local_invocation_index"
OpName %idx "idx"
OpName %acc "acc"
OpName %ACached "ACached"
@ -54,6 +57,10 @@
OpName %innerCol_1 "innerCol"
OpName %innerRow_2 "innerRow"
OpName %innerCol_2 "innerCol"
OpName %main "main"
OpDecorate %local_id_1 BuiltIn LocalInvocationId
OpDecorate %global_id_1 BuiltIn GlobalInvocationId
OpDecorate %local_invocation_index_1 BuiltIn LocalInvocationIndex
OpDecorate %Matrix Block
OpMemberDecorate %Matrix 0 Offset 0
OpDecorate %_runtimearr_float ArrayStride 4
@ -75,11 +82,15 @@
OpDecorate %uniforms Binding 3
OpDecorate %_arr_float_TileAOuter ArrayStride 4
OpDecorate %_arr__arr_float_TileAOuter_TileAOuter ArrayStride 256
OpDecorate %tint_symbol BuiltIn LocalInvocationId
OpDecorate %tint_symbol_1 BuiltIn GlobalInvocationId
OpDecorate %tint_symbol_2 BuiltIn LocalInvocationIndex
OpDecorate %_arr_float_uint_16 ArrayStride 4
OpDecorate %_arr_float_RowPerThread ArrayStride 4
%uint = OpTypeInt 32 0
%v3uint = OpTypeVector %uint 3
%_ptr_Input_v3uint = OpTypePointer Input %v3uint
%local_id_1 = OpVariable %_ptr_Input_v3uint Input
%global_id_1 = OpVariable %_ptr_Input_v3uint Input
%_ptr_Input_uint = OpTypePointer Input %uint
%local_invocation_index_1 = OpVariable %_ptr_Input_uint Input
%float = OpTypeFloat 32
%_runtimearr_float = OpTypeRuntimeArray %float
%Matrix = OpTypeStruct %_runtimearr_float
@ -87,7 +98,6 @@
%firstMatrix = OpVariable %_ptr_StorageBuffer_Matrix StorageBuffer
%secondMatrix = OpVariable %_ptr_StorageBuffer_Matrix StorageBuffer
%resultMatrix = OpVariable %_ptr_StorageBuffer_Matrix StorageBuffer
%uint = OpTypeInt 32 0
%Uniforms = OpTypeStruct %uint %uint %uint
%_ptr_Uniform_Uniforms = OpTypePointer Uniform %Uniforms
%uniforms = OpVariable %_ptr_Uniform_Uniforms Uniform
@ -98,12 +108,6 @@
%_ptr_Workgroup__arr__arr_float_TileAOuter_TileAOuter = OpTypePointer Workgroup %_arr__arr_float_TileAOuter_TileAOuter
%mm_Asub = OpVariable %_ptr_Workgroup__arr__arr_float_TileAOuter_TileAOuter Workgroup
%mm_Bsub = OpVariable %_ptr_Workgroup__arr__arr_float_TileAOuter_TileAOuter Workgroup
%v3uint = OpTypeVector %uint 3
%_ptr_Input_v3uint = OpTypePointer Input %v3uint
%tint_symbol = OpVariable %_ptr_Input_v3uint Input
%tint_symbol_1 = OpVariable %_ptr_Input_v3uint Input
%_ptr_Input_uint = OpTypePointer Input %uint
%tint_symbol_2 = OpVariable %_ptr_Input_uint Input
%25 = OpTypeFunction %float %uint %uint
%uint_0 = OpConstant %uint 0
%_ptr_Uniform_uint = OpTypePointer Uniform %uint
@ -114,22 +118,23 @@
%uint_2 = OpConstant %uint 2
%void = OpTypeVoid
%75 = OpTypeFunction %void %uint %uint %float
%98 = OpTypeFunction %void
%98 = OpTypeFunction %void %v3uint %v3uint %uint
%_ptr_Function_uint = OpTypePointer Function %uint
%104 = OpConstantNull %uint
%106 = OpConstantNull %uint
%uint_4096 = OpConstant %uint 4096
%_ptr_Workgroup_float = OpTypePointer Workgroup %float
%121 = OpConstantNull %float
%123 = OpConstantNull %float
%uint_256 = OpConstant %uint 256
%uint_264 = OpConstant %uint 264
%uint_16 = OpConstant %uint 16
%_arr_float_uint_16 = OpTypeArray %float %uint_16
%_ptr_Function__arr_float_uint_16 = OpTypePointer Function %_arr_float_uint_16
%149 = OpConstantNull %_arr_float_uint_16
%147 = OpConstantNull %_arr_float_uint_16
%_ptr_Function_float = OpTypePointer Function %float
%_arr_float_RowPerThread = OpTypeArray %float %RowPerThread
%_ptr_Function__arr_float_RowPerThread = OpTypePointer Function %_arr_float_RowPerThread
%155 = OpConstantNull %_arr_float_RowPerThread
%153 = OpConstantNull %_arr_float_RowPerThread
%368 = OpTypeFunction %void
%mm_readA = OpFunction %float None %25
%row = OpFunctionParameter %uint
%col = OpFunctionParameter %uint
@ -218,401 +223,405 @@
%91 = OpLabel
OpReturn
OpFunctionEnd
%main = OpFunction %void None %98
%100 = OpLabel
%idx = OpVariable %_ptr_Function_uint Function %104
%acc = OpVariable %_ptr_Function__arr_float_uint_16 Function %149
%ACached = OpVariable %_ptr_Function_float Function %121
%BCached = OpVariable %_ptr_Function__arr_float_RowPerThread Function %155
%index = OpVariable %_ptr_Function_uint Function %104
%t = OpVariable %_ptr_Function_uint Function %104
%innerRow = OpVariable %_ptr_Function_uint Function %104
%innerCol = OpVariable %_ptr_Function_uint Function %104
%innerRow_0 = OpVariable %_ptr_Function_uint Function %104
%innerCol_0 = OpVariable %_ptr_Function_uint Function %104
%k = OpVariable %_ptr_Function_uint Function %104
%inner = OpVariable %_ptr_Function_uint Function %104
%innerRow_1 = OpVariable %_ptr_Function_uint Function %104
%innerCol_1 = OpVariable %_ptr_Function_uint Function %104
%innerRow_2 = OpVariable %_ptr_Function_uint Function %104
%innerCol_2 = OpVariable %_ptr_Function_uint Function %104
%101 = OpLoad %uint %tint_symbol_2
OpStore %idx %101
OpBranch %105
%105 = OpLabel
OpLoopMerge %106 %107 None
OpBranch %108
%108 = OpLabel
%110 = OpLoad %uint %idx
%112 = OpULessThan %bool %110 %uint_4096
%109 = OpLogicalNot %bool %112
OpSelectionMerge %113 None
OpBranchConditional %109 %114 %113
%114 = OpLabel
OpBranch %106
%113 = OpLabel
%115 = OpLoad %uint %idx
%116 = OpUDiv %uint %115 %TileAOuter
%117 = OpLoad %uint %idx
%118 = OpUMod %uint %117 %TileAOuter
%120 = OpAccessChain %_ptr_Workgroup_float %mm_Asub %116 %118
OpStore %120 %121
%122 = OpAccessChain %_ptr_Workgroup_float %mm_Bsub %116 %118
OpStore %122 %121
%main_inner = OpFunction %void None %98
%local_id = OpFunctionParameter %v3uint
%global_id = OpFunctionParameter %v3uint
%local_invocation_index = OpFunctionParameter %uint
%103 = OpLabel
%idx = OpVariable %_ptr_Function_uint Function %106
%acc = OpVariable %_ptr_Function__arr_float_uint_16 Function %147
%ACached = OpVariable %_ptr_Function_float Function %123
%BCached = OpVariable %_ptr_Function__arr_float_RowPerThread Function %153
%index = OpVariable %_ptr_Function_uint Function %106
%t = OpVariable %_ptr_Function_uint Function %106
%innerRow = OpVariable %_ptr_Function_uint Function %106
%innerCol = OpVariable %_ptr_Function_uint Function %106
%innerRow_0 = OpVariable %_ptr_Function_uint Function %106
%innerCol_0 = OpVariable %_ptr_Function_uint Function %106
%k = OpVariable %_ptr_Function_uint Function %106
%inner = OpVariable %_ptr_Function_uint Function %106
%innerRow_1 = OpVariable %_ptr_Function_uint Function %106
%innerCol_1 = OpVariable %_ptr_Function_uint Function %106
%innerRow_2 = OpVariable %_ptr_Function_uint Function %106
%innerCol_2 = OpVariable %_ptr_Function_uint Function %106
OpStore %idx %local_invocation_index
OpBranch %107
%107 = OpLabel
%123 = OpLoad %uint %idx
%125 = OpIAdd %uint %123 %uint_256
OpStore %idx %125
OpBranch %105
%106 = OpLabel
OpLoopMerge %108 %109 None
OpBranch %110
%110 = OpLabel
%112 = OpLoad %uint %idx
%114 = OpULessThan %bool %112 %uint_4096
%111 = OpLogicalNot %bool %114
OpSelectionMerge %115 None
OpBranchConditional %111 %116 %115
%116 = OpLabel
OpBranch %108
%115 = OpLabel
%117 = OpLoad %uint %idx
%118 = OpUDiv %uint %117 %TileAOuter
%119 = OpLoad %uint %idx
%120 = OpUMod %uint %119 %TileAOuter
%122 = OpAccessChain %_ptr_Workgroup_float %mm_Asub %118 %120
OpStore %122 %123
%124 = OpAccessChain %_ptr_Workgroup_float %mm_Bsub %118 %120
OpStore %124 %123
OpBranch %109
%109 = OpLabel
%125 = OpLoad %uint %idx
%127 = OpIAdd %uint %125 %uint_256
OpStore %idx %127
OpBranch %107
%108 = OpLabel
OpControlBarrier %uint_2 %uint_2 %uint_264
%128 = OpAccessChain %_ptr_Input_uint %tint_symbol %uint_1
%129 = OpLoad %uint %128
%130 = OpIMul %uint %129 %RowPerThread
%131 = OpAccessChain %_ptr_Input_uint %tint_symbol %uint_0
%132 = OpLoad %uint %131
%130 = OpCompositeExtract %uint %local_id 1
%131 = OpIMul %uint %130 %RowPerThread
%132 = OpCompositeExtract %uint %local_id 0
%133 = OpIMul %uint %132 %RowPerThread
%134 = OpAccessChain %_ptr_Input_uint %tint_symbol_1 %uint_1
%135 = OpLoad %uint %134
%136 = OpIMul %uint %135 %RowPerThread
%137 = OpAccessChain %_ptr_Input_uint %tint_symbol_1 %uint_0
%138 = OpLoad %uint %137
%139 = OpIMul %uint %138 %RowPerThread
%140 = OpAccessChain %_ptr_Uniform_uint %uniforms %uint_1
%141 = OpLoad %uint %140
%142 = OpISub %uint %141 %uint_1
%143 = OpUDiv %uint %142 %TileAOuter
%144 = OpIAdd %uint %143 %uint_1
%134 = OpCompositeExtract %uint %global_id 1
%135 = OpIMul %uint %134 %RowPerThread
%136 = OpCompositeExtract %uint %global_id 0
%137 = OpIMul %uint %136 %RowPerThread
%138 = OpAccessChain %_ptr_Uniform_uint %uniforms %uint_1
%139 = OpLoad %uint %138
%140 = OpISub %uint %139 %uint_1
%141 = OpUDiv %uint %140 %TileAOuter
%142 = OpIAdd %uint %141 %uint_1
OpStore %index %uint_0
OpBranch %155
%155 = OpLabel
OpLoopMerge %156 %157 None
OpBranch %158
%158 = OpLabel
%160 = OpLoad %uint %index
%161 = OpIMul %uint %RowPerThread %RowPerThread
%162 = OpULessThan %bool %160 %161
%159 = OpLogicalNot %bool %162
OpSelectionMerge %163 None
OpBranchConditional %159 %164 %163
%164 = OpLabel
OpBranch %156
%163 = OpLabel
%165 = OpLoad %uint %index
%166 = OpAccessChain %_ptr_Function_float %acc %165
OpStore %166 %float_0
OpBranch %157
%157 = OpLabel
OpLoopMerge %158 %159 None
OpBranch %160
%160 = OpLabel
%162 = OpLoad %uint %index
%163 = OpIMul %uint %RowPerThread %RowPerThread
%164 = OpULessThan %bool %162 %163
%161 = OpLogicalNot %bool %164
OpSelectionMerge %165 None
OpBranchConditional %161 %166 %165
%166 = OpLabel
OpBranch %158
%165 = OpLabel
%167 = OpLoad %uint %index
%168 = OpAccessChain %_ptr_Function_float %acc %167
OpStore %168 %float_0
OpBranch %159
%159 = OpLabel
%169 = OpLoad %uint %index
%170 = OpIAdd %uint %169 %uint_1
OpStore %index %170
OpBranch %157
%158 = OpLabel
%171 = OpUDiv %uint %TileAOuter %uint_16
%172 = OpAccessChain %_ptr_Input_uint %tint_symbol %uint_0
%173 = OpLoad %uint %172
%174 = OpIMul %uint %173 %171
%175 = OpUDiv %uint %TileAOuter %uint_16
%176 = OpAccessChain %_ptr_Input_uint %tint_symbol %uint_1
%177 = OpLoad %uint %176
%178 = OpIMul %uint %177 %175
%168 = OpIAdd %uint %167 %uint_1
OpStore %index %168
OpBranch %155
%156 = OpLabel
%169 = OpUDiv %uint %TileAOuter %uint_16
%170 = OpCompositeExtract %uint %local_id 0
%171 = OpIMul %uint %170 %169
%172 = OpUDiv %uint %TileAOuter %uint_16
%173 = OpCompositeExtract %uint %local_id 1
%174 = OpIMul %uint %173 %172
OpStore %t %uint_0
OpBranch %180
%180 = OpLabel
OpLoopMerge %181 %182 None
OpBranch %183
OpBranch %176
%176 = OpLabel
OpLoopMerge %177 %178 None
OpBranch %179
%179 = OpLabel
%181 = OpLoad %uint %t
%182 = OpULessThan %bool %181 %142
%180 = OpLogicalNot %bool %182
OpSelectionMerge %183 None
OpBranchConditional %180 %184 %183
%184 = OpLabel
OpBranch %177
%183 = OpLabel
%185 = OpLoad %uint %t
%186 = OpULessThan %bool %185 %144
%184 = OpLogicalNot %bool %186
OpSelectionMerge %187 None
OpBranchConditional %184 %188 %187
%188 = OpLabel
OpBranch %181
%187 = OpLabel
OpStore %innerRow %uint_0
OpBranch %190
%190 = OpLabel
OpLoopMerge %191 %192 None
OpBranch %193
OpBranch %186
%186 = OpLabel
OpLoopMerge %187 %188 None
OpBranch %189
%189 = OpLabel
%191 = OpLoad %uint %innerRow
%192 = OpULessThan %bool %191 %RowPerThread
%190 = OpLogicalNot %bool %192
OpSelectionMerge %193 None
OpBranchConditional %190 %194 %193
%194 = OpLabel
OpBranch %187
%193 = OpLabel
%195 = OpLoad %uint %innerRow
%196 = OpULessThan %bool %195 %RowPerThread
%194 = OpLogicalNot %bool %196
OpSelectionMerge %197 None
OpBranchConditional %194 %198 %197
%198 = OpLabel
OpBranch %191
%197 = OpLabel
OpStore %innerCol %uint_0
OpBranch %200
%200 = OpLabel
OpLoopMerge %201 %202 None
OpBranch %203
OpBranch %196
%196 = OpLabel
OpLoopMerge %197 %198 None
OpBranch %199
%199 = OpLabel
%201 = OpLoad %uint %innerCol
%202 = OpULessThan %bool %201 %169
%200 = OpLogicalNot %bool %202
OpSelectionMerge %203 None
OpBranchConditional %200 %204 %203
%204 = OpLabel
OpBranch %197
%203 = OpLabel
%205 = OpLoad %uint %innerCol
%206 = OpULessThan %bool %205 %171
%204 = OpLogicalNot %bool %206
OpSelectionMerge %207 None
OpBranchConditional %204 %208 %207
%208 = OpLabel
OpBranch %201
%207 = OpLabel
%209 = OpLoad %uint %innerRow
%210 = OpIAdd %uint %130 %209
%211 = OpLoad %uint %innerCol
%212 = OpIAdd %uint %174 %211
%213 = OpAccessChain %_ptr_Workgroup_float %mm_Asub %210 %212
%215 = OpLoad %uint %innerRow
%216 = OpIAdd %uint %136 %215
%217 = OpLoad %uint %t
%218 = OpIMul %uint %217 %TileAOuter
%219 = OpIAdd %uint %218 %212
%214 = OpFunctionCall %float %mm_readA %216 %219
OpStore %213 %214
OpBranch %202
%202 = OpLabel
%220 = OpLoad %uint %innerCol
%221 = OpIAdd %uint %220 %uint_1
OpStore %innerCol %221
OpBranch %200
%201 = OpLabel
OpBranch %192
%192 = OpLabel
%222 = OpLoad %uint %innerRow
%223 = OpIAdd %uint %222 %uint_1
OpStore %innerRow %223
OpBranch %190
%191 = OpLabel
%205 = OpLoad %uint %innerRow
%206 = OpIAdd %uint %131 %205
%207 = OpLoad %uint %innerCol
%208 = OpIAdd %uint %171 %207
%209 = OpAccessChain %_ptr_Workgroup_float %mm_Asub %206 %208
%211 = OpLoad %uint %innerRow
%212 = OpIAdd %uint %135 %211
%213 = OpLoad %uint %t
%214 = OpIMul %uint %213 %TileAOuter
%215 = OpIAdd %uint %214 %208
%210 = OpFunctionCall %float %mm_readA %212 %215
OpStore %209 %210
OpBranch %198
%198 = OpLabel
%216 = OpLoad %uint %innerCol
%217 = OpIAdd %uint %216 %uint_1
OpStore %innerCol %217
OpBranch %196
%197 = OpLabel
OpBranch %188
%188 = OpLabel
%218 = OpLoad %uint %innerRow
%219 = OpIAdd %uint %218 %uint_1
OpStore %innerRow %219
OpBranch %186
%187 = OpLabel
OpStore %innerRow_0 %uint_0
OpBranch %225
%225 = OpLabel
OpLoopMerge %226 %227 None
OpBranch %228
OpBranch %221
%221 = OpLabel
OpLoopMerge %222 %223 None
OpBranch %224
%224 = OpLabel
%226 = OpLoad %uint %innerRow_0
%227 = OpULessThan %bool %226 %172
%225 = OpLogicalNot %bool %227
OpSelectionMerge %228 None
OpBranchConditional %225 %229 %228
%229 = OpLabel
OpBranch %222
%228 = OpLabel
%230 = OpLoad %uint %innerRow_0
%231 = OpULessThan %bool %230 %175
%229 = OpLogicalNot %bool %231
OpSelectionMerge %232 None
OpBranchConditional %229 %233 %232
%233 = OpLabel
OpBranch %226
%232 = OpLabel
OpStore %innerCol_0 %uint_0
OpBranch %235
%235 = OpLabel
OpLoopMerge %236 %237 None
OpBranch %238
OpBranch %231
%231 = OpLabel
OpLoopMerge %232 %233 None
OpBranch %234
%234 = OpLabel
%236 = OpLoad %uint %innerCol_0
%237 = OpULessThan %bool %236 %RowPerThread
%235 = OpLogicalNot %bool %237
OpSelectionMerge %238 None
OpBranchConditional %235 %239 %238
%239 = OpLabel
OpBranch %232
%238 = OpLabel
%240 = OpLoad %uint %innerCol_0
%241 = OpULessThan %bool %240 %RowPerThread
%239 = OpLogicalNot %bool %241
OpSelectionMerge %242 None
OpBranchConditional %239 %243 %242
%243 = OpLabel
OpBranch %236
%242 = OpLabel
%244 = OpLoad %uint %innerRow_0
%245 = OpIAdd %uint %178 %244
%246 = OpLoad %uint %innerCol_0
%247 = OpIAdd %uint %133 %246
%248 = OpLoad %uint %innerCol_0
%249 = OpAccessChain %_ptr_Workgroup_float %mm_Bsub %248 %247
%251 = OpLoad %uint %t
%252 = OpIMul %uint %251 %TileAOuter
%253 = OpIAdd %uint %252 %245
%254 = OpLoad %uint %innerCol_0
%255 = OpIAdd %uint %139 %254
%250 = OpFunctionCall %float %mm_readB %253 %255
OpStore %249 %250
OpBranch %237
%237 = OpLabel
%256 = OpLoad %uint %innerCol_0
%257 = OpIAdd %uint %256 %uint_1
OpStore %innerCol_0 %257
OpBranch %235
%236 = OpLabel
OpBranch %227
%227 = OpLabel
%258 = OpLoad %uint %innerRow_0
%259 = OpIAdd %uint %258 %uint_1
OpStore %innerRow_0 %259
OpBranch %225
%226 = OpLabel
%240 = OpLoad %uint %innerRow_0
%241 = OpIAdd %uint %174 %240
%242 = OpLoad %uint %innerCol_0
%243 = OpIAdd %uint %133 %242
%244 = OpLoad %uint %innerCol_0
%245 = OpAccessChain %_ptr_Workgroup_float %mm_Bsub %244 %243
%247 = OpLoad %uint %t
%248 = OpIMul %uint %247 %TileAOuter
%249 = OpIAdd %uint %248 %241
%250 = OpLoad %uint %innerCol_0
%251 = OpIAdd %uint %137 %250
%246 = OpFunctionCall %float %mm_readB %249 %251
OpStore %245 %246
OpBranch %233
%233 = OpLabel
%252 = OpLoad %uint %innerCol_0
%253 = OpIAdd %uint %252 %uint_1
OpStore %innerCol_0 %253
OpBranch %231
%232 = OpLabel
OpBranch %223
%223 = OpLabel
%254 = OpLoad %uint %innerRow_0
%255 = OpIAdd %uint %254 %uint_1
OpStore %innerRow_0 %255
OpBranch %221
%222 = OpLabel
OpControlBarrier %uint_2 %uint_2 %uint_264
OpStore %k %uint_0
OpBranch %262
%262 = OpLabel
OpLoopMerge %263 %264 None
OpBranch %265
OpBranch %258
%258 = OpLabel
OpLoopMerge %259 %260 None
OpBranch %261
%261 = OpLabel
%263 = OpLoad %uint %k
%264 = OpULessThan %bool %263 %TileAOuter
%262 = OpLogicalNot %bool %264
OpSelectionMerge %265 None
OpBranchConditional %262 %266 %265
%266 = OpLabel
OpBranch %259
%265 = OpLabel
%267 = OpLoad %uint %k
%268 = OpULessThan %bool %267 %TileAOuter
%266 = OpLogicalNot %bool %268
OpSelectionMerge %269 None
OpBranchConditional %266 %270 %269
%270 = OpLabel
OpBranch %263
%269 = OpLabel
OpStore %inner %uint_0
OpBranch %272
%272 = OpLabel
OpLoopMerge %273 %274 None
OpBranch %275
OpBranch %268
%268 = OpLabel
OpLoopMerge %269 %270 None
OpBranch %271
%271 = OpLabel
%273 = OpLoad %uint %inner
%274 = OpULessThan %bool %273 %RowPerThread
%272 = OpLogicalNot %bool %274
OpSelectionMerge %275 None
OpBranchConditional %272 %276 %275
%276 = OpLabel
OpBranch %269
%275 = OpLabel
%277 = OpLoad %uint %inner
%278 = OpULessThan %bool %277 %RowPerThread
%276 = OpLogicalNot %bool %278
OpSelectionMerge %279 None
OpBranchConditional %276 %280 %279
%280 = OpLabel
OpBranch %273
%279 = OpLabel
%281 = OpLoad %uint %inner
%282 = OpAccessChain %_ptr_Function_float %BCached %281
%283 = OpLoad %uint %k
%278 = OpAccessChain %_ptr_Function_float %BCached %277
%279 = OpLoad %uint %k
%280 = OpLoad %uint %inner
%281 = OpIAdd %uint %133 %280
%282 = OpAccessChain %_ptr_Workgroup_float %mm_Bsub %279 %281
%283 = OpLoad %float %282
OpStore %278 %283
OpBranch %270
%270 = OpLabel
%284 = OpLoad %uint %inner
%285 = OpIAdd %uint %133 %284
%286 = OpAccessChain %_ptr_Workgroup_float %mm_Bsub %283 %285
%287 = OpLoad %float %286
OpStore %282 %287
OpBranch %274
%274 = OpLabel
%288 = OpLoad %uint %inner
%289 = OpIAdd %uint %288 %uint_1
OpStore %inner %289
OpBranch %272
%273 = OpLabel
%285 = OpIAdd %uint %284 %uint_1
OpStore %inner %285
OpBranch %268
%269 = OpLabel
OpStore %innerRow_1 %uint_0
OpBranch %291
%291 = OpLabel
OpLoopMerge %292 %293 None
OpBranch %294
OpBranch %287
%287 = OpLabel
OpLoopMerge %288 %289 None
OpBranch %290
%290 = OpLabel
%292 = OpLoad %uint %innerRow_1
%293 = OpULessThan %bool %292 %RowPerThread
%291 = OpLogicalNot %bool %293
OpSelectionMerge %294 None
OpBranchConditional %291 %295 %294
%295 = OpLabel
OpBranch %288
%294 = OpLabel
%296 = OpLoad %uint %innerRow_1
%297 = OpULessThan %bool %296 %RowPerThread
%295 = OpLogicalNot %bool %297
OpSelectionMerge %298 None
OpBranchConditional %295 %299 %298
%299 = OpLabel
OpBranch %292
%298 = OpLabel
%300 = OpLoad %uint %innerRow_1
%301 = OpIAdd %uint %130 %300
%302 = OpLoad %uint %k
%303 = OpAccessChain %_ptr_Workgroup_float %mm_Asub %301 %302
%304 = OpLoad %float %303
OpStore %ACached %304
%297 = OpIAdd %uint %131 %296
%298 = OpLoad %uint %k
%299 = OpAccessChain %_ptr_Workgroup_float %mm_Asub %297 %298
%300 = OpLoad %float %299
OpStore %ACached %300
OpStore %innerCol_1 %uint_0
OpBranch %306
%306 = OpLabel
OpLoopMerge %307 %308 None
OpBranch %309
OpBranch %302
%302 = OpLabel
OpLoopMerge %303 %304 None
OpBranch %305
%305 = OpLabel
%307 = OpLoad %uint %innerCol_1
%308 = OpULessThan %bool %307 %RowPerThread
%306 = OpLogicalNot %bool %308
OpSelectionMerge %309 None
OpBranchConditional %306 %310 %309
%310 = OpLabel
OpBranch %303
%309 = OpLabel
%311 = OpLoad %uint %innerCol_1
%312 = OpULessThan %bool %311 %RowPerThread
%310 = OpLogicalNot %bool %312
OpSelectionMerge %313 None
OpBranchConditional %310 %314 %313
%314 = OpLabel
OpBranch %307
%313 = OpLabel
%315 = OpLoad %uint %innerRow_1
%316 = OpIMul %uint %315 %RowPerThread
%317 = OpLoad %uint %innerCol_1
%318 = OpIAdd %uint %316 %317
%319 = OpAccessChain %_ptr_Function_float %acc %318
%320 = OpAccessChain %_ptr_Function_float %acc %318
%311 = OpLoad %uint %innerRow_1
%312 = OpIMul %uint %311 %RowPerThread
%313 = OpLoad %uint %innerCol_1
%314 = OpIAdd %uint %312 %313
%315 = OpAccessChain %_ptr_Function_float %acc %314
%316 = OpAccessChain %_ptr_Function_float %acc %314
%317 = OpLoad %float %316
%318 = OpLoad %float %ACached
%319 = OpLoad %uint %innerCol_1
%320 = OpAccessChain %_ptr_Function_float %BCached %319
%321 = OpLoad %float %320
%322 = OpLoad %float %ACached
%323 = OpLoad %uint %innerCol_1
%324 = OpAccessChain %_ptr_Function_float %BCached %323
%325 = OpLoad %float %324
%326 = OpFMul %float %322 %325
%327 = OpFAdd %float %321 %326
OpStore %319 %327
OpBranch %308
%308 = OpLabel
%328 = OpLoad %uint %innerCol_1
%322 = OpFMul %float %318 %321
%323 = OpFAdd %float %317 %322
OpStore %315 %323
OpBranch %304
%304 = OpLabel
%324 = OpLoad %uint %innerCol_1
%325 = OpIAdd %uint %324 %uint_1
OpStore %innerCol_1 %325
OpBranch %302
%303 = OpLabel
OpBranch %289
%289 = OpLabel
%326 = OpLoad %uint %innerRow_1
%327 = OpIAdd %uint %326 %uint_1
OpStore %innerRow_1 %327
OpBranch %287
%288 = OpLabel
OpBranch %260
%260 = OpLabel
%328 = OpLoad %uint %k
%329 = OpIAdd %uint %328 %uint_1
OpStore %innerCol_1 %329
OpBranch %306
%307 = OpLabel
OpBranch %293
%293 = OpLabel
%330 = OpLoad %uint %innerRow_1
%331 = OpIAdd %uint %330 %uint_1
OpStore %innerRow_1 %331
OpBranch %291
%292 = OpLabel
OpBranch %264
%264 = OpLabel
%332 = OpLoad %uint %k
%333 = OpIAdd %uint %332 %uint_1
OpStore %k %333
OpBranch %262
%263 = OpLabel
OpStore %k %329
OpBranch %258
%259 = OpLabel
OpControlBarrier %uint_2 %uint_2 %uint_264
OpBranch %182
%182 = OpLabel
%335 = OpLoad %uint %t
%336 = OpIAdd %uint %335 %uint_1
OpStore %t %336
OpBranch %180
%181 = OpLabel
OpBranch %178
%178 = OpLabel
%331 = OpLoad %uint %t
%332 = OpIAdd %uint %331 %uint_1
OpStore %t %332
OpBranch %176
%177 = OpLabel
OpStore %innerRow_2 %uint_0
OpBranch %338
%338 = OpLabel
OpLoopMerge %339 %340 None
OpBranch %341
OpBranch %334
%334 = OpLabel
OpLoopMerge %335 %336 None
OpBranch %337
%337 = OpLabel
%339 = OpLoad %uint %innerRow_2
%340 = OpULessThan %bool %339 %RowPerThread
%338 = OpLogicalNot %bool %340
OpSelectionMerge %341 None
OpBranchConditional %338 %342 %341
%342 = OpLabel
OpBranch %335
%341 = OpLabel
%343 = OpLoad %uint %innerRow_2
%344 = OpULessThan %bool %343 %RowPerThread
%342 = OpLogicalNot %bool %344
OpSelectionMerge %345 None
OpBranchConditional %342 %346 %345
%346 = OpLabel
OpBranch %339
%345 = OpLabel
OpStore %innerCol_2 %uint_0
OpBranch %348
%348 = OpLabel
OpLoopMerge %349 %350 None
OpBranch %351
OpBranch %344
%344 = OpLabel
OpLoopMerge %345 %346 None
OpBranch %347
%347 = OpLabel
%349 = OpLoad %uint %innerCol_2
%350 = OpULessThan %bool %349 %RowPerThread
%348 = OpLogicalNot %bool %350
OpSelectionMerge %351 None
OpBranchConditional %348 %352 %351
%352 = OpLabel
OpBranch %345
%351 = OpLabel
%353 = OpLoad %uint %innerCol_2
%354 = OpULessThan %bool %353 %RowPerThread
%352 = OpLogicalNot %bool %354
OpSelectionMerge %355 None
OpBranchConditional %352 %356 %355
%356 = OpLabel
OpBranch %349
%355 = OpLabel
%357 = OpLoad %uint %innerRow_2
%358 = OpIMul %uint %357 %RowPerThread
%359 = OpLoad %uint %innerCol_2
%360 = OpIAdd %uint %358 %359
%362 = OpLoad %uint %innerRow_2
%363 = OpIAdd %uint %136 %362
%353 = OpLoad %uint %innerRow_2
%354 = OpIMul %uint %353 %RowPerThread
%355 = OpLoad %uint %innerCol_2
%356 = OpIAdd %uint %354 %355
%358 = OpLoad %uint %innerRow_2
%359 = OpIAdd %uint %135 %358
%360 = OpLoad %uint %innerCol_2
%361 = OpIAdd %uint %137 %360
%362 = OpAccessChain %_ptr_Function_float %acc %356
%363 = OpLoad %float %362
%357 = OpFunctionCall %void %mm_write %359 %361 %363
OpBranch %346
%346 = OpLabel
%364 = OpLoad %uint %innerCol_2
%365 = OpIAdd %uint %139 %364
%366 = OpAccessChain %_ptr_Function_float %acc %360
%367 = OpLoad %float %366
%361 = OpFunctionCall %void %mm_write %363 %365 %367
OpBranch %350
%350 = OpLabel
%368 = OpLoad %uint %innerCol_2
%369 = OpIAdd %uint %368 %uint_1
OpStore %innerCol_2 %369
OpBranch %348
%349 = OpLabel
OpBranch %340
%340 = OpLabel
%370 = OpLoad %uint %innerRow_2
%371 = OpIAdd %uint %370 %uint_1
OpStore %innerRow_2 %371
OpBranch %338
%339 = OpLabel
%365 = OpIAdd %uint %364 %uint_1
OpStore %innerCol_2 %365
OpBranch %344
%345 = OpLabel
OpBranch %336
%336 = OpLabel
%366 = OpLoad %uint %innerRow_2
%367 = OpIAdd %uint %366 %uint_1
OpStore %innerRow_2 %367
OpBranch %334
%335 = OpLabel
OpReturn
OpFunctionEnd
%main = OpFunction %void None %368
%370 = OpLabel
%372 = OpLoad %v3uint %local_id_1
%373 = OpLoad %v3uint %global_id_1
%374 = OpLoad %uint %local_invocation_index_1
%371 = OpFunctionCall %void %main_inner %372 %373 %374
OpReturn
OpFunctionEnd

View File

@ -1,12 +1,20 @@
; SPIR-V
; Version: 1.3
; Generator: Google Tint Compiler; 0
; Bound: 383
; Bound: 387
; Schema: 0
OpCapability Shader
OpMemoryModel Logical GLSL450
OpEntryPoint Vertex %main "main" %tint_pointsize %tint_symbol %tint_symbol_1 %tint_symbol_2 %tint_symbol_3 %tint_symbol_4 %tint_symbol_6 %tint_symbol_7 %tint_symbol_8
OpName %tint_pointsize "tint_pointsize"
OpEntryPoint Vertex %main "main" %a_Position_1 %a_UV_1 %a_Color_1 %a_Normal_1 %a_PosMtxIdx_1 %v_Color_1 %v_TexCoord_1 %member_1 %vertex_point_size
OpName %a_Position_1 "a_Position_1"
OpName %a_UV_1 "a_UV_1"
OpName %a_Color_1 "a_Color_1"
OpName %a_Normal_1 "a_Normal_1"
OpName %a_PosMtxIdx_1 "a_PosMtxIdx_1"
OpName %v_Color_1 "v_Color_1"
OpName %v_TexCoord_1 "v_TexCoord_1"
OpName %member_1 "member_1"
OpName %vertex_point_size "vertex_point_size"
OpName %ub_SceneParams "ub_SceneParams"
OpMemberName %ub_SceneParams 0 "u_Projection"
OpName %Mat4x4_ "Mat4x4_"
@ -37,14 +45,6 @@
OpName %v_Color "v_Color"
OpName %v_TexCoord "v_TexCoord"
OpName %gl_Position "gl_Position"
OpName %tint_symbol "tint_symbol"
OpName %tint_symbol_1 "tint_symbol_1"
OpName %tint_symbol_2 "tint_symbol_2"
OpName %tint_symbol_3 "tint_symbol_3"
OpName %tint_symbol_4 "tint_symbol_4"
OpName %tint_symbol_6 "tint_symbol_6"
OpName %tint_symbol_7 "tint_symbol_7"
OpName %tint_symbol_8 "tint_symbol_8"
OpName %Mat4x3GetCol0_ "Mat4x3GetCol0_"
OpName %m "m"
OpName %m1 "m1"
@ -104,10 +104,22 @@
OpMemberName %VertexOutput 0 "v_Color"
OpMemberName %VertexOutput 1 "v_TexCoord"
OpMemberName %VertexOutput 2 "member"
OpName %tint_symbol_9 "tint_symbol_9"
OpName %tint_symbol_5 "tint_symbol_5"
OpName %main_inner "main_inner"
OpName %a_Position "a_Position"
OpName %a_UV "a_UV"
OpName %a_Color "a_Color"
OpName %a_Normal "a_Normal"
OpName %a_PosMtxIdx "a_PosMtxIdx"
OpName %main "main"
OpDecorate %tint_pointsize BuiltIn PointSize
OpDecorate %a_Position_1 Location 0
OpDecorate %a_UV_1 Location 1
OpDecorate %a_Color_1 Location 2
OpDecorate %a_Normal_1 Location 3
OpDecorate %a_PosMtxIdx_1 Location 4
OpDecorate %v_Color_1 Location 0
OpDecorate %v_TexCoord_1 Location 1
OpDecorate %member_1 BuiltIn Position
OpDecorate %vertex_point_size BuiltIn PointSize
OpDecorate %ub_SceneParams Block
OpMemberDecorate %ub_SceneParams 0 Offset 0
OpMemberDecorate %Mat4x4_ 0 Offset 0
@ -135,22 +147,32 @@
OpDecorate %global2 NonWritable
OpDecorate %global2 DescriptorSet 0
OpDecorate %global2 Binding 2
OpDecorate %tint_symbol Location 0
OpDecorate %tint_symbol_1 Location 1
OpDecorate %tint_symbol_2 Location 2
OpDecorate %tint_symbol_3 Location 3
OpDecorate %tint_symbol_4 Location 4
OpDecorate %tint_symbol_6 Location 0
OpDecorate %tint_symbol_7 Location 1
OpDecorate %tint_symbol_8 BuiltIn Position
OpMemberDecorate %VertexOutput 0 Offset 0
OpMemberDecorate %VertexOutput 1 Offset 16
OpMemberDecorate %VertexOutput 2 Offset 32
%float = OpTypeFloat 32
%_ptr_Output_float = OpTypePointer Output %float
%4 = OpConstantNull %float
%tint_pointsize = OpVariable %_ptr_Output_float Output %4
%v3float = OpTypeVector %float 3
%_ptr_Input_v3float = OpTypePointer Input %v3float
%a_Position_1 = OpVariable %_ptr_Input_v3float Input
%v2float = OpTypeVector %float 2
%_ptr_Input_v2float = OpTypePointer Input %v2float
%a_UV_1 = OpVariable %_ptr_Input_v2float Input
%v4float = OpTypeVector %float 4
%_ptr_Input_v4float = OpTypePointer Input %v4float
%a_Color_1 = OpVariable %_ptr_Input_v4float Input
%a_Normal_1 = OpVariable %_ptr_Input_v3float Input
%_ptr_Input_float = OpTypePointer Input %float
%a_PosMtxIdx_1 = OpVariable %_ptr_Input_float Input
%_ptr_Output_v4float = OpTypePointer Output %v4float
%16 = OpConstantNull %v4float
%v_Color_1 = OpVariable %_ptr_Output_v4float Output %16
%_ptr_Output_v2float = OpTypePointer Output %v2float
%19 = OpConstantNull %v2float
%v_TexCoord_1 = OpVariable %_ptr_Output_v2float Output %19
%member_1 = OpVariable %_ptr_Output_v4float Output %16
%_ptr_Output_float = OpTypePointer Output %float
%23 = OpConstantNull %float
%vertex_point_size = OpVariable %_ptr_Output_float Output %23
%Mat4x4_ = OpTypeStruct %v4float %v4float %v4float %v4float
%ub_SceneParams = OpTypeStruct %Mat4x4_
%_ptr_Uniform_ub_SceneParams = OpTypePointer Uniform %ub_SceneParams
@ -168,37 +190,19 @@
%ub_PacketParams = OpTypeStruct %_arr_Mat4x3__uint_32
%_ptr_Uniform_ub_PacketParams = OpTypePointer Uniform %ub_PacketParams
%global2 = OpVariable %_ptr_Uniform_ub_PacketParams Uniform
%v3float = OpTypeVector %float 3
%_ptr_Private_v3float = OpTypePointer Private %v3float
%26 = OpConstantNull %v3float
%a_Position1 = OpVariable %_ptr_Private_v3float Private %26
%v2float = OpTypeVector %float 2
%43 = OpConstantNull %v3float
%a_Position1 = OpVariable %_ptr_Private_v3float Private %43
%_ptr_Private_v2float = OpTypePointer Private %v2float
%30 = OpConstantNull %v2float
%a_UV1 = OpVariable %_ptr_Private_v2float Private %30
%a_UV1 = OpVariable %_ptr_Private_v2float Private %19
%_ptr_Private_v4float = OpTypePointer Private %v4float
%33 = OpConstantNull %v4float
%a_Color1 = OpVariable %_ptr_Private_v4float Private %33
%a_Normal1 = OpVariable %_ptr_Private_v3float Private %26
%a_Color1 = OpVariable %_ptr_Private_v4float Private %16
%a_Normal1 = OpVariable %_ptr_Private_v3float Private %43
%_ptr_Private_float = OpTypePointer Private %float
%a_PosMtxIdx1 = OpVariable %_ptr_Private_float Private %4
%v_Color = OpVariable %_ptr_Private_v4float Private %33
%v_TexCoord = OpVariable %_ptr_Private_v2float Private %30
%gl_Position = OpVariable %_ptr_Private_v4float Private %33
%_ptr_Input_v3float = OpTypePointer Input %v3float
%tint_symbol = OpVariable %_ptr_Input_v3float Input
%_ptr_Input_v2float = OpTypePointer Input %v2float
%tint_symbol_1 = OpVariable %_ptr_Input_v2float Input
%_ptr_Input_v4float = OpTypePointer Input %v4float
%tint_symbol_2 = OpVariable %_ptr_Input_v4float Input
%tint_symbol_3 = OpVariable %_ptr_Input_v3float Input
%_ptr_Input_float = OpTypePointer Input %float
%tint_symbol_4 = OpVariable %_ptr_Input_float Input
%_ptr_Output_v4float = OpTypePointer Output %v4float
%tint_symbol_6 = OpVariable %_ptr_Output_v4float Output %33
%_ptr_Output_v2float = OpTypePointer Output %v2float
%tint_symbol_7 = OpVariable %_ptr_Output_v2float Output %30
%tint_symbol_8 = OpVariable %_ptr_Output_v4float Output %33
%a_PosMtxIdx1 = OpVariable %_ptr_Private_float Private %23
%v_Color = OpVariable %_ptr_Private_v4float Private %16
%v_TexCoord = OpVariable %_ptr_Private_v2float Private %19
%gl_Position = OpVariable %_ptr_Private_v4float Private %16
%54 = OpTypeFunction %v3float %Mat4x3_
%_ptr_Function_Mat4x3_ = OpTypePointer Function %Mat4x3_
%60 = OpConstantNull %Mat4x3_
@ -235,7 +239,7 @@
%int_0 = OpConstant %int 0
%_ptr_Uniform_Mat4x2_ = OpTypePointer Uniform %Mat4x2_
%VertexOutput = OpTypeStruct %v4float %v2float %v4float
%362 = OpTypeFunction %void %VertexOutput
%362 = OpTypeFunction %VertexOutput %v3float %v2float %v4float %v3float %float
%Mat4x3GetCol0_ = OpFunction %v3float None %54
%m = OpFunctionParameter %Mat4x3_
%57 = OpLabel
@ -309,7 +313,7 @@
%v = OpFunctionParameter %v4float
%117 = OpLabel
%m9 = OpVariable %_ptr_Function_Mat4x4_ Function %120
%v1 = OpVariable %_ptr_Function_v4float Function %33
%v1 = OpVariable %_ptr_Function_v4float Function %16
OpStore %m9 %m8
OpStore %v1 %v
%123 = OpLoad %Mat4x4_ %m9
@ -336,7 +340,7 @@
%v2 = OpFunctionParameter %v4float
%144 = OpLabel
%m11 = OpVariable %_ptr_Function_Mat4x3_ Function %60
%v3 = OpVariable %_ptr_Function_v4float Function %33
%v3 = OpVariable %_ptr_Function_v4float Function %16
OpStore %m11 %m10
OpStore %v3 %v2
%147 = OpLoad %Mat4x3_ %m11
@ -359,7 +363,7 @@
%v4 = OpFunctionParameter %v4float
%164 = OpLabel
%m13 = OpVariable %_ptr_Function_Mat4x2_ Function %167
%v5 = OpVariable %_ptr_Function_v4float Function %33
%v5 = OpVariable %_ptr_Function_v4float Function %16
OpStore %m13 %m12
OpStore %v5 %v4
%169 = OpLoad %Mat4x2_ %m13
@ -377,7 +381,7 @@
%v6 = OpFunctionParameter %v3float
%m14 = OpFunctionParameter %Mat4x3_
%182 = OpLabel
%v7 = OpVariable %_ptr_Function_v3float Function %26
%v7 = OpVariable %_ptr_Function_v3float Function %43
%m15 = OpVariable %_ptr_Function_Mat4x3_ Function %60
OpStore %v7 %v6
OpStore %m15 %m14
@ -403,7 +407,7 @@
%_Mat4x4_ = OpFunction %Mat4x4_ None %203
%n = OpFunctionParameter %float
%206 = OpLabel
%n1 = OpVariable %_ptr_Function_float Function %4
%n1 = OpVariable %_ptr_Function_float Function %23
%o = OpVariable %_ptr_Function_Mat4x4_ Function %120
OpStore %n1 %n
%210 = OpLoad %float %n1
@ -470,7 +474,7 @@
%_Mat4x3_ = OpFunction %Mat4x3_ None %259
%n2 = OpFunctionParameter %float
%262 = OpLabel
%n3 = OpVariable %_ptr_Function_float Function %4
%n3 = OpVariable %_ptr_Function_float Function %23
%o3 = OpVariable %_ptr_Function_Mat4x3_ Function %60
OpStore %n3 %n2
%265 = OpLoad %float %n3
@ -512,7 +516,7 @@
%main1 = OpFunction %void None %291
%294 = OpLabel
%t_PosMtx = OpVariable %_ptr_Function_Mat4x3_ Function %60
%t_TexSpaceCoord = OpVariable %_ptr_Function_v2float Function %30
%t_TexSpaceCoord = OpVariable %_ptr_Function_v2float Function %19
%298 = OpLoad %float %a_PosMtxIdx1
%299 = OpConvertFToS %int %298
%302 = OpAccessChain %_ptr_Uniform_Mat4x3_ %global2 %uint_0 %299
@ -580,35 +584,39 @@
%338 = OpLabel
OpReturn
OpFunctionEnd
%tint_symbol_9 = OpFunction %void None %362
%tint_symbol_5 = OpFunctionParameter %VertexOutput
%366 = OpLabel
%367 = OpCompositeExtract %v4float %tint_symbol_5 0
OpStore %tint_symbol_6 %367
%368 = OpCompositeExtract %v2float %tint_symbol_5 1
OpStore %tint_symbol_7 %368
%369 = OpCompositeExtract %v4float %tint_symbol_5 2
OpStore %tint_symbol_8 %369
OpReturn
%main_inner = OpFunction %VertexOutput None %362
%a_Position = OpFunctionParameter %v3float
%a_UV = OpFunctionParameter %v2float
%a_Color = OpFunctionParameter %v4float
%a_Normal = OpFunctionParameter %v3float
%a_PosMtxIdx = OpFunctionParameter %float
%370 = OpLabel
OpStore %a_Position1 %a_Position
OpStore %a_UV1 %a_UV
OpStore %a_Color1 %a_Color
OpStore %a_Normal1 %a_Normal
OpStore %a_PosMtxIdx1 %a_PosMtxIdx
%371 = OpFunctionCall %void %main1
%372 = OpLoad %v4float %v_Color
%373 = OpLoad %v2float %v_TexCoord
%374 = OpLoad %v4float %gl_Position
%375 = OpCompositeConstruct %VertexOutput %372 %373 %374
OpReturnValue %375
OpFunctionEnd
%main = OpFunction %void None %291
%371 = OpLabel
OpStore %tint_pointsize %float_1
%372 = OpLoad %v3float %tint_symbol
OpStore %a_Position1 %372
%373 = OpLoad %v2float %tint_symbol_1
OpStore %a_UV1 %373
%374 = OpLoad %v4float %tint_symbol_2
OpStore %a_Color1 %374
%375 = OpLoad %v3float %tint_symbol_3
OpStore %a_Normal1 %375
%376 = OpLoad %float %tint_symbol_4
OpStore %a_PosMtxIdx1 %376
%377 = OpFunctionCall %void %main1
%378 = OpLoad %v4float %v_Color
%379 = OpLoad %v2float %v_TexCoord
%380 = OpLoad %v4float %gl_Position
%382 = OpCompositeConstruct %VertexOutput %378 %379 %380
%381 = OpFunctionCall %void %tint_symbol_9 %382
%377 = OpLabel
%379 = OpLoad %v3float %a_Position_1
%380 = OpLoad %v2float %a_UV_1
%381 = OpLoad %v4float %a_Color_1
%382 = OpLoad %v3float %a_Normal_1
%383 = OpLoad %float %a_PosMtxIdx_1
%378 = OpFunctionCall %VertexOutput %main_inner %379 %380 %381 %382 %383
%384 = OpCompositeExtract %v4float %378 0
OpStore %v_Color_1 %384
%385 = OpCompositeExtract %v2float %378 1
OpStore %v_TexCoord_1 %385
%386 = OpCompositeExtract %v4float %378 2
OpStore %member_1 %386
OpStore %vertex_point_size %float_1
OpReturn
OpFunctionEnd

View File

@ -1,41 +1,51 @@
; SPIR-V
; Version: 1.3
; Generator: Google Tint Compiler; 0
; Bound: 21
; Bound: 27
; Schema: 0
OpCapability Shader
OpMemoryModel Logical GLSL450
OpEntryPoint GLCompute %computeMain "computeMain"
OpEntryPoint GLCompute %computeMain "computeMain" %global_id_1
OpExecutionMode %computeMain LocalSize 1 1 1
OpName %global_id_1 "global_id_1"
OpName %DrawIndirectArgs "DrawIndirectArgs"
OpMemberName %DrawIndirectArgs 0 "vertexCount"
OpName %drawOut "drawOut"
OpName %cubeVerts "cubeVerts"
OpName %tint_symbol "tint_symbol"
OpName %computeMain_inner "computeMain_inner"
OpName %global_id "global_id"
OpName %computeMain "computeMain"
OpDecorate %global_id_1 BuiltIn GlobalInvocationId
OpDecorate %DrawIndirectArgs Block
OpMemberDecorate %DrawIndirectArgs 0 Offset 0
OpDecorate %drawOut DescriptorSet 0
OpDecorate %drawOut Binding 5
OpDecorate %tint_symbol BuiltIn GlobalInvocationId
%uint = OpTypeInt 32 0
%v3uint = OpTypeVector %uint 3
%_ptr_Input_v3uint = OpTypePointer Input %v3uint
%global_id_1 = OpVariable %_ptr_Input_v3uint Input
%DrawIndirectArgs = OpTypeStruct %uint
%_ptr_StorageBuffer_DrawIndirectArgs = OpTypePointer StorageBuffer %DrawIndirectArgs
%drawOut = OpVariable %_ptr_StorageBuffer_DrawIndirectArgs StorageBuffer
%uint_0 = OpConstant %uint 0
%_ptr_Private_uint = OpTypePointer Private %uint
%cubeVerts = OpVariable %_ptr_Private_uint Private %uint_0
%v3uint = OpTypeVector %uint 3
%_ptr_Input_v3uint = OpTypePointer Input %v3uint
%tint_symbol = OpVariable %_ptr_Input_v3uint Input
%void = OpTypeVoid
%11 = OpTypeFunction %void
%11 = OpTypeFunction %void %v3uint
%uint_1 = OpConstant %uint 1
%_ptr_StorageBuffer_uint = OpTypePointer StorageBuffer %uint
%computeMain = OpFunction %void None %11
%14 = OpLabel
%19 = OpAccessChain %_ptr_StorageBuffer_uint %drawOut %uint_0
%20 = OpLoad %uint %cubeVerts
%15 = OpAtomicIAdd %uint %19 %uint_1 %uint_0 %20
%22 = OpTypeFunction %void
%computeMain_inner = OpFunction %void None %11
%global_id = OpFunctionParameter %v3uint
%15 = OpLabel
%20 = OpAccessChain %_ptr_StorageBuffer_uint %drawOut %uint_0
%21 = OpLoad %uint %cubeVerts
%16 = OpAtomicIAdd %uint %20 %uint_1 %uint_0 %21
OpReturn
OpFunctionEnd
%computeMain = OpFunction %void None %22
%24 = OpLabel
%26 = OpLoad %v3uint %global_id_1
%25 = OpFunctionCall %void %computeMain_inner %26
OpReturn
OpFunctionEnd

View File

@ -1,13 +1,16 @@
; SPIR-V
; Version: 1.3
; Generator: Google Tint Compiler; 0
; Bound: 254
; Bound: 259
; Schema: 0
OpCapability Shader
OpCapability ImageQuery
OpMemoryModel Logical GLSL450
OpEntryPoint GLCompute %main "main" %tint_symbol_2 %tint_symbol %tint_symbol_1
OpEntryPoint GLCompute %main "main" %WorkGroupID_1 %LocalInvocationID_1 %local_invocation_index_1
OpExecutionMode %main LocalSize 64 1 1
OpName %WorkGroupID_1 "WorkGroupID_1"
OpName %LocalInvocationID_1 "LocalInvocationID_1"
OpName %local_invocation_index_1 "local_invocation_index_1"
OpName %samp "samp"
OpName %Params "Params"
OpMemberName %Params 0 "filterDim"
@ -19,10 +22,10 @@
OpMemberName %Flip 0 "value"
OpName %flip "flip"
OpName %tile "tile"
OpName %tint_symbol "tint_symbol"
OpName %tint_symbol_1 "tint_symbol_1"
OpName %tint_symbol_2 "tint_symbol_2"
OpName %main "main"
OpName %main_inner "main_inner"
OpName %WorkGroupID "WorkGroupID"
OpName %LocalInvocationID "LocalInvocationID"
OpName %local_invocation_index "local_invocation_index"
OpName %idx "idx"
OpName %r "r"
OpName %c "c"
@ -33,6 +36,10 @@
OpName %acc "acc"
OpName %f "f"
OpName %i "i"
OpName %main "main"
OpDecorate %WorkGroupID_1 BuiltIn WorkgroupId
OpDecorate %LocalInvocationID_1 BuiltIn LocalInvocationId
OpDecorate %local_invocation_index_1 BuiltIn LocalInvocationIndex
OpDecorate %samp DescriptorSet 0
OpDecorate %samp Binding 0
OpDecorate %Params Block
@ -53,23 +60,26 @@
OpDecorate %flip Binding 3
OpDecorate %_arr_v3float_uint_256 ArrayStride 16
OpDecorate %_arr__arr_v3float_uint_256_uint_4 ArrayStride 4096
OpDecorate %tint_symbol BuiltIn WorkgroupId
OpDecorate %tint_symbol_1 BuiltIn LocalInvocationId
OpDecorate %tint_symbol_2 BuiltIn LocalInvocationIndex
%3 = OpTypeSampler
%_ptr_UniformConstant_3 = OpTypePointer UniformConstant %3
%samp = OpVariable %_ptr_UniformConstant_3 UniformConstant
%uint = OpTypeInt 32 0
%v3uint = OpTypeVector %uint 3
%_ptr_Input_v3uint = OpTypePointer Input %v3uint
%WorkGroupID_1 = OpVariable %_ptr_Input_v3uint Input
%LocalInvocationID_1 = OpVariable %_ptr_Input_v3uint Input
%_ptr_Input_uint = OpTypePointer Input %uint
%local_invocation_index_1 = OpVariable %_ptr_Input_uint Input
%10 = OpTypeSampler
%_ptr_UniformConstant_10 = OpTypePointer UniformConstant %10
%samp = OpVariable %_ptr_UniformConstant_10 UniformConstant
%Params = OpTypeStruct %uint %uint
%_ptr_Uniform_Params = OpTypePointer Uniform %Params
%params = OpVariable %_ptr_Uniform_Params Uniform
%float = OpTypeFloat 32
%10 = OpTypeImage %float 2D 0 0 0 1 Unknown
%_ptr_UniformConstant_10 = OpTypePointer UniformConstant %10
%inputTex = OpVariable %_ptr_UniformConstant_10 UniformConstant
%14 = OpTypeImage %float 2D 0 0 0 2 Rgba8
%_ptr_UniformConstant_14 = OpTypePointer UniformConstant %14
%outputTex = OpVariable %_ptr_UniformConstant_14 UniformConstant
%16 = OpTypeImage %float 2D 0 0 0 1 Unknown
%_ptr_UniformConstant_16 = OpTypePointer UniformConstant %16
%inputTex = OpVariable %_ptr_UniformConstant_16 UniformConstant
%20 = OpTypeImage %float 2D 0 0 0 2 Rgba8
%_ptr_UniformConstant_20 = OpTypePointer UniformConstant %20
%outputTex = OpVariable %_ptr_UniformConstant_20 UniformConstant
%Flip = OpTypeStruct %uint
%_ptr_Uniform_Flip = OpTypePointer Uniform %Flip
%flip = OpVariable %_ptr_Uniform_Flip Uniform
@ -80,20 +90,14 @@
%_arr__arr_v3float_uint_256_uint_4 = OpTypeArray %_arr_v3float_uint_256 %uint_4
%_ptr_Workgroup__arr__arr_v3float_uint_256_uint_4 = OpTypePointer Workgroup %_arr__arr_v3float_uint_256_uint_4
%tile = OpVariable %_ptr_Workgroup__arr__arr_v3float_uint_256_uint_4 Workgroup
%v3uint = OpTypeVector %uint 3
%_ptr_Input_v3uint = OpTypePointer Input %v3uint
%tint_symbol = OpVariable %_ptr_Input_v3uint Input
%tint_symbol_1 = OpVariable %_ptr_Input_v3uint Input
%_ptr_Input_uint = OpTypePointer Input %uint
%tint_symbol_2 = OpVariable %_ptr_Input_uint Input
%void = OpTypeVoid
%31 = OpTypeFunction %void
%31 = OpTypeFunction %void %v3uint %v3uint %uint
%_ptr_Function_uint = OpTypePointer Function %uint
%38 = OpConstantNull %uint
%40 = OpConstantNull %uint
%uint_1024 = OpConstant %uint 1024
%bool = OpTypeBool
%_ptr_Workgroup_v3float = OpTypePointer Workgroup %v3float
%56 = OpConstantNull %v3float
%58 = OpConstantNull %v3float
%uint_64 = OpConstant %uint 64
%uint_2 = OpConstant %uint 2
%uint_264 = OpConstant %uint 264
@ -108,76 +112,77 @@
%_ptr_Function_v2int = OpTypePointer Function %v2int
%119 = OpConstantNull %v2int
%v4float = OpTypeVector %float 4
%138 = OpTypeSampledImage %10
%137 = OpTypeSampledImage %16
%v2float = OpTypeVector %float 2
%float_0_25 = OpConstant %float 0.25
%144 = OpConstantComposite %v2float %float_0_25 %float_0_25
%143 = OpConstantComposite %v2float %float_0_25 %float_0_25
%float_0 = OpConstant %float 0
%v2bool = OpTypeVector %bool 2
%209 = OpConstantComposite %v3float %float_0 %float_0 %float_0
%207 = OpConstantComposite %v3float %float_0 %float_0 %float_0
%_ptr_Function_v3float = OpTypePointer Function %v3float
%float_1 = OpConstant %float 1
%main = OpFunction %void None %31
%34 = OpLabel
%idx = OpVariable %_ptr_Function_uint Function %38
%r = OpVariable %_ptr_Function_uint Function %38
%c = OpVariable %_ptr_Function_uint Function %38
%252 = OpTypeFunction %void
%main_inner = OpFunction %void None %31
%WorkGroupID = OpFunctionParameter %v3uint
%LocalInvocationID = OpFunctionParameter %v3uint
%local_invocation_index = OpFunctionParameter %uint
%37 = OpLabel
%idx = OpVariable %_ptr_Function_uint Function %40
%r = OpVariable %_ptr_Function_uint Function %40
%c = OpVariable %_ptr_Function_uint Function %40
%loadIndex = OpVariable %_ptr_Function_v2int Function %119
%r_0 = OpVariable %_ptr_Function_uint Function %38
%c_0 = OpVariable %_ptr_Function_uint Function %38
%r_0 = OpVariable %_ptr_Function_uint Function %40
%c_0 = OpVariable %_ptr_Function_uint Function %40
%writeIndex = OpVariable %_ptr_Function_v2int Function %119
%acc = OpVariable %_ptr_Function_v3float Function %56
%f = OpVariable %_ptr_Function_uint Function %38
%i = OpVariable %_ptr_Function_uint Function %38
%35 = OpLoad %uint %tint_symbol_2
OpStore %idx %35
OpBranch %39
%39 = OpLabel
OpLoopMerge %40 %41 None
OpBranch %42
%42 = OpLabel
%44 = OpLoad %uint %idx
%46 = OpULessThan %bool %44 %uint_1024
%43 = OpLogicalNot %bool %46
OpSelectionMerge %48 None
OpBranchConditional %43 %49 %48
%49 = OpLabel
OpBranch %40
%48 = OpLabel
%50 = OpLoad %uint %idx
%51 = OpUDiv %uint %50 %uint_256
%52 = OpLoad %uint %idx
%53 = OpUMod %uint %52 %uint_256
%55 = OpAccessChain %_ptr_Workgroup_v3float %tile %51 %53
OpStore %55 %56
%acc = OpVariable %_ptr_Function_v3float Function %58
%f = OpVariable %_ptr_Function_uint Function %40
%i = OpVariable %_ptr_Function_uint Function %40
OpStore %idx %local_invocation_index
OpBranch %41
%41 = OpLabel
%57 = OpLoad %uint %idx
%59 = OpIAdd %uint %57 %uint_64
OpStore %idx %59
OpBranch %39
%40 = OpLabel
OpLoopMerge %42 %43 None
OpBranch %44
%44 = OpLabel
%46 = OpLoad %uint %idx
%48 = OpULessThan %bool %46 %uint_1024
%45 = OpLogicalNot %bool %48
OpSelectionMerge %50 None
OpBranchConditional %45 %51 %50
%51 = OpLabel
OpBranch %42
%50 = OpLabel
%52 = OpLoad %uint %idx
%53 = OpUDiv %uint %52 %uint_256
%54 = OpLoad %uint %idx
%55 = OpUMod %uint %54 %uint_256
%57 = OpAccessChain %_ptr_Workgroup_v3float %tile %53 %55
OpStore %57 %58
OpBranch %43
%43 = OpLabel
%59 = OpLoad %uint %idx
%61 = OpIAdd %uint %59 %uint_64
OpStore %idx %61
OpBranch %41
%42 = OpLabel
OpControlBarrier %uint_2 %uint_2 %uint_264
%65 = OpAccessChain %_ptr_Uniform_uint %params %uint_0
%66 = OpLoad %uint %65
%68 = OpISub %uint %66 %uint_1
%69 = OpUDiv %uint %68 %uint_2
%73 = OpLoad %10 %inputTex
%70 = OpImageQuerySizeLod %v2int %73 %int_0
%77 = OpLoad %v3uint %tint_symbol
%78 = OpVectorShuffle %v2uint %77 %77 0 1
%79 = OpAccessChain %_ptr_Uniform_uint %params %uint_1
%80 = OpLoad %uint %79
%81 = OpCompositeConstruct %v2uint %80 %uint_4
%82 = OpIMul %v2uint %78 %81
%83 = OpLoad %v3uint %tint_symbol_1
%84 = OpVectorShuffle %v2uint %83 %83 0 1
%67 = OpAccessChain %_ptr_Uniform_uint %params %uint_0
%68 = OpLoad %uint %67
%70 = OpISub %uint %68 %uint_1
%71 = OpUDiv %uint %70 %uint_2
%75 = OpLoad %16 %inputTex
%72 = OpImageQuerySizeLod %v2int %75 %int_0
%79 = OpVectorShuffle %v2uint %WorkGroupID %WorkGroupID 0 1
%80 = OpAccessChain %_ptr_Uniform_uint %params %uint_1
%81 = OpLoad %uint %80
%82 = OpCompositeConstruct %v2uint %81 %uint_4
%83 = OpIMul %v2uint %79 %82
%84 = OpVectorShuffle %v2uint %LocalInvocationID %LocalInvocationID 0 1
%86 = OpIMul %v2uint %84 %85
%87 = OpIAdd %v2uint %82 %86
%75 = OpBitcast %v2int %87
%88 = OpBitcast %int %69
%87 = OpIAdd %v2uint %83 %86
%77 = OpBitcast %v2int %87
%88 = OpBitcast %int %71
%89 = OpCompositeConstruct %v2int %88 %int_0
%90 = OpISub %v2int %75 %89
%90 = OpISub %v2int %77 %89
OpStore %r %uint_0
OpBranch %92
%92 = OpLabel
@ -225,173 +230,179 @@
OpBranch %123
%123 = OpLabel
%127 = OpLoad %uint %r
%128 = OpAccessChain %_ptr_Input_uint %tint_symbol_1 %uint_0
%129 = OpLoad %uint %128
%130 = OpIMul %uint %uint_4 %129
%131 = OpLoad %uint %c
%132 = OpIAdd %uint %130 %131
%133 = OpAccessChain %_ptr_Workgroup_v3float %tile %127 %132
%136 = OpLoad %3 %samp
%137 = OpLoad %10 %inputTex
%139 = OpSampledImage %138 %137 %136
%142 = OpLoad %v2int %loadIndex
%140 = OpConvertSToF %v2float %142
%145 = OpFAdd %v2float %140 %144
%146 = OpConvertSToF %v2float %70
%147 = OpFDiv %v2float %145 %146
%134 = OpImageSampleExplicitLod %v4float %139 %147 Lod %float_0
%149 = OpVectorShuffle %v3float %134 %134 0 1 2
OpStore %133 %149
%128 = OpCompositeExtract %uint %LocalInvocationID 0
%129 = OpIMul %uint %uint_4 %128
%130 = OpLoad %uint %c
%131 = OpIAdd %uint %129 %130
%132 = OpAccessChain %_ptr_Workgroup_v3float %tile %127 %131
%135 = OpLoad %10 %samp
%136 = OpLoad %16 %inputTex
%138 = OpSampledImage %137 %136 %135
%141 = OpLoad %v2int %loadIndex
%139 = OpConvertSToF %v2float %141
%144 = OpFAdd %v2float %139 %143
%145 = OpConvertSToF %v2float %72
%146 = OpFDiv %v2float %144 %145
%133 = OpImageSampleExplicitLod %v4float %138 %146 Lod %float_0
%148 = OpVectorShuffle %v3float %133 %133 0 1 2
OpStore %132 %148
OpBranch %104
%104 = OpLabel
%150 = OpLoad %uint %c
%151 = OpIAdd %uint %150 %uint_1
OpStore %c %151
%149 = OpLoad %uint %c
%150 = OpIAdd %uint %149 %uint_1
OpStore %c %150
OpBranch %102
%103 = OpLabel
OpBranch %94
%94 = OpLabel
%152 = OpLoad %uint %r
%153 = OpIAdd %uint %152 %uint_1
OpStore %r %153
%151 = OpLoad %uint %r
%152 = OpIAdd %uint %151 %uint_1
OpStore %r %152
OpBranch %92
%93 = OpLabel
OpControlBarrier %uint_2 %uint_2 %uint_264
OpStore %r_0 %uint_0
OpBranch %156
%156 = OpLabel
OpLoopMerge %157 %158 None
OpBranch %159
%159 = OpLabel
%161 = OpLoad %uint %r_0
%162 = OpULessThan %bool %161 %uint_4
%160 = OpLogicalNot %bool %162
OpSelectionMerge %163 None
OpBranchConditional %160 %164 %163
%164 = OpLabel
OpBranch %157
%163 = OpLabel
OpStore %c_0 %uint_0
OpBranch %166
%166 = OpLabel
OpLoopMerge %167 %168 None
OpBranch %169
%169 = OpLabel
%171 = OpLoad %uint %c_0
%172 = OpULessThan %bool %171 %uint_4
%170 = OpLogicalNot %bool %172
OpSelectionMerge %173 None
OpBranchConditional %170 %174 %173
%174 = OpLabel
OpBranch %167
%173 = OpLabel
%176 = OpLoad %uint %c_0
%175 = OpBitcast %int %176
%178 = OpLoad %uint %r_0
%177 = OpBitcast %int %178
%179 = OpCompositeConstruct %v2int %175 %177
%180 = OpIAdd %v2int %90 %179
OpStore %writeIndex %180
%182 = OpAccessChain %_ptr_Uniform_uint %flip %uint_0
%183 = OpLoad %uint %182
%184 = OpINotEqual %bool %183 %uint_0
OpSelectionMerge %185 None
OpBranchConditional %184 %186 %185
%186 = OpLabel
%187 = OpLoad %v2int %writeIndex
%188 = OpVectorShuffle %v2int %187 %187 1 0
OpStore %writeIndex %188
OpBranch %185
%185 = OpLabel
%189 = OpAccessChain %_ptr_Input_uint %tint_symbol_1 %uint_0
%190 = OpLoad %uint %189
%191 = OpIMul %uint %uint_4 %190
%192 = OpLoad %uint %c_0
%193 = OpIAdd %uint %191 %192
%194 = OpUGreaterThanEqual %bool %193 %69
OpSelectionMerge %195 None
OpBranchConditional %194 %196 %195
%196 = OpLabel
%197 = OpISub %uint %uint_256 %69
%198 = OpULessThan %bool %193 %197
OpBranch %195
%195 = OpLabel
%199 = OpPhi %bool %194 %185 %198 %196
OpSelectionMerge %200 None
OpBranchConditional %199 %201 %200
%201 = OpLabel
%203 = OpLoad %v2int %writeIndex
%204 = OpSLessThan %v2bool %203 %70
%202 = OpAll %bool %204
OpBranch %200
%200 = OpLabel
%206 = OpPhi %bool %199 %195 %202 %201
OpSelectionMerge %207 None
OpBranchConditional %206 %208 %207
%208 = OpLabel
OpStore %acc %209
OpStore %f %uint_0
OpBranch %213
%213 = OpLabel
OpLoopMerge %214 %215 None
OpBranch %216
%216 = OpLabel
%218 = OpLoad %uint %f
%219 = OpAccessChain %_ptr_Uniform_uint %params %uint_0
%220 = OpLoad %uint %219
%221 = OpULessThan %bool %218 %220
%217 = OpLogicalNot %bool %221
OpSelectionMerge %222 None
OpBranchConditional %217 %223 %222
%223 = OpLabel
OpBranch %214
%222 = OpLabel
%224 = OpLoad %uint %f
%225 = OpIAdd %uint %193 %224
%226 = OpISub %uint %225 %69
OpStore %i %226
%228 = OpLoad %v3float %acc
%231 = OpAccessChain %_ptr_Uniform_uint %params %uint_0
%232 = OpLoad %uint %231
%230 = OpConvertUToF %float %232
%233 = OpFDiv %float %float_1 %230
%234 = OpLoad %uint %r_0
%235 = OpLoad %uint %i
%236 = OpAccessChain %_ptr_Workgroup_v3float %tile %234 %235
%237 = OpLoad %v3float %236
%238 = OpVectorTimesScalar %v3float %237 %233
%239 = OpFAdd %v3float %228 %238
OpStore %acc %239
OpBranch %215
%215 = OpLabel
%240 = OpLoad %uint %f
%241 = OpIAdd %uint %240 %uint_1
OpStore %f %241
OpBranch %213
%214 = OpLabel
%243 = OpLoad %14 %outputTex
%244 = OpLoad %v2int %writeIndex
%245 = OpLoad %v3float %acc
%246 = OpCompositeExtract %float %245 0
%247 = OpCompositeExtract %float %245 1
%248 = OpCompositeExtract %float %245 2
%249 = OpCompositeConstruct %v4float %246 %247 %248 %float_1
OpImageWrite %243 %244 %249
OpBranch %207
%207 = OpLabel
OpBranch %168
%168 = OpLabel
%250 = OpLoad %uint %c_0
%251 = OpIAdd %uint %250 %uint_1
OpStore %c_0 %251
OpBranch %166
%167 = OpLabel
OpBranch %155
%155 = OpLabel
OpLoopMerge %156 %157 None
OpBranch %158
%158 = OpLabel
%252 = OpLoad %uint %r_0
%253 = OpIAdd %uint %252 %uint_1
OpStore %r_0 %253
%160 = OpLoad %uint %r_0
%161 = OpULessThan %bool %160 %uint_4
%159 = OpLogicalNot %bool %161
OpSelectionMerge %162 None
OpBranchConditional %159 %163 %162
%163 = OpLabel
OpBranch %156
%162 = OpLabel
OpStore %c_0 %uint_0
OpBranch %165
%165 = OpLabel
OpLoopMerge %166 %167 None
OpBranch %168
%168 = OpLabel
%170 = OpLoad %uint %c_0
%171 = OpULessThan %bool %170 %uint_4
%169 = OpLogicalNot %bool %171
OpSelectionMerge %172 None
OpBranchConditional %169 %173 %172
%173 = OpLabel
OpBranch %166
%172 = OpLabel
%175 = OpLoad %uint %c_0
%174 = OpBitcast %int %175
%177 = OpLoad %uint %r_0
%176 = OpBitcast %int %177
%178 = OpCompositeConstruct %v2int %174 %176
%179 = OpIAdd %v2int %90 %178
OpStore %writeIndex %179
%181 = OpAccessChain %_ptr_Uniform_uint %flip %uint_0
%182 = OpLoad %uint %181
%183 = OpINotEqual %bool %182 %uint_0
OpSelectionMerge %184 None
OpBranchConditional %183 %185 %184
%185 = OpLabel
%186 = OpLoad %v2int %writeIndex
%187 = OpVectorShuffle %v2int %186 %186 1 0
OpStore %writeIndex %187
OpBranch %184
%184 = OpLabel
%188 = OpCompositeExtract %uint %LocalInvocationID 0
%189 = OpIMul %uint %uint_4 %188
%190 = OpLoad %uint %c_0
%191 = OpIAdd %uint %189 %190
%192 = OpUGreaterThanEqual %bool %191 %71
OpSelectionMerge %193 None
OpBranchConditional %192 %194 %193
%194 = OpLabel
%195 = OpISub %uint %uint_256 %71
%196 = OpULessThan %bool %191 %195
OpBranch %193
%193 = OpLabel
%197 = OpPhi %bool %192 %184 %196 %194
OpSelectionMerge %198 None
OpBranchConditional %197 %199 %198
%199 = OpLabel
%201 = OpLoad %v2int %writeIndex
%202 = OpSLessThan %v2bool %201 %72
%200 = OpAll %bool %202
OpBranch %198
%198 = OpLabel
%204 = OpPhi %bool %197 %193 %200 %199
OpSelectionMerge %205 None
OpBranchConditional %204 %206 %205
%206 = OpLabel
OpStore %acc %207
OpStore %f %uint_0
OpBranch %211
%211 = OpLabel
OpLoopMerge %212 %213 None
OpBranch %214
%214 = OpLabel
%216 = OpLoad %uint %f
%217 = OpAccessChain %_ptr_Uniform_uint %params %uint_0
%218 = OpLoad %uint %217
%219 = OpULessThan %bool %216 %218
%215 = OpLogicalNot %bool %219
OpSelectionMerge %220 None
OpBranchConditional %215 %221 %220
%221 = OpLabel
OpBranch %212
%220 = OpLabel
%222 = OpLoad %uint %f
%223 = OpIAdd %uint %191 %222
%224 = OpISub %uint %223 %71
OpStore %i %224
%226 = OpLoad %v3float %acc
%229 = OpAccessChain %_ptr_Uniform_uint %params %uint_0
%230 = OpLoad %uint %229
%228 = OpConvertUToF %float %230
%231 = OpFDiv %float %float_1 %228
%232 = OpLoad %uint %r_0
%233 = OpLoad %uint %i
%234 = OpAccessChain %_ptr_Workgroup_v3float %tile %232 %233
%235 = OpLoad %v3float %234
%236 = OpVectorTimesScalar %v3float %235 %231
%237 = OpFAdd %v3float %226 %236
OpStore %acc %237
OpBranch %213
%213 = OpLabel
%238 = OpLoad %uint %f
%239 = OpIAdd %uint %238 %uint_1
OpStore %f %239
OpBranch %211
%212 = OpLabel
%241 = OpLoad %20 %outputTex
%242 = OpLoad %v2int %writeIndex
%243 = OpLoad %v3float %acc
%244 = OpCompositeExtract %float %243 0
%245 = OpCompositeExtract %float %243 1
%246 = OpCompositeExtract %float %243 2
%247 = OpCompositeConstruct %v4float %244 %245 %246 %float_1
OpImageWrite %241 %242 %247
OpBranch %205
%205 = OpLabel
OpBranch %167
%167 = OpLabel
%248 = OpLoad %uint %c_0
%249 = OpIAdd %uint %248 %uint_1
OpStore %c_0 %249
OpBranch %165
%166 = OpLabel
OpBranch %157
%157 = OpLabel
%250 = OpLoad %uint %r_0
%251 = OpIAdd %uint %250 %uint_1
OpStore %r_0 %251
OpBranch %155
%156 = OpLabel
OpReturn
OpFunctionEnd
%main = OpFunction %void None %252
%254 = OpLabel
%256 = OpLoad %v3uint %WorkGroupID_1
%257 = OpLoad %v3uint %LocalInvocationID_1
%258 = OpLoad %uint %local_invocation_index_1
%255 = OpFunctionCall %void %main_inner %256 %257 %258
OpReturn
OpFunctionEnd

View File

@ -1,12 +1,15 @@
; SPIR-V
; Version: 1.3
; Generator: Google Tint Compiler; 0
; Bound: 628
; Bound: 633
; Schema: 0
OpCapability Shader
OpMemoryModel Logical GLSL450
OpEntryPoint GLCompute %main "main" %tint_symbol_2 %tint_symbol %tint_symbol_1
OpEntryPoint GLCompute %main "main" %gl_LocalInvocationID_param_1 %gl_GlobalInvocationID_param_1 %local_invocation_index_1
OpExecutionMode %main LocalSize 1 64 1
OpName %gl_LocalInvocationID_param_1 "gl_LocalInvocationID_param_1"
OpName %gl_GlobalInvocationID_param_1 "gl_GlobalInvocationID_param_1"
OpName %local_invocation_index_1 "local_invocation_index_1"
OpName %dimAOuter_1 "dimAOuter_1"
OpName %Uniforms "Uniforms"
OpMemberName %Uniforms 0 "NAN"
@ -31,9 +34,6 @@
OpName %ssbB "ssbB"
OpMemberName %ssbB 0 "B"
OpName %x_185 "x_185"
OpName %tint_symbol "tint_symbol"
OpName %tint_symbol_1 "tint_symbol_1"
OpName %tint_symbol_2 "tint_symbol_2"
OpName %coordsInBounds_vi2_vi2_ "coordsInBounds_vi2_vi2_"
OpName %coord "coord"
OpName %shape "shape"
@ -120,8 +120,15 @@
OpName %param_18 "param_18"
OpName %param_19 "param_19"
OpName %param_20 "param_20"
OpName %main "main"
OpName %main_inner "main_inner"
OpName %gl_LocalInvocationID_param "gl_LocalInvocationID_param"
OpName %gl_GlobalInvocationID_param "gl_GlobalInvocationID_param"
OpName %local_invocation_index "local_invocation_index"
OpName %idx "idx"
OpName %main "main"
OpDecorate %gl_LocalInvocationID_param_1 BuiltIn LocalInvocationId
OpDecorate %gl_GlobalInvocationID_param_1 BuiltIn GlobalInvocationId
OpDecorate %local_invocation_index_1 BuiltIn LocalInvocationIndex
OpDecorate %Uniforms Block
OpMemberDecorate %Uniforms 0 Offset 0
OpMemberDecorate %Uniforms 1 Offset 16
@ -150,32 +157,34 @@
OpDecorate %x_185 NonWritable
OpDecorate %x_185 DescriptorSet 0
OpDecorate %x_185 Binding 2
OpDecorate %tint_symbol BuiltIn LocalInvocationId
OpDecorate %tint_symbol_1 BuiltIn GlobalInvocationId
OpDecorate %tint_symbol_2 BuiltIn LocalInvocationIndex
OpDecorate %_arr__arr_float_uint_1_uint_1 ArrayStride 4
%uint = OpTypeInt 32 0
%v3uint = OpTypeVector %uint 3
%_ptr_Input_v3uint = OpTypePointer Input %v3uint
%gl_LocalInvocationID_param_1 = OpVariable %_ptr_Input_v3uint Input
%gl_GlobalInvocationID_param_1 = OpVariable %_ptr_Input_v3uint Input
%_ptr_Input_uint = OpTypePointer Input %uint
%local_invocation_index_1 = OpVariable %_ptr_Input_uint Input
%int = OpTypeInt 32 1
%_ptr_Private_int = OpTypePointer Private %int
%4 = OpConstantNull %int
%dimAOuter_1 = OpVariable %_ptr_Private_int Private %4
%11 = OpConstantNull %int
%dimAOuter_1 = OpVariable %_ptr_Private_int Private %11
%float = OpTypeFloat 32
%v3int = OpTypeVector %int 3
%v2int = OpTypeVector %int 2
%Uniforms = OpTypeStruct %float %v3int %v3int %v3int %v2int
%_ptr_Uniform_Uniforms = OpTypePointer Uniform %Uniforms
%x_48 = OpVariable %_ptr_Uniform_Uniforms Uniform
%dimInner_1 = OpVariable %_ptr_Private_int Private %4
%dimBOuter_1 = OpVariable %_ptr_Private_int Private %4
%dimInner_1 = OpVariable %_ptr_Private_int Private %11
%dimBOuter_1 = OpVariable %_ptr_Private_int Private %11
%_runtimearr_float = OpTypeRuntimeArray %float
%ssbOut = OpTypeStruct %_runtimearr_float
%_ptr_StorageBuffer_ssbOut = OpTypePointer StorageBuffer %ssbOut
%x_54 = OpVariable %_ptr_StorageBuffer_ssbOut StorageBuffer
%uint = OpTypeInt 32 0
%v3uint = OpTypeVector %uint 3
%_ptr_Private_v3uint = OpTypePointer Private %v3uint
%21 = OpConstantNull %v3uint
%gl_LocalInvocationID = OpVariable %_ptr_Private_v3uint Private %21
%gl_GlobalInvocationID = OpVariable %_ptr_Private_v3uint Private %21
%26 = OpConstantNull %v3uint
%gl_LocalInvocationID = OpVariable %_ptr_Private_v3uint Private %26
%gl_GlobalInvocationID = OpVariable %_ptr_Private_v3uint Private %26
%uint_64 = OpConstant %uint 64
%_arr_float_uint_64 = OpTypeArray %float %uint_64
%_arr__arr_float_uint_64_uint_64 = OpTypeArray %_arr_float_uint_64 %uint_64
@ -189,15 +198,10 @@
%ssbA = OpTypeStruct %_runtimearr_float
%_ptr_StorageBuffer_ssbA = OpTypePointer StorageBuffer %ssbA
%x_165 = OpVariable %_ptr_StorageBuffer_ssbA StorageBuffer
%batch = OpVariable %_ptr_Private_int Private %4
%batch = OpVariable %_ptr_Private_int Private %11
%ssbB = OpTypeStruct %_runtimearr_float
%_ptr_StorageBuffer_ssbB = OpTypePointer StorageBuffer %ssbB
%x_185 = OpVariable %_ptr_StorageBuffer_ssbB StorageBuffer
%_ptr_Input_v3uint = OpTypePointer Input %v3uint
%tint_symbol = OpVariable %_ptr_Input_v3uint Input
%tint_symbol_1 = OpVariable %_ptr_Input_v3uint Input
%_ptr_Input_uint = OpTypePointer Input %uint
%tint_symbol_2 = OpVariable %_ptr_Input_uint Input
%bool = OpTypeBool
%_ptr_Function_v2int = OpTypePointer Function %v2int
%45 = OpTypeFunction %bool %_ptr_Function_v2int %_ptr_Function_v2int
@ -237,8 +241,9 @@
%_ptr_Workgroup_float = OpTypePointer Workgroup %float
%uint_264 = OpConstant %uint 264
%575 = OpTypeFunction %void
%597 = OpTypeFunction %void %v3uint %v3uint %uint
%_ptr_Function_uint = OpTypePointer Function %uint
%606 = OpConstantNull %uint
%607 = OpConstantNull %uint
%uint_4096 = OpConstant %uint 4096
%coordsInBounds_vi2_vi2_ = OpFunction %bool None %45
%coord = OpFunctionParameter %_ptr_Function_v2int
@ -269,7 +274,7 @@
%row = OpFunctionParameter %_ptr_Function_int
%col = OpFunctionParameter %_ptr_Function_int
%78 = OpLabel
%batchASize = OpVariable %_ptr_Function_int Function %4
%batchASize = OpVariable %_ptr_Function_int Function %11
%param_10 = OpVariable %_ptr_Function_v2int Function %81
%param_11 = OpVariable %_ptr_Function_v2int Function %81
%x_430 = OpVariable %_ptr_Function_float Function %85
@ -315,7 +320,7 @@
%row_1 = OpFunctionParameter %_ptr_Function_int
%col_1 = OpFunctionParameter %_ptr_Function_int
%127 = OpLabel
%batchBSize = OpVariable %_ptr_Function_int Function %4
%batchBSize = OpVariable %_ptr_Function_int Function %11
%param_12 = OpVariable %_ptr_Function_v2int Function %81
%param_13 = OpVariable %_ptr_Function_v2int Function %81
%x_468 = OpVariable %_ptr_Function_float Function %85
@ -388,9 +393,9 @@
%d2 = OpFunctionParameter %_ptr_Function_int
%value_1 = OpFunctionParameter %_ptr_Function_float
%201 = OpLabel
%flatIndex_1 = OpVariable %_ptr_Function_int Function %4
%flatIndex_1 = OpVariable %_ptr_Function_int Function %11
%param = OpVariable %_ptr_Function_v3int Function %204
%param_1 = OpVariable %_ptr_Function_int Function %4
%param_1 = OpVariable %_ptr_Function_int Function %11
%param_2 = OpVariable %_ptr_Function_float Function %85
%208 = OpLoad %int %d0
%210 = OpLoad %int %d1
@ -412,9 +417,9 @@
%value_2 = OpFunctionParameter %_ptr_Function_float
%227 = OpLabel
%outCoord = OpVariable %_ptr_Function_v3int Function %204
%param_14 = OpVariable %_ptr_Function_int Function %4
%param_15 = OpVariable %_ptr_Function_int Function %4
%param_16 = OpVariable %_ptr_Function_int Function %4
%param_14 = OpVariable %_ptr_Function_int Function %11
%param_15 = OpVariable %_ptr_Function_int Function %11
%param_16 = OpVariable %_ptr_Function_int Function %11
%param_17 = OpVariable %_ptr_Function_float Function %85
%233 = OpLoad %int %batch
%235 = OpLoad %int %row_2
@ -437,39 +442,39 @@
%dimInner = OpFunctionParameter %_ptr_Function_int
%dimBOuter = OpFunctionParameter %_ptr_Function_int
%256 = OpLabel
%tileRow = OpVariable %_ptr_Function_int Function %4
%tileCol = OpVariable %_ptr_Function_int Function %4
%globalRow = OpVariable %_ptr_Function_int Function %4
%globalCol = OpVariable %_ptr_Function_int Function %4
%numTiles = OpVariable %_ptr_Function_int Function %4
%innerRow = OpVariable %_ptr_Function_int Function %4
%innerCol = OpVariable %_ptr_Function_int Function %4
%tileRow = OpVariable %_ptr_Function_int Function %11
%tileCol = OpVariable %_ptr_Function_int Function %11
%globalRow = OpVariable %_ptr_Function_int Function %11
%globalCol = OpVariable %_ptr_Function_int Function %11
%numTiles = OpVariable %_ptr_Function_int Function %11
%innerRow = OpVariable %_ptr_Function_int Function %11
%innerCol = OpVariable %_ptr_Function_int Function %11
%acc = OpVariable %_ptr_Function__arr__arr_float_uint_1_uint_1 Function %267
%tileColA = OpVariable %_ptr_Function_int Function %4
%tileRowB = OpVariable %_ptr_Function_int Function %4
%t = OpVariable %_ptr_Function_int Function %4
%innerRow_1 = OpVariable %_ptr_Function_int Function %4
%innerCol_1 = OpVariable %_ptr_Function_int Function %4
%inputRow = OpVariable %_ptr_Function_int Function %4
%inputCol = OpVariable %_ptr_Function_int Function %4
%param_3 = OpVariable %_ptr_Function_int Function %4
%param_4 = OpVariable %_ptr_Function_int Function %4
%innerRow_2 = OpVariable %_ptr_Function_int Function %4
%innerCol_2 = OpVariable %_ptr_Function_int Function %4
%inputRow_1 = OpVariable %_ptr_Function_int Function %4
%inputCol_1 = OpVariable %_ptr_Function_int Function %4
%param_5 = OpVariable %_ptr_Function_int Function %4
%param_6 = OpVariable %_ptr_Function_int Function %4
%k = OpVariable %_ptr_Function_int Function %4
%inner = OpVariable %_ptr_Function_int Function %4
%tileColA = OpVariable %_ptr_Function_int Function %11
%tileRowB = OpVariable %_ptr_Function_int Function %11
%t = OpVariable %_ptr_Function_int Function %11
%innerRow_1 = OpVariable %_ptr_Function_int Function %11
%innerCol_1 = OpVariable %_ptr_Function_int Function %11
%inputRow = OpVariable %_ptr_Function_int Function %11
%inputCol = OpVariable %_ptr_Function_int Function %11
%param_3 = OpVariable %_ptr_Function_int Function %11
%param_4 = OpVariable %_ptr_Function_int Function %11
%innerRow_2 = OpVariable %_ptr_Function_int Function %11
%innerCol_2 = OpVariable %_ptr_Function_int Function %11
%inputRow_1 = OpVariable %_ptr_Function_int Function %11
%inputCol_1 = OpVariable %_ptr_Function_int Function %11
%param_5 = OpVariable %_ptr_Function_int Function %11
%param_6 = OpVariable %_ptr_Function_int Function %11
%k = OpVariable %_ptr_Function_int Function %11
%inner = OpVariable %_ptr_Function_int Function %11
%BCached = OpVariable %_ptr_Function__arr_float_uint_1 Function %287
%innerRow_3 = OpVariable %_ptr_Function_int Function %4
%innerRow_3 = OpVariable %_ptr_Function_int Function %11
%ACached = OpVariable %_ptr_Function_float Function %85
%innerCol_3 = OpVariable %_ptr_Function_int Function %4
%innerRow_4 = OpVariable %_ptr_Function_int Function %4
%innerCol_4 = OpVariable %_ptr_Function_int Function %4
%param_7 = OpVariable %_ptr_Function_int Function %4
%param_8 = OpVariable %_ptr_Function_int Function %4
%innerCol_3 = OpVariable %_ptr_Function_int Function %11
%innerRow_4 = OpVariable %_ptr_Function_int Function %11
%innerCol_4 = OpVariable %_ptr_Function_int Function %11
%param_7 = OpVariable %_ptr_Function_int Function %11
%param_8 = OpVariable %_ptr_Function_int Function %11
%param_9 = OpVariable %_ptr_Function_float Function %85
%x_393 = OpVariable %_ptr_Function_bool Function %54
%x_394_phi = OpVariable %_ptr_Function_bool Function %54
@ -916,9 +921,9 @@
OpFunctionEnd
%main_1 = OpFunction %void None %575
%577 = OpLabel
%param_18 = OpVariable %_ptr_Function_int Function %4
%param_19 = OpVariable %_ptr_Function_int Function %4
%param_20 = OpVariable %_ptr_Function_int Function %4
%param_18 = OpVariable %_ptr_Function_int Function %11
%param_19 = OpVariable %_ptr_Function_int Function %11
%param_20 = OpVariable %_ptr_Function_int Function %11
%581 = OpAccessChain %_ptr_Uniform_int %x_48 %uint_1 %uint_1
%582 = OpLoad %int %581
OpStore %dimAOuter_1 %582
@ -941,47 +946,53 @@
%593 = OpFunctionCall %void %mm_matMul_i1_i1_i1_ %param_18 %param_19 %param_20
OpReturn
OpFunctionEnd
%main = OpFunction %void None %575
%598 = OpLabel
%idx = OpVariable %_ptr_Function_uint Function %606
%599 = OpLoad %uint %tint_symbol_2
%600 = OpLoad %uint %tint_symbol_2
%601 = OpUMod %uint %600 %uint_1
%602 = OpAccessChain %_ptr_Workgroup_float %mm_Bsub %599 %601
OpStore %602 %85
%603 = OpLoad %uint %tint_symbol_2
OpStore %idx %603
OpBranch %607
%607 = OpLabel
OpLoopMerge %608 %609 None
%main_inner = OpFunction %void None %597
%gl_LocalInvocationID_param = OpFunctionParameter %v3uint
%gl_GlobalInvocationID_param = OpFunctionParameter %v3uint
%local_invocation_index = OpFunctionParameter %uint
%602 = OpLabel
%idx = OpVariable %_ptr_Function_uint Function %607
%603 = OpUMod %uint %local_invocation_index %uint_1
%604 = OpAccessChain %_ptr_Workgroup_float %mm_Bsub %local_invocation_index %603
OpStore %604 %85
OpStore %idx %local_invocation_index
OpBranch %608
%608 = OpLabel
OpLoopMerge %609 %610 None
OpBranch %611
%611 = OpLabel
%613 = OpLoad %uint %idx
%615 = OpULessThan %bool %613 %uint_4096
%612 = OpLogicalNot %bool %615
OpSelectionMerge %616 None
OpBranchConditional %612 %617 %616
%617 = OpLabel
OpBranch %609
%616 = OpLabel
%618 = OpLoad %uint %idx
%619 = OpUDiv %uint %618 %uint_64
%620 = OpLoad %uint %idx
%621 = OpUMod %uint %620 %uint_64
%622 = OpAccessChain %_ptr_Workgroup_float %mm_Asub %619 %621
OpStore %622 %85
OpBranch %610
%610 = OpLabel
%612 = OpLoad %uint %idx
%614 = OpULessThan %bool %612 %uint_4096
%611 = OpLogicalNot %bool %614
OpSelectionMerge %615 None
OpBranchConditional %611 %616 %615
%616 = OpLabel
%623 = OpLoad %uint %idx
%624 = OpIAdd %uint %623 %uint_64
OpStore %idx %624
OpBranch %608
%615 = OpLabel
%617 = OpLoad %uint %idx
%618 = OpUDiv %uint %617 %uint_64
%619 = OpLoad %uint %idx
%620 = OpUMod %uint %619 %uint_64
%621 = OpAccessChain %_ptr_Workgroup_float %mm_Asub %618 %620
OpStore %621 %85
OpBranch %609
%609 = OpLabel
%622 = OpLoad %uint %idx
%623 = OpIAdd %uint %622 %uint_64
OpStore %idx %623
OpBranch %607
%608 = OpLabel
OpControlBarrier %uint_2 %uint_2 %uint_264
%625 = OpLoad %v3uint %tint_symbol
OpStore %gl_LocalInvocationID %625
%626 = OpLoad %v3uint %tint_symbol_1
OpStore %gl_GlobalInvocationID %626
%627 = OpFunctionCall %void %main_1
OpStore %gl_LocalInvocationID %gl_LocalInvocationID_param
OpStore %gl_GlobalInvocationID %gl_GlobalInvocationID_param
%626 = OpFunctionCall %void %main_1
OpReturn
OpFunctionEnd
%main = OpFunction %void None %575
%628 = OpLabel
%630 = OpLoad %v3uint %gl_LocalInvocationID_param_1
%631 = OpLoad %v3uint %gl_GlobalInvocationID_param_1
%632 = OpLoad %uint %local_invocation_index_1
%629 = OpFunctionCall %void %main_inner %630 %631 %632
OpReturn
OpFunctionEnd

View File

@ -1,13 +1,20 @@
; SPIR-V
; Version: 1.3
; Generator: Google Tint Compiler; 0
; Bound: 381
; Bound: 386
; Schema: 0
OpCapability Shader
%138 = OpExtInstImport "GLSL.std.450"
OpMemoryModel Logical GLSL450
OpEntryPoint Fragment %main "main" %tint_symbol %tint_symbol_1 %tint_symbol_2 %tint_symbol_3 %tint_symbol_4 %tint_symbol_5 %tint_symbol_7
OpEntryPoint Fragment %main "main" %tUV_param_1 %tileID_1_param_1 %levelUnits_param_1 %stageUnits_1_param_1 %vPosition_param_1 %vUV_param_1 %glFragColor_1_1
OpExecutionMode %main OriginUpperLeft
OpName %tUV_param_1 "tUV_param_1"
OpName %tileID_1_param_1 "tileID_1_param_1"
OpName %levelUnits_param_1 "levelUnits_param_1"
OpName %stageUnits_1_param_1 "stageUnits_1_param_1"
OpName %vPosition_param_1 "vPosition_param_1"
OpName %vUV_param_1 "vUV_param_1"
OpName %glFragColor_1_1 "glFragColor_1_1"
OpName %LeftOver "LeftOver"
OpMemberName %LeftOver 0 "time"
OpMemberName %LeftOver 1 "padding"
@ -36,13 +43,6 @@
OpName %stageUnits_1 "stageUnits_1"
OpName %vPosition "vPosition"
OpName %vUV "vUV"
OpName %tint_symbol "tint_symbol"
OpName %tint_symbol_1 "tint_symbol_1"
OpName %tint_symbol_2 "tint_symbol_2"
OpName %tint_symbol_3 "tint_symbol_3"
OpName %tint_symbol_4 "tint_symbol_4"
OpName %tint_symbol_5 "tint_symbol_5"
OpName %tint_symbol_7 "tint_symbol_7"
OpName %getFrameData_f1_ "getFrameData_f1_"
OpName %frameID "frameID"
OpName %fX "fX"
@ -67,9 +67,21 @@
OpName %mixed "mixed"
OpName %main_out "main_out"
OpMemberName %main_out 0 "glFragColor_1"
OpName %tint_symbol_8 "tint_symbol_8"
OpName %tint_symbol_6 "tint_symbol_6"
OpName %main_inner "main_inner"
OpName %tUV_param "tUV_param"
OpName %tileID_1_param "tileID_1_param"
OpName %levelUnits_param "levelUnits_param"
OpName %stageUnits_1_param "stageUnits_1_param"
OpName %vPosition_param "vPosition_param"
OpName %vUV_param "vUV_param"
OpName %main "main"
OpDecorate %tUV_param_1 Location 2
OpDecorate %tileID_1_param_1 Location 5
OpDecorate %levelUnits_param_1 Location 4
OpDecorate %stageUnits_1_param_1 Location 3
OpDecorate %vPosition_param_1 Location 0
OpDecorate %vUV_param_1 Location 1
OpDecorate %glFragColor_1_1 Location 0
OpDecorate %LeftOver Block
OpMemberDecorate %LeftOver 0 Offset 0
OpMemberDecorate %LeftOver 1 Offset 4
@ -103,67 +115,60 @@
OpDecorate %spriteSheetTexture Binding 1
OpDecorate %spriteSheetSampler DescriptorSet 2
OpDecorate %spriteSheetSampler Binding 0
OpDecorate %tint_symbol Location 2
OpDecorate %tint_symbol_1 Location 5
OpDecorate %tint_symbol_2 Location 4
OpDecorate %tint_symbol_3 Location 3
OpDecorate %tint_symbol_4 Location 0
OpDecorate %tint_symbol_5 Location 1
OpDecorate %tint_symbol_7 Location 0
OpMemberDecorate %main_out 0 Offset 0
%float = OpTypeFloat 32
%uint = OpTypeInt 32 0
%v4float = OpTypeVector %float 4
%mat4v4float = OpTypeMatrix %v4float 4
%v2float = OpTypeVector %float 2
%_ptr_Input_v2float = OpTypePointer Input %v2float
%tUV_param_1 = OpVariable %_ptr_Input_v2float Input
%tileID_1_param_1 = OpVariable %_ptr_Input_v2float Input
%levelUnits_param_1 = OpVariable %_ptr_Input_v2float Input
%stageUnits_1_param_1 = OpVariable %_ptr_Input_v2float Input
%v3float = OpTypeVector %float 3
%_ptr_Input_v3float = OpTypePointer Input %v3float
%vPosition_param_1 = OpVariable %_ptr_Input_v3float Input
%vUV_param_1 = OpVariable %_ptr_Input_v2float Input
%v4float = OpTypeVector %float 4
%_ptr_Output_v4float = OpTypePointer Output %v4float
%15 = OpConstantNull %v4float
%glFragColor_1_1 = OpVariable %_ptr_Output_v4float Output %15
%uint = OpTypeInt 32 0
%mat4v4float = OpTypeMatrix %v4float 4
%LeftOver = OpTypeStruct %float %uint %mat4v4float %v2float %v2float %v2float %float %float %v3float
%_ptr_Uniform_LeftOver = OpTypePointer Uniform %LeftOver
%x_20 = OpVariable %_ptr_Uniform_LeftOver Uniform
%12 = OpTypeImage %float 2D 0 0 0 1 Unknown
%_ptr_UniformConstant_12 = OpTypePointer UniformConstant %12
%frameMapTexture = OpVariable %_ptr_UniformConstant_12 UniformConstant
%15 = OpTypeSampler
%_ptr_UniformConstant_15 = OpTypePointer UniformConstant %15
%frameMapSampler = OpVariable %_ptr_UniformConstant_15 UniformConstant
%23 = OpTypeImage %float 2D 0 0 0 1 Unknown
%_ptr_UniformConstant_23 = OpTypePointer UniformConstant %23
%frameMapTexture = OpVariable %_ptr_UniformConstant_23 UniformConstant
%26 = OpTypeSampler
%_ptr_UniformConstant_26 = OpTypePointer UniformConstant %26
%frameMapSampler = OpVariable %_ptr_UniformConstant_26 UniformConstant
%_ptr_Private_v2float = OpTypePointer Private %v2float
%18 = OpConstantNull %v2float
%tUV = OpVariable %_ptr_Private_v2float Private %18
%tileMapsTexture0 = OpVariable %_ptr_UniformConstant_12 UniformConstant
%tileMapsSampler = OpVariable %_ptr_UniformConstant_15 UniformConstant
%tileMapsTexture1 = OpVariable %_ptr_UniformConstant_12 UniformConstant
%animationMapTexture = OpVariable %_ptr_UniformConstant_12 UniformConstant
%animationMapSampler = OpVariable %_ptr_UniformConstant_15 UniformConstant
%29 = OpConstantNull %v2float
%tUV = OpVariable %_ptr_Private_v2float Private %29
%tileMapsTexture0 = OpVariable %_ptr_UniformConstant_23 UniformConstant
%tileMapsSampler = OpVariable %_ptr_UniformConstant_26 UniformConstant
%tileMapsTexture1 = OpVariable %_ptr_UniformConstant_23 UniformConstant
%animationMapTexture = OpVariable %_ptr_UniformConstant_23 UniformConstant
%animationMapSampler = OpVariable %_ptr_UniformConstant_26 UniformConstant
%_ptr_Private_float = OpTypePointer Private %float
%26 = OpConstantNull %float
%mt = OpVariable %_ptr_Private_float Private %26
%spriteSheetTexture = OpVariable %_ptr_UniformConstant_12 UniformConstant
%spriteSheetSampler = OpVariable %_ptr_UniformConstant_15 UniformConstant
%37 = OpConstantNull %float
%mt = OpVariable %_ptr_Private_float Private %37
%spriteSheetTexture = OpVariable %_ptr_UniformConstant_23 UniformConstant
%spriteSheetSampler = OpVariable %_ptr_UniformConstant_26 UniformConstant
%_ptr_Private_v4float = OpTypePointer Private %v4float
%31 = OpConstantNull %v4float
%glFragColor = OpVariable %_ptr_Private_v4float Private %31
%tileID_1 = OpVariable %_ptr_Private_v2float Private %18
%levelUnits = OpVariable %_ptr_Private_v2float Private %18
%stageUnits_1 = OpVariable %_ptr_Private_v2float Private %18
%glFragColor = OpVariable %_ptr_Private_v4float Private %15
%tileID_1 = OpVariable %_ptr_Private_v2float Private %29
%levelUnits = OpVariable %_ptr_Private_v2float Private %29
%stageUnits_1 = OpVariable %_ptr_Private_v2float Private %29
%_ptr_Private_v3float = OpTypePointer Private %v3float
%37 = OpConstantNull %v3float
%vPosition = OpVariable %_ptr_Private_v3float Private %37
%vUV = OpVariable %_ptr_Private_v2float Private %18
%_ptr_Input_v2float = OpTypePointer Input %v2float
%tint_symbol = OpVariable %_ptr_Input_v2float Input
%tint_symbol_1 = OpVariable %_ptr_Input_v2float Input
%tint_symbol_2 = OpVariable %_ptr_Input_v2float Input
%tint_symbol_3 = OpVariable %_ptr_Input_v2float Input
%_ptr_Input_v3float = OpTypePointer Input %v3float
%tint_symbol_4 = OpVariable %_ptr_Input_v3float Input
%tint_symbol_5 = OpVariable %_ptr_Input_v2float Input
%_ptr_Output_v4float = OpTypePointer Output %v4float
%tint_symbol_7 = OpVariable %_ptr_Output_v4float Output %31
%47 = OpConstantNull %v3float
%vPosition = OpVariable %_ptr_Private_v3float Private %47
%vUV = OpVariable %_ptr_Private_v2float Private %29
%_ptr_Function_float = OpTypePointer Function %float
%49 = OpTypeFunction %mat4v4float %_ptr_Function_float
%uint_7 = OpConstant %uint 7
%_ptr_Uniform_float = OpTypePointer Uniform %float
%66 = OpTypeSampledImage %12
%66 = OpTypeSampledImage %23
%float_0 = OpConstant %float 0
%float_0_25 = OpConstant %float 0.25
%float_0_5 = OpConstant %float 0.5
@ -197,31 +202,31 @@
%uint_8 = OpConstant %uint 8
%_ptr_Uniform_v3float = OpTypePointer Uniform %v3float
%main_out = OpTypeStruct %v4float
%363 = OpTypeFunction %void %main_out
%363 = OpTypeFunction %main_out %v2float %v2float %v2float %v2float %v3float %v2float
%getFrameData_f1_ = OpFunction %mat4v4float None %49
%frameID = OpFunctionParameter %_ptr_Function_float
%53 = OpLabel
%fX = OpVariable %_ptr_Function_float Function %26
%fX = OpVariable %_ptr_Function_float Function %37
%56 = OpLoad %float %frameID
%59 = OpAccessChain %_ptr_Uniform_float %x_20 %uint_7
%60 = OpLoad %float %59
%61 = OpFDiv %float %56 %60
OpStore %fX %61
%62 = OpLoad %float %fX
%64 = OpLoad %15 %frameMapSampler
%65 = OpLoad %12 %frameMapTexture
%64 = OpLoad %26 %frameMapSampler
%65 = OpLoad %23 %frameMapTexture
%67 = OpSampledImage %66 %65 %64
%69 = OpCompositeConstruct %v2float %62 %float_0
%63 = OpImageSampleImplicitLod %v4float %67 %69 Bias %float_0
%70 = OpLoad %float %fX
%72 = OpLoad %15 %frameMapSampler
%73 = OpLoad %12 %frameMapTexture
%72 = OpLoad %26 %frameMapSampler
%73 = OpLoad %23 %frameMapTexture
%74 = OpSampledImage %66 %73 %72
%76 = OpCompositeConstruct %v2float %70 %float_0_25
%71 = OpImageSampleImplicitLod %v4float %74 %76 Bias %float_0
%77 = OpLoad %float %fX
%79 = OpLoad %15 %frameMapSampler
%80 = OpLoad %12 %frameMapTexture
%79 = OpLoad %26 %frameMapSampler
%80 = OpLoad %23 %frameMapTexture
%81 = OpSampledImage %66 %80 %79
%83 = OpCompositeConstruct %v2float %77 %float_0_5
%78 = OpImageSampleImplicitLod %v4float %81 %83 Bias %float_0
@ -250,24 +255,24 @@
OpFunctionEnd
%main_1 = OpFunction %void None %106
%109 = OpLabel
%color = OpVariable %_ptr_Function_v4float Function %31
%tileUV = OpVariable %_ptr_Function_v2float Function %18
%tileID = OpVariable %_ptr_Function_v2float Function %18
%sheetUnits = OpVariable %_ptr_Function_v2float Function %18
%spriteUnits = OpVariable %_ptr_Function_float Function %26
%stageUnits = OpVariable %_ptr_Function_v2float Function %18
%color = OpVariable %_ptr_Function_v4float Function %15
%tileUV = OpVariable %_ptr_Function_v2float Function %29
%tileID = OpVariable %_ptr_Function_v2float Function %29
%sheetUnits = OpVariable %_ptr_Function_v2float Function %29
%spriteUnits = OpVariable %_ptr_Function_float Function %37
%stageUnits = OpVariable %_ptr_Function_v2float Function %29
%i = OpVariable %_ptr_Function_int Function %121
%frameID_1 = OpVariable %_ptr_Function_float Function %26
%animationData = OpVariable %_ptr_Function_v4float Function %31
%f = OpVariable %_ptr_Function_float Function %26
%frameID_1 = OpVariable %_ptr_Function_float Function %37
%animationData = OpVariable %_ptr_Function_v4float Function %15
%f = OpVariable %_ptr_Function_float Function %37
%frameData = OpVariable %_ptr_Function_mat4v4float Function %127
%param = OpVariable %_ptr_Function_float Function %26
%frameSize = OpVariable %_ptr_Function_v2float Function %18
%offset_1 = OpVariable %_ptr_Function_v2float Function %18
%ratio = OpVariable %_ptr_Function_v2float Function %18
%nc = OpVariable %_ptr_Function_v4float Function %31
%alpha = OpVariable %_ptr_Function_float Function %26
%mixed = OpVariable %_ptr_Function_v3float Function %37
%param = OpVariable %_ptr_Function_float Function %37
%frameSize = OpVariable %_ptr_Function_v2float Function %29
%offset_1 = OpVariable %_ptr_Function_v2float Function %29
%ratio = OpVariable %_ptr_Function_v2float Function %29
%nc = OpVariable %_ptr_Function_v4float Function %15
%alpha = OpVariable %_ptr_Function_float Function %37
%mixed = OpVariable %_ptr_Function_v3float Function %47
OpStore %color %99
%136 = OpLoad %v2float %tUV
%137 = OpExtInst %v2float %138 Fract %136
@ -314,8 +319,8 @@
%177 = OpLoad %v2float %tileID
%178 = OpAccessChain %_ptr_Uniform_v2float %x_20 %uint_4
%179 = OpLoad %v2float %178
%181 = OpLoad %15 %tileMapsSampler
%182 = OpLoad %12 %tileMapsTexture1
%181 = OpLoad %26 %tileMapsSampler
%182 = OpLoad %23 %tileMapsTexture1
%183 = OpSampledImage %66 %182 %181
%185 = OpFAdd %v2float %177 %184
%186 = OpFDiv %v2float %185 %179
@ -327,8 +332,8 @@
%188 = OpLoad %v2float %tileID
%189 = OpAccessChain %_ptr_Uniform_v2float %x_20 %uint_4
%190 = OpLoad %v2float %189
%192 = OpLoad %15 %tileMapsSampler
%193 = OpLoad %12 %tileMapsTexture0
%192 = OpLoad %26 %tileMapsSampler
%193 = OpLoad %23 %tileMapsTexture0
%194 = OpSampledImage %66 %193 %192
%195 = OpFAdd %v2float %188 %184
%196 = OpFDiv %v2float %195 %190
@ -342,8 +347,8 @@
%198 = OpLoad %float %frameID_1
%199 = OpAccessChain %_ptr_Uniform_float %x_20 %uint_7
%200 = OpLoad %float %199
%202 = OpLoad %15 %animationMapSampler
%203 = OpLoad %12 %animationMapTexture
%202 = OpLoad %26 %animationMapSampler
%203 = OpLoad %23 %animationMapTexture
%204 = OpSampledImage %66 %203 %202
%205 = OpFAdd %float %198 %float_0_5
%206 = OpFDiv %float %205 %200
@ -394,8 +399,8 @@
%240 = OpAccessChain %_ptr_Uniform_float %x_20 %uint_7
%241 = OpLoad %float %240
%242 = OpLoad %float %f
%244 = OpLoad %15 %animationMapSampler
%245 = OpLoad %12 %animationMapTexture
%244 = OpLoad %26 %animationMapSampler
%245 = OpLoad %23 %animationMapTexture
%246 = OpSampledImage %66 %245 %244
%247 = OpFAdd %float %239 %float_0_5
%248 = OpFDiv %float %247 %241
@ -467,8 +472,8 @@
%298 = OpLoad %v2float %tileUV
%299 = OpLoad %v2float %frameSize
%300 = OpLoad %v2float %offset_1
%302 = OpLoad %15 %spriteSheetSampler
%303 = OpLoad %12 %spriteSheetTexture
%302 = OpLoad %26 %spriteSheetSampler
%303 = OpLoad %23 %spriteSheetTexture
%304 = OpSampledImage %66 %303 %302
%305 = OpFMul %v2float %298 %299
%306 = OpFAdd %v2float %305 %300
@ -479,8 +484,8 @@
%307 = OpLoad %v2float %tileUV
%308 = OpLoad %v2float %frameSize
%309 = OpLoad %v2float %offset_1
%311 = OpLoad %15 %spriteSheetSampler
%312 = OpLoad %12 %spriteSheetTexture
%311 = OpLoad %26 %spriteSheetSampler
%312 = OpLoad %23 %spriteSheetTexture
%313 = OpSampledImage %66 %312 %311
%314 = OpFMul %v2float %307 %308
%315 = OpFAdd %v2float %314 %309
@ -543,30 +548,35 @@
OpStore %glFragColor %362
OpReturn
OpFunctionEnd
%tint_symbol_8 = OpFunction %void None %363
%tint_symbol_6 = OpFunctionParameter %main_out
%367 = OpLabel
%368 = OpCompositeExtract %v4float %tint_symbol_6 0
OpStore %tint_symbol_7 %368
OpReturn
%main_inner = OpFunction %main_out None %363
%tUV_param = OpFunctionParameter %v2float
%tileID_1_param = OpFunctionParameter %v2float
%levelUnits_param = OpFunctionParameter %v2float
%stageUnits_1_param = OpFunctionParameter %v2float
%vPosition_param = OpFunctionParameter %v3float
%vUV_param = OpFunctionParameter %v2float
%372 = OpLabel
OpStore %tUV %tUV_param
OpStore %tileID_1 %tileID_1_param
OpStore %levelUnits %levelUnits_param
OpStore %stageUnits_1 %stageUnits_1_param
OpStore %vPosition %vPosition_param
OpStore %vUV %vUV_param
%373 = OpFunctionCall %void %main_1
%374 = OpLoad %v4float %glFragColor
%375 = OpCompositeConstruct %main_out %374
OpReturnValue %375
OpFunctionEnd
%main = OpFunction %void None %106
%370 = OpLabel
%371 = OpLoad %v2float %tint_symbol
OpStore %tUV %371
%372 = OpLoad %v2float %tint_symbol_1
OpStore %tileID_1 %372
%373 = OpLoad %v2float %tint_symbol_2
OpStore %levelUnits %373
%374 = OpLoad %v2float %tint_symbol_3
OpStore %stageUnits_1 %374
%375 = OpLoad %v3float %tint_symbol_4
OpStore %vPosition %375
%376 = OpLoad %v2float %tint_symbol_5
OpStore %vUV %376
%377 = OpFunctionCall %void %main_1
%379 = OpLoad %v4float %glFragColor
%380 = OpCompositeConstruct %main_out %379
%378 = OpFunctionCall %void %tint_symbol_8 %380
%377 = OpLabel
%379 = OpLoad %v2float %tUV_param_1
%380 = OpLoad %v2float %tileID_1_param_1
%381 = OpLoad %v2float %levelUnits_param_1
%382 = OpLoad %v2float %stageUnits_1_param_1
%383 = OpLoad %v3float %vPosition_param_1
%384 = OpLoad %v2float %vUV_param_1
%378 = OpFunctionCall %main_out %main_inner %379 %380 %381 %382 %383 %384
%385 = OpCompositeExtract %v4float %378 0
OpStore %glFragColor_1_1 %385
OpReturn
OpFunctionEnd

View File

@ -1,13 +1,19 @@
; SPIR-V
; Version: 1.3
; Generator: Google Tint Compiler; 0
; Bound: 671
; Bound: 675
; Schema: 0
OpCapability Shader
%88 = OpExtInstImport "GLSL.std.450"
OpMemoryModel Logical GLSL450
OpEntryPoint Fragment %main "main" %tint_symbol %tint_symbol_1 %tint_symbol_2 %tint_symbol_3 %tint_symbol_4 %tint_symbol_6
OpEntryPoint Fragment %main "main" %vMainuv_param_1 %v_output1_param_1 %gl_FrontFacing_param_1 %v_uv_param_1 %v_output2_param_1 %glFragColor_1_1
OpExecutionMode %main OriginUpperLeft
OpName %vMainuv_param_1 "vMainuv_param_1"
OpName %v_output1_param_1 "v_output1_param_1"
OpName %gl_FrontFacing_param_1 "gl_FrontFacing_param_1"
OpName %v_uv_param_1 "v_uv_param_1"
OpName %v_output2_param_1 "v_output2_param_1"
OpName %glFragColor_1_1 "glFragColor_1_1"
OpName %u_Float "u_Float"
OpName %u_Color "u_Color"
OpName %TextureSamplerTexture "TextureSamplerTexture"
@ -42,12 +48,6 @@
OpName %glFragColor "glFragColor"
OpName %bumpSamplerSampler "bumpSamplerSampler"
OpName %bumpSamplerTexture "bumpSamplerTexture"
OpName %tint_symbol "tint_symbol"
OpName %tint_symbol_1 "tint_symbol_1"
OpName %tint_symbol_2 "tint_symbol_2"
OpName %tint_symbol_3 "tint_symbol_3"
OpName %tint_symbol_4 "tint_symbol_4"
OpName %tint_symbol_6 "tint_symbol_6"
OpName %cotangent_frame_vf3_vf3_vf2_vf2_ "cotangent_frame_vf3_vf3_vf2_vf2_"
OpName %normal_1 "normal_1"
OpName %p "p"
@ -150,9 +150,19 @@
OpName %output3 "output3"
OpName %main_out "main_out"
OpMemberName %main_out 0 "glFragColor_1"
OpName %tint_symbol_7 "tint_symbol_7"
OpName %tint_symbol_5 "tint_symbol_5"
OpName %main_inner "main_inner"
OpName %vMainuv_param "vMainuv_param"
OpName %v_output1_param "v_output1_param"
OpName %gl_FrontFacing_param "gl_FrontFacing_param"
OpName %v_uv_param "v_uv_param"
OpName %v_output2_param "v_output2_param"
OpName %main "main"
OpDecorate %vMainuv_param_1 Location 1
OpDecorate %v_output1_param_1 Location 0
OpDecorate %gl_FrontFacing_param_1 BuiltIn FrontFacing
OpDecorate %v_uv_param_1 Location 3
OpDecorate %v_output2_param_1 Location 2
OpDecorate %glFragColor_1_1 Location 0
OpDecorate %TextureSamplerTexture DescriptorSet 2
OpDecorate %TextureSamplerTexture Binding 1
OpDecorate %TextureSamplerSampler DescriptorSet 2
@ -193,66 +203,60 @@
OpDecorate %bumpSamplerSampler Binding 4
OpDecorate %bumpSamplerTexture DescriptorSet 2
OpDecorate %bumpSamplerTexture Binding 5
OpDecorate %tint_symbol Location 1
OpDecorate %tint_symbol_1 Location 0
OpDecorate %tint_symbol_2 BuiltIn FrontFacing
OpDecorate %tint_symbol_3 Location 3
OpDecorate %tint_symbol_4 Location 2
OpDecorate %tint_symbol_6 Location 0
OpMemberDecorate %lightingInfo 0 Offset 0
OpMemberDecorate %lightingInfo 1 Offset 16
OpMemberDecorate %main_out 0 Offset 0
%float = OpTypeFloat 32
%v2float = OpTypeVector %float 2
%_ptr_Input_v2float = OpTypePointer Input %v2float
%vMainuv_param_1 = OpVariable %_ptr_Input_v2float Input
%v4float = OpTypeVector %float 4
%_ptr_Input_v4float = OpTypePointer Input %v4float
%v_output1_param_1 = OpVariable %_ptr_Input_v4float Input
%bool = OpTypeBool
%_ptr_Input_bool = OpTypePointer Input %bool
%gl_FrontFacing_param_1 = OpVariable %_ptr_Input_bool Input
%v_uv_param_1 = OpVariable %_ptr_Input_v2float Input
%v_output2_param_1 = OpVariable %_ptr_Input_v4float Input
%_ptr_Output_v4float = OpTypePointer Output %v4float
%15 = OpConstantNull %v4float
%glFragColor_1_1 = OpVariable %_ptr_Output_v4float Output %15
%_ptr_Private_float = OpTypePointer Private %float
%4 = OpConstantNull %float
%u_Float = OpVariable %_ptr_Private_float Private %4
%18 = OpConstantNull %float
%u_Float = OpVariable %_ptr_Private_float Private %18
%v3float = OpTypeVector %float 3
%_ptr_Private_v3float = OpTypePointer Private %v3float
%8 = OpConstantNull %v3float
%u_Color = OpVariable %_ptr_Private_v3float Private %8
%11 = OpTypeImage %float 2D 0 0 0 1 Unknown
%_ptr_UniformConstant_11 = OpTypePointer UniformConstant %11
%TextureSamplerTexture = OpVariable %_ptr_UniformConstant_11 UniformConstant
%14 = OpTypeSampler
%_ptr_UniformConstant_14 = OpTypePointer UniformConstant %14
%TextureSamplerSampler = OpVariable %_ptr_UniformConstant_14 UniformConstant
%v2float = OpTypeVector %float 2
%22 = OpConstantNull %v3float
%u_Color = OpVariable %_ptr_Private_v3float Private %22
%25 = OpTypeImage %float 2D 0 0 0 1 Unknown
%_ptr_UniformConstant_25 = OpTypePointer UniformConstant %25
%TextureSamplerTexture = OpVariable %_ptr_UniformConstant_25 UniformConstant
%28 = OpTypeSampler
%_ptr_UniformConstant_28 = OpTypePointer UniformConstant %28
%TextureSamplerSampler = OpVariable %_ptr_UniformConstant_28 UniformConstant
%_ptr_Private_v2float = OpTypePointer Private %v2float
%18 = OpConstantNull %v2float
%vMainuv = OpVariable %_ptr_Private_v2float Private %18
%v4float = OpTypeVector %float 4
%31 = OpConstantNull %v2float
%vMainuv = OpVariable %_ptr_Private_v2float Private %31
%mat4v4float = OpTypeMatrix %v4float 4
%uint = OpTypeInt 32 0
%LeftOver = OpTypeStruct %mat4v4float %mat4v4float %float %uint %v3float %float %float %uint %v2float
%_ptr_Uniform_LeftOver = OpTypePointer Uniform %LeftOver
%x_269 = OpVariable %_ptr_Uniform_LeftOver Uniform
%_ptr_Private_v4float = OpTypePointer Private %v4float
%27 = OpConstantNull %v4float
%v_output1 = OpVariable %_ptr_Private_v4float Private %27
%bool = OpTypeBool
%v_output1 = OpVariable %_ptr_Private_v4float Private %15
%_ptr_Private_bool = OpTypePointer Private %bool
%31 = OpConstantNull %bool
%gl_FrontFacing = OpVariable %_ptr_Private_bool Private %31
%v_uv = OpVariable %_ptr_Private_v2float Private %18
%v_output2 = OpVariable %_ptr_Private_v4float Private %27
%TextureSampler1Texture = OpVariable %_ptr_UniformConstant_11 UniformConstant
%TextureSampler1Sampler = OpVariable %_ptr_UniformConstant_14 UniformConstant
%41 = OpConstantNull %bool
%gl_FrontFacing = OpVariable %_ptr_Private_bool Private %41
%v_uv = OpVariable %_ptr_Private_v2float Private %31
%v_output2 = OpVariable %_ptr_Private_v4float Private %15
%TextureSampler1Texture = OpVariable %_ptr_UniformConstant_25 UniformConstant
%TextureSampler1Sampler = OpVariable %_ptr_UniformConstant_28 UniformConstant
%Light0 = OpTypeStruct %v4float %v4float %v4float %v3float %uint %v4float %v2float
%_ptr_Uniform_Light0 = OpTypePointer Uniform %Light0
%light0 = OpVariable %_ptr_Uniform_Light0 Uniform
%glFragColor = OpVariable %_ptr_Private_v4float Private %27
%bumpSamplerSampler = OpVariable %_ptr_UniformConstant_14 UniformConstant
%bumpSamplerTexture = OpVariable %_ptr_UniformConstant_11 UniformConstant
%_ptr_Input_v2float = OpTypePointer Input %v2float
%tint_symbol = OpVariable %_ptr_Input_v2float Input
%_ptr_Input_v4float = OpTypePointer Input %v4float
%tint_symbol_1 = OpVariable %_ptr_Input_v4float Input
%_ptr_Input_bool = OpTypePointer Input %bool
%tint_symbol_2 = OpVariable %_ptr_Input_bool Input
%tint_symbol_3 = OpVariable %_ptr_Input_v2float Input
%tint_symbol_4 = OpVariable %_ptr_Input_v4float Input
%_ptr_Output_v4float = OpTypePointer Output %v4float
%tint_symbol_6 = OpVariable %_ptr_Output_v4float Output %27
%glFragColor = OpVariable %_ptr_Private_v4float Private %15
%bumpSamplerSampler = OpVariable %_ptr_UniformConstant_28 UniformConstant
%bumpSamplerTexture = OpVariable %_ptr_UniformConstant_25 UniformConstant
%mat3v3float = OpTypeMatrix %v3float 3
%_ptr_Function_v3float = OpTypePointer Function %v3float
%_ptr_Function_v2float = OpTypePointer Function %v2float
@ -285,7 +289,7 @@
%342 = OpConstantNull %int
%float_100 = OpConstant %float 100
%371 = OpConstantComposite %v3float %float_0_5 %float_0_5 %float_0_5
%376 = OpTypeSampledImage %11
%376 = OpTypeSampledImage %25
%uint_6 = OpConstant %uint 6
%_ptr_Uniform_float = OpTypePointer Uniform %float
%uint_4 = OpConstant %uint 4
@ -302,22 +306,22 @@
%_ptr_Uniform_v4float = OpTypePointer Uniform %v4float
%uint_3 = OpConstant %uint 3
%main_out = OpTypeStruct %v4float
%654 = OpTypeFunction %void %main_out
%654 = OpTypeFunction %main_out %v2float %v4float %bool %v2float %v4float
%cotangent_frame_vf3_vf3_vf2_vf2_ = OpFunction %mat3v3float None %52
%normal_1 = OpFunctionParameter %_ptr_Function_v3float
%p = OpFunctionParameter %_ptr_Function_v3float
%uv = OpFunctionParameter %_ptr_Function_v2float
%tangentSpaceParams = OpFunctionParameter %_ptr_Function_v2float
%61 = OpLabel
%dp1 = OpVariable %_ptr_Function_v3float Function %8
%dp2 = OpVariable %_ptr_Function_v3float Function %8
%duv1 = OpVariable %_ptr_Function_v2float Function %18
%duv2 = OpVariable %_ptr_Function_v2float Function %18
%dp2perp = OpVariable %_ptr_Function_v3float Function %8
%dp1perp = OpVariable %_ptr_Function_v3float Function %8
%tangent = OpVariable %_ptr_Function_v3float Function %8
%bitangent = OpVariable %_ptr_Function_v3float Function %8
%invmax = OpVariable %_ptr_Function_float Function %4
%dp1 = OpVariable %_ptr_Function_v3float Function %22
%dp2 = OpVariable %_ptr_Function_v3float Function %22
%duv1 = OpVariable %_ptr_Function_v2float Function %31
%duv2 = OpVariable %_ptr_Function_v2float Function %31
%dp2perp = OpVariable %_ptr_Function_v3float Function %22
%dp1perp = OpVariable %_ptr_Function_v3float Function %22
%tangent = OpVariable %_ptr_Function_v3float Function %22
%bitangent = OpVariable %_ptr_Function_v3float Function %22
%invmax = OpVariable %_ptr_Function_float Function %18
%73 = OpLoad %v3float %p
%74 = OpDPdx %v3float %73
OpStore %dp1 %74
@ -402,9 +406,9 @@
%transposeMat3_mf33_ = OpFunction %mat3v3float None %152
%inMatrix = OpFunctionParameter %_ptr_Function_mat3v3float
%156 = OpLabel
%i0 = OpVariable %_ptr_Function_v3float Function %8
%i1 = OpVariable %_ptr_Function_v3float Function %8
%i2 = OpVariable %_ptr_Function_v3float Function %8
%i0 = OpVariable %_ptr_Function_v3float Function %22
%i1 = OpVariable %_ptr_Function_v3float Function %22
%i2 = OpVariable %_ptr_Function_v3float Function %22
%outMatrix = OpVariable %_ptr_Function_mat3v3float Function %161
%165 = OpAccessChain %_ptr_Function_v3float %inMatrix %int_0
%166 = OpLoad %v3float %165
@ -470,8 +474,8 @@
%scale_1 = OpFunctionParameter %_ptr_Function_float
%227 = OpLabel
%param = OpVariable %_ptr_Function_mat3v3float Function %161
%param_1 = OpVariable %_ptr_Function_v3float Function %8
%param_2 = OpVariable %_ptr_Function_float Function %4
%param_1 = OpVariable %_ptr_Function_v3float Function %22
%param_2 = OpVariable %_ptr_Function_float Function %18
%232 = OpLoad %v3float %textureSample
%234 = OpLoad %mat3v3float %cotangentFrame_1
OpStore %param %234
@ -492,10 +496,10 @@
%groundColor = OpFunctionParameter %_ptr_Function_v3float
%glossiness = OpFunctionParameter %_ptr_Function_float
%257 = OpLabel
%ndl = OpVariable %_ptr_Function_float Function %4
%ndl = OpVariable %_ptr_Function_float Function %18
%result = OpVariable %_ptr_Function_lightingInfo Function %261
%angleW = OpVariable %_ptr_Function_v3float Function %8
%specComp = OpVariable %_ptr_Function_float Function %4
%angleW = OpVariable %_ptr_Function_v3float Function %22
%specComp = OpVariable %_ptr_Function_float Function %18
%265 = OpLoad %v3float %vNormal
%267 = OpLoad %v4float %lightData
%269 = OpCompositeExtract %float %267 0
@ -542,64 +546,64 @@
OpFunctionEnd
%main_1 = OpFunction %void None %311
%314 = OpLabel
%tempTextureRead = OpVariable %_ptr_Function_v4float Function %27
%rgb = OpVariable %_ptr_Function_v3float Function %8
%output5 = OpVariable %_ptr_Function_v3float Function %8
%output4 = OpVariable %_ptr_Function_v4float Function %27
%uvOffset = OpVariable %_ptr_Function_v2float Function %18
%normalScale = OpVariable %_ptr_Function_float Function %4
%TBNUV = OpVariable %_ptr_Function_v2float Function %18
%x_299 = OpVariable %_ptr_Function_v2float Function %18
%tempTextureRead = OpVariable %_ptr_Function_v4float Function %15
%rgb = OpVariable %_ptr_Function_v3float Function %22
%output5 = OpVariable %_ptr_Function_v3float Function %22
%output4 = OpVariable %_ptr_Function_v4float Function %15
%uvOffset = OpVariable %_ptr_Function_v2float Function %31
%normalScale = OpVariable %_ptr_Function_float Function %18
%TBNUV = OpVariable %_ptr_Function_v2float Function %31
%x_299 = OpVariable %_ptr_Function_v2float Function %31
%TBN = OpVariable %_ptr_Function_mat3v3float Function %161
%param_3 = OpVariable %_ptr_Function_v3float Function %8
%param_4 = OpVariable %_ptr_Function_v3float Function %8
%param_5 = OpVariable %_ptr_Function_v2float Function %18
%param_6 = OpVariable %_ptr_Function_v2float Function %18
%param_3 = OpVariable %_ptr_Function_v3float Function %22
%param_4 = OpVariable %_ptr_Function_v3float Function %22
%param_5 = OpVariable %_ptr_Function_v2float Function %31
%param_6 = OpVariable %_ptr_Function_v2float Function %31
%invTBN = OpVariable %_ptr_Function_mat3v3float Function %161
%param_7 = OpVariable %_ptr_Function_mat3v3float Function %161
%parallaxLimit = OpVariable %_ptr_Function_float Function %4
%vOffsetDir = OpVariable %_ptr_Function_v2float Function %18
%vMaxOffset = OpVariable %_ptr_Function_v2float Function %18
%numSamples = OpVariable %_ptr_Function_float Function %4
%stepSize = OpVariable %_ptr_Function_float Function %4
%currRayHeight = OpVariable %_ptr_Function_float Function %4
%vCurrOffset = OpVariable %_ptr_Function_v2float Function %18
%vLastOffset = OpVariable %_ptr_Function_v2float Function %18
%lastSampledHeight = OpVariable %_ptr_Function_float Function %4
%currSampledHeight = OpVariable %_ptr_Function_float Function %4
%parallaxLimit = OpVariable %_ptr_Function_float Function %18
%vOffsetDir = OpVariable %_ptr_Function_v2float Function %31
%vMaxOffset = OpVariable %_ptr_Function_v2float Function %31
%numSamples = OpVariable %_ptr_Function_float Function %18
%stepSize = OpVariable %_ptr_Function_float Function %18
%currRayHeight = OpVariable %_ptr_Function_float Function %18
%vCurrOffset = OpVariable %_ptr_Function_v2float Function %31
%vLastOffset = OpVariable %_ptr_Function_v2float Function %31
%lastSampledHeight = OpVariable %_ptr_Function_float Function %18
%currSampledHeight = OpVariable %_ptr_Function_float Function %18
%i = OpVariable %_ptr_Function_int Function %342
%delta1 = OpVariable %_ptr_Function_float Function %4
%delta2 = OpVariable %_ptr_Function_float Function %4
%ratio = OpVariable %_ptr_Function_float Function %4
%parallaxOcclusion_0 = OpVariable %_ptr_Function_v2float Function %18
%delta1 = OpVariable %_ptr_Function_float Function %18
%delta2 = OpVariable %_ptr_Function_float Function %18
%ratio = OpVariable %_ptr_Function_float Function %18
%parallaxOcclusion_0 = OpVariable %_ptr_Function_v2float Function %31
%param_8 = OpVariable %_ptr_Function_mat3v3float Function %161
%param_9 = OpVariable %_ptr_Function_v3float Function %8
%param_10 = OpVariable %_ptr_Function_float Function %4
%output6 = OpVariable %_ptr_Function_v2float Function %18
%tempTextureRead1 = OpVariable %_ptr_Function_v4float Function %27
%rgb1 = OpVariable %_ptr_Function_v3float Function %8
%viewDirectionW_1 = OpVariable %_ptr_Function_v3float Function %8
%shadow = OpVariable %_ptr_Function_float Function %4
%glossiness_1 = OpVariable %_ptr_Function_float Function %4
%diffuseBase = OpVariable %_ptr_Function_v3float Function %8
%specularBase = OpVariable %_ptr_Function_v3float Function %8
%normalW = OpVariable %_ptr_Function_v3float Function %8
%param_9 = OpVariable %_ptr_Function_v3float Function %22
%param_10 = OpVariable %_ptr_Function_float Function %18
%output6 = OpVariable %_ptr_Function_v2float Function %31
%tempTextureRead1 = OpVariable %_ptr_Function_v4float Function %15
%rgb1 = OpVariable %_ptr_Function_v3float Function %22
%viewDirectionW_1 = OpVariable %_ptr_Function_v3float Function %22
%shadow = OpVariable %_ptr_Function_float Function %18
%glossiness_1 = OpVariable %_ptr_Function_float Function %18
%diffuseBase = OpVariable %_ptr_Function_v3float Function %22
%specularBase = OpVariable %_ptr_Function_v3float Function %22
%normalW = OpVariable %_ptr_Function_v3float Function %22
%info = OpVariable %_ptr_Function_lightingInfo Function %261
%param_11 = OpVariable %_ptr_Function_v3float Function %8
%param_12 = OpVariable %_ptr_Function_v3float Function %8
%param_13 = OpVariable %_ptr_Function_v4float Function %27
%param_14 = OpVariable %_ptr_Function_v3float Function %8
%param_15 = OpVariable %_ptr_Function_v3float Function %8
%param_16 = OpVariable %_ptr_Function_v3float Function %8
%param_17 = OpVariable %_ptr_Function_float Function %4
%diffuseOutput = OpVariable %_ptr_Function_v3float Function %8
%specularOutput = OpVariable %_ptr_Function_v3float Function %8
%output3 = OpVariable %_ptr_Function_v3float Function %8
%param_11 = OpVariable %_ptr_Function_v3float Function %22
%param_12 = OpVariable %_ptr_Function_v3float Function %22
%param_13 = OpVariable %_ptr_Function_v4float Function %15
%param_14 = OpVariable %_ptr_Function_v3float Function %22
%param_15 = OpVariable %_ptr_Function_v3float Function %22
%param_16 = OpVariable %_ptr_Function_v3float Function %22
%param_17 = OpVariable %_ptr_Function_float Function %18
%diffuseOutput = OpVariable %_ptr_Function_v3float Function %22
%specularOutput = OpVariable %_ptr_Function_v3float Function %22
%output3 = OpVariable %_ptr_Function_v3float Function %22
OpStore %u_Float %float_100
OpStore %u_Color %371
%372 = OpLoad %v2float %vMainuv
%374 = OpLoad %14 %TextureSamplerSampler
%375 = OpLoad %11 %TextureSamplerTexture
%374 = OpLoad %28 %TextureSamplerSampler
%375 = OpLoad %25 %TextureSamplerTexture
%377 = OpSampledImage %376 %375 %374
%373 = OpImageSampleImplicitLod %v4float %377 %372
OpStore %tempTextureRead %373
@ -741,8 +745,8 @@
%492 = OpLabel
%495 = OpLoad %v2float %v_uv
%496 = OpLoad %v2float %vCurrOffset
%498 = OpLoad %14 %TextureSamplerSampler
%499 = OpLoad %11 %TextureSamplerTexture
%498 = OpLoad %28 %TextureSamplerSampler
%499 = OpLoad %25 %TextureSamplerTexture
%500 = OpSampledImage %376 %499 %498
%501 = OpFAdd %v2float %495 %496
%497 = OpImageSampleImplicitLod %v4float %500 %501
@ -810,8 +814,8 @@
OpStore %uvOffset %543
%544 = OpLoad %v2float %v_uv
%545 = OpLoad %v2float %uvOffset
%547 = OpLoad %14 %TextureSamplerSampler
%548 = OpLoad %11 %TextureSamplerTexture
%547 = OpLoad %28 %TextureSamplerSampler
%548 = OpLoad %25 %TextureSamplerTexture
%549 = OpSampledImage %376 %548 %547
%550 = OpFAdd %v2float %544 %545
%546 = OpImageSampleImplicitLod %v4float %549 %550
@ -839,8 +843,8 @@
%571 = OpFAdd %v2float %569 %570
OpStore %output6 %571
%572 = OpLoad %v2float %output6
%574 = OpLoad %14 %TextureSampler1Sampler
%575 = OpLoad %11 %TextureSampler1Texture
%574 = OpLoad %28 %TextureSampler1Sampler
%575 = OpLoad %25 %TextureSampler1Texture
%576 = OpSampledImage %376 %575 %574
%573 = OpImageSampleImplicitLod %v4float %576 %572
OpStore %tempTextureRead1 %573
@ -935,28 +939,32 @@
OpStore %glFragColor %653
OpReturn
OpFunctionEnd
%tint_symbol_7 = OpFunction %void None %654
%tint_symbol_5 = OpFunctionParameter %main_out
%658 = OpLabel
%659 = OpCompositeExtract %v4float %tint_symbol_5 0
OpStore %tint_symbol_6 %659
OpReturn
%main_inner = OpFunction %main_out None %654
%vMainuv_param = OpFunctionParameter %v2float
%v_output1_param = OpFunctionParameter %v4float
%gl_FrontFacing_param = OpFunctionParameter %bool
%v_uv_param = OpFunctionParameter %v2float
%v_output2_param = OpFunctionParameter %v4float
%662 = OpLabel
OpStore %vMainuv %vMainuv_param
OpStore %v_output1 %v_output1_param
OpStore %gl_FrontFacing %gl_FrontFacing_param
OpStore %v_uv %v_uv_param
OpStore %v_output2 %v_output2_param
%663 = OpFunctionCall %void %main_1
%664 = OpLoad %v4float %glFragColor
%665 = OpCompositeConstruct %main_out %664
OpReturnValue %665
OpFunctionEnd
%main = OpFunction %void None %311
%661 = OpLabel
%662 = OpLoad %v2float %tint_symbol
OpStore %vMainuv %662
%663 = OpLoad %v4float %tint_symbol_1
OpStore %v_output1 %663
%664 = OpLoad %bool %tint_symbol_2
OpStore %gl_FrontFacing %664
%665 = OpLoad %v2float %tint_symbol_3
OpStore %v_uv %665
%666 = OpLoad %v4float %tint_symbol_4
OpStore %v_output2 %666
%667 = OpFunctionCall %void %main_1
%669 = OpLoad %v4float %glFragColor
%670 = OpCompositeConstruct %main_out %669
%668 = OpFunctionCall %void %tint_symbol_7 %670
%667 = OpLabel
%669 = OpLoad %v2float %vMainuv_param_1
%670 = OpLoad %v4float %v_output1_param_1
%671 = OpLoad %bool %gl_FrontFacing_param_1
%672 = OpLoad %v2float %v_uv_param_1
%673 = OpLoad %v4float %v_output2_param_1
%668 = OpFunctionCall %main_out %main_inner %669 %670 %671 %672 %673
%674 = OpCompositeExtract %v4float %668 0
OpStore %glFragColor_1_1 %674
OpReturn
OpFunctionEnd

View File

@ -1,13 +1,14 @@
; SPIR-V
; Version: 1.3
; Generator: Google Tint Compiler; 0
; Bound: 92
; Bound: 97
; Schema: 0
OpCapability Shader
%46 = OpExtInstImport "GLSL.std.450"
OpMemoryModel Logical GLSL450
OpEntryPoint GLCompute %main "main" %tint_symbol
OpEntryPoint GLCompute %main "main" %gl_GlobalInvocationID_param_1
OpExecutionMode %main LocalSize 128 1 1
OpName %gl_GlobalInvocationID_param_1 "gl_GlobalInvocationID_param_1"
OpName %ssbOut "ssbOut"
OpMemberName %ssbOut 0 "result"
OpName %x_16 "x_16"
@ -22,7 +23,6 @@
OpMemberName %Uniforms 3 "outShapeStrides"
OpMemberName %Uniforms 4 "size"
OpName %x_24 "x_24"
OpName %tint_symbol "tint_symbol"
OpName %getAAtOutCoords_ "getAAtOutCoords_"
OpName %unaryOperation_f1_ "unaryOperation_f1_"
OpName %a "a"
@ -35,7 +35,10 @@
OpName %param "param"
OpName %param_1 "param_1"
OpName %param_2 "param_2"
OpName %main_inner "main_inner"
OpName %gl_GlobalInvocationID_param "gl_GlobalInvocationID_param"
OpName %main "main"
OpDecorate %gl_GlobalInvocationID_param_1 BuiltIn GlobalInvocationId
OpDecorate %ssbOut Block
OpMemberDecorate %ssbOut 0 Offset 0
OpDecorate %_runtimearr_float ArrayStride 4
@ -55,7 +58,10 @@
OpDecorate %x_24 NonWritable
OpDecorate %x_24 DescriptorSet 0
OpDecorate %x_24 Binding 2
OpDecorate %tint_symbol BuiltIn GlobalInvocationId
%uint = OpTypeInt 32 0
%v3uint = OpTypeVector %uint 3
%_ptr_Input_v3uint = OpTypePointer Input %v3uint
%gl_GlobalInvocationID_param_1 = OpVariable %_ptr_Input_v3uint Input
%float = OpTypeFloat 32
%_runtimearr_float = OpTypeRuntimeArray %float
%ssbOut = OpTypeStruct %_runtimearr_float
@ -64,17 +70,13 @@
%ssbA = OpTypeStruct %_runtimearr_float
%_ptr_StorageBuffer_ssbA = OpTypePointer StorageBuffer %ssbA
%x_20 = OpVariable %_ptr_StorageBuffer_ssbA StorageBuffer
%uint = OpTypeInt 32 0
%v3uint = OpTypeVector %uint 3
%_ptr_Private_v3uint = OpTypePointer Private %v3uint
%13 = OpConstantNull %v3uint
%gl_GlobalInvocationID = OpVariable %_ptr_Private_v3uint Private %13
%15 = OpConstantNull %v3uint
%gl_GlobalInvocationID = OpVariable %_ptr_Private_v3uint Private %15
%int = OpTypeInt 32 1
%Uniforms = OpTypeStruct %float %int %int %int %int
%_ptr_Uniform_Uniforms = OpTypePointer Uniform %Uniforms
%x_24 = OpVariable %_ptr_Uniform_Uniforms Uniform
%_ptr_Input_v3uint = OpTypePointer Input %v3uint
%tint_symbol = OpVariable %_ptr_Input_v3uint Input
%20 = OpTypeFunction %float
%uint_0 = OpConstant %uint 0
%_ptr_Private_uint = OpTypePointer Private %uint
@ -92,6 +94,7 @@
%65 = OpConstantNull %float
%uint_4 = OpConstant %uint 4
%_ptr_Uniform_int = OpTypePointer Uniform %int
%88 = OpTypeFunction %void %v3uint
%getAAtOutCoords_ = OpFunction %float None %20
%22 = OpLabel
%25 = OpAccessChain %_ptr_Private_uint %gl_GlobalInvocationID %uint_0
@ -155,10 +158,16 @@
%78 = OpLabel
OpReturn
OpFunctionEnd
%main = OpFunction %void None %59
%89 = OpLabel
%90 = OpLoad %v3uint %tint_symbol
OpStore %gl_GlobalInvocationID %90
%91 = OpFunctionCall %void %main_1
%main_inner = OpFunction %void None %88
%gl_GlobalInvocationID_param = OpFunctionParameter %v3uint
%91 = OpLabel
OpStore %gl_GlobalInvocationID %gl_GlobalInvocationID_param
%92 = OpFunctionCall %void %main_1
OpReturn
OpFunctionEnd
%main = OpFunction %void None %59
%94 = OpLabel
%96 = OpLoad %v3uint %gl_GlobalInvocationID_param_1
%95 = OpFunctionCall %void %main_inner %96
OpReturn
OpFunctionEnd

View File

@ -1,13 +1,14 @@
; SPIR-V
; Version: 1.3
; Generator: Google Tint Compiler; 0
; Bound: 98
; Bound: 103
; Schema: 0
OpCapability Shader
%43 = OpExtInstImport "GLSL.std.450"
OpMemoryModel Logical GLSL450
OpEntryPoint GLCompute %main "main" %tint_symbol
OpEntryPoint GLCompute %main "main" %gl_GlobalInvocationID_param_1
OpExecutionMode %main LocalSize 1 1 1
OpName %gl_GlobalInvocationID_param_1 "gl_GlobalInvocationID_param_1"
OpName %gl_GlobalInvocationID "gl_GlobalInvocationID"
OpName %ResultMatrix "ResultMatrix"
OpMemberName %ResultMatrix 0 "numbers"
@ -23,7 +24,6 @@
OpMemberName %Uniforms 1 "sizeA"
OpMemberName %Uniforms 2 "sizeB"
OpName %x_46 "x_46"
OpName %tint_symbol "tint_symbol"
OpName %binaryOperation_f1_f1_ "binaryOperation_f1_f1_"
OpName %a "a"
OpName %b "b"
@ -33,7 +33,10 @@
OpName %a_1 "a_1"
OpName %param "param"
OpName %param_1 "param_1"
OpName %main_inner "main_inner"
OpName %gl_GlobalInvocationID_param "gl_GlobalInvocationID_param"
OpName %main "main"
OpDecorate %gl_GlobalInvocationID_param_1 BuiltIn GlobalInvocationId
OpDecorate %ResultMatrix Block
OpMemberDecorate %ResultMatrix 0 Offset 0
OpDecorate %_runtimearr_float ArrayStride 4
@ -56,12 +59,13 @@
OpDecorate %x_46 NonWritable
OpDecorate %x_46 DescriptorSet 0
OpDecorate %x_46 Binding 3
OpDecorate %tint_symbol BuiltIn GlobalInvocationId
%uint = OpTypeInt 32 0
%v3uint = OpTypeVector %uint 3
%_ptr_Input_v3uint = OpTypePointer Input %v3uint
%gl_GlobalInvocationID_param_1 = OpVariable %_ptr_Input_v3uint Input
%_ptr_Private_v3uint = OpTypePointer Private %v3uint
%5 = OpConstantNull %v3uint
%gl_GlobalInvocationID = OpVariable %_ptr_Private_v3uint Private %5
%7 = OpConstantNull %v3uint
%gl_GlobalInvocationID = OpVariable %_ptr_Private_v3uint Private %7
%float = OpTypeFloat 32
%_runtimearr_float = OpTypeRuntimeArray %float
%ResultMatrix = OpTypeStruct %_runtimearr_float
@ -77,8 +81,6 @@
%Uniforms = OpTypeStruct %float %int %int
%_ptr_Uniform_Uniforms = OpTypePointer Uniform %Uniforms
%x_46 = OpVariable %_ptr_Uniform_Uniforms Uniform
%_ptr_Input_v3uint = OpTypePointer Input %v3uint
%tint_symbol = OpVariable %_ptr_Input_v3uint Input
%_ptr_Function_float = OpTypePointer Function %float
%23 = OpTypeFunction %float %_ptr_Function_float %_ptr_Function_float
%30 = OpConstantNull %float
@ -96,6 +98,7 @@
%float_n4 = OpConstant %float -4
%float_n3 = OpConstant %float -3
%_ptr_StorageBuffer_float = OpTypePointer StorageBuffer %float
%94 = OpTypeFunction %void %v3uint
%binaryOperation_f1_f1_ = OpFunction %float None %23
%a = OpFunctionParameter %_ptr_Function_float
%b = OpFunctionParameter %_ptr_Function_float
@ -158,10 +161,16 @@
OpStore %93 %89
OpReturn
OpFunctionEnd
%main = OpFunction %void None %70
%95 = OpLabel
%96 = OpLoad %v3uint %tint_symbol
OpStore %gl_GlobalInvocationID %96
%97 = OpFunctionCall %void %main_1
%main_inner = OpFunction %void None %94
%gl_GlobalInvocationID_param = OpFunctionParameter %v3uint
%97 = OpLabel
OpStore %gl_GlobalInvocationID %gl_GlobalInvocationID_param
%98 = OpFunctionCall %void %main_1
OpReturn
OpFunctionEnd
%main = OpFunction %void None %70
%100 = OpLabel
%102 = OpLoad %v3uint %gl_GlobalInvocationID_param_1
%101 = OpFunctionCall %void %main_inner %102
OpReturn
OpFunctionEnd

View File

@ -5,81 +5,81 @@
; Schema: 0
OpCapability Shader
OpMemoryModel Logical GLSL450
OpEntryPoint Fragment %main "main" %tint_symbol %tint_symbol_3
OpEntryPoint Fragment %main "main" %vUv_1 %color_1
OpExecutionMode %main OriginUpperLeft
OpName %vUv_1 "vUv_1"
OpName %color_1 "color_1"
OpName %depthMap "depthMap"
OpName %texSampler "texSampler"
OpName %tint_symbol "tint_symbol"
OpName %tint_symbol_3 "tint_symbol_3"
OpName %FragmentOutput "FragmentOutput"
OpMemberName %FragmentOutput 0 "color"
OpName %tint_symbol_4 "tint_symbol_4"
OpName %tint_symbol_2 "tint_symbol_2"
OpName %main "main"
OpName %FragmentInput "FragmentInput"
OpMemberName %FragmentInput 0 "vUv"
OpName %main_inner "main_inner"
OpName %fIn "fIn"
OpName %fOut "fOut"
OpName %main "main"
OpDecorate %vUv_1 Location 2
OpDecorate %color_1 Location 0
OpDecorate %depthMap Binding 5
OpDecorate %depthMap DescriptorSet 1
OpDecorate %texSampler Binding 3
OpDecorate %texSampler DescriptorSet 1
OpDecorate %tint_symbol Location 2
OpDecorate %tint_symbol_3 Location 0
OpMemberDecorate %FragmentOutput 0 Offset 0
OpMemberDecorate %FragmentInput 0 Offset 0
%float = OpTypeFloat 32
%3 = OpTypeImage %float 2D 1 0 0 1 Unknown
%_ptr_UniformConstant_3 = OpTypePointer UniformConstant %3
%depthMap = OpVariable %_ptr_UniformConstant_3 UniformConstant
%7 = OpTypeSampler
%_ptr_UniformConstant_7 = OpTypePointer UniformConstant %7
%texSampler = OpVariable %_ptr_UniformConstant_7 UniformConstant
%v2float = OpTypeVector %float 2
%_ptr_Input_v2float = OpTypePointer Input %v2float
%tint_symbol = OpVariable %_ptr_Input_v2float Input
%vUv_1 = OpVariable %_ptr_Input_v2float Input
%v4float = OpTypeVector %float 4
%_ptr_Output_v4float = OpTypePointer Output %v4float
%14 = OpConstantNull %v4float
%tint_symbol_3 = OpVariable %_ptr_Output_v4float Output %14
%void = OpTypeVoid
%8 = OpConstantNull %v4float
%color_1 = OpVariable %_ptr_Output_v4float Output %8
%11 = OpTypeImage %float 2D 1 0 0 1 Unknown
%_ptr_UniformConstant_11 = OpTypePointer UniformConstant %11
%depthMap = OpVariable %_ptr_UniformConstant_11 UniformConstant
%14 = OpTypeSampler
%_ptr_UniformConstant_14 = OpTypePointer UniformConstant %14
%texSampler = OpVariable %_ptr_UniformConstant_14 UniformConstant
%FragmentOutput = OpTypeStruct %v4float
%15 = OpTypeFunction %void %FragmentOutput
%22 = OpTypeFunction %void
%FragmentInput = OpTypeStruct %v2float
%32 = OpTypeSampledImage %3
%15 = OpTypeFunction %FragmentOutput %FragmentInput
%25 = OpTypeSampledImage %11
%v3float = OpTypeVector %float 3
%_ptr_Function_FragmentOutput = OpTypePointer Function %FragmentOutput
%39 = OpConstantNull %FragmentOutput
%32 = OpConstantNull %FragmentOutput
%uint = OpTypeInt 32 0
%uint_0 = OpConstant %uint 0
%_ptr_Function_v4float = OpTypePointer Function %v4float
%float_1 = OpConstant %float 1
%tint_symbol_4 = OpFunction %void None %15
%tint_symbol_2 = OpFunctionParameter %FragmentOutput
%void = OpTypeVoid
%43 = OpTypeFunction %void
%main_inner = OpFunction %FragmentOutput None %15
%fIn = OpFunctionParameter %FragmentInput
%20 = OpLabel
%21 = OpCompositeExtract %v4float %tint_symbol_2 0
OpStore %tint_symbol_3 %21
OpReturn
OpFunctionEnd
%main = OpFunction %void None %22
%24 = OpLabel
%fOut = OpVariable %_ptr_Function_FragmentOutput Function %39
%26 = OpLoad %v2float %tint_symbol
%27 = OpCompositeConstruct %FragmentInput %26
%30 = OpLoad %7 %texSampler
%31 = OpLoad %3 %depthMap
%33 = OpSampledImage %32 %31 %30
%34 = OpCompositeExtract %v2float %27 0
%29 = OpImageSampleImplicitLod %v4float %33 %34
%28 = OpCompositeExtract %float %29 0
%36 = OpCompositeConstruct %v3float %28 %28 %28
%43 = OpAccessChain %_ptr_Function_v4float %fOut %uint_0
%44 = OpCompositeExtract %float %36 0
%45 = OpCompositeExtract %float %36 1
%46 = OpCompositeExtract %float %36 2
%48 = OpCompositeConstruct %v4float %44 %45 %46 %float_1
OpStore %43 %48
%50 = OpLoad %FragmentOutput %fOut
%49 = OpFunctionCall %void %tint_symbol_4 %50
%fOut = OpVariable %_ptr_Function_FragmentOutput Function %32
%23 = OpLoad %14 %texSampler
%24 = OpLoad %11 %depthMap
%26 = OpSampledImage %25 %24 %23
%27 = OpCompositeExtract %v2float %fIn 0
%22 = OpImageSampleImplicitLod %v4float %26 %27
%21 = OpCompositeExtract %float %22 0
%29 = OpCompositeConstruct %v3float %21 %21 %21
%36 = OpAccessChain %_ptr_Function_v4float %fOut %uint_0
%37 = OpCompositeExtract %float %29 0
%38 = OpCompositeExtract %float %29 1
%39 = OpCompositeExtract %float %29 2
%41 = OpCompositeConstruct %v4float %37 %38 %39 %float_1
OpStore %36 %41
%42 = OpLoad %FragmentOutput %fOut
OpReturnValue %42
OpFunctionEnd
%main = OpFunction %void None %43
%46 = OpLabel
%48 = OpLoad %v2float %vUv_1
%49 = OpCompositeConstruct %FragmentInput %48
%47 = OpFunctionCall %FragmentOutput %main_inner %49
%50 = OpCompositeExtract %v4float %47 0
OpStore %color_1 %50
OpReturn
OpFunctionEnd

View File

@ -1,37 +1,39 @@
; SPIR-V
; Version: 1.3
; Generator: Google Tint Compiler; 0
; Bound: 41
; Bound: 47
; Schema: 0
OpCapability Shader
%23 = OpExtInstImport "GLSL.std.450"
OpMemoryModel Logical GLSL450
OpEntryPoint GLCompute %main "main"
OpEntryPoint GLCompute %main "main" %idx_1
OpExecutionMode %main LocalSize 1 1 1
OpName %idx_1 "idx_1"
OpName %S "S"
OpMemberName %S 0 "v"
OpMemberName %S 1 "i"
OpName %io "io"
OpName %tint_symbol "tint_symbol"
OpName %Bad "Bad"
OpName %index "index"
OpName %rd "rd"
OpName %normal "normal"
OpName %main_inner "main_inner"
OpName %idx "idx"
OpName %main "main"
OpDecorate %idx_1 BuiltIn LocalInvocationIndex
OpDecorate %S Block
OpMemberDecorate %S 0 Offset 0
OpMemberDecorate %S 1 Offset 12
OpDecorate %io Binding 0
OpDecorate %io DescriptorSet 0
OpDecorate %tint_symbol BuiltIn LocalInvocationIndex
%uint = OpTypeInt 32 0
%_ptr_Input_uint = OpTypePointer Input %uint
%idx_1 = OpVariable %_ptr_Input_uint Input
%float = OpTypeFloat 32
%v3float = OpTypeVector %float 3
%uint = OpTypeInt 32 0
%S = OpTypeStruct %v3float %uint
%_ptr_StorageBuffer_S = OpTypePointer StorageBuffer %S
%io = OpVariable %_ptr_StorageBuffer_S StorageBuffer
%_ptr_Input_uint = OpTypePointer Input %uint
%tint_symbol = OpVariable %_ptr_Input_uint Input
%9 = OpTypeFunction %v3float %uint %v3float
%float_0 = OpConstant %float 0
%15 = OpConstantComposite %v3float %float_0 %float_0 %float_0
@ -39,11 +41,12 @@
%18 = OpConstantNull %v3float
%_ptr_Function_float = OpTypePointer Function %float
%void = OpTypeVoid
%27 = OpTypeFunction %void
%27 = OpTypeFunction %void %uint
%uint_0 = OpConstant %uint 0
%_ptr_StorageBuffer_v3float = OpTypePointer StorageBuffer %v3float
%uint_1 = OpConstant %uint 1
%_ptr_StorageBuffer_uint = OpTypePointer StorageBuffer %uint
%42 = OpTypeFunction %void
%Bad = OpFunction %v3float None %9
%index = OpFunctionParameter %uint
%rd = OpFunctionParameter %v3float
@ -59,14 +62,21 @@
%25 = OpExtInst %v3float %23 Normalize %26
OpReturnValue %25
OpFunctionEnd
%main = OpFunction %void None %27
%30 = OpLabel
%33 = OpAccessChain %_ptr_StorageBuffer_v3float %io %uint_0
%37 = OpAccessChain %_ptr_StorageBuffer_uint %io %uint_1
%38 = OpLoad %uint %37
%39 = OpAccessChain %_ptr_StorageBuffer_v3float %io %uint_0
%40 = OpLoad %v3float %39
%34 = OpFunctionCall %v3float %Bad %38 %40
OpStore %33 %34
%main_inner = OpFunction %void None %27
%idx = OpFunctionParameter %uint
%31 = OpLabel
%34 = OpAccessChain %_ptr_StorageBuffer_v3float %io %uint_0
%38 = OpAccessChain %_ptr_StorageBuffer_uint %io %uint_1
%39 = OpLoad %uint %38
%40 = OpAccessChain %_ptr_StorageBuffer_v3float %io %uint_0
%41 = OpLoad %v3float %40
%35 = OpFunctionCall %v3float %Bad %39 %41
OpStore %34 %35
OpReturn
OpFunctionEnd
%main = OpFunction %void None %42
%44 = OpLabel
%46 = OpLoad %uint %idx_1
%45 = OpFunctionCall %void %main_inner %46
OpReturn
OpFunctionEnd

View File

@ -1,53 +1,51 @@
; SPIR-V
; Version: 1.3
; Generator: Google Tint Compiler; 0
; Bound: 31
; Bound: 30
; Schema: 0
OpCapability Shader
OpMemoryModel Logical GLSL450
OpEntryPoint Fragment %frag_main "frag_main" %tint_symbol_1
OpEntryPoint Fragment %frag_main "frag_main" %value
OpExecutionMode %frag_main OriginUpperLeft
OpName %tint_symbol_1 "tint_symbol_1"
OpName %tint_symbol_2 "tint_symbol_2"
OpName %tint_symbol "tint_symbol"
OpName %frag_main "frag_main"
OpName %value "value"
OpName %frag_main_inner "frag_main_inner"
OpName %b "b"
OpName %v "v"
OpDecorate %tint_symbol_1 Location 0
OpName %frag_main "frag_main"
OpDecorate %value Location 0
%float = OpTypeFloat 32
%v4float = OpTypeVector %float 4
%_ptr_Output_v4float = OpTypePointer Output %v4float
%5 = OpConstantNull %v4float
%tint_symbol_1 = OpVariable %_ptr_Output_v4float Output %5
%void = OpTypeVoid
%6 = OpTypeFunction %void %v4float
%11 = OpTypeFunction %void
%value = OpVariable %_ptr_Output_v4float Output %5
%6 = OpTypeFunction %v4float
%float_0 = OpConstant %float 0
%_ptr_Function_float = OpTypePointer Function %float
%17 = OpConstantNull %float
%12 = OpConstantNull %float
%v3float = OpTypeVector %float 3
%_ptr_Function_v3float = OpTypePointer Function %v3float
%23 = OpConstantNull %v3float
%18 = OpConstantNull %v3float
%float_1 = OpConstant %float 1
%tint_symbol_2 = OpFunction %void None %6
%tint_symbol = OpFunctionParameter %v4float
%10 = OpLabel
OpStore %tint_symbol_1 %tint_symbol
OpReturn
OpFunctionEnd
%frag_main = OpFunction %void None %11
%13 = OpLabel
%b = OpVariable %_ptr_Function_float Function %17
%v = OpVariable %_ptr_Function_v3float Function %23
%void = OpTypeVoid
%25 = OpTypeFunction %void
%frag_main_inner = OpFunction %v4float None %6
%8 = OpLabel
%b = OpVariable %_ptr_Function_float Function %12
%v = OpVariable %_ptr_Function_v3float Function %18
OpStore %b %float_0
%19 = OpLoad %float %b
%20 = OpCompositeConstruct %v3float %19 %19 %19
OpStore %v %20
%25 = OpLoad %v3float %v
%26 = OpCompositeExtract %float %25 0
%27 = OpCompositeExtract %float %25 1
%28 = OpCompositeExtract %float %25 2
%30 = OpCompositeConstruct %v4float %26 %27 %28 %float_1
%24 = OpFunctionCall %void %tint_symbol_2 %30
%14 = OpLoad %float %b
%15 = OpCompositeConstruct %v3float %14 %14 %14
OpStore %v %15
%19 = OpLoad %v3float %v
%20 = OpCompositeExtract %float %19 0
%21 = OpCompositeExtract %float %19 1
%22 = OpCompositeExtract %float %19 2
%24 = OpCompositeConstruct %v4float %20 %21 %22 %float_1
OpReturnValue %24
OpFunctionEnd
%frag_main = OpFunction %void None %25
%28 = OpLabel
%29 = OpFunctionCall %v4float %frag_main_inner
OpStore %value %29
OpReturn
OpFunctionEnd

View File

@ -1,52 +1,50 @@
; SPIR-V
; Version: 1.3
; Generator: Google Tint Compiler; 0
; Bound: 26
; Bound: 25
; Schema: 0
OpCapability Shader
OpMemoryModel Logical GLSL450
OpEntryPoint Fragment %main "main" %tint_symbol_1
OpEntryPoint Fragment %main "main" %out_var_SV_TARGET_1_1
OpExecutionMode %main OriginUpperLeft
OpName %out_var_SV_TARGET_1_1 "out_var_SV_TARGET_1_1"
OpName %out_var_SV_TARGET "out_var_SV_TARGET"
OpName %tint_symbol_1 "tint_symbol_1"
OpName %main_1 "main_1"
OpName %main_out "main_out"
OpMemberName %main_out 0 "out_var_SV_TARGET_1"
OpName %tint_symbol_2 "tint_symbol_2"
OpName %tint_symbol "tint_symbol"
OpName %main_inner "main_inner"
OpName %main "main"
OpDecorate %tint_symbol_1 Location 0
OpDecorate %out_var_SV_TARGET_1_1 Location 0
OpMemberDecorate %main_out 0 Offset 0
%float = OpTypeFloat 32
%v4float = OpTypeVector %float 4
%_ptr_Private_v4float = OpTypePointer Private %v4float
%5 = OpConstantNull %v4float
%out_var_SV_TARGET = OpVariable %_ptr_Private_v4float Private %5
%_ptr_Output_v4float = OpTypePointer Output %v4float
%tint_symbol_1 = OpVariable %_ptr_Output_v4float Output %5
%5 = OpConstantNull %v4float
%out_var_SV_TARGET_1_1 = OpVariable %_ptr_Output_v4float Output %5
%_ptr_Private_v4float = OpTypePointer Private %v4float
%out_var_SV_TARGET = OpVariable %_ptr_Private_v4float Private %5
%void = OpTypeVoid
%8 = OpTypeFunction %void
%float_n0x1p_128 = OpConstant %float -0x1p+128
%13 = OpConstantComposite %v4float %float_n0x1p_128 %float_n0x1p_128 %float_n0x1p_128 %float_n0x1p_128
%main_out = OpTypeStruct %v4float
%14 = OpTypeFunction %void %main_out
%14 = OpTypeFunction %main_out
%main_1 = OpFunction %void None %8
%11 = OpLabel
OpStore %out_var_SV_TARGET %13
OpReturn
OpFunctionEnd
%tint_symbol_2 = OpFunction %void None %14
%tint_symbol = OpFunctionParameter %main_out
%18 = OpLabel
%19 = OpCompositeExtract %v4float %tint_symbol 0
OpStore %tint_symbol_1 %19
OpReturn
%main_inner = OpFunction %main_out None %14
%17 = OpLabel
%18 = OpFunctionCall %void %main_1
%19 = OpLoad %v4float %out_var_SV_TARGET
%20 = OpCompositeConstruct %main_out %19
OpReturnValue %20
OpFunctionEnd
%main = OpFunction %void None %8
%21 = OpLabel
%22 = OpFunctionCall %void %main_1
%24 = OpLoad %v4float %out_var_SV_TARGET
%25 = OpCompositeConstruct %main_out %24
%23 = OpFunctionCall %void %tint_symbol_2 %25
%22 = OpLabel
%23 = OpFunctionCall %main_out %main_inner
%24 = OpCompositeExtract %v4float %23 0
OpStore %out_var_SV_TARGET_1_1 %24
OpReturn
OpFunctionEnd

View File

@ -1,52 +1,50 @@
; SPIR-V
; Version: 1.3
; Generator: Google Tint Compiler; 0
; Bound: 26
; Bound: 25
; Schema: 0
OpCapability Shader
OpMemoryModel Logical GLSL450
OpEntryPoint Fragment %main "main" %tint_symbol_1
OpEntryPoint Fragment %main "main" %out_var_SV_TARGET_1_1
OpExecutionMode %main OriginUpperLeft
OpName %out_var_SV_TARGET_1_1 "out_var_SV_TARGET_1_1"
OpName %out_var_SV_TARGET "out_var_SV_TARGET"
OpName %tint_symbol_1 "tint_symbol_1"
OpName %main_1 "main_1"
OpName %main_out "main_out"
OpMemberName %main_out 0 "out_var_SV_TARGET_1"
OpName %tint_symbol_2 "tint_symbol_2"
OpName %tint_symbol "tint_symbol"
OpName %main_inner "main_inner"
OpName %main "main"
OpDecorate %tint_symbol_1 Location 0
OpDecorate %out_var_SV_TARGET_1_1 Location 0
OpMemberDecorate %main_out 0 Offset 0
%float = OpTypeFloat 32
%v4float = OpTypeVector %float 4
%_ptr_Private_v4float = OpTypePointer Private %v4float
%5 = OpConstantNull %v4float
%out_var_SV_TARGET = OpVariable %_ptr_Private_v4float Private %5
%_ptr_Output_v4float = OpTypePointer Output %v4float
%tint_symbol_1 = OpVariable %_ptr_Output_v4float Output %5
%5 = OpConstantNull %v4float
%out_var_SV_TARGET_1_1 = OpVariable %_ptr_Output_v4float Output %5
%_ptr_Private_v4float = OpTypePointer Private %v4float
%out_var_SV_TARGET = OpVariable %_ptr_Private_v4float Private %5
%void = OpTypeVoid
%8 = OpTypeFunction %void
%float_0x1p_128 = OpConstant %float 0x1p+128
%13 = OpConstantComposite %v4float %float_0x1p_128 %float_0x1p_128 %float_0x1p_128 %float_0x1p_128
%main_out = OpTypeStruct %v4float
%14 = OpTypeFunction %void %main_out
%14 = OpTypeFunction %main_out
%main_1 = OpFunction %void None %8
%11 = OpLabel
OpStore %out_var_SV_TARGET %13
OpReturn
OpFunctionEnd
%tint_symbol_2 = OpFunction %void None %14
%tint_symbol = OpFunctionParameter %main_out
%18 = OpLabel
%19 = OpCompositeExtract %v4float %tint_symbol 0
OpStore %tint_symbol_1 %19
OpReturn
%main_inner = OpFunction %main_out None %14
%17 = OpLabel
%18 = OpFunctionCall %void %main_1
%19 = OpLoad %v4float %out_var_SV_TARGET
%20 = OpCompositeConstruct %main_out %19
OpReturnValue %20
OpFunctionEnd
%main = OpFunction %void None %8
%21 = OpLabel
%22 = OpFunctionCall %void %main_1
%24 = OpLoad %v4float %out_var_SV_TARGET
%25 = OpCompositeConstruct %main_out %24
%23 = OpFunctionCall %void %tint_symbol_2 %25
%22 = OpLabel
%23 = OpFunctionCall %main_out %main_inner
%24 = OpCompositeExtract %v4float %23 0
OpStore %out_var_SV_TARGET_1_1 %24
OpReturn
OpFunctionEnd

View File

@ -1,52 +1,50 @@
; SPIR-V
; Version: 1.3
; Generator: Google Tint Compiler; 0
; Bound: 26
; Bound: 25
; Schema: 0
OpCapability Shader
OpMemoryModel Logical GLSL450
OpEntryPoint Fragment %main "main" %tint_symbol_1
OpEntryPoint Fragment %main "main" %out_var_SV_TARGET_1_1
OpExecutionMode %main OriginUpperLeft
OpName %out_var_SV_TARGET_1_1 "out_var_SV_TARGET_1_1"
OpName %out_var_SV_TARGET "out_var_SV_TARGET"
OpName %tint_symbol_1 "tint_symbol_1"
OpName %main_1 "main_1"
OpName %main_out "main_out"
OpMemberName %main_out 0 "out_var_SV_TARGET_1"
OpName %tint_symbol_2 "tint_symbol_2"
OpName %tint_symbol "tint_symbol"
OpName %main_inner "main_inner"
OpName %main "main"
OpDecorate %tint_symbol_1 Location 0
OpDecorate %out_var_SV_TARGET_1_1 Location 0
OpMemberDecorate %main_out 0 Offset 0
%float = OpTypeFloat 32
%v4float = OpTypeVector %float 4
%_ptr_Private_v4float = OpTypePointer Private %v4float
%5 = OpConstantNull %v4float
%out_var_SV_TARGET = OpVariable %_ptr_Private_v4float Private %5
%_ptr_Output_v4float = OpTypePointer Output %v4float
%tint_symbol_1 = OpVariable %_ptr_Output_v4float Output %5
%5 = OpConstantNull %v4float
%out_var_SV_TARGET_1_1 = OpVariable %_ptr_Output_v4float Output %5
%_ptr_Private_v4float = OpTypePointer Private %v4float
%out_var_SV_TARGET = OpVariable %_ptr_Private_v4float Private %5
%void = OpTypeVoid
%8 = OpTypeFunction %void
%float_0x1_1p_128 = OpConstant %float 0x1.1p+128
%13 = OpConstantComposite %v4float %float_0x1_1p_128 %float_0x1_1p_128 %float_0x1_1p_128 %float_0x1_1p_128
%main_out = OpTypeStruct %v4float
%14 = OpTypeFunction %void %main_out
%14 = OpTypeFunction %main_out
%main_1 = OpFunction %void None %8
%11 = OpLabel
OpStore %out_var_SV_TARGET %13
OpReturn
OpFunctionEnd
%tint_symbol_2 = OpFunction %void None %14
%tint_symbol = OpFunctionParameter %main_out
%18 = OpLabel
%19 = OpCompositeExtract %v4float %tint_symbol 0
OpStore %tint_symbol_1 %19
OpReturn
%main_inner = OpFunction %main_out None %14
%17 = OpLabel
%18 = OpFunctionCall %void %main_1
%19 = OpLoad %v4float %out_var_SV_TARGET
%20 = OpCompositeConstruct %main_out %19
OpReturnValue %20
OpFunctionEnd
%main = OpFunction %void None %8
%21 = OpLabel
%22 = OpFunctionCall %void %main_1
%24 = OpLoad %v4float %out_var_SV_TARGET
%25 = OpCompositeConstruct %main_out %24
%23 = OpFunctionCall %void %tint_symbol_2 %25
%22 = OpLabel
%23 = OpFunctionCall %main_out %main_inner
%24 = OpCompositeExtract %v4float %23 0
OpStore %out_var_SV_TARGET_1_1 %24
OpReturn
OpFunctionEnd

View File

@ -1,67 +1,65 @@
; SPIR-V
; Version: 1.3
; Generator: Google Tint Compiler; 0
; Bound: 32
; Bound: 31
; Schema: 0
OpCapability Shader
%14 = OpExtInstImport "GLSL.std.450"
OpMemoryModel Logical GLSL450
OpEntryPoint Vertex %vertex_main "vertex_main" %tint_pointsize %tint_symbol_1
OpEntryPoint Vertex %vertex_main "vertex_main" %value %vertex_point_size
OpEntryPoint Fragment %fragment_main "fragment_main"
OpEntryPoint GLCompute %compute_main "compute_main"
OpExecutionMode %fragment_main OriginUpperLeft
OpExecutionMode %compute_main LocalSize 1 1 1
OpName %tint_pointsize "tint_pointsize"
OpName %tint_symbol_1 "tint_symbol_1"
OpName %value "value"
OpName %vertex_point_size "vertex_point_size"
OpName %abs_002533 "abs_002533"
OpName %res "res"
OpName %tint_symbol_2 "tint_symbol_2"
OpName %tint_symbol "tint_symbol"
OpName %vertex_main_inner "vertex_main_inner"
OpName %vertex_main "vertex_main"
OpName %fragment_main "fragment_main"
OpName %compute_main "compute_main"
OpDecorate %tint_pointsize BuiltIn PointSize
OpDecorate %tint_symbol_1 BuiltIn Position
OpDecorate %value BuiltIn Position
OpDecorate %vertex_point_size BuiltIn PointSize
%float = OpTypeFloat 32
%_ptr_Output_float = OpTypePointer Output %float
%4 = OpConstantNull %float
%tint_pointsize = OpVariable %_ptr_Output_float Output %4
%v4float = OpTypeVector %float 4
%_ptr_Output_v4float = OpTypePointer Output %v4float
%8 = OpConstantNull %v4float
%tint_symbol_1 = OpVariable %_ptr_Output_v4float Output %8
%5 = OpConstantNull %v4float
%value = OpVariable %_ptr_Output_v4float Output %5
%_ptr_Output_float = OpTypePointer Output %float
%8 = OpConstantNull %float
%vertex_point_size = OpVariable %_ptr_Output_float Output %8
%void = OpTypeVoid
%9 = OpTypeFunction %void
%_ptr_Function_v4float = OpTypePointer Function %v4float
%17 = OpTypeFunction %void %v4float
%17 = OpTypeFunction %v4float
%float_1 = OpConstant %float 1
%abs_002533 = OpFunction %void None %9
%12 = OpLabel
%res = OpVariable %_ptr_Function_v4float Function %8
%13 = OpExtInst %v4float %14 FAbs %8
%res = OpVariable %_ptr_Function_v4float Function %5
%13 = OpExtInst %v4float %14 FAbs %5
OpStore %res %13
OpReturn
OpFunctionEnd
%tint_symbol_2 = OpFunction %void None %17
%tint_symbol = OpFunctionParameter %v4float
%20 = OpLabel
OpStore %tint_symbol_1 %tint_symbol
OpReturn
%vertex_main_inner = OpFunction %v4float None %17
%19 = OpLabel
%20 = OpFunctionCall %void %abs_002533
OpReturnValue %5
OpFunctionEnd
%vertex_main = OpFunction %void None %9
%22 = OpLabel
OpStore %tint_pointsize %float_1
%24 = OpFunctionCall %void %abs_002533
%25 = OpFunctionCall %void %tint_symbol_2 %8
%23 = OpFunctionCall %v4float %vertex_main_inner
OpStore %value %23
OpStore %vertex_point_size %float_1
OpReturn
OpFunctionEnd
%fragment_main = OpFunction %void None %9
%27 = OpLabel
%28 = OpFunctionCall %void %abs_002533
%26 = OpLabel
%27 = OpFunctionCall %void %abs_002533
OpReturn
OpFunctionEnd
%compute_main = OpFunction %void None %9
%30 = OpLabel
%31 = OpFunctionCall %void %abs_002533
%29 = OpLabel
%30 = OpFunctionCall %void %abs_002533
OpReturn
OpFunctionEnd

View File

@ -1,41 +1,40 @@
; SPIR-V
; Version: 1.3
; Generator: Google Tint Compiler; 0
; Bound: 34
; Bound: 33
; Schema: 0
OpCapability Shader
%15 = OpExtInstImport "GLSL.std.450"
OpMemoryModel Logical GLSL450
OpEntryPoint Vertex %vertex_main "vertex_main" %tint_pointsize %tint_symbol_1
OpEntryPoint Vertex %vertex_main "vertex_main" %value %vertex_point_size
OpEntryPoint Fragment %fragment_main "fragment_main"
OpEntryPoint GLCompute %compute_main "compute_main"
OpExecutionMode %fragment_main OriginUpperLeft
OpExecutionMode %compute_main LocalSize 1 1 1
OpName %tint_pointsize "tint_pointsize"
OpName %tint_symbol_1 "tint_symbol_1"
OpName %value "value"
OpName %vertex_point_size "vertex_point_size"
OpName %abs_005174 "abs_005174"
OpName %res "res"
OpName %tint_symbol_2 "tint_symbol_2"
OpName %tint_symbol "tint_symbol"
OpName %vertex_main_inner "vertex_main_inner"
OpName %vertex_main "vertex_main"
OpName %fragment_main "fragment_main"
OpName %compute_main "compute_main"
OpDecorate %tint_pointsize BuiltIn PointSize
OpDecorate %tint_symbol_1 BuiltIn Position
OpDecorate %value BuiltIn Position
OpDecorate %vertex_point_size BuiltIn PointSize
%float = OpTypeFloat 32
%_ptr_Output_float = OpTypePointer Output %float
%4 = OpConstantNull %float
%tint_pointsize = OpVariable %_ptr_Output_float Output %4
%v4float = OpTypeVector %float 4
%_ptr_Output_v4float = OpTypePointer Output %v4float
%8 = OpConstantNull %v4float
%tint_symbol_1 = OpVariable %_ptr_Output_v4float Output %8
%5 = OpConstantNull %v4float
%value = OpVariable %_ptr_Output_v4float Output %5
%_ptr_Output_float = OpTypePointer Output %float
%8 = OpConstantNull %float
%vertex_point_size = OpVariable %_ptr_Output_float Output %8
%void = OpTypeVoid
%9 = OpTypeFunction %void
%v3float = OpTypeVector %float 3
%16 = OpConstantNull %v3float
%_ptr_Function_v3float = OpTypePointer Function %v3float
%19 = OpTypeFunction %void %v4float
%19 = OpTypeFunction %v4float
%float_1 = OpConstant %float 1
%abs_005174 = OpFunction %void None %9
%12 = OpLabel
@ -44,26 +43,25 @@
OpStore %res %13
OpReturn
OpFunctionEnd
%tint_symbol_2 = OpFunction %void None %19
%tint_symbol = OpFunctionParameter %v4float
%22 = OpLabel
OpStore %tint_symbol_1 %tint_symbol
OpReturn
%vertex_main_inner = OpFunction %v4float None %19
%21 = OpLabel
%22 = OpFunctionCall %void %abs_005174
OpReturnValue %5
OpFunctionEnd
%vertex_main = OpFunction %void None %9
%24 = OpLabel
OpStore %tint_pointsize %float_1
%26 = OpFunctionCall %void %abs_005174
%27 = OpFunctionCall %void %tint_symbol_2 %8
%25 = OpFunctionCall %v4float %vertex_main_inner
OpStore %value %25
OpStore %vertex_point_size %float_1
OpReturn
OpFunctionEnd
%fragment_main = OpFunction %void None %9
%29 = OpLabel
%30 = OpFunctionCall %void %abs_005174
%28 = OpLabel
%29 = OpFunctionCall %void %abs_005174
OpReturn
OpFunctionEnd
%compute_main = OpFunction %void None %9
%32 = OpLabel
%33 = OpFunctionCall %void %abs_005174
%31 = OpLabel
%32 = OpFunctionCall %void %abs_005174
OpReturn
OpFunctionEnd

View File

@ -1,42 +1,41 @@
; SPIR-V
; Version: 1.3
; Generator: Google Tint Compiler; 0
; Bound: 35
; Bound: 34
; Schema: 0
OpCapability Shader
%16 = OpExtInstImport "GLSL.std.450"
OpMemoryModel Logical GLSL450
OpEntryPoint Vertex %vertex_main "vertex_main" %tint_pointsize %tint_symbol_1
OpEntryPoint Vertex %vertex_main "vertex_main" %value %vertex_point_size
OpEntryPoint Fragment %fragment_main "fragment_main"
OpEntryPoint GLCompute %compute_main "compute_main"
OpExecutionMode %fragment_main OriginUpperLeft
OpExecutionMode %compute_main LocalSize 1 1 1
OpName %tint_pointsize "tint_pointsize"
OpName %tint_symbol_1 "tint_symbol_1"
OpName %value "value"
OpName %vertex_point_size "vertex_point_size"
OpName %abs_1ce782 "abs_1ce782"
OpName %res "res"
OpName %tint_symbol_2 "tint_symbol_2"
OpName %tint_symbol "tint_symbol"
OpName %vertex_main_inner "vertex_main_inner"
OpName %vertex_main "vertex_main"
OpName %fragment_main "fragment_main"
OpName %compute_main "compute_main"
OpDecorate %tint_pointsize BuiltIn PointSize
OpDecorate %tint_symbol_1 BuiltIn Position
OpDecorate %value BuiltIn Position
OpDecorate %vertex_point_size BuiltIn PointSize
%float = OpTypeFloat 32
%_ptr_Output_float = OpTypePointer Output %float
%4 = OpConstantNull %float
%tint_pointsize = OpVariable %_ptr_Output_float Output %4
%v4float = OpTypeVector %float 4
%_ptr_Output_v4float = OpTypePointer Output %v4float
%8 = OpConstantNull %v4float
%tint_symbol_1 = OpVariable %_ptr_Output_v4float Output %8
%5 = OpConstantNull %v4float
%value = OpVariable %_ptr_Output_v4float Output %5
%_ptr_Output_float = OpTypePointer Output %float
%8 = OpConstantNull %float
%vertex_point_size = OpVariable %_ptr_Output_float Output %8
%void = OpTypeVoid
%9 = OpTypeFunction %void
%uint = OpTypeInt 32 0
%v4uint = OpTypeVector %uint 4
%17 = OpConstantNull %v4uint
%_ptr_Function_v4uint = OpTypePointer Function %v4uint
%20 = OpTypeFunction %void %v4float
%20 = OpTypeFunction %v4float
%float_1 = OpConstant %float 1
%abs_1ce782 = OpFunction %void None %9
%12 = OpLabel
@ -45,26 +44,25 @@
OpStore %res %13
OpReturn
OpFunctionEnd
%tint_symbol_2 = OpFunction %void None %20
%tint_symbol = OpFunctionParameter %v4float
%23 = OpLabel
OpStore %tint_symbol_1 %tint_symbol
OpReturn
%vertex_main_inner = OpFunction %v4float None %20
%22 = OpLabel
%23 = OpFunctionCall %void %abs_1ce782
OpReturnValue %5
OpFunctionEnd
%vertex_main = OpFunction %void None %9
%25 = OpLabel
OpStore %tint_pointsize %float_1
%27 = OpFunctionCall %void %abs_1ce782
%28 = OpFunctionCall %void %tint_symbol_2 %8
%26 = OpFunctionCall %v4float %vertex_main_inner
OpStore %value %26
OpStore %vertex_point_size %float_1
OpReturn
OpFunctionEnd
%fragment_main = OpFunction %void None %9
%30 = OpLabel
%31 = OpFunctionCall %void %abs_1ce782
%29 = OpLabel
%30 = OpFunctionCall %void %abs_1ce782
OpReturn
OpFunctionEnd
%compute_main = OpFunction %void None %9
%33 = OpLabel
%34 = OpFunctionCall %void %abs_1ce782
%32 = OpLabel
%33 = OpFunctionCall %void %abs_1ce782
OpReturn
OpFunctionEnd

View File

@ -1,41 +1,40 @@
; SPIR-V
; Version: 1.3
; Generator: Google Tint Compiler; 0
; Bound: 34
; Bound: 33
; Schema: 0
OpCapability Shader
%15 = OpExtInstImport "GLSL.std.450"
OpMemoryModel Logical GLSL450
OpEntryPoint Vertex %vertex_main "vertex_main" %tint_pointsize %tint_symbol_1
OpEntryPoint Vertex %vertex_main "vertex_main" %value %vertex_point_size
OpEntryPoint Fragment %fragment_main "fragment_main"
OpEntryPoint GLCompute %compute_main "compute_main"
OpExecutionMode %fragment_main OriginUpperLeft
OpExecutionMode %compute_main LocalSize 1 1 1
OpName %tint_pointsize "tint_pointsize"
OpName %tint_symbol_1 "tint_symbol_1"
OpName %value "value"
OpName %vertex_point_size "vertex_point_size"
OpName %abs_1e9d53 "abs_1e9d53"
OpName %res "res"
OpName %tint_symbol_2 "tint_symbol_2"
OpName %tint_symbol "tint_symbol"
OpName %vertex_main_inner "vertex_main_inner"
OpName %vertex_main "vertex_main"
OpName %fragment_main "fragment_main"
OpName %compute_main "compute_main"
OpDecorate %tint_pointsize BuiltIn PointSize
OpDecorate %tint_symbol_1 BuiltIn Position
OpDecorate %value BuiltIn Position
OpDecorate %vertex_point_size BuiltIn PointSize
%float = OpTypeFloat 32
%_ptr_Output_float = OpTypePointer Output %float
%4 = OpConstantNull %float
%tint_pointsize = OpVariable %_ptr_Output_float Output %4
%v4float = OpTypeVector %float 4
%_ptr_Output_v4float = OpTypePointer Output %v4float
%8 = OpConstantNull %v4float
%tint_symbol_1 = OpVariable %_ptr_Output_v4float Output %8
%5 = OpConstantNull %v4float
%value = OpVariable %_ptr_Output_v4float Output %5
%_ptr_Output_float = OpTypePointer Output %float
%8 = OpConstantNull %float
%vertex_point_size = OpVariable %_ptr_Output_float Output %8
%void = OpTypeVoid
%9 = OpTypeFunction %void
%v2float = OpTypeVector %float 2
%16 = OpConstantNull %v2float
%_ptr_Function_v2float = OpTypePointer Function %v2float
%19 = OpTypeFunction %void %v4float
%19 = OpTypeFunction %v4float
%float_1 = OpConstant %float 1
%abs_1e9d53 = OpFunction %void None %9
%12 = OpLabel
@ -44,26 +43,25 @@
OpStore %res %13
OpReturn
OpFunctionEnd
%tint_symbol_2 = OpFunction %void None %19
%tint_symbol = OpFunctionParameter %v4float
%22 = OpLabel
OpStore %tint_symbol_1 %tint_symbol
OpReturn
%vertex_main_inner = OpFunction %v4float None %19
%21 = OpLabel
%22 = OpFunctionCall %void %abs_1e9d53
OpReturnValue %5
OpFunctionEnd
%vertex_main = OpFunction %void None %9
%24 = OpLabel
OpStore %tint_pointsize %float_1
%26 = OpFunctionCall %void %abs_1e9d53
%27 = OpFunctionCall %void %tint_symbol_2 %8
%25 = OpFunctionCall %v4float %vertex_main_inner
OpStore %value %25
OpStore %vertex_point_size %float_1
OpReturn
OpFunctionEnd
%fragment_main = OpFunction %void None %9
%29 = OpLabel
%30 = OpFunctionCall %void %abs_1e9d53
%28 = OpLabel
%29 = OpFunctionCall %void %abs_1e9d53
OpReturn
OpFunctionEnd
%compute_main = OpFunction %void None %9
%32 = OpLabel
%33 = OpFunctionCall %void %abs_1e9d53
%31 = OpLabel
%32 = OpFunctionCall %void %abs_1e9d53
OpReturn
OpFunctionEnd

View File

@ -1,42 +1,41 @@
; SPIR-V
; Version: 1.3
; Generator: Google Tint Compiler; 0
; Bound: 35
; Bound: 34
; Schema: 0
OpCapability Shader
%15 = OpExtInstImport "GLSL.std.450"
OpMemoryModel Logical GLSL450
OpEntryPoint Vertex %vertex_main "vertex_main" %tint_pointsize %tint_symbol_1
OpEntryPoint Vertex %vertex_main "vertex_main" %value %vertex_point_size
OpEntryPoint Fragment %fragment_main "fragment_main"
OpEntryPoint GLCompute %compute_main "compute_main"
OpExecutionMode %fragment_main OriginUpperLeft
OpExecutionMode %compute_main LocalSize 1 1 1
OpName %tint_pointsize "tint_pointsize"
OpName %tint_symbol_1 "tint_symbol_1"
OpName %value "value"
OpName %vertex_point_size "vertex_point_size"
OpName %abs_467cd1 "abs_467cd1"
OpName %res "res"
OpName %tint_symbol_2 "tint_symbol_2"
OpName %tint_symbol "tint_symbol"
OpName %vertex_main_inner "vertex_main_inner"
OpName %vertex_main "vertex_main"
OpName %fragment_main "fragment_main"
OpName %compute_main "compute_main"
OpDecorate %tint_pointsize BuiltIn PointSize
OpDecorate %tint_symbol_1 BuiltIn Position
OpDecorate %value BuiltIn Position
OpDecorate %vertex_point_size BuiltIn PointSize
%float = OpTypeFloat 32
%_ptr_Output_float = OpTypePointer Output %float
%4 = OpConstantNull %float
%tint_pointsize = OpVariable %_ptr_Output_float Output %4
%v4float = OpTypeVector %float 4
%_ptr_Output_v4float = OpTypePointer Output %v4float
%8 = OpConstantNull %v4float
%tint_symbol_1 = OpVariable %_ptr_Output_v4float Output %8
%5 = OpConstantNull %v4float
%value = OpVariable %_ptr_Output_v4float Output %5
%_ptr_Output_float = OpTypePointer Output %float
%8 = OpConstantNull %float
%vertex_point_size = OpVariable %_ptr_Output_float Output %8
%void = OpTypeVoid
%9 = OpTypeFunction %void
%uint = OpTypeInt 32 0
%uint_1 = OpConstant %uint 1
%_ptr_Function_uint = OpTypePointer Function %uint
%19 = OpConstantNull %uint
%20 = OpTypeFunction %void %v4float
%20 = OpTypeFunction %v4float
%float_1 = OpConstant %float 1
%abs_467cd1 = OpFunction %void None %9
%12 = OpLabel
@ -45,26 +44,25 @@
OpStore %res %13
OpReturn
OpFunctionEnd
%tint_symbol_2 = OpFunction %void None %20
%tint_symbol = OpFunctionParameter %v4float
%23 = OpLabel
OpStore %tint_symbol_1 %tint_symbol
OpReturn
%vertex_main_inner = OpFunction %v4float None %20
%22 = OpLabel
%23 = OpFunctionCall %void %abs_467cd1
OpReturnValue %5
OpFunctionEnd
%vertex_main = OpFunction %void None %9
%25 = OpLabel
OpStore %tint_pointsize %float_1
%27 = OpFunctionCall %void %abs_467cd1
%28 = OpFunctionCall %void %tint_symbol_2 %8
%26 = OpFunctionCall %v4float %vertex_main_inner
OpStore %value %26
OpStore %vertex_point_size %float_1
OpReturn
OpFunctionEnd
%fragment_main = OpFunction %void None %9
%30 = OpLabel
%31 = OpFunctionCall %void %abs_467cd1
%29 = OpLabel
%30 = OpFunctionCall %void %abs_467cd1
OpReturn
OpFunctionEnd
%compute_main = OpFunction %void None %9
%33 = OpLabel
%34 = OpFunctionCall %void %abs_467cd1
%32 = OpLabel
%33 = OpFunctionCall %void %abs_467cd1
OpReturn
OpFunctionEnd

View File

@ -1,42 +1,41 @@
; SPIR-V
; Version: 1.3
; Generator: Google Tint Compiler; 0
; Bound: 35
; Bound: 34
; Schema: 0
OpCapability Shader
%15 = OpExtInstImport "GLSL.std.450"
OpMemoryModel Logical GLSL450
OpEntryPoint Vertex %vertex_main "vertex_main" %tint_pointsize %tint_symbol_1
OpEntryPoint Vertex %vertex_main "vertex_main" %value %vertex_point_size
OpEntryPoint Fragment %fragment_main "fragment_main"
OpEntryPoint GLCompute %compute_main "compute_main"
OpExecutionMode %fragment_main OriginUpperLeft
OpExecutionMode %compute_main LocalSize 1 1 1
OpName %tint_pointsize "tint_pointsize"
OpName %tint_symbol_1 "tint_symbol_1"
OpName %value "value"
OpName %vertex_point_size "vertex_point_size"
OpName %abs_4ad288 "abs_4ad288"
OpName %res "res"
OpName %tint_symbol_2 "tint_symbol_2"
OpName %tint_symbol "tint_symbol"
OpName %vertex_main_inner "vertex_main_inner"
OpName %vertex_main "vertex_main"
OpName %fragment_main "fragment_main"
OpName %compute_main "compute_main"
OpDecorate %tint_pointsize BuiltIn PointSize
OpDecorate %tint_symbol_1 BuiltIn Position
OpDecorate %value BuiltIn Position
OpDecorate %vertex_point_size BuiltIn PointSize
%float = OpTypeFloat 32
%_ptr_Output_float = OpTypePointer Output %float
%4 = OpConstantNull %float
%tint_pointsize = OpVariable %_ptr_Output_float Output %4
%v4float = OpTypeVector %float 4
%_ptr_Output_v4float = OpTypePointer Output %v4float
%8 = OpConstantNull %v4float
%tint_symbol_1 = OpVariable %_ptr_Output_v4float Output %8
%5 = OpConstantNull %v4float
%value = OpVariable %_ptr_Output_v4float Output %5
%_ptr_Output_float = OpTypePointer Output %float
%8 = OpConstantNull %float
%vertex_point_size = OpVariable %_ptr_Output_float Output %8
%void = OpTypeVoid
%9 = OpTypeFunction %void
%int = OpTypeInt 32 1
%int_1 = OpConstant %int 1
%_ptr_Function_int = OpTypePointer Function %int
%19 = OpConstantNull %int
%20 = OpTypeFunction %void %v4float
%20 = OpTypeFunction %v4float
%float_1 = OpConstant %float 1
%abs_4ad288 = OpFunction %void None %9
%12 = OpLabel
@ -45,26 +44,25 @@
OpStore %res %13
OpReturn
OpFunctionEnd
%tint_symbol_2 = OpFunction %void None %20
%tint_symbol = OpFunctionParameter %v4float
%23 = OpLabel
OpStore %tint_symbol_1 %tint_symbol
OpReturn
%vertex_main_inner = OpFunction %v4float None %20
%22 = OpLabel
%23 = OpFunctionCall %void %abs_4ad288
OpReturnValue %5
OpFunctionEnd
%vertex_main = OpFunction %void None %9
%25 = OpLabel
OpStore %tint_pointsize %float_1
%27 = OpFunctionCall %void %abs_4ad288
%28 = OpFunctionCall %void %tint_symbol_2 %8
%26 = OpFunctionCall %v4float %vertex_main_inner
OpStore %value %26
OpStore %vertex_point_size %float_1
OpReturn
OpFunctionEnd
%fragment_main = OpFunction %void None %9
%30 = OpLabel
%31 = OpFunctionCall %void %abs_4ad288
%29 = OpLabel
%30 = OpFunctionCall %void %abs_4ad288
OpReturn
OpFunctionEnd
%compute_main = OpFunction %void None %9
%33 = OpLabel
%34 = OpFunctionCall %void %abs_4ad288
%32 = OpLabel
%33 = OpFunctionCall %void %abs_4ad288
OpReturn
OpFunctionEnd

View File

@ -1,42 +1,41 @@
; SPIR-V
; Version: 1.3
; Generator: Google Tint Compiler; 0
; Bound: 35
; Bound: 34
; Schema: 0
OpCapability Shader
%16 = OpExtInstImport "GLSL.std.450"
OpMemoryModel Logical GLSL450
OpEntryPoint Vertex %vertex_main "vertex_main" %tint_pointsize %tint_symbol_1
OpEntryPoint Vertex %vertex_main "vertex_main" %value %vertex_point_size
OpEntryPoint Fragment %fragment_main "fragment_main"
OpEntryPoint GLCompute %compute_main "compute_main"
OpExecutionMode %fragment_main OriginUpperLeft
OpExecutionMode %compute_main LocalSize 1 1 1
OpName %tint_pointsize "tint_pointsize"
OpName %tint_symbol_1 "tint_symbol_1"
OpName %value "value"
OpName %vertex_point_size "vertex_point_size"
OpName %abs_5ad50a "abs_5ad50a"
OpName %res "res"
OpName %tint_symbol_2 "tint_symbol_2"
OpName %tint_symbol "tint_symbol"
OpName %vertex_main_inner "vertex_main_inner"
OpName %vertex_main "vertex_main"
OpName %fragment_main "fragment_main"
OpName %compute_main "compute_main"
OpDecorate %tint_pointsize BuiltIn PointSize
OpDecorate %tint_symbol_1 BuiltIn Position
OpDecorate %value BuiltIn Position
OpDecorate %vertex_point_size BuiltIn PointSize
%float = OpTypeFloat 32
%_ptr_Output_float = OpTypePointer Output %float
%4 = OpConstantNull %float
%tint_pointsize = OpVariable %_ptr_Output_float Output %4
%v4float = OpTypeVector %float 4
%_ptr_Output_v4float = OpTypePointer Output %v4float
%8 = OpConstantNull %v4float
%tint_symbol_1 = OpVariable %_ptr_Output_v4float Output %8
%5 = OpConstantNull %v4float
%value = OpVariable %_ptr_Output_v4float Output %5
%_ptr_Output_float = OpTypePointer Output %float
%8 = OpConstantNull %float
%vertex_point_size = OpVariable %_ptr_Output_float Output %8
%void = OpTypeVoid
%9 = OpTypeFunction %void
%int = OpTypeInt 32 1
%v3int = OpTypeVector %int 3
%17 = OpConstantNull %v3int
%_ptr_Function_v3int = OpTypePointer Function %v3int
%20 = OpTypeFunction %void %v4float
%20 = OpTypeFunction %v4float
%float_1 = OpConstant %float 1
%abs_5ad50a = OpFunction %void None %9
%12 = OpLabel
@ -45,26 +44,25 @@
OpStore %res %13
OpReturn
OpFunctionEnd
%tint_symbol_2 = OpFunction %void None %20
%tint_symbol = OpFunctionParameter %v4float
%23 = OpLabel
OpStore %tint_symbol_1 %tint_symbol
OpReturn
%vertex_main_inner = OpFunction %v4float None %20
%22 = OpLabel
%23 = OpFunctionCall %void %abs_5ad50a
OpReturnValue %5
OpFunctionEnd
%vertex_main = OpFunction %void None %9
%25 = OpLabel
OpStore %tint_pointsize %float_1
%27 = OpFunctionCall %void %abs_5ad50a
%28 = OpFunctionCall %void %tint_symbol_2 %8
%26 = OpFunctionCall %v4float %vertex_main_inner
OpStore %value %26
OpStore %vertex_point_size %float_1
OpReturn
OpFunctionEnd
%fragment_main = OpFunction %void None %9
%30 = OpLabel
%31 = OpFunctionCall %void %abs_5ad50a
%29 = OpLabel
%30 = OpFunctionCall %void %abs_5ad50a
OpReturn
OpFunctionEnd
%compute_main = OpFunction %void None %9
%33 = OpLabel
%34 = OpFunctionCall %void %abs_5ad50a
%32 = OpLabel
%33 = OpFunctionCall %void %abs_5ad50a
OpReturn
OpFunctionEnd

View File

@ -1,42 +1,41 @@
; SPIR-V
; Version: 1.3
; Generator: Google Tint Compiler; 0
; Bound: 35
; Bound: 34
; Schema: 0
OpCapability Shader
%16 = OpExtInstImport "GLSL.std.450"
OpMemoryModel Logical GLSL450
OpEntryPoint Vertex %vertex_main "vertex_main" %tint_pointsize %tint_symbol_1
OpEntryPoint Vertex %vertex_main "vertex_main" %value %vertex_point_size
OpEntryPoint Fragment %fragment_main "fragment_main"
OpEntryPoint GLCompute %compute_main "compute_main"
OpExecutionMode %fragment_main OriginUpperLeft
OpExecutionMode %compute_main LocalSize 1 1 1
OpName %tint_pointsize "tint_pointsize"
OpName %tint_symbol_1 "tint_symbol_1"
OpName %value "value"
OpName %vertex_point_size "vertex_point_size"
OpName %abs_7326de "abs_7326de"
OpName %res "res"
OpName %tint_symbol_2 "tint_symbol_2"
OpName %tint_symbol "tint_symbol"
OpName %vertex_main_inner "vertex_main_inner"
OpName %vertex_main "vertex_main"
OpName %fragment_main "fragment_main"
OpName %compute_main "compute_main"
OpDecorate %tint_pointsize BuiltIn PointSize
OpDecorate %tint_symbol_1 BuiltIn Position
OpDecorate %value BuiltIn Position
OpDecorate %vertex_point_size BuiltIn PointSize
%float = OpTypeFloat 32
%_ptr_Output_float = OpTypePointer Output %float
%4 = OpConstantNull %float
%tint_pointsize = OpVariable %_ptr_Output_float Output %4
%v4float = OpTypeVector %float 4
%_ptr_Output_v4float = OpTypePointer Output %v4float
%8 = OpConstantNull %v4float
%tint_symbol_1 = OpVariable %_ptr_Output_v4float Output %8
%5 = OpConstantNull %v4float
%value = OpVariable %_ptr_Output_v4float Output %5
%_ptr_Output_float = OpTypePointer Output %float
%8 = OpConstantNull %float
%vertex_point_size = OpVariable %_ptr_Output_float Output %8
%void = OpTypeVoid
%9 = OpTypeFunction %void
%uint = OpTypeInt 32 0
%v3uint = OpTypeVector %uint 3
%17 = OpConstantNull %v3uint
%_ptr_Function_v3uint = OpTypePointer Function %v3uint
%20 = OpTypeFunction %void %v4float
%20 = OpTypeFunction %v4float
%float_1 = OpConstant %float 1
%abs_7326de = OpFunction %void None %9
%12 = OpLabel
@ -45,26 +44,25 @@
OpStore %res %13
OpReturn
OpFunctionEnd
%tint_symbol_2 = OpFunction %void None %20
%tint_symbol = OpFunctionParameter %v4float
%23 = OpLabel
OpStore %tint_symbol_1 %tint_symbol
OpReturn
%vertex_main_inner = OpFunction %v4float None %20
%22 = OpLabel
%23 = OpFunctionCall %void %abs_7326de
OpReturnValue %5
OpFunctionEnd
%vertex_main = OpFunction %void None %9
%25 = OpLabel
OpStore %tint_pointsize %float_1
%27 = OpFunctionCall %void %abs_7326de
%28 = OpFunctionCall %void %tint_symbol_2 %8
%26 = OpFunctionCall %v4float %vertex_main_inner
OpStore %value %26
OpStore %vertex_point_size %float_1
OpReturn
OpFunctionEnd
%fragment_main = OpFunction %void None %9
%30 = OpLabel
%31 = OpFunctionCall %void %abs_7326de
%29 = OpLabel
%30 = OpFunctionCall %void %abs_7326de
OpReturn
OpFunctionEnd
%compute_main = OpFunction %void None %9
%33 = OpLabel
%34 = OpFunctionCall %void %abs_7326de
%32 = OpLabel
%33 = OpFunctionCall %void %abs_7326de
OpReturn
OpFunctionEnd

View File

@ -1,42 +1,41 @@
; SPIR-V
; Version: 1.3
; Generator: Google Tint Compiler; 0
; Bound: 35
; Bound: 34
; Schema: 0
OpCapability Shader
%16 = OpExtInstImport "GLSL.std.450"
OpMemoryModel Logical GLSL450
OpEntryPoint Vertex %vertex_main "vertex_main" %tint_pointsize %tint_symbol_1
OpEntryPoint Vertex %vertex_main "vertex_main" %value %vertex_point_size
OpEntryPoint Fragment %fragment_main "fragment_main"
OpEntryPoint GLCompute %compute_main "compute_main"
OpExecutionMode %fragment_main OriginUpperLeft
OpExecutionMode %compute_main LocalSize 1 1 1
OpName %tint_pointsize "tint_pointsize"
OpName %tint_symbol_1 "tint_symbol_1"
OpName %value "value"
OpName %vertex_point_size "vertex_point_size"
OpName %abs_7f28e6 "abs_7f28e6"
OpName %res "res"
OpName %tint_symbol_2 "tint_symbol_2"
OpName %tint_symbol "tint_symbol"
OpName %vertex_main_inner "vertex_main_inner"
OpName %vertex_main "vertex_main"
OpName %fragment_main "fragment_main"
OpName %compute_main "compute_main"
OpDecorate %tint_pointsize BuiltIn PointSize
OpDecorate %tint_symbol_1 BuiltIn Position
OpDecorate %value BuiltIn Position
OpDecorate %vertex_point_size BuiltIn PointSize
%float = OpTypeFloat 32
%_ptr_Output_float = OpTypePointer Output %float
%4 = OpConstantNull %float
%tint_pointsize = OpVariable %_ptr_Output_float Output %4
%v4float = OpTypeVector %float 4
%_ptr_Output_v4float = OpTypePointer Output %v4float
%8 = OpConstantNull %v4float
%tint_symbol_1 = OpVariable %_ptr_Output_v4float Output %8
%5 = OpConstantNull %v4float
%value = OpVariable %_ptr_Output_v4float Output %5
%_ptr_Output_float = OpTypePointer Output %float
%8 = OpConstantNull %float
%vertex_point_size = OpVariable %_ptr_Output_float Output %8
%void = OpTypeVoid
%9 = OpTypeFunction %void
%uint = OpTypeInt 32 0
%v2uint = OpTypeVector %uint 2
%17 = OpConstantNull %v2uint
%_ptr_Function_v2uint = OpTypePointer Function %v2uint
%20 = OpTypeFunction %void %v4float
%20 = OpTypeFunction %v4float
%float_1 = OpConstant %float 1
%abs_7f28e6 = OpFunction %void None %9
%12 = OpLabel
@ -45,26 +44,25 @@
OpStore %res %13
OpReturn
OpFunctionEnd
%tint_symbol_2 = OpFunction %void None %20
%tint_symbol = OpFunctionParameter %v4float
%23 = OpLabel
OpStore %tint_symbol_1 %tint_symbol
OpReturn
%vertex_main_inner = OpFunction %v4float None %20
%22 = OpLabel
%23 = OpFunctionCall %void %abs_7f28e6
OpReturnValue %5
OpFunctionEnd
%vertex_main = OpFunction %void None %9
%25 = OpLabel
OpStore %tint_pointsize %float_1
%27 = OpFunctionCall %void %abs_7f28e6
%28 = OpFunctionCall %void %tint_symbol_2 %8
%26 = OpFunctionCall %v4float %vertex_main_inner
OpStore %value %26
OpStore %vertex_point_size %float_1
OpReturn
OpFunctionEnd
%fragment_main = OpFunction %void None %9
%30 = OpLabel
%31 = OpFunctionCall %void %abs_7f28e6
%29 = OpLabel
%30 = OpFunctionCall %void %abs_7f28e6
OpReturn
OpFunctionEnd
%compute_main = OpFunction %void None %9
%33 = OpLabel
%34 = OpFunctionCall %void %abs_7f28e6
%32 = OpLabel
%33 = OpFunctionCall %void %abs_7f28e6
OpReturn
OpFunctionEnd

View File

@ -1,42 +1,41 @@
; SPIR-V
; Version: 1.3
; Generator: Google Tint Compiler; 0
; Bound: 35
; Bound: 34
; Schema: 0
OpCapability Shader
%16 = OpExtInstImport "GLSL.std.450"
OpMemoryModel Logical GLSL450
OpEntryPoint Vertex %vertex_main "vertex_main" %tint_pointsize %tint_symbol_1
OpEntryPoint Vertex %vertex_main "vertex_main" %value %vertex_point_size
OpEntryPoint Fragment %fragment_main "fragment_main"
OpEntryPoint GLCompute %compute_main "compute_main"
OpExecutionMode %fragment_main OriginUpperLeft
OpExecutionMode %compute_main LocalSize 1 1 1
OpName %tint_pointsize "tint_pointsize"
OpName %tint_symbol_1 "tint_symbol_1"
OpName %value "value"
OpName %vertex_point_size "vertex_point_size"
OpName %abs_7faa9e "abs_7faa9e"
OpName %res "res"
OpName %tint_symbol_2 "tint_symbol_2"
OpName %tint_symbol "tint_symbol"
OpName %vertex_main_inner "vertex_main_inner"
OpName %vertex_main "vertex_main"
OpName %fragment_main "fragment_main"
OpName %compute_main "compute_main"
OpDecorate %tint_pointsize BuiltIn PointSize
OpDecorate %tint_symbol_1 BuiltIn Position
OpDecorate %value BuiltIn Position
OpDecorate %vertex_point_size BuiltIn PointSize
%float = OpTypeFloat 32
%_ptr_Output_float = OpTypePointer Output %float
%4 = OpConstantNull %float
%tint_pointsize = OpVariable %_ptr_Output_float Output %4
%v4float = OpTypeVector %float 4
%_ptr_Output_v4float = OpTypePointer Output %v4float
%8 = OpConstantNull %v4float
%tint_symbol_1 = OpVariable %_ptr_Output_v4float Output %8
%5 = OpConstantNull %v4float
%value = OpVariable %_ptr_Output_v4float Output %5
%_ptr_Output_float = OpTypePointer Output %float
%8 = OpConstantNull %float
%vertex_point_size = OpVariable %_ptr_Output_float Output %8
%void = OpTypeVoid
%9 = OpTypeFunction %void
%int = OpTypeInt 32 1
%v2int = OpTypeVector %int 2
%17 = OpConstantNull %v2int
%_ptr_Function_v2int = OpTypePointer Function %v2int
%20 = OpTypeFunction %void %v4float
%20 = OpTypeFunction %v4float
%float_1 = OpConstant %float 1
%abs_7faa9e = OpFunction %void None %9
%12 = OpLabel
@ -45,26 +44,25 @@
OpStore %res %13
OpReturn
OpFunctionEnd
%tint_symbol_2 = OpFunction %void None %20
%tint_symbol = OpFunctionParameter %v4float
%23 = OpLabel
OpStore %tint_symbol_1 %tint_symbol
OpReturn
%vertex_main_inner = OpFunction %v4float None %20
%22 = OpLabel
%23 = OpFunctionCall %void %abs_7faa9e
OpReturnValue %5
OpFunctionEnd
%vertex_main = OpFunction %void None %9
%25 = OpLabel
OpStore %tint_pointsize %float_1
%27 = OpFunctionCall %void %abs_7faa9e
%28 = OpFunctionCall %void %tint_symbol_2 %8
%26 = OpFunctionCall %v4float %vertex_main_inner
OpStore %value %26
OpStore %vertex_point_size %float_1
OpReturn
OpFunctionEnd
%fragment_main = OpFunction %void None %9
%30 = OpLabel
%31 = OpFunctionCall %void %abs_7faa9e
%29 = OpLabel
%30 = OpFunctionCall %void %abs_7faa9e
OpReturn
OpFunctionEnd
%compute_main = OpFunction %void None %9
%33 = OpLabel
%34 = OpFunctionCall %void %abs_7faa9e
%32 = OpLabel
%33 = OpFunctionCall %void %abs_7faa9e
OpReturn
OpFunctionEnd

View File

@ -1,42 +1,41 @@
; SPIR-V
; Version: 1.3
; Generator: Google Tint Compiler; 0
; Bound: 35
; Bound: 34
; Schema: 0
OpCapability Shader
%16 = OpExtInstImport "GLSL.std.450"
OpMemoryModel Logical GLSL450
OpEntryPoint Vertex %vertex_main "vertex_main" %tint_pointsize %tint_symbol_1
OpEntryPoint Vertex %vertex_main "vertex_main" %value %vertex_point_size
OpEntryPoint Fragment %fragment_main "fragment_main"
OpEntryPoint GLCompute %compute_main "compute_main"
OpExecutionMode %fragment_main OriginUpperLeft
OpExecutionMode %compute_main LocalSize 1 1 1
OpName %tint_pointsize "tint_pointsize"
OpName %tint_symbol_1 "tint_symbol_1"
OpName %value "value"
OpName %vertex_point_size "vertex_point_size"
OpName %abs_9c80a6 "abs_9c80a6"
OpName %res "res"
OpName %tint_symbol_2 "tint_symbol_2"
OpName %tint_symbol "tint_symbol"
OpName %vertex_main_inner "vertex_main_inner"
OpName %vertex_main "vertex_main"
OpName %fragment_main "fragment_main"
OpName %compute_main "compute_main"
OpDecorate %tint_pointsize BuiltIn PointSize
OpDecorate %tint_symbol_1 BuiltIn Position
OpDecorate %value BuiltIn Position
OpDecorate %vertex_point_size BuiltIn PointSize
%float = OpTypeFloat 32
%_ptr_Output_float = OpTypePointer Output %float
%4 = OpConstantNull %float
%tint_pointsize = OpVariable %_ptr_Output_float Output %4
%v4float = OpTypeVector %float 4
%_ptr_Output_v4float = OpTypePointer Output %v4float
%8 = OpConstantNull %v4float
%tint_symbol_1 = OpVariable %_ptr_Output_v4float Output %8
%5 = OpConstantNull %v4float
%value = OpVariable %_ptr_Output_v4float Output %5
%_ptr_Output_float = OpTypePointer Output %float
%8 = OpConstantNull %float
%vertex_point_size = OpVariable %_ptr_Output_float Output %8
%void = OpTypeVoid
%9 = OpTypeFunction %void
%int = OpTypeInt 32 1
%v4int = OpTypeVector %int 4
%17 = OpConstantNull %v4int
%_ptr_Function_v4int = OpTypePointer Function %v4int
%20 = OpTypeFunction %void %v4float
%20 = OpTypeFunction %v4float
%float_1 = OpConstant %float 1
%abs_9c80a6 = OpFunction %void None %9
%12 = OpLabel
@ -45,26 +44,25 @@
OpStore %res %13
OpReturn
OpFunctionEnd
%tint_symbol_2 = OpFunction %void None %20
%tint_symbol = OpFunctionParameter %v4float
%23 = OpLabel
OpStore %tint_symbol_1 %tint_symbol
OpReturn
%vertex_main_inner = OpFunction %v4float None %20
%22 = OpLabel
%23 = OpFunctionCall %void %abs_9c80a6
OpReturnValue %5
OpFunctionEnd
%vertex_main = OpFunction %void None %9
%25 = OpLabel
OpStore %tint_pointsize %float_1
%27 = OpFunctionCall %void %abs_9c80a6
%28 = OpFunctionCall %void %tint_symbol_2 %8
%26 = OpFunctionCall %v4float %vertex_main_inner
OpStore %value %26
OpStore %vertex_point_size %float_1
OpReturn
OpFunctionEnd
%fragment_main = OpFunction %void None %9
%30 = OpLabel
%31 = OpFunctionCall %void %abs_9c80a6
%29 = OpLabel
%30 = OpFunctionCall %void %abs_9c80a6
OpReturn
OpFunctionEnd
%compute_main = OpFunction %void None %9
%33 = OpLabel
%34 = OpFunctionCall %void %abs_9c80a6
%32 = OpLabel
%33 = OpFunctionCall %void %abs_9c80a6
OpReturn
OpFunctionEnd

View File

@ -1,67 +1,65 @@
; SPIR-V
; Version: 1.3
; Generator: Google Tint Compiler; 0
; Bound: 32
; Bound: 31
; Schema: 0
OpCapability Shader
%14 = OpExtInstImport "GLSL.std.450"
OpMemoryModel Logical GLSL450
OpEntryPoint Vertex %vertex_main "vertex_main" %tint_pointsize %tint_symbol_1
OpEntryPoint Vertex %vertex_main "vertex_main" %value %vertex_point_size
OpEntryPoint Fragment %fragment_main "fragment_main"
OpEntryPoint GLCompute %compute_main "compute_main"
OpExecutionMode %fragment_main OriginUpperLeft
OpExecutionMode %compute_main LocalSize 1 1 1
OpName %tint_pointsize "tint_pointsize"
OpName %tint_symbol_1 "tint_symbol_1"
OpName %value "value"
OpName %vertex_point_size "vertex_point_size"
OpName %abs_b96037 "abs_b96037"
OpName %res "res"
OpName %tint_symbol_2 "tint_symbol_2"
OpName %tint_symbol "tint_symbol"
OpName %vertex_main_inner "vertex_main_inner"
OpName %vertex_main "vertex_main"
OpName %fragment_main "fragment_main"
OpName %compute_main "compute_main"
OpDecorate %tint_pointsize BuiltIn PointSize
OpDecorate %tint_symbol_1 BuiltIn Position
OpDecorate %value BuiltIn Position
OpDecorate %vertex_point_size BuiltIn PointSize
%float = OpTypeFloat 32
%_ptr_Output_float = OpTypePointer Output %float
%4 = OpConstantNull %float
%tint_pointsize = OpVariable %_ptr_Output_float Output %4
%v4float = OpTypeVector %float 4
%_ptr_Output_v4float = OpTypePointer Output %v4float
%8 = OpConstantNull %v4float
%tint_symbol_1 = OpVariable %_ptr_Output_v4float Output %8
%5 = OpConstantNull %v4float
%value = OpVariable %_ptr_Output_v4float Output %5
%_ptr_Output_float = OpTypePointer Output %float
%8 = OpConstantNull %float
%vertex_point_size = OpVariable %_ptr_Output_float Output %8
%void = OpTypeVoid
%9 = OpTypeFunction %void
%float_1 = OpConstant %float 1
%_ptr_Function_float = OpTypePointer Function %float
%18 = OpTypeFunction %void %v4float
%18 = OpTypeFunction %v4float
%abs_b96037 = OpFunction %void None %9
%12 = OpLabel
%res = OpVariable %_ptr_Function_float Function %4
%res = OpVariable %_ptr_Function_float Function %8
%13 = OpExtInst %float %14 FAbs %float_1
OpStore %res %13
OpReturn
OpFunctionEnd
%tint_symbol_2 = OpFunction %void None %18
%tint_symbol = OpFunctionParameter %v4float
%21 = OpLabel
OpStore %tint_symbol_1 %tint_symbol
OpReturn
%vertex_main_inner = OpFunction %v4float None %18
%20 = OpLabel
%21 = OpFunctionCall %void %abs_b96037
OpReturnValue %5
OpFunctionEnd
%vertex_main = OpFunction %void None %9
%23 = OpLabel
OpStore %tint_pointsize %float_1
%24 = OpFunctionCall %void %abs_b96037
%25 = OpFunctionCall %void %tint_symbol_2 %8
%24 = OpFunctionCall %v4float %vertex_main_inner
OpStore %value %24
OpStore %vertex_point_size %float_1
OpReturn
OpFunctionEnd
%fragment_main = OpFunction %void None %9
%27 = OpLabel
%28 = OpFunctionCall %void %abs_b96037
%26 = OpLabel
%27 = OpFunctionCall %void %abs_b96037
OpReturn
OpFunctionEnd
%compute_main = OpFunction %void None %9
%30 = OpLabel
%31 = OpFunctionCall %void %abs_b96037
%29 = OpLabel
%30 = OpFunctionCall %void %abs_b96037
OpReturn
OpFunctionEnd

View File

@ -1,67 +1,65 @@
; SPIR-V
; Version: 1.3
; Generator: Google Tint Compiler; 0
; Bound: 32
; Bound: 31
; Schema: 0
OpCapability Shader
%14 = OpExtInstImport "GLSL.std.450"
OpMemoryModel Logical GLSL450
OpEntryPoint Vertex %vertex_main "vertex_main" %tint_pointsize %tint_symbol_1
OpEntryPoint Vertex %vertex_main "vertex_main" %value %vertex_point_size
OpEntryPoint Fragment %fragment_main "fragment_main"
OpEntryPoint GLCompute %compute_main "compute_main"
OpExecutionMode %fragment_main OriginUpperLeft
OpExecutionMode %compute_main LocalSize 1 1 1
OpName %tint_pointsize "tint_pointsize"
OpName %tint_symbol_1 "tint_symbol_1"
OpName %value "value"
OpName %vertex_point_size "vertex_point_size"
OpName %acos_489247 "acos_489247"
OpName %res "res"
OpName %tint_symbol_2 "tint_symbol_2"
OpName %tint_symbol "tint_symbol"
OpName %vertex_main_inner "vertex_main_inner"
OpName %vertex_main "vertex_main"
OpName %fragment_main "fragment_main"
OpName %compute_main "compute_main"
OpDecorate %tint_pointsize BuiltIn PointSize
OpDecorate %tint_symbol_1 BuiltIn Position
OpDecorate %value BuiltIn Position
OpDecorate %vertex_point_size BuiltIn PointSize
%float = OpTypeFloat 32
%_ptr_Output_float = OpTypePointer Output %float
%4 = OpConstantNull %float
%tint_pointsize = OpVariable %_ptr_Output_float Output %4
%v4float = OpTypeVector %float 4
%_ptr_Output_v4float = OpTypePointer Output %v4float
%8 = OpConstantNull %v4float
%tint_symbol_1 = OpVariable %_ptr_Output_v4float Output %8
%5 = OpConstantNull %v4float
%value = OpVariable %_ptr_Output_v4float Output %5
%_ptr_Output_float = OpTypePointer Output %float
%8 = OpConstantNull %float
%vertex_point_size = OpVariable %_ptr_Output_float Output %8
%void = OpTypeVoid
%9 = OpTypeFunction %void
%float_1 = OpConstant %float 1
%_ptr_Function_float = OpTypePointer Function %float
%18 = OpTypeFunction %void %v4float
%18 = OpTypeFunction %v4float
%acos_489247 = OpFunction %void None %9
%12 = OpLabel
%res = OpVariable %_ptr_Function_float Function %4
%res = OpVariable %_ptr_Function_float Function %8
%13 = OpExtInst %float %14 Acos %float_1
OpStore %res %13
OpReturn
OpFunctionEnd
%tint_symbol_2 = OpFunction %void None %18
%tint_symbol = OpFunctionParameter %v4float
%21 = OpLabel
OpStore %tint_symbol_1 %tint_symbol
OpReturn
%vertex_main_inner = OpFunction %v4float None %18
%20 = OpLabel
%21 = OpFunctionCall %void %acos_489247
OpReturnValue %5
OpFunctionEnd
%vertex_main = OpFunction %void None %9
%23 = OpLabel
OpStore %tint_pointsize %float_1
%24 = OpFunctionCall %void %acos_489247
%25 = OpFunctionCall %void %tint_symbol_2 %8
%24 = OpFunctionCall %v4float %vertex_main_inner
OpStore %value %24
OpStore %vertex_point_size %float_1
OpReturn
OpFunctionEnd
%fragment_main = OpFunction %void None %9
%27 = OpLabel
%28 = OpFunctionCall %void %acos_489247
%26 = OpLabel
%27 = OpFunctionCall %void %acos_489247
OpReturn
OpFunctionEnd
%compute_main = OpFunction %void None %9
%30 = OpLabel
%31 = OpFunctionCall %void %acos_489247
%29 = OpLabel
%30 = OpFunctionCall %void %acos_489247
OpReturn
OpFunctionEnd

View File

@ -1,67 +1,65 @@
; SPIR-V
; Version: 1.3
; Generator: Google Tint Compiler; 0
; Bound: 32
; Bound: 31
; Schema: 0
OpCapability Shader
%14 = OpExtInstImport "GLSL.std.450"
OpMemoryModel Logical GLSL450
OpEntryPoint Vertex %vertex_main "vertex_main" %tint_pointsize %tint_symbol_1
OpEntryPoint Vertex %vertex_main "vertex_main" %value %vertex_point_size
OpEntryPoint Fragment %fragment_main "fragment_main"
OpEntryPoint GLCompute %compute_main "compute_main"
OpExecutionMode %fragment_main OriginUpperLeft
OpExecutionMode %compute_main LocalSize 1 1 1
OpName %tint_pointsize "tint_pointsize"
OpName %tint_symbol_1 "tint_symbol_1"
OpName %value "value"
OpName %vertex_point_size "vertex_point_size"
OpName %acos_8e2acf "acos_8e2acf"
OpName %res "res"
OpName %tint_symbol_2 "tint_symbol_2"
OpName %tint_symbol "tint_symbol"
OpName %vertex_main_inner "vertex_main_inner"
OpName %vertex_main "vertex_main"
OpName %fragment_main "fragment_main"
OpName %compute_main "compute_main"
OpDecorate %tint_pointsize BuiltIn PointSize
OpDecorate %tint_symbol_1 BuiltIn Position
OpDecorate %value BuiltIn Position
OpDecorate %vertex_point_size BuiltIn PointSize
%float = OpTypeFloat 32
%_ptr_Output_float = OpTypePointer Output %float
%4 = OpConstantNull %float
%tint_pointsize = OpVariable %_ptr_Output_float Output %4
%v4float = OpTypeVector %float 4
%_ptr_Output_v4float = OpTypePointer Output %v4float
%8 = OpConstantNull %v4float
%tint_symbol_1 = OpVariable %_ptr_Output_v4float Output %8
%5 = OpConstantNull %v4float
%value = OpVariable %_ptr_Output_v4float Output %5
%_ptr_Output_float = OpTypePointer Output %float
%8 = OpConstantNull %float
%vertex_point_size = OpVariable %_ptr_Output_float Output %8
%void = OpTypeVoid
%9 = OpTypeFunction %void
%_ptr_Function_v4float = OpTypePointer Function %v4float
%17 = OpTypeFunction %void %v4float
%17 = OpTypeFunction %v4float
%float_1 = OpConstant %float 1
%acos_8e2acf = OpFunction %void None %9
%12 = OpLabel
%res = OpVariable %_ptr_Function_v4float Function %8
%13 = OpExtInst %v4float %14 Acos %8
%res = OpVariable %_ptr_Function_v4float Function %5
%13 = OpExtInst %v4float %14 Acos %5
OpStore %res %13
OpReturn
OpFunctionEnd
%tint_symbol_2 = OpFunction %void None %17
%tint_symbol = OpFunctionParameter %v4float
%20 = OpLabel
OpStore %tint_symbol_1 %tint_symbol
OpReturn
%vertex_main_inner = OpFunction %v4float None %17
%19 = OpLabel
%20 = OpFunctionCall %void %acos_8e2acf
OpReturnValue %5
OpFunctionEnd
%vertex_main = OpFunction %void None %9
%22 = OpLabel
OpStore %tint_pointsize %float_1
%24 = OpFunctionCall %void %acos_8e2acf
%25 = OpFunctionCall %void %tint_symbol_2 %8
%23 = OpFunctionCall %v4float %vertex_main_inner
OpStore %value %23
OpStore %vertex_point_size %float_1
OpReturn
OpFunctionEnd
%fragment_main = OpFunction %void None %9
%27 = OpLabel
%28 = OpFunctionCall %void %acos_8e2acf
%26 = OpLabel
%27 = OpFunctionCall %void %acos_8e2acf
OpReturn
OpFunctionEnd
%compute_main = OpFunction %void None %9
%30 = OpLabel
%31 = OpFunctionCall %void %acos_8e2acf
%29 = OpLabel
%30 = OpFunctionCall %void %acos_8e2acf
OpReturn
OpFunctionEnd

View File

@ -1,41 +1,40 @@
; SPIR-V
; Version: 1.3
; Generator: Google Tint Compiler; 0
; Bound: 34
; Bound: 33
; Schema: 0
OpCapability Shader
%15 = OpExtInstImport "GLSL.std.450"
OpMemoryModel Logical GLSL450
OpEntryPoint Vertex %vertex_main "vertex_main" %tint_pointsize %tint_symbol_1
OpEntryPoint Vertex %vertex_main "vertex_main" %value %vertex_point_size
OpEntryPoint Fragment %fragment_main "fragment_main"
OpEntryPoint GLCompute %compute_main "compute_main"
OpExecutionMode %fragment_main OriginUpperLeft
OpExecutionMode %compute_main LocalSize 1 1 1
OpName %tint_pointsize "tint_pointsize"
OpName %tint_symbol_1 "tint_symbol_1"
OpName %value "value"
OpName %vertex_point_size "vertex_point_size"
OpName %acos_a610c4 "acos_a610c4"
OpName %res "res"
OpName %tint_symbol_2 "tint_symbol_2"
OpName %tint_symbol "tint_symbol"
OpName %vertex_main_inner "vertex_main_inner"
OpName %vertex_main "vertex_main"
OpName %fragment_main "fragment_main"
OpName %compute_main "compute_main"
OpDecorate %tint_pointsize BuiltIn PointSize
OpDecorate %tint_symbol_1 BuiltIn Position
OpDecorate %value BuiltIn Position
OpDecorate %vertex_point_size BuiltIn PointSize
%float = OpTypeFloat 32
%_ptr_Output_float = OpTypePointer Output %float
%4 = OpConstantNull %float
%tint_pointsize = OpVariable %_ptr_Output_float Output %4
%v4float = OpTypeVector %float 4
%_ptr_Output_v4float = OpTypePointer Output %v4float
%8 = OpConstantNull %v4float
%tint_symbol_1 = OpVariable %_ptr_Output_v4float Output %8
%5 = OpConstantNull %v4float
%value = OpVariable %_ptr_Output_v4float Output %5
%_ptr_Output_float = OpTypePointer Output %float
%8 = OpConstantNull %float
%vertex_point_size = OpVariable %_ptr_Output_float Output %8
%void = OpTypeVoid
%9 = OpTypeFunction %void
%v3float = OpTypeVector %float 3
%16 = OpConstantNull %v3float
%_ptr_Function_v3float = OpTypePointer Function %v3float
%19 = OpTypeFunction %void %v4float
%19 = OpTypeFunction %v4float
%float_1 = OpConstant %float 1
%acos_a610c4 = OpFunction %void None %9
%12 = OpLabel
@ -44,26 +43,25 @@
OpStore %res %13
OpReturn
OpFunctionEnd
%tint_symbol_2 = OpFunction %void None %19
%tint_symbol = OpFunctionParameter %v4float
%22 = OpLabel
OpStore %tint_symbol_1 %tint_symbol
OpReturn
%vertex_main_inner = OpFunction %v4float None %19
%21 = OpLabel
%22 = OpFunctionCall %void %acos_a610c4
OpReturnValue %5
OpFunctionEnd
%vertex_main = OpFunction %void None %9
%24 = OpLabel
OpStore %tint_pointsize %float_1
%26 = OpFunctionCall %void %acos_a610c4
%27 = OpFunctionCall %void %tint_symbol_2 %8
%25 = OpFunctionCall %v4float %vertex_main_inner
OpStore %value %25
OpStore %vertex_point_size %float_1
OpReturn
OpFunctionEnd
%fragment_main = OpFunction %void None %9
%29 = OpLabel
%30 = OpFunctionCall %void %acos_a610c4
%28 = OpLabel
%29 = OpFunctionCall %void %acos_a610c4
OpReturn
OpFunctionEnd
%compute_main = OpFunction %void None %9
%32 = OpLabel
%33 = OpFunctionCall %void %acos_a610c4
%31 = OpLabel
%32 = OpFunctionCall %void %acos_a610c4
OpReturn
OpFunctionEnd

View File

@ -1,41 +1,40 @@
; SPIR-V
; Version: 1.3
; Generator: Google Tint Compiler; 0
; Bound: 34
; Bound: 33
; Schema: 0
OpCapability Shader
%15 = OpExtInstImport "GLSL.std.450"
OpMemoryModel Logical GLSL450
OpEntryPoint Vertex %vertex_main "vertex_main" %tint_pointsize %tint_symbol_1
OpEntryPoint Vertex %vertex_main "vertex_main" %value %vertex_point_size
OpEntryPoint Fragment %fragment_main "fragment_main"
OpEntryPoint GLCompute %compute_main "compute_main"
OpExecutionMode %fragment_main OriginUpperLeft
OpExecutionMode %compute_main LocalSize 1 1 1
OpName %tint_pointsize "tint_pointsize"
OpName %tint_symbol_1 "tint_symbol_1"
OpName %value "value"
OpName %vertex_point_size "vertex_point_size"
OpName %acos_dfc915 "acos_dfc915"
OpName %res "res"
OpName %tint_symbol_2 "tint_symbol_2"
OpName %tint_symbol "tint_symbol"
OpName %vertex_main_inner "vertex_main_inner"
OpName %vertex_main "vertex_main"
OpName %fragment_main "fragment_main"
OpName %compute_main "compute_main"
OpDecorate %tint_pointsize BuiltIn PointSize
OpDecorate %tint_symbol_1 BuiltIn Position
OpDecorate %value BuiltIn Position
OpDecorate %vertex_point_size BuiltIn PointSize
%float = OpTypeFloat 32
%_ptr_Output_float = OpTypePointer Output %float
%4 = OpConstantNull %float
%tint_pointsize = OpVariable %_ptr_Output_float Output %4
%v4float = OpTypeVector %float 4
%_ptr_Output_v4float = OpTypePointer Output %v4float
%8 = OpConstantNull %v4float
%tint_symbol_1 = OpVariable %_ptr_Output_v4float Output %8
%5 = OpConstantNull %v4float
%value = OpVariable %_ptr_Output_v4float Output %5
%_ptr_Output_float = OpTypePointer Output %float
%8 = OpConstantNull %float
%vertex_point_size = OpVariable %_ptr_Output_float Output %8
%void = OpTypeVoid
%9 = OpTypeFunction %void
%v2float = OpTypeVector %float 2
%16 = OpConstantNull %v2float
%_ptr_Function_v2float = OpTypePointer Function %v2float
%19 = OpTypeFunction %void %v4float
%19 = OpTypeFunction %v4float
%float_1 = OpConstant %float 1
%acos_dfc915 = OpFunction %void None %9
%12 = OpLabel
@ -44,26 +43,25 @@
OpStore %res %13
OpReturn
OpFunctionEnd
%tint_symbol_2 = OpFunction %void None %19
%tint_symbol = OpFunctionParameter %v4float
%22 = OpLabel
OpStore %tint_symbol_1 %tint_symbol
OpReturn
%vertex_main_inner = OpFunction %v4float None %19
%21 = OpLabel
%22 = OpFunctionCall %void %acos_dfc915
OpReturnValue %5
OpFunctionEnd
%vertex_main = OpFunction %void None %9
%24 = OpLabel
OpStore %tint_pointsize %float_1
%26 = OpFunctionCall %void %acos_dfc915
%27 = OpFunctionCall %void %tint_symbol_2 %8
%25 = OpFunctionCall %v4float %vertex_main_inner
OpStore %value %25
OpStore %vertex_point_size %float_1
OpReturn
OpFunctionEnd
%fragment_main = OpFunction %void None %9
%29 = OpLabel
%30 = OpFunctionCall %void %acos_dfc915
%28 = OpLabel
%29 = OpFunctionCall %void %acos_dfc915
OpReturn
OpFunctionEnd
%compute_main = OpFunction %void None %9
%32 = OpLabel
%33 = OpFunctionCall %void %acos_dfc915
%31 = OpLabel
%32 = OpFunctionCall %void %acos_dfc915
OpReturn
OpFunctionEnd

View File

@ -1,34 +1,33 @@
; SPIR-V
; Version: 1.3
; Generator: Google Tint Compiler; 0
; Bound: 35
; Bound: 34
; Schema: 0
OpCapability Shader
OpMemoryModel Logical GLSL450
OpEntryPoint Vertex %vertex_main "vertex_main" %tint_pointsize %tint_symbol_1
OpEntryPoint Vertex %vertex_main "vertex_main" %value %vertex_point_size
OpEntryPoint Fragment %fragment_main "fragment_main"
OpEntryPoint GLCompute %compute_main "compute_main"
OpExecutionMode %fragment_main OriginUpperLeft
OpExecutionMode %compute_main LocalSize 1 1 1
OpName %tint_pointsize "tint_pointsize"
OpName %tint_symbol_1 "tint_symbol_1"
OpName %value "value"
OpName %vertex_point_size "vertex_point_size"
OpName %all_986c7b "all_986c7b"
OpName %res "res"
OpName %tint_symbol_2 "tint_symbol_2"
OpName %tint_symbol "tint_symbol"
OpName %vertex_main_inner "vertex_main_inner"
OpName %vertex_main "vertex_main"
OpName %fragment_main "fragment_main"
OpName %compute_main "compute_main"
OpDecorate %tint_pointsize BuiltIn PointSize
OpDecorate %tint_symbol_1 BuiltIn Position
OpDecorate %value BuiltIn Position
OpDecorate %vertex_point_size BuiltIn PointSize
%float = OpTypeFloat 32
%_ptr_Output_float = OpTypePointer Output %float
%4 = OpConstantNull %float
%tint_pointsize = OpVariable %_ptr_Output_float Output %4
%v4float = OpTypeVector %float 4
%_ptr_Output_v4float = OpTypePointer Output %v4float
%8 = OpConstantNull %v4float
%tint_symbol_1 = OpVariable %_ptr_Output_v4float Output %8
%5 = OpConstantNull %v4float
%value = OpVariable %_ptr_Output_v4float Output %5
%_ptr_Output_float = OpTypePointer Output %float
%8 = OpConstantNull %float
%vertex_point_size = OpVariable %_ptr_Output_float Output %8
%void = OpTypeVoid
%9 = OpTypeFunction %void
%bool = OpTypeBool
@ -36,7 +35,7 @@
%16 = OpConstantNull %v4bool
%_ptr_Function_bool = OpTypePointer Function %bool
%19 = OpConstantNull %bool
%20 = OpTypeFunction %void %v4float
%20 = OpTypeFunction %v4float
%float_1 = OpConstant %float 1
%all_986c7b = OpFunction %void None %9
%12 = OpLabel
@ -45,26 +44,25 @@
OpStore %res %13
OpReturn
OpFunctionEnd
%tint_symbol_2 = OpFunction %void None %20
%tint_symbol = OpFunctionParameter %v4float
%23 = OpLabel
OpStore %tint_symbol_1 %tint_symbol
OpReturn
%vertex_main_inner = OpFunction %v4float None %20
%22 = OpLabel
%23 = OpFunctionCall %void %all_986c7b
OpReturnValue %5
OpFunctionEnd
%vertex_main = OpFunction %void None %9
%25 = OpLabel
OpStore %tint_pointsize %float_1
%27 = OpFunctionCall %void %all_986c7b
%28 = OpFunctionCall %void %tint_symbol_2 %8
%26 = OpFunctionCall %v4float %vertex_main_inner
OpStore %value %26
OpStore %vertex_point_size %float_1
OpReturn
OpFunctionEnd
%fragment_main = OpFunction %void None %9
%30 = OpLabel
%31 = OpFunctionCall %void %all_986c7b
%29 = OpLabel
%30 = OpFunctionCall %void %all_986c7b
OpReturn
OpFunctionEnd
%compute_main = OpFunction %void None %9
%33 = OpLabel
%34 = OpFunctionCall %void %all_986c7b
%32 = OpLabel
%33 = OpFunctionCall %void %all_986c7b
OpReturn
OpFunctionEnd

View File

@ -1,34 +1,33 @@
; SPIR-V
; Version: 1.3
; Generator: Google Tint Compiler; 0
; Bound: 35
; Bound: 34
; Schema: 0
OpCapability Shader
OpMemoryModel Logical GLSL450
OpEntryPoint Vertex %vertex_main "vertex_main" %tint_pointsize %tint_symbol_1
OpEntryPoint Vertex %vertex_main "vertex_main" %value %vertex_point_size
OpEntryPoint Fragment %fragment_main "fragment_main"
OpEntryPoint GLCompute %compute_main "compute_main"
OpExecutionMode %fragment_main OriginUpperLeft
OpExecutionMode %compute_main LocalSize 1 1 1
OpName %tint_pointsize "tint_pointsize"
OpName %tint_symbol_1 "tint_symbol_1"
OpName %value "value"
OpName %vertex_point_size "vertex_point_size"
OpName %all_bd2dba "all_bd2dba"
OpName %res "res"
OpName %tint_symbol_2 "tint_symbol_2"
OpName %tint_symbol "tint_symbol"
OpName %vertex_main_inner "vertex_main_inner"
OpName %vertex_main "vertex_main"
OpName %fragment_main "fragment_main"
OpName %compute_main "compute_main"
OpDecorate %tint_pointsize BuiltIn PointSize
OpDecorate %tint_symbol_1 BuiltIn Position
OpDecorate %value BuiltIn Position
OpDecorate %vertex_point_size BuiltIn PointSize
%float = OpTypeFloat 32
%_ptr_Output_float = OpTypePointer Output %float
%4 = OpConstantNull %float
%tint_pointsize = OpVariable %_ptr_Output_float Output %4
%v4float = OpTypeVector %float 4
%_ptr_Output_v4float = OpTypePointer Output %v4float
%8 = OpConstantNull %v4float
%tint_symbol_1 = OpVariable %_ptr_Output_v4float Output %8
%5 = OpConstantNull %v4float
%value = OpVariable %_ptr_Output_v4float Output %5
%_ptr_Output_float = OpTypePointer Output %float
%8 = OpConstantNull %float
%vertex_point_size = OpVariable %_ptr_Output_float Output %8
%void = OpTypeVoid
%9 = OpTypeFunction %void
%bool = OpTypeBool
@ -36,7 +35,7 @@
%16 = OpConstantNull %v3bool
%_ptr_Function_bool = OpTypePointer Function %bool
%19 = OpConstantNull %bool
%20 = OpTypeFunction %void %v4float
%20 = OpTypeFunction %v4float
%float_1 = OpConstant %float 1
%all_bd2dba = OpFunction %void None %9
%12 = OpLabel
@ -45,26 +44,25 @@
OpStore %res %13
OpReturn
OpFunctionEnd
%tint_symbol_2 = OpFunction %void None %20
%tint_symbol = OpFunctionParameter %v4float
%23 = OpLabel
OpStore %tint_symbol_1 %tint_symbol
OpReturn
%vertex_main_inner = OpFunction %v4float None %20
%22 = OpLabel
%23 = OpFunctionCall %void %all_bd2dba
OpReturnValue %5
OpFunctionEnd
%vertex_main = OpFunction %void None %9
%25 = OpLabel
OpStore %tint_pointsize %float_1
%27 = OpFunctionCall %void %all_bd2dba
%28 = OpFunctionCall %void %tint_symbol_2 %8
%26 = OpFunctionCall %v4float %vertex_main_inner
OpStore %value %26
OpStore %vertex_point_size %float_1
OpReturn
OpFunctionEnd
%fragment_main = OpFunction %void None %9
%30 = OpLabel
%31 = OpFunctionCall %void %all_bd2dba
%29 = OpLabel
%30 = OpFunctionCall %void %all_bd2dba
OpReturn
OpFunctionEnd
%compute_main = OpFunction %void None %9
%33 = OpLabel
%34 = OpFunctionCall %void %all_bd2dba
%32 = OpLabel
%33 = OpFunctionCall %void %all_bd2dba
OpReturn
OpFunctionEnd

View File

@ -1,34 +1,33 @@
; SPIR-V
; Version: 1.3
; Generator: Google Tint Compiler; 0
; Bound: 35
; Bound: 34
; Schema: 0
OpCapability Shader
OpMemoryModel Logical GLSL450
OpEntryPoint Vertex %vertex_main "vertex_main" %tint_pointsize %tint_symbol_1
OpEntryPoint Vertex %vertex_main "vertex_main" %value %vertex_point_size
OpEntryPoint Fragment %fragment_main "fragment_main"
OpEntryPoint GLCompute %compute_main "compute_main"
OpExecutionMode %fragment_main OriginUpperLeft
OpExecutionMode %compute_main LocalSize 1 1 1
OpName %tint_pointsize "tint_pointsize"
OpName %tint_symbol_1 "tint_symbol_1"
OpName %value "value"
OpName %vertex_point_size "vertex_point_size"
OpName %all_f46790 "all_f46790"
OpName %res "res"
OpName %tint_symbol_2 "tint_symbol_2"
OpName %tint_symbol "tint_symbol"
OpName %vertex_main_inner "vertex_main_inner"
OpName %vertex_main "vertex_main"
OpName %fragment_main "fragment_main"
OpName %compute_main "compute_main"
OpDecorate %tint_pointsize BuiltIn PointSize
OpDecorate %tint_symbol_1 BuiltIn Position
OpDecorate %value BuiltIn Position
OpDecorate %vertex_point_size BuiltIn PointSize
%float = OpTypeFloat 32
%_ptr_Output_float = OpTypePointer Output %float
%4 = OpConstantNull %float
%tint_pointsize = OpVariable %_ptr_Output_float Output %4
%v4float = OpTypeVector %float 4
%_ptr_Output_v4float = OpTypePointer Output %v4float
%8 = OpConstantNull %v4float
%tint_symbol_1 = OpVariable %_ptr_Output_v4float Output %8
%5 = OpConstantNull %v4float
%value = OpVariable %_ptr_Output_v4float Output %5
%_ptr_Output_float = OpTypePointer Output %float
%8 = OpConstantNull %float
%vertex_point_size = OpVariable %_ptr_Output_float Output %8
%void = OpTypeVoid
%9 = OpTypeFunction %void
%bool = OpTypeBool
@ -36,7 +35,7 @@
%16 = OpConstantNull %v2bool
%_ptr_Function_bool = OpTypePointer Function %bool
%19 = OpConstantNull %bool
%20 = OpTypeFunction %void %v4float
%20 = OpTypeFunction %v4float
%float_1 = OpConstant %float 1
%all_f46790 = OpFunction %void None %9
%12 = OpLabel
@ -45,26 +44,25 @@
OpStore %res %13
OpReturn
OpFunctionEnd
%tint_symbol_2 = OpFunction %void None %20
%tint_symbol = OpFunctionParameter %v4float
%23 = OpLabel
OpStore %tint_symbol_1 %tint_symbol
OpReturn
%vertex_main_inner = OpFunction %v4float None %20
%22 = OpLabel
%23 = OpFunctionCall %void %all_f46790
OpReturnValue %5
OpFunctionEnd
%vertex_main = OpFunction %void None %9
%25 = OpLabel
OpStore %tint_pointsize %float_1
%27 = OpFunctionCall %void %all_f46790
%28 = OpFunctionCall %void %tint_symbol_2 %8
%26 = OpFunctionCall %v4float %vertex_main_inner
OpStore %value %26
OpStore %vertex_point_size %float_1
OpReturn
OpFunctionEnd
%fragment_main = OpFunction %void None %9
%30 = OpLabel
%31 = OpFunctionCall %void %all_f46790
%29 = OpLabel
%30 = OpFunctionCall %void %all_f46790
OpReturn
OpFunctionEnd
%compute_main = OpFunction %void None %9
%33 = OpLabel
%34 = OpFunctionCall %void %all_f46790
%32 = OpLabel
%33 = OpFunctionCall %void %all_f46790
OpReturn
OpFunctionEnd

View File

@ -1,34 +1,33 @@
; SPIR-V
; Version: 1.3
; Generator: Google Tint Compiler; 0
; Bound: 35
; Bound: 34
; Schema: 0
OpCapability Shader
OpMemoryModel Logical GLSL450
OpEntryPoint Vertex %vertex_main "vertex_main" %tint_pointsize %tint_symbol_1
OpEntryPoint Vertex %vertex_main "vertex_main" %value %vertex_point_size
OpEntryPoint Fragment %fragment_main "fragment_main"
OpEntryPoint GLCompute %compute_main "compute_main"
OpExecutionMode %fragment_main OriginUpperLeft
OpExecutionMode %compute_main LocalSize 1 1 1
OpName %tint_pointsize "tint_pointsize"
OpName %tint_symbol_1 "tint_symbol_1"
OpName %value "value"
OpName %vertex_point_size "vertex_point_size"
OpName %any_083428 "any_083428"
OpName %res "res"
OpName %tint_symbol_2 "tint_symbol_2"
OpName %tint_symbol "tint_symbol"
OpName %vertex_main_inner "vertex_main_inner"
OpName %vertex_main "vertex_main"
OpName %fragment_main "fragment_main"
OpName %compute_main "compute_main"
OpDecorate %tint_pointsize BuiltIn PointSize
OpDecorate %tint_symbol_1 BuiltIn Position
OpDecorate %value BuiltIn Position
OpDecorate %vertex_point_size BuiltIn PointSize
%float = OpTypeFloat 32
%_ptr_Output_float = OpTypePointer Output %float
%4 = OpConstantNull %float
%tint_pointsize = OpVariable %_ptr_Output_float Output %4
%v4float = OpTypeVector %float 4
%_ptr_Output_v4float = OpTypePointer Output %v4float
%8 = OpConstantNull %v4float
%tint_symbol_1 = OpVariable %_ptr_Output_v4float Output %8
%5 = OpConstantNull %v4float
%value = OpVariable %_ptr_Output_v4float Output %5
%_ptr_Output_float = OpTypePointer Output %float
%8 = OpConstantNull %float
%vertex_point_size = OpVariable %_ptr_Output_float Output %8
%void = OpTypeVoid
%9 = OpTypeFunction %void
%bool = OpTypeBool
@ -36,7 +35,7 @@
%16 = OpConstantNull %v4bool
%_ptr_Function_bool = OpTypePointer Function %bool
%19 = OpConstantNull %bool
%20 = OpTypeFunction %void %v4float
%20 = OpTypeFunction %v4float
%float_1 = OpConstant %float 1
%any_083428 = OpFunction %void None %9
%12 = OpLabel
@ -45,26 +44,25 @@
OpStore %res %13
OpReturn
OpFunctionEnd
%tint_symbol_2 = OpFunction %void None %20
%tint_symbol = OpFunctionParameter %v4float
%23 = OpLabel
OpStore %tint_symbol_1 %tint_symbol
OpReturn
%vertex_main_inner = OpFunction %v4float None %20
%22 = OpLabel
%23 = OpFunctionCall %void %any_083428
OpReturnValue %5
OpFunctionEnd
%vertex_main = OpFunction %void None %9
%25 = OpLabel
OpStore %tint_pointsize %float_1
%27 = OpFunctionCall %void %any_083428
%28 = OpFunctionCall %void %tint_symbol_2 %8
%26 = OpFunctionCall %v4float %vertex_main_inner
OpStore %value %26
OpStore %vertex_point_size %float_1
OpReturn
OpFunctionEnd
%fragment_main = OpFunction %void None %9
%30 = OpLabel
%31 = OpFunctionCall %void %any_083428
%29 = OpLabel
%30 = OpFunctionCall %void %any_083428
OpReturn
OpFunctionEnd
%compute_main = OpFunction %void None %9
%33 = OpLabel
%34 = OpFunctionCall %void %any_083428
%32 = OpLabel
%33 = OpFunctionCall %void %any_083428
OpReturn
OpFunctionEnd

View File

@ -1,34 +1,33 @@
; SPIR-V
; Version: 1.3
; Generator: Google Tint Compiler; 0
; Bound: 35
; Bound: 34
; Schema: 0
OpCapability Shader
OpMemoryModel Logical GLSL450
OpEntryPoint Vertex %vertex_main "vertex_main" %tint_pointsize %tint_symbol_1
OpEntryPoint Vertex %vertex_main "vertex_main" %value %vertex_point_size
OpEntryPoint Fragment %fragment_main "fragment_main"
OpEntryPoint GLCompute %compute_main "compute_main"
OpExecutionMode %fragment_main OriginUpperLeft
OpExecutionMode %compute_main LocalSize 1 1 1
OpName %tint_pointsize "tint_pointsize"
OpName %tint_symbol_1 "tint_symbol_1"
OpName %value "value"
OpName %vertex_point_size "vertex_point_size"
OpName %any_0e3e58 "any_0e3e58"
OpName %res "res"
OpName %tint_symbol_2 "tint_symbol_2"
OpName %tint_symbol "tint_symbol"
OpName %vertex_main_inner "vertex_main_inner"
OpName %vertex_main "vertex_main"
OpName %fragment_main "fragment_main"
OpName %compute_main "compute_main"
OpDecorate %tint_pointsize BuiltIn PointSize
OpDecorate %tint_symbol_1 BuiltIn Position
OpDecorate %value BuiltIn Position
OpDecorate %vertex_point_size BuiltIn PointSize
%float = OpTypeFloat 32
%_ptr_Output_float = OpTypePointer Output %float
%4 = OpConstantNull %float
%tint_pointsize = OpVariable %_ptr_Output_float Output %4
%v4float = OpTypeVector %float 4
%_ptr_Output_v4float = OpTypePointer Output %v4float
%8 = OpConstantNull %v4float
%tint_symbol_1 = OpVariable %_ptr_Output_v4float Output %8
%5 = OpConstantNull %v4float
%value = OpVariable %_ptr_Output_v4float Output %5
%_ptr_Output_float = OpTypePointer Output %float
%8 = OpConstantNull %float
%vertex_point_size = OpVariable %_ptr_Output_float Output %8
%void = OpTypeVoid
%9 = OpTypeFunction %void
%bool = OpTypeBool
@ -36,7 +35,7 @@
%16 = OpConstantNull %v2bool
%_ptr_Function_bool = OpTypePointer Function %bool
%19 = OpConstantNull %bool
%20 = OpTypeFunction %void %v4float
%20 = OpTypeFunction %v4float
%float_1 = OpConstant %float 1
%any_0e3e58 = OpFunction %void None %9
%12 = OpLabel
@ -45,26 +44,25 @@
OpStore %res %13
OpReturn
OpFunctionEnd
%tint_symbol_2 = OpFunction %void None %20
%tint_symbol = OpFunctionParameter %v4float
%23 = OpLabel
OpStore %tint_symbol_1 %tint_symbol
OpReturn
%vertex_main_inner = OpFunction %v4float None %20
%22 = OpLabel
%23 = OpFunctionCall %void %any_0e3e58
OpReturnValue %5
OpFunctionEnd
%vertex_main = OpFunction %void None %9
%25 = OpLabel
OpStore %tint_pointsize %float_1
%27 = OpFunctionCall %void %any_0e3e58
%28 = OpFunctionCall %void %tint_symbol_2 %8
%26 = OpFunctionCall %v4float %vertex_main_inner
OpStore %value %26
OpStore %vertex_point_size %float_1
OpReturn
OpFunctionEnd
%fragment_main = OpFunction %void None %9
%30 = OpLabel
%31 = OpFunctionCall %void %any_0e3e58
%29 = OpLabel
%30 = OpFunctionCall %void %any_0e3e58
OpReturn
OpFunctionEnd
%compute_main = OpFunction %void None %9
%33 = OpLabel
%34 = OpFunctionCall %void %any_0e3e58
%32 = OpLabel
%33 = OpFunctionCall %void %any_0e3e58
OpReturn
OpFunctionEnd

View File

@ -1,34 +1,33 @@
; SPIR-V
; Version: 1.3
; Generator: Google Tint Compiler; 0
; Bound: 35
; Bound: 34
; Schema: 0
OpCapability Shader
OpMemoryModel Logical GLSL450
OpEntryPoint Vertex %vertex_main "vertex_main" %tint_pointsize %tint_symbol_1
OpEntryPoint Vertex %vertex_main "vertex_main" %value %vertex_point_size
OpEntryPoint Fragment %fragment_main "fragment_main"
OpEntryPoint GLCompute %compute_main "compute_main"
OpExecutionMode %fragment_main OriginUpperLeft
OpExecutionMode %compute_main LocalSize 1 1 1
OpName %tint_pointsize "tint_pointsize"
OpName %tint_symbol_1 "tint_symbol_1"
OpName %value "value"
OpName %vertex_point_size "vertex_point_size"
OpName %any_e755c1 "any_e755c1"
OpName %res "res"
OpName %tint_symbol_2 "tint_symbol_2"
OpName %tint_symbol "tint_symbol"
OpName %vertex_main_inner "vertex_main_inner"
OpName %vertex_main "vertex_main"
OpName %fragment_main "fragment_main"
OpName %compute_main "compute_main"
OpDecorate %tint_pointsize BuiltIn PointSize
OpDecorate %tint_symbol_1 BuiltIn Position
OpDecorate %value BuiltIn Position
OpDecorate %vertex_point_size BuiltIn PointSize
%float = OpTypeFloat 32
%_ptr_Output_float = OpTypePointer Output %float
%4 = OpConstantNull %float
%tint_pointsize = OpVariable %_ptr_Output_float Output %4
%v4float = OpTypeVector %float 4
%_ptr_Output_v4float = OpTypePointer Output %v4float
%8 = OpConstantNull %v4float
%tint_symbol_1 = OpVariable %_ptr_Output_v4float Output %8
%5 = OpConstantNull %v4float
%value = OpVariable %_ptr_Output_v4float Output %5
%_ptr_Output_float = OpTypePointer Output %float
%8 = OpConstantNull %float
%vertex_point_size = OpVariable %_ptr_Output_float Output %8
%void = OpTypeVoid
%9 = OpTypeFunction %void
%bool = OpTypeBool
@ -36,7 +35,7 @@
%16 = OpConstantNull %v3bool
%_ptr_Function_bool = OpTypePointer Function %bool
%19 = OpConstantNull %bool
%20 = OpTypeFunction %void %v4float
%20 = OpTypeFunction %v4float
%float_1 = OpConstant %float 1
%any_e755c1 = OpFunction %void None %9
%12 = OpLabel
@ -45,26 +44,25 @@
OpStore %res %13
OpReturn
OpFunctionEnd
%tint_symbol_2 = OpFunction %void None %20
%tint_symbol = OpFunctionParameter %v4float
%23 = OpLabel
OpStore %tint_symbol_1 %tint_symbol
OpReturn
%vertex_main_inner = OpFunction %v4float None %20
%22 = OpLabel
%23 = OpFunctionCall %void %any_e755c1
OpReturnValue %5
OpFunctionEnd
%vertex_main = OpFunction %void None %9
%25 = OpLabel
OpStore %tint_pointsize %float_1
%27 = OpFunctionCall %void %any_e755c1
%28 = OpFunctionCall %void %tint_symbol_2 %8
%26 = OpFunctionCall %v4float %vertex_main_inner
OpStore %value %26
OpStore %vertex_point_size %float_1
OpReturn
OpFunctionEnd
%fragment_main = OpFunction %void None %9
%30 = OpLabel
%31 = OpFunctionCall %void %any_e755c1
%29 = OpLabel
%30 = OpFunctionCall %void %any_e755c1
OpReturn
OpFunctionEnd
%compute_main = OpFunction %void None %9
%33 = OpLabel
%34 = OpFunctionCall %void %any_e755c1
%32 = OpLabel
%33 = OpFunctionCall %void %any_e755c1
OpReturn
OpFunctionEnd

View File

@ -1,54 +1,53 @@
; SPIR-V
; Version: 1.3
; Generator: Google Tint Compiler; 0
; Bound: 38
; Bound: 37
; Schema: 0
OpCapability Shader
OpMemoryModel Logical GLSL450
OpEntryPoint Vertex %vertex_main "vertex_main" %tint_pointsize %tint_symbol_1
OpEntryPoint Vertex %vertex_main "vertex_main" %value %vertex_point_size
OpEntryPoint Fragment %fragment_main "fragment_main"
OpEntryPoint GLCompute %compute_main "compute_main"
OpExecutionMode %fragment_main OriginUpperLeft
OpExecutionMode %compute_main LocalSize 1 1 1
OpName %tint_pointsize "tint_pointsize"
OpName %value "value"
OpName %vertex_point_size "vertex_point_size"
OpName %SB_RO "SB_RO"
OpMemberName %SB_RO 0 "arg_0"
OpName %sb_ro "sb_ro"
OpName %tint_symbol_1 "tint_symbol_1"
OpName %arrayLength_1588cd "arrayLength_1588cd"
OpName %res "res"
OpName %tint_symbol_2 "tint_symbol_2"
OpName %tint_symbol "tint_symbol"
OpName %vertex_main_inner "vertex_main_inner"
OpName %vertex_main "vertex_main"
OpName %fragment_main "fragment_main"
OpName %compute_main "compute_main"
OpDecorate %tint_pointsize BuiltIn PointSize
OpDecorate %value BuiltIn Position
OpDecorate %vertex_point_size BuiltIn PointSize
OpDecorate %SB_RO Block
OpMemberDecorate %SB_RO 0 Offset 0
OpDecorate %_runtimearr_int ArrayStride 4
OpDecorate %sb_ro NonWritable
OpDecorate %sb_ro DescriptorSet 0
OpDecorate %sb_ro Binding 1
OpDecorate %tint_symbol_1 BuiltIn Position
%float = OpTypeFloat 32
%v4float = OpTypeVector %float 4
%_ptr_Output_v4float = OpTypePointer Output %v4float
%5 = OpConstantNull %v4float
%value = OpVariable %_ptr_Output_v4float Output %5
%_ptr_Output_float = OpTypePointer Output %float
%4 = OpConstantNull %float
%tint_pointsize = OpVariable %_ptr_Output_float Output %4
%8 = OpConstantNull %float
%vertex_point_size = OpVariable %_ptr_Output_float Output %8
%int = OpTypeInt 32 1
%_runtimearr_int = OpTypeRuntimeArray %int
%SB_RO = OpTypeStruct %_runtimearr_int
%_ptr_StorageBuffer_SB_RO = OpTypePointer StorageBuffer %SB_RO
%sb_ro = OpVariable %_ptr_StorageBuffer_SB_RO StorageBuffer
%v4float = OpTypeVector %float 4
%_ptr_Output_v4float = OpTypePointer Output %v4float
%13 = OpConstantNull %v4float
%tint_symbol_1 = OpVariable %_ptr_Output_v4float Output %13
%void = OpTypeVoid
%14 = OpTypeFunction %void
%uint = OpTypeInt 32 0
%_ptr_Function_uint = OpTypePointer Function %uint
%22 = OpConstantNull %uint
%23 = OpTypeFunction %void %v4float
%23 = OpTypeFunction %v4float
%float_1 = OpConstant %float 1
%arrayLength_1588cd = OpFunction %void None %14
%17 = OpLabel
@ -57,26 +56,25 @@
OpStore %res %18
OpReturn
OpFunctionEnd
%tint_symbol_2 = OpFunction %void None %23
%tint_symbol = OpFunctionParameter %v4float
%26 = OpLabel
OpStore %tint_symbol_1 %tint_symbol
OpReturn
%vertex_main_inner = OpFunction %v4float None %23
%25 = OpLabel
%26 = OpFunctionCall %void %arrayLength_1588cd
OpReturnValue %5
OpFunctionEnd
%vertex_main = OpFunction %void None %14
%28 = OpLabel
OpStore %tint_pointsize %float_1
%30 = OpFunctionCall %void %arrayLength_1588cd
%31 = OpFunctionCall %void %tint_symbol_2 %13
%29 = OpFunctionCall %v4float %vertex_main_inner
OpStore %value %29
OpStore %vertex_point_size %float_1
OpReturn
OpFunctionEnd
%fragment_main = OpFunction %void None %14
%33 = OpLabel
%34 = OpFunctionCall %void %arrayLength_1588cd
%32 = OpLabel
%33 = OpFunctionCall %void %arrayLength_1588cd
OpReturn
OpFunctionEnd
%compute_main = OpFunction %void None %14
%36 = OpLabel
%37 = OpFunctionCall %void %arrayLength_1588cd
%35 = OpLabel
%36 = OpFunctionCall %void %arrayLength_1588cd
OpReturn
OpFunctionEnd

View File

@ -1,53 +1,52 @@
; SPIR-V
; Version: 1.3
; Generator: Google Tint Compiler; 0
; Bound: 38
; Bound: 37
; Schema: 0
OpCapability Shader
OpMemoryModel Logical GLSL450
OpEntryPoint Vertex %vertex_main "vertex_main" %tint_pointsize %tint_symbol_1
OpEntryPoint Vertex %vertex_main "vertex_main" %value %vertex_point_size
OpEntryPoint Fragment %fragment_main "fragment_main"
OpEntryPoint GLCompute %compute_main "compute_main"
OpExecutionMode %fragment_main OriginUpperLeft
OpExecutionMode %compute_main LocalSize 1 1 1
OpName %tint_pointsize "tint_pointsize"
OpName %value "value"
OpName %vertex_point_size "vertex_point_size"
OpName %SB_RW "SB_RW"
OpMemberName %SB_RW 0 "arg_0"
OpName %sb_rw "sb_rw"
OpName %tint_symbol_1 "tint_symbol_1"
OpName %arrayLength_61b1c7 "arrayLength_61b1c7"
OpName %res "res"
OpName %tint_symbol_2 "tint_symbol_2"
OpName %tint_symbol "tint_symbol"
OpName %vertex_main_inner "vertex_main_inner"
OpName %vertex_main "vertex_main"
OpName %fragment_main "fragment_main"
OpName %compute_main "compute_main"
OpDecorate %tint_pointsize BuiltIn PointSize
OpDecorate %value BuiltIn Position
OpDecorate %vertex_point_size BuiltIn PointSize
OpDecorate %SB_RW Block
OpMemberDecorate %SB_RW 0 Offset 0
OpDecorate %_runtimearr_int ArrayStride 4
OpDecorate %sb_rw DescriptorSet 0
OpDecorate %sb_rw Binding 0
OpDecorate %tint_symbol_1 BuiltIn Position
%float = OpTypeFloat 32
%v4float = OpTypeVector %float 4
%_ptr_Output_v4float = OpTypePointer Output %v4float
%5 = OpConstantNull %v4float
%value = OpVariable %_ptr_Output_v4float Output %5
%_ptr_Output_float = OpTypePointer Output %float
%4 = OpConstantNull %float
%tint_pointsize = OpVariable %_ptr_Output_float Output %4
%8 = OpConstantNull %float
%vertex_point_size = OpVariable %_ptr_Output_float Output %8
%int = OpTypeInt 32 1
%_runtimearr_int = OpTypeRuntimeArray %int
%SB_RW = OpTypeStruct %_runtimearr_int
%_ptr_StorageBuffer_SB_RW = OpTypePointer StorageBuffer %SB_RW
%sb_rw = OpVariable %_ptr_StorageBuffer_SB_RW StorageBuffer
%v4float = OpTypeVector %float 4
%_ptr_Output_v4float = OpTypePointer Output %v4float
%13 = OpConstantNull %v4float
%tint_symbol_1 = OpVariable %_ptr_Output_v4float Output %13
%void = OpTypeVoid
%14 = OpTypeFunction %void
%uint = OpTypeInt 32 0
%_ptr_Function_uint = OpTypePointer Function %uint
%22 = OpConstantNull %uint
%23 = OpTypeFunction %void %v4float
%23 = OpTypeFunction %v4float
%float_1 = OpConstant %float 1
%arrayLength_61b1c7 = OpFunction %void None %14
%17 = OpLabel
@ -56,26 +55,25 @@
OpStore %res %18
OpReturn
OpFunctionEnd
%tint_symbol_2 = OpFunction %void None %23
%tint_symbol = OpFunctionParameter %v4float
%26 = OpLabel
OpStore %tint_symbol_1 %tint_symbol
OpReturn
%vertex_main_inner = OpFunction %v4float None %23
%25 = OpLabel
%26 = OpFunctionCall %void %arrayLength_61b1c7
OpReturnValue %5
OpFunctionEnd
%vertex_main = OpFunction %void None %14
%28 = OpLabel
OpStore %tint_pointsize %float_1
%30 = OpFunctionCall %void %arrayLength_61b1c7
%31 = OpFunctionCall %void %tint_symbol_2 %13
%29 = OpFunctionCall %v4float %vertex_main_inner
OpStore %value %29
OpStore %vertex_point_size %float_1
OpReturn
OpFunctionEnd
%fragment_main = OpFunction %void None %14
%33 = OpLabel
%34 = OpFunctionCall %void %arrayLength_61b1c7
%32 = OpLabel
%33 = OpFunctionCall %void %arrayLength_61b1c7
OpReturn
OpFunctionEnd
%compute_main = OpFunction %void None %14
%36 = OpLabel
%37 = OpFunctionCall %void %arrayLength_61b1c7
%35 = OpLabel
%36 = OpFunctionCall %void %arrayLength_61b1c7
OpReturn
OpFunctionEnd

View File

@ -1,53 +1,52 @@
; SPIR-V
; Version: 1.3
; Generator: Google Tint Compiler; 0
; Bound: 37
; Bound: 36
; Schema: 0
OpCapability Shader
OpMemoryModel Logical GLSL450
OpEntryPoint Vertex %vertex_main "vertex_main" %tint_pointsize %tint_symbol_1
OpEntryPoint Vertex %vertex_main "vertex_main" %value %vertex_point_size
OpEntryPoint Fragment %fragment_main "fragment_main"
OpEntryPoint GLCompute %compute_main "compute_main"
OpExecutionMode %fragment_main OriginUpperLeft
OpExecutionMode %compute_main LocalSize 1 1 1
OpName %tint_pointsize "tint_pointsize"
OpName %value "value"
OpName %vertex_point_size "vertex_point_size"
OpName %SB_RO "SB_RO"
OpMemberName %SB_RO 0 "arg_0"
OpName %sb_ro "sb_ro"
OpName %tint_symbol_1 "tint_symbol_1"
OpName %arrayLength_a0f5ca "arrayLength_a0f5ca"
OpName %res "res"
OpName %tint_symbol_2 "tint_symbol_2"
OpName %tint_symbol "tint_symbol"
OpName %vertex_main_inner "vertex_main_inner"
OpName %vertex_main "vertex_main"
OpName %fragment_main "fragment_main"
OpName %compute_main "compute_main"
OpDecorate %tint_pointsize BuiltIn PointSize
OpDecorate %value BuiltIn Position
OpDecorate %vertex_point_size BuiltIn PointSize
OpDecorate %SB_RO Block
OpMemberDecorate %SB_RO 0 Offset 0
OpDecorate %_runtimearr_float ArrayStride 4
OpDecorate %sb_ro NonWritable
OpDecorate %sb_ro DescriptorSet 0
OpDecorate %sb_ro Binding 1
OpDecorate %tint_symbol_1 BuiltIn Position
%float = OpTypeFloat 32
%v4float = OpTypeVector %float 4
%_ptr_Output_v4float = OpTypePointer Output %v4float
%5 = OpConstantNull %v4float
%value = OpVariable %_ptr_Output_v4float Output %5
%_ptr_Output_float = OpTypePointer Output %float
%4 = OpConstantNull %float
%tint_pointsize = OpVariable %_ptr_Output_float Output %4
%8 = OpConstantNull %float
%vertex_point_size = OpVariable %_ptr_Output_float Output %8
%_runtimearr_float = OpTypeRuntimeArray %float
%SB_RO = OpTypeStruct %_runtimearr_float
%_ptr_StorageBuffer_SB_RO = OpTypePointer StorageBuffer %SB_RO
%sb_ro = OpVariable %_ptr_StorageBuffer_SB_RO StorageBuffer
%v4float = OpTypeVector %float 4
%_ptr_Output_v4float = OpTypePointer Output %v4float
%12 = OpConstantNull %v4float
%tint_symbol_1 = OpVariable %_ptr_Output_v4float Output %12
%void = OpTypeVoid
%13 = OpTypeFunction %void
%uint = OpTypeInt 32 0
%_ptr_Function_uint = OpTypePointer Function %uint
%21 = OpConstantNull %uint
%22 = OpTypeFunction %void %v4float
%22 = OpTypeFunction %v4float
%float_1 = OpConstant %float 1
%arrayLength_a0f5ca = OpFunction %void None %13
%16 = OpLabel
@ -56,26 +55,25 @@
OpStore %res %17
OpReturn
OpFunctionEnd
%tint_symbol_2 = OpFunction %void None %22
%tint_symbol = OpFunctionParameter %v4float
%25 = OpLabel
OpStore %tint_symbol_1 %tint_symbol
OpReturn
%vertex_main_inner = OpFunction %v4float None %22
%24 = OpLabel
%25 = OpFunctionCall %void %arrayLength_a0f5ca
OpReturnValue %5
OpFunctionEnd
%vertex_main = OpFunction %void None %13
%27 = OpLabel
OpStore %tint_pointsize %float_1
%29 = OpFunctionCall %void %arrayLength_a0f5ca
%30 = OpFunctionCall %void %tint_symbol_2 %12
%28 = OpFunctionCall %v4float %vertex_main_inner
OpStore %value %28
OpStore %vertex_point_size %float_1
OpReturn
OpFunctionEnd
%fragment_main = OpFunction %void None %13
%32 = OpLabel
%33 = OpFunctionCall %void %arrayLength_a0f5ca
%31 = OpLabel
%32 = OpFunctionCall %void %arrayLength_a0f5ca
OpReturn
OpFunctionEnd
%compute_main = OpFunction %void None %13
%35 = OpLabel
%36 = OpFunctionCall %void %arrayLength_a0f5ca
%34 = OpLabel
%35 = OpFunctionCall %void %arrayLength_a0f5ca
OpReturn
OpFunctionEnd

View File

@ -1,52 +1,51 @@
; SPIR-V
; Version: 1.3
; Generator: Google Tint Compiler; 0
; Bound: 37
; Bound: 36
; Schema: 0
OpCapability Shader
OpMemoryModel Logical GLSL450
OpEntryPoint Vertex %vertex_main "vertex_main" %tint_pointsize %tint_symbol_1
OpEntryPoint Vertex %vertex_main "vertex_main" %value %vertex_point_size
OpEntryPoint Fragment %fragment_main "fragment_main"
OpEntryPoint GLCompute %compute_main "compute_main"
OpExecutionMode %fragment_main OriginUpperLeft
OpExecutionMode %compute_main LocalSize 1 1 1
OpName %tint_pointsize "tint_pointsize"
OpName %value "value"
OpName %vertex_point_size "vertex_point_size"
OpName %SB_RW "SB_RW"
OpMemberName %SB_RW 0 "arg_0"
OpName %sb_rw "sb_rw"
OpName %tint_symbol_1 "tint_symbol_1"
OpName %arrayLength_cdd123 "arrayLength_cdd123"
OpName %res "res"
OpName %tint_symbol_2 "tint_symbol_2"
OpName %tint_symbol "tint_symbol"
OpName %vertex_main_inner "vertex_main_inner"
OpName %vertex_main "vertex_main"
OpName %fragment_main "fragment_main"
OpName %compute_main "compute_main"
OpDecorate %tint_pointsize BuiltIn PointSize
OpDecorate %value BuiltIn Position
OpDecorate %vertex_point_size BuiltIn PointSize
OpDecorate %SB_RW Block
OpMemberDecorate %SB_RW 0 Offset 0
OpDecorate %_runtimearr_float ArrayStride 4
OpDecorate %sb_rw DescriptorSet 0
OpDecorate %sb_rw Binding 0
OpDecorate %tint_symbol_1 BuiltIn Position
%float = OpTypeFloat 32
%v4float = OpTypeVector %float 4
%_ptr_Output_v4float = OpTypePointer Output %v4float
%5 = OpConstantNull %v4float
%value = OpVariable %_ptr_Output_v4float Output %5
%_ptr_Output_float = OpTypePointer Output %float
%4 = OpConstantNull %float
%tint_pointsize = OpVariable %_ptr_Output_float Output %4
%8 = OpConstantNull %float
%vertex_point_size = OpVariable %_ptr_Output_float Output %8
%_runtimearr_float = OpTypeRuntimeArray %float
%SB_RW = OpTypeStruct %_runtimearr_float
%_ptr_StorageBuffer_SB_RW = OpTypePointer StorageBuffer %SB_RW
%sb_rw = OpVariable %_ptr_StorageBuffer_SB_RW StorageBuffer
%v4float = OpTypeVector %float 4
%_ptr_Output_v4float = OpTypePointer Output %v4float
%12 = OpConstantNull %v4float
%tint_symbol_1 = OpVariable %_ptr_Output_v4float Output %12
%void = OpTypeVoid
%13 = OpTypeFunction %void
%uint = OpTypeInt 32 0
%_ptr_Function_uint = OpTypePointer Function %uint
%21 = OpConstantNull %uint
%22 = OpTypeFunction %void %v4float
%22 = OpTypeFunction %v4float
%float_1 = OpConstant %float 1
%arrayLength_cdd123 = OpFunction %void None %13
%16 = OpLabel
@ -55,26 +54,25 @@
OpStore %res %17
OpReturn
OpFunctionEnd
%tint_symbol_2 = OpFunction %void None %22
%tint_symbol = OpFunctionParameter %v4float
%25 = OpLabel
OpStore %tint_symbol_1 %tint_symbol
OpReturn
%vertex_main_inner = OpFunction %v4float None %22
%24 = OpLabel
%25 = OpFunctionCall %void %arrayLength_cdd123
OpReturnValue %5
OpFunctionEnd
%vertex_main = OpFunction %void None %13
%27 = OpLabel
OpStore %tint_pointsize %float_1
%29 = OpFunctionCall %void %arrayLength_cdd123
%30 = OpFunctionCall %void %tint_symbol_2 %12
%28 = OpFunctionCall %v4float %vertex_main_inner
OpStore %value %28
OpStore %vertex_point_size %float_1
OpReturn
OpFunctionEnd
%fragment_main = OpFunction %void None %13
%32 = OpLabel
%33 = OpFunctionCall %void %arrayLength_cdd123
%31 = OpLabel
%32 = OpFunctionCall %void %arrayLength_cdd123
OpReturn
OpFunctionEnd
%compute_main = OpFunction %void None %13
%35 = OpLabel
%36 = OpFunctionCall %void %arrayLength_cdd123
%34 = OpLabel
%35 = OpFunctionCall %void %arrayLength_cdd123
OpReturn
OpFunctionEnd

View File

@ -1,53 +1,52 @@
; SPIR-V
; Version: 1.3
; Generator: Google Tint Compiler; 0
; Bound: 37
; Bound: 36
; Schema: 0
OpCapability Shader
OpMemoryModel Logical GLSL450
OpEntryPoint Vertex %vertex_main "vertex_main" %tint_pointsize %tint_symbol_1
OpEntryPoint Vertex %vertex_main "vertex_main" %value %vertex_point_size
OpEntryPoint Fragment %fragment_main "fragment_main"
OpEntryPoint GLCompute %compute_main "compute_main"
OpExecutionMode %fragment_main OriginUpperLeft
OpExecutionMode %compute_main LocalSize 1 1 1
OpName %tint_pointsize "tint_pointsize"
OpName %value "value"
OpName %vertex_point_size "vertex_point_size"
OpName %SB_RO "SB_RO"
OpMemberName %SB_RO 0 "arg_0"
OpName %sb_ro "sb_ro"
OpName %tint_symbol_1 "tint_symbol_1"
OpName %arrayLength_cfca0a "arrayLength_cfca0a"
OpName %res "res"
OpName %tint_symbol_2 "tint_symbol_2"
OpName %tint_symbol "tint_symbol"
OpName %vertex_main_inner "vertex_main_inner"
OpName %vertex_main "vertex_main"
OpName %fragment_main "fragment_main"
OpName %compute_main "compute_main"
OpDecorate %tint_pointsize BuiltIn PointSize
OpDecorate %value BuiltIn Position
OpDecorate %vertex_point_size BuiltIn PointSize
OpDecorate %SB_RO Block
OpMemberDecorate %SB_RO 0 Offset 0
OpDecorate %_runtimearr_uint ArrayStride 4
OpDecorate %sb_ro NonWritable
OpDecorate %sb_ro DescriptorSet 0
OpDecorate %sb_ro Binding 1
OpDecorate %tint_symbol_1 BuiltIn Position
%float = OpTypeFloat 32
%v4float = OpTypeVector %float 4
%_ptr_Output_v4float = OpTypePointer Output %v4float
%5 = OpConstantNull %v4float
%value = OpVariable %_ptr_Output_v4float Output %5
%_ptr_Output_float = OpTypePointer Output %float
%4 = OpConstantNull %float
%tint_pointsize = OpVariable %_ptr_Output_float Output %4
%8 = OpConstantNull %float
%vertex_point_size = OpVariable %_ptr_Output_float Output %8
%uint = OpTypeInt 32 0
%_runtimearr_uint = OpTypeRuntimeArray %uint
%SB_RO = OpTypeStruct %_runtimearr_uint
%_ptr_StorageBuffer_SB_RO = OpTypePointer StorageBuffer %SB_RO
%sb_ro = OpVariable %_ptr_StorageBuffer_SB_RO StorageBuffer
%v4float = OpTypeVector %float 4
%_ptr_Output_v4float = OpTypePointer Output %v4float
%13 = OpConstantNull %v4float
%tint_symbol_1 = OpVariable %_ptr_Output_v4float Output %13
%void = OpTypeVoid
%14 = OpTypeFunction %void
%_ptr_Function_uint = OpTypePointer Function %uint
%21 = OpConstantNull %uint
%22 = OpTypeFunction %void %v4float
%22 = OpTypeFunction %v4float
%float_1 = OpConstant %float 1
%arrayLength_cfca0a = OpFunction %void None %14
%17 = OpLabel
@ -56,26 +55,25 @@
OpStore %res %18
OpReturn
OpFunctionEnd
%tint_symbol_2 = OpFunction %void None %22
%tint_symbol = OpFunctionParameter %v4float
%25 = OpLabel
OpStore %tint_symbol_1 %tint_symbol
OpReturn
%vertex_main_inner = OpFunction %v4float None %22
%24 = OpLabel
%25 = OpFunctionCall %void %arrayLength_cfca0a
OpReturnValue %5
OpFunctionEnd
%vertex_main = OpFunction %void None %14
%27 = OpLabel
OpStore %tint_pointsize %float_1
%29 = OpFunctionCall %void %arrayLength_cfca0a
%30 = OpFunctionCall %void %tint_symbol_2 %13
%28 = OpFunctionCall %v4float %vertex_main_inner
OpStore %value %28
OpStore %vertex_point_size %float_1
OpReturn
OpFunctionEnd
%fragment_main = OpFunction %void None %14
%32 = OpLabel
%33 = OpFunctionCall %void %arrayLength_cfca0a
%31 = OpLabel
%32 = OpFunctionCall %void %arrayLength_cfca0a
OpReturn
OpFunctionEnd
%compute_main = OpFunction %void None %14
%35 = OpLabel
%36 = OpFunctionCall %void %arrayLength_cfca0a
%34 = OpLabel
%35 = OpFunctionCall %void %arrayLength_cfca0a
OpReturn
OpFunctionEnd

View File

@ -1,52 +1,51 @@
; SPIR-V
; Version: 1.3
; Generator: Google Tint Compiler; 0
; Bound: 37
; Bound: 36
; Schema: 0
OpCapability Shader
OpMemoryModel Logical GLSL450
OpEntryPoint Vertex %vertex_main "vertex_main" %tint_pointsize %tint_symbol_1
OpEntryPoint Vertex %vertex_main "vertex_main" %value %vertex_point_size
OpEntryPoint Fragment %fragment_main "fragment_main"
OpEntryPoint GLCompute %compute_main "compute_main"
OpExecutionMode %fragment_main OriginUpperLeft
OpExecutionMode %compute_main LocalSize 1 1 1
OpName %tint_pointsize "tint_pointsize"
OpName %value "value"
OpName %vertex_point_size "vertex_point_size"
OpName %SB_RW "SB_RW"
OpMemberName %SB_RW 0 "arg_0"
OpName %sb_rw "sb_rw"
OpName %tint_symbol_1 "tint_symbol_1"
OpName %arrayLength_eb510f "arrayLength_eb510f"
OpName %res "res"
OpName %tint_symbol_2 "tint_symbol_2"
OpName %tint_symbol "tint_symbol"
OpName %vertex_main_inner "vertex_main_inner"
OpName %vertex_main "vertex_main"
OpName %fragment_main "fragment_main"
OpName %compute_main "compute_main"
OpDecorate %tint_pointsize BuiltIn PointSize
OpDecorate %value BuiltIn Position
OpDecorate %vertex_point_size BuiltIn PointSize
OpDecorate %SB_RW Block
OpMemberDecorate %SB_RW 0 Offset 0
OpDecorate %_runtimearr_uint ArrayStride 4
OpDecorate %sb_rw DescriptorSet 0
OpDecorate %sb_rw Binding 0
OpDecorate %tint_symbol_1 BuiltIn Position
%float = OpTypeFloat 32
%v4float = OpTypeVector %float 4
%_ptr_Output_v4float = OpTypePointer Output %v4float
%5 = OpConstantNull %v4float
%value = OpVariable %_ptr_Output_v4float Output %5
%_ptr_Output_float = OpTypePointer Output %float
%4 = OpConstantNull %float
%tint_pointsize = OpVariable %_ptr_Output_float Output %4
%8 = OpConstantNull %float
%vertex_point_size = OpVariable %_ptr_Output_float Output %8
%uint = OpTypeInt 32 0
%_runtimearr_uint = OpTypeRuntimeArray %uint
%SB_RW = OpTypeStruct %_runtimearr_uint
%_ptr_StorageBuffer_SB_RW = OpTypePointer StorageBuffer %SB_RW
%sb_rw = OpVariable %_ptr_StorageBuffer_SB_RW StorageBuffer
%v4float = OpTypeVector %float 4
%_ptr_Output_v4float = OpTypePointer Output %v4float
%13 = OpConstantNull %v4float
%tint_symbol_1 = OpVariable %_ptr_Output_v4float Output %13
%void = OpTypeVoid
%14 = OpTypeFunction %void
%_ptr_Function_uint = OpTypePointer Function %uint
%21 = OpConstantNull %uint
%22 = OpTypeFunction %void %v4float
%22 = OpTypeFunction %v4float
%float_1 = OpConstant %float 1
%arrayLength_eb510f = OpFunction %void None %14
%17 = OpLabel
@ -55,26 +54,25 @@
OpStore %res %18
OpReturn
OpFunctionEnd
%tint_symbol_2 = OpFunction %void None %22
%tint_symbol = OpFunctionParameter %v4float
%25 = OpLabel
OpStore %tint_symbol_1 %tint_symbol
OpReturn
%vertex_main_inner = OpFunction %v4float None %22
%24 = OpLabel
%25 = OpFunctionCall %void %arrayLength_eb510f
OpReturnValue %5
OpFunctionEnd
%vertex_main = OpFunction %void None %14
%27 = OpLabel
OpStore %tint_pointsize %float_1
%29 = OpFunctionCall %void %arrayLength_eb510f
%30 = OpFunctionCall %void %tint_symbol_2 %13
%28 = OpFunctionCall %v4float %vertex_main_inner
OpStore %value %28
OpStore %vertex_point_size %float_1
OpReturn
OpFunctionEnd
%fragment_main = OpFunction %void None %14
%32 = OpLabel
%33 = OpFunctionCall %void %arrayLength_eb510f
%31 = OpLabel
%32 = OpFunctionCall %void %arrayLength_eb510f
OpReturn
OpFunctionEnd
%compute_main = OpFunction %void None %14
%35 = OpLabel
%36 = OpFunctionCall %void %arrayLength_eb510f
%34 = OpLabel
%35 = OpFunctionCall %void %arrayLength_eb510f
OpReturn
OpFunctionEnd

View File

@ -1,67 +1,65 @@
; SPIR-V
; Version: 1.3
; Generator: Google Tint Compiler; 0
; Bound: 32
; Bound: 31
; Schema: 0
OpCapability Shader
%14 = OpExtInstImport "GLSL.std.450"
OpMemoryModel Logical GLSL450
OpEntryPoint Vertex %vertex_main "vertex_main" %tint_pointsize %tint_symbol_1
OpEntryPoint Vertex %vertex_main "vertex_main" %value %vertex_point_size
OpEntryPoint Fragment %fragment_main "fragment_main"
OpEntryPoint GLCompute %compute_main "compute_main"
OpExecutionMode %fragment_main OriginUpperLeft
OpExecutionMode %compute_main LocalSize 1 1 1
OpName %tint_pointsize "tint_pointsize"
OpName %tint_symbol_1 "tint_symbol_1"
OpName %value "value"
OpName %vertex_point_size "vertex_point_size"
OpName %asin_064953 "asin_064953"
OpName %res "res"
OpName %tint_symbol_2 "tint_symbol_2"
OpName %tint_symbol "tint_symbol"
OpName %vertex_main_inner "vertex_main_inner"
OpName %vertex_main "vertex_main"
OpName %fragment_main "fragment_main"
OpName %compute_main "compute_main"
OpDecorate %tint_pointsize BuiltIn PointSize
OpDecorate %tint_symbol_1 BuiltIn Position
OpDecorate %value BuiltIn Position
OpDecorate %vertex_point_size BuiltIn PointSize
%float = OpTypeFloat 32
%_ptr_Output_float = OpTypePointer Output %float
%4 = OpConstantNull %float
%tint_pointsize = OpVariable %_ptr_Output_float Output %4
%v4float = OpTypeVector %float 4
%_ptr_Output_v4float = OpTypePointer Output %v4float
%8 = OpConstantNull %v4float
%tint_symbol_1 = OpVariable %_ptr_Output_v4float Output %8
%5 = OpConstantNull %v4float
%value = OpVariable %_ptr_Output_v4float Output %5
%_ptr_Output_float = OpTypePointer Output %float
%8 = OpConstantNull %float
%vertex_point_size = OpVariable %_ptr_Output_float Output %8
%void = OpTypeVoid
%9 = OpTypeFunction %void
%_ptr_Function_v4float = OpTypePointer Function %v4float
%17 = OpTypeFunction %void %v4float
%17 = OpTypeFunction %v4float
%float_1 = OpConstant %float 1
%asin_064953 = OpFunction %void None %9
%12 = OpLabel
%res = OpVariable %_ptr_Function_v4float Function %8
%13 = OpExtInst %v4float %14 Asin %8
%res = OpVariable %_ptr_Function_v4float Function %5
%13 = OpExtInst %v4float %14 Asin %5
OpStore %res %13
OpReturn
OpFunctionEnd
%tint_symbol_2 = OpFunction %void None %17
%tint_symbol = OpFunctionParameter %v4float
%20 = OpLabel
OpStore %tint_symbol_1 %tint_symbol
OpReturn
%vertex_main_inner = OpFunction %v4float None %17
%19 = OpLabel
%20 = OpFunctionCall %void %asin_064953
OpReturnValue %5
OpFunctionEnd
%vertex_main = OpFunction %void None %9
%22 = OpLabel
OpStore %tint_pointsize %float_1
%24 = OpFunctionCall %void %asin_064953
%25 = OpFunctionCall %void %tint_symbol_2 %8
%23 = OpFunctionCall %v4float %vertex_main_inner
OpStore %value %23
OpStore %vertex_point_size %float_1
OpReturn
OpFunctionEnd
%fragment_main = OpFunction %void None %9
%27 = OpLabel
%28 = OpFunctionCall %void %asin_064953
%26 = OpLabel
%27 = OpFunctionCall %void %asin_064953
OpReturn
OpFunctionEnd
%compute_main = OpFunction %void None %9
%30 = OpLabel
%31 = OpFunctionCall %void %asin_064953
%29 = OpLabel
%30 = OpFunctionCall %void %asin_064953
OpReturn
OpFunctionEnd

View File

@ -1,41 +1,40 @@
; SPIR-V
; Version: 1.3
; Generator: Google Tint Compiler; 0
; Bound: 34
; Bound: 33
; Schema: 0
OpCapability Shader
%15 = OpExtInstImport "GLSL.std.450"
OpMemoryModel Logical GLSL450
OpEntryPoint Vertex %vertex_main "vertex_main" %tint_pointsize %tint_symbol_1
OpEntryPoint Vertex %vertex_main "vertex_main" %value %vertex_point_size
OpEntryPoint Fragment %fragment_main "fragment_main"
OpEntryPoint GLCompute %compute_main "compute_main"
OpExecutionMode %fragment_main OriginUpperLeft
OpExecutionMode %compute_main LocalSize 1 1 1
OpName %tint_pointsize "tint_pointsize"
OpName %tint_symbol_1 "tint_symbol_1"
OpName %value "value"
OpName %vertex_point_size "vertex_point_size"
OpName %asin_7b6a44 "asin_7b6a44"
OpName %res "res"
OpName %tint_symbol_2 "tint_symbol_2"
OpName %tint_symbol "tint_symbol"
OpName %vertex_main_inner "vertex_main_inner"
OpName %vertex_main "vertex_main"
OpName %fragment_main "fragment_main"
OpName %compute_main "compute_main"
OpDecorate %tint_pointsize BuiltIn PointSize
OpDecorate %tint_symbol_1 BuiltIn Position
OpDecorate %value BuiltIn Position
OpDecorate %vertex_point_size BuiltIn PointSize
%float = OpTypeFloat 32
%_ptr_Output_float = OpTypePointer Output %float
%4 = OpConstantNull %float
%tint_pointsize = OpVariable %_ptr_Output_float Output %4
%v4float = OpTypeVector %float 4
%_ptr_Output_v4float = OpTypePointer Output %v4float
%8 = OpConstantNull %v4float
%tint_symbol_1 = OpVariable %_ptr_Output_v4float Output %8
%5 = OpConstantNull %v4float
%value = OpVariable %_ptr_Output_v4float Output %5
%_ptr_Output_float = OpTypePointer Output %float
%8 = OpConstantNull %float
%vertex_point_size = OpVariable %_ptr_Output_float Output %8
%void = OpTypeVoid
%9 = OpTypeFunction %void
%v2float = OpTypeVector %float 2
%16 = OpConstantNull %v2float
%_ptr_Function_v2float = OpTypePointer Function %v2float
%19 = OpTypeFunction %void %v4float
%19 = OpTypeFunction %v4float
%float_1 = OpConstant %float 1
%asin_7b6a44 = OpFunction %void None %9
%12 = OpLabel
@ -44,26 +43,25 @@
OpStore %res %13
OpReturn
OpFunctionEnd
%tint_symbol_2 = OpFunction %void None %19
%tint_symbol = OpFunctionParameter %v4float
%22 = OpLabel
OpStore %tint_symbol_1 %tint_symbol
OpReturn
%vertex_main_inner = OpFunction %v4float None %19
%21 = OpLabel
%22 = OpFunctionCall %void %asin_7b6a44
OpReturnValue %5
OpFunctionEnd
%vertex_main = OpFunction %void None %9
%24 = OpLabel
OpStore %tint_pointsize %float_1
%26 = OpFunctionCall %void %asin_7b6a44
%27 = OpFunctionCall %void %tint_symbol_2 %8
%25 = OpFunctionCall %v4float %vertex_main_inner
OpStore %value %25
OpStore %vertex_point_size %float_1
OpReturn
OpFunctionEnd
%fragment_main = OpFunction %void None %9
%29 = OpLabel
%30 = OpFunctionCall %void %asin_7b6a44
%28 = OpLabel
%29 = OpFunctionCall %void %asin_7b6a44
OpReturn
OpFunctionEnd
%compute_main = OpFunction %void None %9
%32 = OpLabel
%33 = OpFunctionCall %void %asin_7b6a44
%31 = OpLabel
%32 = OpFunctionCall %void %asin_7b6a44
OpReturn
OpFunctionEnd

View File

@ -1,41 +1,40 @@
; SPIR-V
; Version: 1.3
; Generator: Google Tint Compiler; 0
; Bound: 34
; Bound: 33
; Schema: 0
OpCapability Shader
%15 = OpExtInstImport "GLSL.std.450"
OpMemoryModel Logical GLSL450
OpEntryPoint Vertex %vertex_main "vertex_main" %tint_pointsize %tint_symbol_1
OpEntryPoint Vertex %vertex_main "vertex_main" %value %vertex_point_size
OpEntryPoint Fragment %fragment_main "fragment_main"
OpEntryPoint GLCompute %compute_main "compute_main"
OpExecutionMode %fragment_main OriginUpperLeft
OpExecutionMode %compute_main LocalSize 1 1 1
OpName %tint_pointsize "tint_pointsize"
OpName %tint_symbol_1 "tint_symbol_1"
OpName %value "value"
OpName %vertex_point_size "vertex_point_size"
OpName %asin_8cd9c9 "asin_8cd9c9"
OpName %res "res"
OpName %tint_symbol_2 "tint_symbol_2"
OpName %tint_symbol "tint_symbol"
OpName %vertex_main_inner "vertex_main_inner"
OpName %vertex_main "vertex_main"
OpName %fragment_main "fragment_main"
OpName %compute_main "compute_main"
OpDecorate %tint_pointsize BuiltIn PointSize
OpDecorate %tint_symbol_1 BuiltIn Position
OpDecorate %value BuiltIn Position
OpDecorate %vertex_point_size BuiltIn PointSize
%float = OpTypeFloat 32
%_ptr_Output_float = OpTypePointer Output %float
%4 = OpConstantNull %float
%tint_pointsize = OpVariable %_ptr_Output_float Output %4
%v4float = OpTypeVector %float 4
%_ptr_Output_v4float = OpTypePointer Output %v4float
%8 = OpConstantNull %v4float
%tint_symbol_1 = OpVariable %_ptr_Output_v4float Output %8
%5 = OpConstantNull %v4float
%value = OpVariable %_ptr_Output_v4float Output %5
%_ptr_Output_float = OpTypePointer Output %float
%8 = OpConstantNull %float
%vertex_point_size = OpVariable %_ptr_Output_float Output %8
%void = OpTypeVoid
%9 = OpTypeFunction %void
%v3float = OpTypeVector %float 3
%16 = OpConstantNull %v3float
%_ptr_Function_v3float = OpTypePointer Function %v3float
%19 = OpTypeFunction %void %v4float
%19 = OpTypeFunction %v4float
%float_1 = OpConstant %float 1
%asin_8cd9c9 = OpFunction %void None %9
%12 = OpLabel
@ -44,26 +43,25 @@
OpStore %res %13
OpReturn
OpFunctionEnd
%tint_symbol_2 = OpFunction %void None %19
%tint_symbol = OpFunctionParameter %v4float
%22 = OpLabel
OpStore %tint_symbol_1 %tint_symbol
OpReturn
%vertex_main_inner = OpFunction %v4float None %19
%21 = OpLabel
%22 = OpFunctionCall %void %asin_8cd9c9
OpReturnValue %5
OpFunctionEnd
%vertex_main = OpFunction %void None %9
%24 = OpLabel
OpStore %tint_pointsize %float_1
%26 = OpFunctionCall %void %asin_8cd9c9
%27 = OpFunctionCall %void %tint_symbol_2 %8
%25 = OpFunctionCall %v4float %vertex_main_inner
OpStore %value %25
OpStore %vertex_point_size %float_1
OpReturn
OpFunctionEnd
%fragment_main = OpFunction %void None %9
%29 = OpLabel
%30 = OpFunctionCall %void %asin_8cd9c9
%28 = OpLabel
%29 = OpFunctionCall %void %asin_8cd9c9
OpReturn
OpFunctionEnd
%compute_main = OpFunction %void None %9
%32 = OpLabel
%33 = OpFunctionCall %void %asin_8cd9c9
%31 = OpLabel
%32 = OpFunctionCall %void %asin_8cd9c9
OpReturn
OpFunctionEnd

View File

@ -1,67 +1,65 @@
; SPIR-V
; Version: 1.3
; Generator: Google Tint Compiler; 0
; Bound: 32
; Bound: 31
; Schema: 0
OpCapability Shader
%14 = OpExtInstImport "GLSL.std.450"
OpMemoryModel Logical GLSL450
OpEntryPoint Vertex %vertex_main "vertex_main" %tint_pointsize %tint_symbol_1
OpEntryPoint Vertex %vertex_main "vertex_main" %value %vertex_point_size
OpEntryPoint Fragment %fragment_main "fragment_main"
OpEntryPoint GLCompute %compute_main "compute_main"
OpExecutionMode %fragment_main OriginUpperLeft
OpExecutionMode %compute_main LocalSize 1 1 1
OpName %tint_pointsize "tint_pointsize"
OpName %tint_symbol_1 "tint_symbol_1"
OpName %value "value"
OpName %vertex_point_size "vertex_point_size"
OpName %asin_c0c272 "asin_c0c272"
OpName %res "res"
OpName %tint_symbol_2 "tint_symbol_2"
OpName %tint_symbol "tint_symbol"
OpName %vertex_main_inner "vertex_main_inner"
OpName %vertex_main "vertex_main"
OpName %fragment_main "fragment_main"
OpName %compute_main "compute_main"
OpDecorate %tint_pointsize BuiltIn PointSize
OpDecorate %tint_symbol_1 BuiltIn Position
OpDecorate %value BuiltIn Position
OpDecorate %vertex_point_size BuiltIn PointSize
%float = OpTypeFloat 32
%_ptr_Output_float = OpTypePointer Output %float
%4 = OpConstantNull %float
%tint_pointsize = OpVariable %_ptr_Output_float Output %4
%v4float = OpTypeVector %float 4
%_ptr_Output_v4float = OpTypePointer Output %v4float
%8 = OpConstantNull %v4float
%tint_symbol_1 = OpVariable %_ptr_Output_v4float Output %8
%5 = OpConstantNull %v4float
%value = OpVariable %_ptr_Output_v4float Output %5
%_ptr_Output_float = OpTypePointer Output %float
%8 = OpConstantNull %float
%vertex_point_size = OpVariable %_ptr_Output_float Output %8
%void = OpTypeVoid
%9 = OpTypeFunction %void
%float_1 = OpConstant %float 1
%_ptr_Function_float = OpTypePointer Function %float
%18 = OpTypeFunction %void %v4float
%18 = OpTypeFunction %v4float
%asin_c0c272 = OpFunction %void None %9
%12 = OpLabel
%res = OpVariable %_ptr_Function_float Function %4
%res = OpVariable %_ptr_Function_float Function %8
%13 = OpExtInst %float %14 Asin %float_1
OpStore %res %13
OpReturn
OpFunctionEnd
%tint_symbol_2 = OpFunction %void None %18
%tint_symbol = OpFunctionParameter %v4float
%21 = OpLabel
OpStore %tint_symbol_1 %tint_symbol
OpReturn
%vertex_main_inner = OpFunction %v4float None %18
%20 = OpLabel
%21 = OpFunctionCall %void %asin_c0c272
OpReturnValue %5
OpFunctionEnd
%vertex_main = OpFunction %void None %9
%23 = OpLabel
OpStore %tint_pointsize %float_1
%24 = OpFunctionCall %void %asin_c0c272
%25 = OpFunctionCall %void %tint_symbol_2 %8
%24 = OpFunctionCall %v4float %vertex_main_inner
OpStore %value %24
OpStore %vertex_point_size %float_1
OpReturn
OpFunctionEnd
%fragment_main = OpFunction %void None %9
%27 = OpLabel
%28 = OpFunctionCall %void %asin_c0c272
%26 = OpLabel
%27 = OpFunctionCall %void %asin_c0c272
OpReturn
OpFunctionEnd
%compute_main = OpFunction %void None %9
%30 = OpLabel
%31 = OpFunctionCall %void %asin_c0c272
%29 = OpLabel
%30 = OpFunctionCall %void %asin_c0c272
OpReturn
OpFunctionEnd

View File

@ -1,67 +1,65 @@
; SPIR-V
; Version: 1.3
; Generator: Google Tint Compiler; 0
; Bound: 32
; Bound: 31
; Schema: 0
OpCapability Shader
%14 = OpExtInstImport "GLSL.std.450"
OpMemoryModel Logical GLSL450
OpEntryPoint Vertex %vertex_main "vertex_main" %tint_pointsize %tint_symbol_1
OpEntryPoint Vertex %vertex_main "vertex_main" %value %vertex_point_size
OpEntryPoint Fragment %fragment_main "fragment_main"
OpEntryPoint GLCompute %compute_main "compute_main"
OpExecutionMode %fragment_main OriginUpperLeft
OpExecutionMode %compute_main LocalSize 1 1 1
OpName %tint_pointsize "tint_pointsize"
OpName %tint_symbol_1 "tint_symbol_1"
OpName %value "value"
OpName %vertex_point_size "vertex_point_size"
OpName %atan_02979a "atan_02979a"
OpName %res "res"
OpName %tint_symbol_2 "tint_symbol_2"
OpName %tint_symbol "tint_symbol"
OpName %vertex_main_inner "vertex_main_inner"
OpName %vertex_main "vertex_main"
OpName %fragment_main "fragment_main"
OpName %compute_main "compute_main"
OpDecorate %tint_pointsize BuiltIn PointSize
OpDecorate %tint_symbol_1 BuiltIn Position
OpDecorate %value BuiltIn Position
OpDecorate %vertex_point_size BuiltIn PointSize
%float = OpTypeFloat 32
%_ptr_Output_float = OpTypePointer Output %float
%4 = OpConstantNull %float
%tint_pointsize = OpVariable %_ptr_Output_float Output %4
%v4float = OpTypeVector %float 4
%_ptr_Output_v4float = OpTypePointer Output %v4float
%8 = OpConstantNull %v4float
%tint_symbol_1 = OpVariable %_ptr_Output_v4float Output %8
%5 = OpConstantNull %v4float
%value = OpVariable %_ptr_Output_v4float Output %5
%_ptr_Output_float = OpTypePointer Output %float
%8 = OpConstantNull %float
%vertex_point_size = OpVariable %_ptr_Output_float Output %8
%void = OpTypeVoid
%9 = OpTypeFunction %void
%float_1 = OpConstant %float 1
%_ptr_Function_float = OpTypePointer Function %float
%18 = OpTypeFunction %void %v4float
%18 = OpTypeFunction %v4float
%atan_02979a = OpFunction %void None %9
%12 = OpLabel
%res = OpVariable %_ptr_Function_float Function %4
%res = OpVariable %_ptr_Function_float Function %8
%13 = OpExtInst %float %14 Atan %float_1
OpStore %res %13
OpReturn
OpFunctionEnd
%tint_symbol_2 = OpFunction %void None %18
%tint_symbol = OpFunctionParameter %v4float
%21 = OpLabel
OpStore %tint_symbol_1 %tint_symbol
OpReturn
%vertex_main_inner = OpFunction %v4float None %18
%20 = OpLabel
%21 = OpFunctionCall %void %atan_02979a
OpReturnValue %5
OpFunctionEnd
%vertex_main = OpFunction %void None %9
%23 = OpLabel
OpStore %tint_pointsize %float_1
%24 = OpFunctionCall %void %atan_02979a
%25 = OpFunctionCall %void %tint_symbol_2 %8
%24 = OpFunctionCall %v4float %vertex_main_inner
OpStore %value %24
OpStore %vertex_point_size %float_1
OpReturn
OpFunctionEnd
%fragment_main = OpFunction %void None %9
%27 = OpLabel
%28 = OpFunctionCall %void %atan_02979a
%26 = OpLabel
%27 = OpFunctionCall %void %atan_02979a
OpReturn
OpFunctionEnd
%compute_main = OpFunction %void None %9
%30 = OpLabel
%31 = OpFunctionCall %void %atan_02979a
%29 = OpLabel
%30 = OpFunctionCall %void %atan_02979a
OpReturn
OpFunctionEnd

View File

@ -1,41 +1,40 @@
; SPIR-V
; Version: 1.3
; Generator: Google Tint Compiler; 0
; Bound: 34
; Bound: 33
; Schema: 0
OpCapability Shader
%15 = OpExtInstImport "GLSL.std.450"
OpMemoryModel Logical GLSL450
OpEntryPoint Vertex %vertex_main "vertex_main" %tint_pointsize %tint_symbol_1
OpEntryPoint Vertex %vertex_main "vertex_main" %value %vertex_point_size
OpEntryPoint Fragment %fragment_main "fragment_main"
OpEntryPoint GLCompute %compute_main "compute_main"
OpExecutionMode %fragment_main OriginUpperLeft
OpExecutionMode %compute_main LocalSize 1 1 1
OpName %tint_pointsize "tint_pointsize"
OpName %tint_symbol_1 "tint_symbol_1"
OpName %value "value"
OpName %vertex_point_size "vertex_point_size"
OpName %atan_331e6d "atan_331e6d"
OpName %res "res"
OpName %tint_symbol_2 "tint_symbol_2"
OpName %tint_symbol "tint_symbol"
OpName %vertex_main_inner "vertex_main_inner"
OpName %vertex_main "vertex_main"
OpName %fragment_main "fragment_main"
OpName %compute_main "compute_main"
OpDecorate %tint_pointsize BuiltIn PointSize
OpDecorate %tint_symbol_1 BuiltIn Position
OpDecorate %value BuiltIn Position
OpDecorate %vertex_point_size BuiltIn PointSize
%float = OpTypeFloat 32
%_ptr_Output_float = OpTypePointer Output %float
%4 = OpConstantNull %float
%tint_pointsize = OpVariable %_ptr_Output_float Output %4
%v4float = OpTypeVector %float 4
%_ptr_Output_v4float = OpTypePointer Output %v4float
%8 = OpConstantNull %v4float
%tint_symbol_1 = OpVariable %_ptr_Output_v4float Output %8
%5 = OpConstantNull %v4float
%value = OpVariable %_ptr_Output_v4float Output %5
%_ptr_Output_float = OpTypePointer Output %float
%8 = OpConstantNull %float
%vertex_point_size = OpVariable %_ptr_Output_float Output %8
%void = OpTypeVoid
%9 = OpTypeFunction %void
%v3float = OpTypeVector %float 3
%16 = OpConstantNull %v3float
%_ptr_Function_v3float = OpTypePointer Function %v3float
%19 = OpTypeFunction %void %v4float
%19 = OpTypeFunction %v4float
%float_1 = OpConstant %float 1
%atan_331e6d = OpFunction %void None %9
%12 = OpLabel
@ -44,26 +43,25 @@
OpStore %res %13
OpReturn
OpFunctionEnd
%tint_symbol_2 = OpFunction %void None %19
%tint_symbol = OpFunctionParameter %v4float
%22 = OpLabel
OpStore %tint_symbol_1 %tint_symbol
OpReturn
%vertex_main_inner = OpFunction %v4float None %19
%21 = OpLabel
%22 = OpFunctionCall %void %atan_331e6d
OpReturnValue %5
OpFunctionEnd
%vertex_main = OpFunction %void None %9
%24 = OpLabel
OpStore %tint_pointsize %float_1
%26 = OpFunctionCall %void %atan_331e6d
%27 = OpFunctionCall %void %tint_symbol_2 %8
%25 = OpFunctionCall %v4float %vertex_main_inner
OpStore %value %25
OpStore %vertex_point_size %float_1
OpReturn
OpFunctionEnd
%fragment_main = OpFunction %void None %9
%29 = OpLabel
%30 = OpFunctionCall %void %atan_331e6d
%28 = OpLabel
%29 = OpFunctionCall %void %atan_331e6d
OpReturn
OpFunctionEnd
%compute_main = OpFunction %void None %9
%32 = OpLabel
%33 = OpFunctionCall %void %atan_331e6d
%31 = OpLabel
%32 = OpFunctionCall %void %atan_331e6d
OpReturn
OpFunctionEnd

View File

@ -1,67 +1,65 @@
; SPIR-V
; Version: 1.3
; Generator: Google Tint Compiler; 0
; Bound: 32
; Bound: 31
; Schema: 0
OpCapability Shader
%14 = OpExtInstImport "GLSL.std.450"
OpMemoryModel Logical GLSL450
OpEntryPoint Vertex %vertex_main "vertex_main" %tint_pointsize %tint_symbol_1
OpEntryPoint Vertex %vertex_main "vertex_main" %value %vertex_point_size
OpEntryPoint Fragment %fragment_main "fragment_main"
OpEntryPoint GLCompute %compute_main "compute_main"
OpExecutionMode %fragment_main OriginUpperLeft
OpExecutionMode %compute_main LocalSize 1 1 1
OpName %tint_pointsize "tint_pointsize"
OpName %tint_symbol_1 "tint_symbol_1"
OpName %value "value"
OpName %vertex_point_size "vertex_point_size"
OpName %atan_a8b696 "atan_a8b696"
OpName %res "res"
OpName %tint_symbol_2 "tint_symbol_2"
OpName %tint_symbol "tint_symbol"
OpName %vertex_main_inner "vertex_main_inner"
OpName %vertex_main "vertex_main"
OpName %fragment_main "fragment_main"
OpName %compute_main "compute_main"
OpDecorate %tint_pointsize BuiltIn PointSize
OpDecorate %tint_symbol_1 BuiltIn Position
OpDecorate %value BuiltIn Position
OpDecorate %vertex_point_size BuiltIn PointSize
%float = OpTypeFloat 32
%_ptr_Output_float = OpTypePointer Output %float
%4 = OpConstantNull %float
%tint_pointsize = OpVariable %_ptr_Output_float Output %4
%v4float = OpTypeVector %float 4
%_ptr_Output_v4float = OpTypePointer Output %v4float
%8 = OpConstantNull %v4float
%tint_symbol_1 = OpVariable %_ptr_Output_v4float Output %8
%5 = OpConstantNull %v4float
%value = OpVariable %_ptr_Output_v4float Output %5
%_ptr_Output_float = OpTypePointer Output %float
%8 = OpConstantNull %float
%vertex_point_size = OpVariable %_ptr_Output_float Output %8
%void = OpTypeVoid
%9 = OpTypeFunction %void
%_ptr_Function_v4float = OpTypePointer Function %v4float
%17 = OpTypeFunction %void %v4float
%17 = OpTypeFunction %v4float
%float_1 = OpConstant %float 1
%atan_a8b696 = OpFunction %void None %9
%12 = OpLabel
%res = OpVariable %_ptr_Function_v4float Function %8
%13 = OpExtInst %v4float %14 Atan %8
%res = OpVariable %_ptr_Function_v4float Function %5
%13 = OpExtInst %v4float %14 Atan %5
OpStore %res %13
OpReturn
OpFunctionEnd
%tint_symbol_2 = OpFunction %void None %17
%tint_symbol = OpFunctionParameter %v4float
%20 = OpLabel
OpStore %tint_symbol_1 %tint_symbol
OpReturn
%vertex_main_inner = OpFunction %v4float None %17
%19 = OpLabel
%20 = OpFunctionCall %void %atan_a8b696
OpReturnValue %5
OpFunctionEnd
%vertex_main = OpFunction %void None %9
%22 = OpLabel
OpStore %tint_pointsize %float_1
%24 = OpFunctionCall %void %atan_a8b696
%25 = OpFunctionCall %void %tint_symbol_2 %8
%23 = OpFunctionCall %v4float %vertex_main_inner
OpStore %value %23
OpStore %vertex_point_size %float_1
OpReturn
OpFunctionEnd
%fragment_main = OpFunction %void None %9
%27 = OpLabel
%28 = OpFunctionCall %void %atan_a8b696
%26 = OpLabel
%27 = OpFunctionCall %void %atan_a8b696
OpReturn
OpFunctionEnd
%compute_main = OpFunction %void None %9
%30 = OpLabel
%31 = OpFunctionCall %void %atan_a8b696
%29 = OpLabel
%30 = OpFunctionCall %void %atan_a8b696
OpReturn
OpFunctionEnd

View File

@ -1,41 +1,40 @@
; SPIR-V
; Version: 1.3
; Generator: Google Tint Compiler; 0
; Bound: 34
; Bound: 33
; Schema: 0
OpCapability Shader
%15 = OpExtInstImport "GLSL.std.450"
OpMemoryModel Logical GLSL450
OpEntryPoint Vertex %vertex_main "vertex_main" %tint_pointsize %tint_symbol_1
OpEntryPoint Vertex %vertex_main "vertex_main" %value %vertex_point_size
OpEntryPoint Fragment %fragment_main "fragment_main"
OpEntryPoint GLCompute %compute_main "compute_main"
OpExecutionMode %fragment_main OriginUpperLeft
OpExecutionMode %compute_main LocalSize 1 1 1
OpName %tint_pointsize "tint_pointsize"
OpName %tint_symbol_1 "tint_symbol_1"
OpName %value "value"
OpName %vertex_point_size "vertex_point_size"
OpName %atan_ad96e4 "atan_ad96e4"
OpName %res "res"
OpName %tint_symbol_2 "tint_symbol_2"
OpName %tint_symbol "tint_symbol"
OpName %vertex_main_inner "vertex_main_inner"
OpName %vertex_main "vertex_main"
OpName %fragment_main "fragment_main"
OpName %compute_main "compute_main"
OpDecorate %tint_pointsize BuiltIn PointSize
OpDecorate %tint_symbol_1 BuiltIn Position
OpDecorate %value BuiltIn Position
OpDecorate %vertex_point_size BuiltIn PointSize
%float = OpTypeFloat 32
%_ptr_Output_float = OpTypePointer Output %float
%4 = OpConstantNull %float
%tint_pointsize = OpVariable %_ptr_Output_float Output %4
%v4float = OpTypeVector %float 4
%_ptr_Output_v4float = OpTypePointer Output %v4float
%8 = OpConstantNull %v4float
%tint_symbol_1 = OpVariable %_ptr_Output_v4float Output %8
%5 = OpConstantNull %v4float
%value = OpVariable %_ptr_Output_v4float Output %5
%_ptr_Output_float = OpTypePointer Output %float
%8 = OpConstantNull %float
%vertex_point_size = OpVariable %_ptr_Output_float Output %8
%void = OpTypeVoid
%9 = OpTypeFunction %void
%v2float = OpTypeVector %float 2
%16 = OpConstantNull %v2float
%_ptr_Function_v2float = OpTypePointer Function %v2float
%19 = OpTypeFunction %void %v4float
%19 = OpTypeFunction %v4float
%float_1 = OpConstant %float 1
%atan_ad96e4 = OpFunction %void None %9
%12 = OpLabel
@ -44,26 +43,25 @@
OpStore %res %13
OpReturn
OpFunctionEnd
%tint_symbol_2 = OpFunction %void None %19
%tint_symbol = OpFunctionParameter %v4float
%22 = OpLabel
OpStore %tint_symbol_1 %tint_symbol
OpReturn
%vertex_main_inner = OpFunction %v4float None %19
%21 = OpLabel
%22 = OpFunctionCall %void %atan_ad96e4
OpReturnValue %5
OpFunctionEnd
%vertex_main = OpFunction %void None %9
%24 = OpLabel
OpStore %tint_pointsize %float_1
%26 = OpFunctionCall %void %atan_ad96e4
%27 = OpFunctionCall %void %tint_symbol_2 %8
%25 = OpFunctionCall %v4float %vertex_main_inner
OpStore %value %25
OpStore %vertex_point_size %float_1
OpReturn
OpFunctionEnd
%fragment_main = OpFunction %void None %9
%29 = OpLabel
%30 = OpFunctionCall %void %atan_ad96e4
%28 = OpLabel
%29 = OpFunctionCall %void %atan_ad96e4
OpReturn
OpFunctionEnd
%compute_main = OpFunction %void None %9
%32 = OpLabel
%33 = OpFunctionCall %void %atan_ad96e4
%31 = OpLabel
%32 = OpFunctionCall %void %atan_ad96e4
OpReturn
OpFunctionEnd

View File

@ -1,41 +1,40 @@
; SPIR-V
; Version: 1.3
; Generator: Google Tint Compiler; 0
; Bound: 34
; Bound: 33
; Schema: 0
OpCapability Shader
%15 = OpExtInstImport "GLSL.std.450"
OpMemoryModel Logical GLSL450
OpEntryPoint Vertex %vertex_main "vertex_main" %tint_pointsize %tint_symbol_1
OpEntryPoint Vertex %vertex_main "vertex_main" %value %vertex_point_size
OpEntryPoint Fragment %fragment_main "fragment_main"
OpEntryPoint GLCompute %compute_main "compute_main"
OpExecutionMode %fragment_main OriginUpperLeft
OpExecutionMode %compute_main LocalSize 1 1 1
OpName %tint_pointsize "tint_pointsize"
OpName %tint_symbol_1 "tint_symbol_1"
OpName %value "value"
OpName %vertex_point_size "vertex_point_size"
OpName %atan2_57fb13 "atan2_57fb13"
OpName %res "res"
OpName %tint_symbol_2 "tint_symbol_2"
OpName %tint_symbol "tint_symbol"
OpName %vertex_main_inner "vertex_main_inner"
OpName %vertex_main "vertex_main"
OpName %fragment_main "fragment_main"
OpName %compute_main "compute_main"
OpDecorate %tint_pointsize BuiltIn PointSize
OpDecorate %tint_symbol_1 BuiltIn Position
OpDecorate %value BuiltIn Position
OpDecorate %vertex_point_size BuiltIn PointSize
%float = OpTypeFloat 32
%_ptr_Output_float = OpTypePointer Output %float
%4 = OpConstantNull %float
%tint_pointsize = OpVariable %_ptr_Output_float Output %4
%v4float = OpTypeVector %float 4
%_ptr_Output_v4float = OpTypePointer Output %v4float
%8 = OpConstantNull %v4float
%tint_symbol_1 = OpVariable %_ptr_Output_v4float Output %8
%5 = OpConstantNull %v4float
%value = OpVariable %_ptr_Output_v4float Output %5
%_ptr_Output_float = OpTypePointer Output %float
%8 = OpConstantNull %float
%vertex_point_size = OpVariable %_ptr_Output_float Output %8
%void = OpTypeVoid
%9 = OpTypeFunction %void
%v2float = OpTypeVector %float 2
%16 = OpConstantNull %v2float
%_ptr_Function_v2float = OpTypePointer Function %v2float
%19 = OpTypeFunction %void %v4float
%19 = OpTypeFunction %v4float
%float_1 = OpConstant %float 1
%atan2_57fb13 = OpFunction %void None %9
%12 = OpLabel
@ -44,26 +43,25 @@
OpStore %res %13
OpReturn
OpFunctionEnd
%tint_symbol_2 = OpFunction %void None %19
%tint_symbol = OpFunctionParameter %v4float
%22 = OpLabel
OpStore %tint_symbol_1 %tint_symbol
OpReturn
%vertex_main_inner = OpFunction %v4float None %19
%21 = OpLabel
%22 = OpFunctionCall %void %atan2_57fb13
OpReturnValue %5
OpFunctionEnd
%vertex_main = OpFunction %void None %9
%24 = OpLabel
OpStore %tint_pointsize %float_1
%26 = OpFunctionCall %void %atan2_57fb13
%27 = OpFunctionCall %void %tint_symbol_2 %8
%25 = OpFunctionCall %v4float %vertex_main_inner
OpStore %value %25
OpStore %vertex_point_size %float_1
OpReturn
OpFunctionEnd
%fragment_main = OpFunction %void None %9
%29 = OpLabel
%30 = OpFunctionCall %void %atan2_57fb13
%28 = OpLabel
%29 = OpFunctionCall %void %atan2_57fb13
OpReturn
OpFunctionEnd
%compute_main = OpFunction %void None %9
%32 = OpLabel
%33 = OpFunctionCall %void %atan2_57fb13
%31 = OpLabel
%32 = OpFunctionCall %void %atan2_57fb13
OpReturn
OpFunctionEnd

View File

@ -1,67 +1,65 @@
; SPIR-V
; Version: 1.3
; Generator: Google Tint Compiler; 0
; Bound: 32
; Bound: 31
; Schema: 0
OpCapability Shader
%14 = OpExtInstImport "GLSL.std.450"
OpMemoryModel Logical GLSL450
OpEntryPoint Vertex %vertex_main "vertex_main" %tint_pointsize %tint_symbol_1
OpEntryPoint Vertex %vertex_main "vertex_main" %value %vertex_point_size
OpEntryPoint Fragment %fragment_main "fragment_main"
OpEntryPoint GLCompute %compute_main "compute_main"
OpExecutionMode %fragment_main OriginUpperLeft
OpExecutionMode %compute_main LocalSize 1 1 1
OpName %tint_pointsize "tint_pointsize"
OpName %tint_symbol_1 "tint_symbol_1"
OpName %value "value"
OpName %vertex_point_size "vertex_point_size"
OpName %atan2_96057c "atan2_96057c"
OpName %res "res"
OpName %tint_symbol_2 "tint_symbol_2"
OpName %tint_symbol "tint_symbol"
OpName %vertex_main_inner "vertex_main_inner"
OpName %vertex_main "vertex_main"
OpName %fragment_main "fragment_main"
OpName %compute_main "compute_main"
OpDecorate %tint_pointsize BuiltIn PointSize
OpDecorate %tint_symbol_1 BuiltIn Position
OpDecorate %value BuiltIn Position
OpDecorate %vertex_point_size BuiltIn PointSize
%float = OpTypeFloat 32
%_ptr_Output_float = OpTypePointer Output %float
%4 = OpConstantNull %float
%tint_pointsize = OpVariable %_ptr_Output_float Output %4
%v4float = OpTypeVector %float 4
%_ptr_Output_v4float = OpTypePointer Output %v4float
%8 = OpConstantNull %v4float
%tint_symbol_1 = OpVariable %_ptr_Output_v4float Output %8
%5 = OpConstantNull %v4float
%value = OpVariable %_ptr_Output_v4float Output %5
%_ptr_Output_float = OpTypePointer Output %float
%8 = OpConstantNull %float
%vertex_point_size = OpVariable %_ptr_Output_float Output %8
%void = OpTypeVoid
%9 = OpTypeFunction %void
%float_1 = OpConstant %float 1
%_ptr_Function_float = OpTypePointer Function %float
%18 = OpTypeFunction %void %v4float
%18 = OpTypeFunction %v4float
%atan2_96057c = OpFunction %void None %9
%12 = OpLabel
%res = OpVariable %_ptr_Function_float Function %4
%res = OpVariable %_ptr_Function_float Function %8
%13 = OpExtInst %float %14 Atan2 %float_1 %float_1
OpStore %res %13
OpReturn
OpFunctionEnd
%tint_symbol_2 = OpFunction %void None %18
%tint_symbol = OpFunctionParameter %v4float
%21 = OpLabel
OpStore %tint_symbol_1 %tint_symbol
OpReturn
%vertex_main_inner = OpFunction %v4float None %18
%20 = OpLabel
%21 = OpFunctionCall %void %atan2_96057c
OpReturnValue %5
OpFunctionEnd
%vertex_main = OpFunction %void None %9
%23 = OpLabel
OpStore %tint_pointsize %float_1
%24 = OpFunctionCall %void %atan2_96057c
%25 = OpFunctionCall %void %tint_symbol_2 %8
%24 = OpFunctionCall %v4float %vertex_main_inner
OpStore %value %24
OpStore %vertex_point_size %float_1
OpReturn
OpFunctionEnd
%fragment_main = OpFunction %void None %9
%27 = OpLabel
%28 = OpFunctionCall %void %atan2_96057c
%26 = OpLabel
%27 = OpFunctionCall %void %atan2_96057c
OpReturn
OpFunctionEnd
%compute_main = OpFunction %void None %9
%30 = OpLabel
%31 = OpFunctionCall %void %atan2_96057c
%29 = OpLabel
%30 = OpFunctionCall %void %atan2_96057c
OpReturn
OpFunctionEnd

View File

@ -1,41 +1,40 @@
; SPIR-V
; Version: 1.3
; Generator: Google Tint Compiler; 0
; Bound: 34
; Bound: 33
; Schema: 0
OpCapability Shader
%15 = OpExtInstImport "GLSL.std.450"
OpMemoryModel Logical GLSL450
OpEntryPoint Vertex %vertex_main "vertex_main" %tint_pointsize %tint_symbol_1
OpEntryPoint Vertex %vertex_main "vertex_main" %value %vertex_point_size
OpEntryPoint Fragment %fragment_main "fragment_main"
OpEntryPoint GLCompute %compute_main "compute_main"
OpExecutionMode %fragment_main OriginUpperLeft
OpExecutionMode %compute_main LocalSize 1 1 1
OpName %tint_pointsize "tint_pointsize"
OpName %tint_symbol_1 "tint_symbol_1"
OpName %value "value"
OpName %vertex_point_size "vertex_point_size"
OpName %atan2_a70d0d "atan2_a70d0d"
OpName %res "res"
OpName %tint_symbol_2 "tint_symbol_2"
OpName %tint_symbol "tint_symbol"
OpName %vertex_main_inner "vertex_main_inner"
OpName %vertex_main "vertex_main"
OpName %fragment_main "fragment_main"
OpName %compute_main "compute_main"
OpDecorate %tint_pointsize BuiltIn PointSize
OpDecorate %tint_symbol_1 BuiltIn Position
OpDecorate %value BuiltIn Position
OpDecorate %vertex_point_size BuiltIn PointSize
%float = OpTypeFloat 32
%_ptr_Output_float = OpTypePointer Output %float
%4 = OpConstantNull %float
%tint_pointsize = OpVariable %_ptr_Output_float Output %4
%v4float = OpTypeVector %float 4
%_ptr_Output_v4float = OpTypePointer Output %v4float
%8 = OpConstantNull %v4float
%tint_symbol_1 = OpVariable %_ptr_Output_v4float Output %8
%5 = OpConstantNull %v4float
%value = OpVariable %_ptr_Output_v4float Output %5
%_ptr_Output_float = OpTypePointer Output %float
%8 = OpConstantNull %float
%vertex_point_size = OpVariable %_ptr_Output_float Output %8
%void = OpTypeVoid
%9 = OpTypeFunction %void
%v3float = OpTypeVector %float 3
%16 = OpConstantNull %v3float
%_ptr_Function_v3float = OpTypePointer Function %v3float
%19 = OpTypeFunction %void %v4float
%19 = OpTypeFunction %v4float
%float_1 = OpConstant %float 1
%atan2_a70d0d = OpFunction %void None %9
%12 = OpLabel
@ -44,26 +43,25 @@
OpStore %res %13
OpReturn
OpFunctionEnd
%tint_symbol_2 = OpFunction %void None %19
%tint_symbol = OpFunctionParameter %v4float
%22 = OpLabel
OpStore %tint_symbol_1 %tint_symbol
OpReturn
%vertex_main_inner = OpFunction %v4float None %19
%21 = OpLabel
%22 = OpFunctionCall %void %atan2_a70d0d
OpReturnValue %5
OpFunctionEnd
%vertex_main = OpFunction %void None %9
%24 = OpLabel
OpStore %tint_pointsize %float_1
%26 = OpFunctionCall %void %atan2_a70d0d
%27 = OpFunctionCall %void %tint_symbol_2 %8
%25 = OpFunctionCall %v4float %vertex_main_inner
OpStore %value %25
OpStore %vertex_point_size %float_1
OpReturn
OpFunctionEnd
%fragment_main = OpFunction %void None %9
%29 = OpLabel
%30 = OpFunctionCall %void %atan2_a70d0d
%28 = OpLabel
%29 = OpFunctionCall %void %atan2_a70d0d
OpReturn
OpFunctionEnd
%compute_main = OpFunction %void None %9
%32 = OpLabel
%33 = OpFunctionCall %void %atan2_a70d0d
%31 = OpLabel
%32 = OpFunctionCall %void %atan2_a70d0d
OpReturn
OpFunctionEnd

View File

@ -1,67 +1,65 @@
; SPIR-V
; Version: 1.3
; Generator: Google Tint Compiler; 0
; Bound: 32
; Bound: 31
; Schema: 0
OpCapability Shader
%14 = OpExtInstImport "GLSL.std.450"
OpMemoryModel Logical GLSL450
OpEntryPoint Vertex %vertex_main "vertex_main" %tint_pointsize %tint_symbol_1
OpEntryPoint Vertex %vertex_main "vertex_main" %value %vertex_point_size
OpEntryPoint Fragment %fragment_main "fragment_main"
OpEntryPoint GLCompute %compute_main "compute_main"
OpExecutionMode %fragment_main OriginUpperLeft
OpExecutionMode %compute_main LocalSize 1 1 1
OpName %tint_pointsize "tint_pointsize"
OpName %tint_symbol_1 "tint_symbol_1"
OpName %value "value"
OpName %vertex_point_size "vertex_point_size"
OpName %atan2_ae713e "atan2_ae713e"
OpName %res "res"
OpName %tint_symbol_2 "tint_symbol_2"
OpName %tint_symbol "tint_symbol"
OpName %vertex_main_inner "vertex_main_inner"
OpName %vertex_main "vertex_main"
OpName %fragment_main "fragment_main"
OpName %compute_main "compute_main"
OpDecorate %tint_pointsize BuiltIn PointSize
OpDecorate %tint_symbol_1 BuiltIn Position
OpDecorate %value BuiltIn Position
OpDecorate %vertex_point_size BuiltIn PointSize
%float = OpTypeFloat 32
%_ptr_Output_float = OpTypePointer Output %float
%4 = OpConstantNull %float
%tint_pointsize = OpVariable %_ptr_Output_float Output %4
%v4float = OpTypeVector %float 4
%_ptr_Output_v4float = OpTypePointer Output %v4float
%8 = OpConstantNull %v4float
%tint_symbol_1 = OpVariable %_ptr_Output_v4float Output %8
%5 = OpConstantNull %v4float
%value = OpVariable %_ptr_Output_v4float Output %5
%_ptr_Output_float = OpTypePointer Output %float
%8 = OpConstantNull %float
%vertex_point_size = OpVariable %_ptr_Output_float Output %8
%void = OpTypeVoid
%9 = OpTypeFunction %void
%_ptr_Function_v4float = OpTypePointer Function %v4float
%17 = OpTypeFunction %void %v4float
%17 = OpTypeFunction %v4float
%float_1 = OpConstant %float 1
%atan2_ae713e = OpFunction %void None %9
%12 = OpLabel
%res = OpVariable %_ptr_Function_v4float Function %8
%13 = OpExtInst %v4float %14 Atan2 %8 %8
%res = OpVariable %_ptr_Function_v4float Function %5
%13 = OpExtInst %v4float %14 Atan2 %5 %5
OpStore %res %13
OpReturn
OpFunctionEnd
%tint_symbol_2 = OpFunction %void None %17
%tint_symbol = OpFunctionParameter %v4float
%20 = OpLabel
OpStore %tint_symbol_1 %tint_symbol
OpReturn
%vertex_main_inner = OpFunction %v4float None %17
%19 = OpLabel
%20 = OpFunctionCall %void %atan2_ae713e
OpReturnValue %5
OpFunctionEnd
%vertex_main = OpFunction %void None %9
%22 = OpLabel
OpStore %tint_pointsize %float_1
%24 = OpFunctionCall %void %atan2_ae713e
%25 = OpFunctionCall %void %tint_symbol_2 %8
%23 = OpFunctionCall %v4float %vertex_main_inner
OpStore %value %23
OpStore %vertex_point_size %float_1
OpReturn
OpFunctionEnd
%fragment_main = OpFunction %void None %9
%27 = OpLabel
%28 = OpFunctionCall %void %atan2_ae713e
%26 = OpLabel
%27 = OpFunctionCall %void %atan2_ae713e
OpReturn
OpFunctionEnd
%compute_main = OpFunction %void None %9
%30 = OpLabel
%31 = OpFunctionCall %void %atan2_ae713e
%29 = OpLabel
%30 = OpFunctionCall %void %atan2_ae713e
OpReturn
OpFunctionEnd

View File

@ -1,24 +1,26 @@
; SPIR-V
; Version: 1.3
; Generator: Google Tint Compiler; 0
; Bound: 26
; Bound: 32
; Schema: 0
OpCapability Shader
OpMemoryModel Logical GLSL450
OpEntryPoint GLCompute %compute_main "compute_main"
OpEntryPoint GLCompute %compute_main "compute_main" %local_invocation_index_1
OpExecutionMode %compute_main LocalSize 1 1 1
OpName %local_invocation_index_1 "local_invocation_index_1"
OpName %arg_0 "arg_0"
OpName %tint_symbol "tint_symbol"
OpName %atomicAdd_794055 "atomicAdd_794055"
OpName %res "res"
OpName %compute_main_inner "compute_main_inner"
OpName %local_invocation_index "local_invocation_index"
OpName %compute_main "compute_main"
OpDecorate %tint_symbol BuiltIn LocalInvocationIndex
OpDecorate %local_invocation_index_1 BuiltIn LocalInvocationIndex
%uint = OpTypeInt 32 0
%_ptr_Input_uint = OpTypePointer Input %uint
%local_invocation_index_1 = OpVariable %_ptr_Input_uint Input
%int = OpTypeInt 32 1
%_ptr_Workgroup_int = OpTypePointer Workgroup %int
%arg_0 = OpVariable %_ptr_Workgroup_int Workgroup
%uint = OpTypeInt 32 0
%_ptr_Input_uint = OpTypePointer Input %uint
%tint_symbol = OpVariable %_ptr_Input_uint Input
%void = OpTypeVoid
%7 = OpTypeFunction %void
%uint_2 = OpConstant %uint 2
@ -26,6 +28,7 @@
%int_1 = OpConstant %int 1
%_ptr_Function_int = OpTypePointer Function %int
%18 = OpConstantNull %int
%19 = OpTypeFunction %void %uint
%uint_264 = OpConstant %uint 264
%atomicAdd_794055 = OpFunction %void None %7
%10 = OpLabel
@ -34,10 +37,17 @@
OpStore %res %11
OpReturn
OpFunctionEnd
%compute_main = OpFunction %void None %7
%20 = OpLabel
%compute_main_inner = OpFunction %void None %19
%local_invocation_index = OpFunctionParameter %uint
%22 = OpLabel
OpAtomicStore %arg_0 %uint_2 %uint_0 %18
OpControlBarrier %uint_2 %uint_2 %uint_264
%25 = OpFunctionCall %void %atomicAdd_794055
%27 = OpFunctionCall %void %atomicAdd_794055
OpReturn
OpFunctionEnd
%compute_main = OpFunction %void None %7
%29 = OpLabel
%31 = OpLoad %uint %local_invocation_index_1
%30 = OpFunctionCall %void %compute_main_inner %31
OpReturn
OpFunctionEnd

View File

@ -1,23 +1,25 @@
; SPIR-V
; Version: 1.3
; Generator: Google Tint Compiler; 0
; Bound: 25
; Bound: 31
; Schema: 0
OpCapability Shader
OpMemoryModel Logical GLSL450
OpEntryPoint GLCompute %compute_main "compute_main"
OpEntryPoint GLCompute %compute_main "compute_main" %local_invocation_index_1
OpExecutionMode %compute_main LocalSize 1 1 1
OpName %local_invocation_index_1 "local_invocation_index_1"
OpName %arg_0 "arg_0"
OpName %tint_symbol "tint_symbol"
OpName %atomicAdd_d5db1d "atomicAdd_d5db1d"
OpName %res "res"
OpName %compute_main_inner "compute_main_inner"
OpName %local_invocation_index "local_invocation_index"
OpName %compute_main "compute_main"
OpDecorate %tint_symbol BuiltIn LocalInvocationIndex
OpDecorate %local_invocation_index_1 BuiltIn LocalInvocationIndex
%uint = OpTypeInt 32 0
%_ptr_Input_uint = OpTypePointer Input %uint
%local_invocation_index_1 = OpVariable %_ptr_Input_uint Input
%_ptr_Workgroup_uint = OpTypePointer Workgroup %uint
%arg_0 = OpVariable %_ptr_Workgroup_uint Workgroup
%_ptr_Input_uint = OpTypePointer Input %uint
%tint_symbol = OpVariable %_ptr_Input_uint Input
%void = OpTypeVoid
%6 = OpTypeFunction %void
%uint_2 = OpConstant %uint 2
@ -25,6 +27,7 @@
%uint_1 = OpConstant %uint 1
%_ptr_Function_uint = OpTypePointer Function %uint
%17 = OpConstantNull %uint
%18 = OpTypeFunction %void %uint
%uint_264 = OpConstant %uint 264
%atomicAdd_d5db1d = OpFunction %void None %6
%9 = OpLabel
@ -33,10 +36,17 @@
OpStore %res %10
OpReturn
OpFunctionEnd
%compute_main = OpFunction %void None %6
%19 = OpLabel
%compute_main_inner = OpFunction %void None %18
%local_invocation_index = OpFunctionParameter %uint
%21 = OpLabel
OpAtomicStore %arg_0 %uint_2 %uint_0 %17
OpControlBarrier %uint_2 %uint_2 %uint_264
%24 = OpFunctionCall %void %atomicAdd_d5db1d
%26 = OpFunctionCall %void %atomicAdd_d5db1d
OpReturn
OpFunctionEnd
%compute_main = OpFunction %void None %6
%28 = OpLabel
%30 = OpLoad %uint %local_invocation_index_1
%29 = OpFunctionCall %void %compute_main_inner %30
OpReturn
OpFunctionEnd

View File

@ -1,23 +1,25 @@
; SPIR-V
; Version: 1.3
; Generator: Google Tint Compiler; 0
; Bound: 25
; Bound: 31
; Schema: 0
OpCapability Shader
OpMemoryModel Logical GLSL450
OpEntryPoint GLCompute %compute_main "compute_main"
OpEntryPoint GLCompute %compute_main "compute_main" %local_invocation_index_1
OpExecutionMode %compute_main LocalSize 1 1 1
OpName %local_invocation_index_1 "local_invocation_index_1"
OpName %arg_0 "arg_0"
OpName %tint_symbol "tint_symbol"
OpName %atomicAnd_34edd3 "atomicAnd_34edd3"
OpName %res "res"
OpName %compute_main_inner "compute_main_inner"
OpName %local_invocation_index "local_invocation_index"
OpName %compute_main "compute_main"
OpDecorate %tint_symbol BuiltIn LocalInvocationIndex
OpDecorate %local_invocation_index_1 BuiltIn LocalInvocationIndex
%uint = OpTypeInt 32 0
%_ptr_Input_uint = OpTypePointer Input %uint
%local_invocation_index_1 = OpVariable %_ptr_Input_uint Input
%_ptr_Workgroup_uint = OpTypePointer Workgroup %uint
%arg_0 = OpVariable %_ptr_Workgroup_uint Workgroup
%_ptr_Input_uint = OpTypePointer Input %uint
%tint_symbol = OpVariable %_ptr_Input_uint Input
%void = OpTypeVoid
%6 = OpTypeFunction %void
%uint_2 = OpConstant %uint 2
@ -25,6 +27,7 @@
%uint_1 = OpConstant %uint 1
%_ptr_Function_uint = OpTypePointer Function %uint
%17 = OpConstantNull %uint
%18 = OpTypeFunction %void %uint
%uint_264 = OpConstant %uint 264
%atomicAnd_34edd3 = OpFunction %void None %6
%9 = OpLabel
@ -33,10 +36,17 @@
OpStore %res %10
OpReturn
OpFunctionEnd
%compute_main = OpFunction %void None %6
%19 = OpLabel
%compute_main_inner = OpFunction %void None %18
%local_invocation_index = OpFunctionParameter %uint
%21 = OpLabel
OpAtomicStore %arg_0 %uint_2 %uint_0 %17
OpControlBarrier %uint_2 %uint_2 %uint_264
%24 = OpFunctionCall %void %atomicAnd_34edd3
%26 = OpFunctionCall %void %atomicAnd_34edd3
OpReturn
OpFunctionEnd
%compute_main = OpFunction %void None %6
%28 = OpLabel
%30 = OpLoad %uint %local_invocation_index_1
%29 = OpFunctionCall %void %compute_main_inner %30
OpReturn
OpFunctionEnd

View File

@ -1,24 +1,26 @@
; SPIR-V
; Version: 1.3
; Generator: Google Tint Compiler; 0
; Bound: 26
; Bound: 32
; Schema: 0
OpCapability Shader
OpMemoryModel Logical GLSL450
OpEntryPoint GLCompute %compute_main "compute_main"
OpEntryPoint GLCompute %compute_main "compute_main" %local_invocation_index_1
OpExecutionMode %compute_main LocalSize 1 1 1
OpName %local_invocation_index_1 "local_invocation_index_1"
OpName %arg_0 "arg_0"
OpName %tint_symbol "tint_symbol"
OpName %atomicAnd_45a819 "atomicAnd_45a819"
OpName %res "res"
OpName %compute_main_inner "compute_main_inner"
OpName %local_invocation_index "local_invocation_index"
OpName %compute_main "compute_main"
OpDecorate %tint_symbol BuiltIn LocalInvocationIndex
OpDecorate %local_invocation_index_1 BuiltIn LocalInvocationIndex
%uint = OpTypeInt 32 0
%_ptr_Input_uint = OpTypePointer Input %uint
%local_invocation_index_1 = OpVariable %_ptr_Input_uint Input
%int = OpTypeInt 32 1
%_ptr_Workgroup_int = OpTypePointer Workgroup %int
%arg_0 = OpVariable %_ptr_Workgroup_int Workgroup
%uint = OpTypeInt 32 0
%_ptr_Input_uint = OpTypePointer Input %uint
%tint_symbol = OpVariable %_ptr_Input_uint Input
%void = OpTypeVoid
%7 = OpTypeFunction %void
%uint_2 = OpConstant %uint 2
@ -26,6 +28,7 @@
%int_1 = OpConstant %int 1
%_ptr_Function_int = OpTypePointer Function %int
%18 = OpConstantNull %int
%19 = OpTypeFunction %void %uint
%uint_264 = OpConstant %uint 264
%atomicAnd_45a819 = OpFunction %void None %7
%10 = OpLabel
@ -34,10 +37,17 @@
OpStore %res %11
OpReturn
OpFunctionEnd
%compute_main = OpFunction %void None %7
%20 = OpLabel
%compute_main_inner = OpFunction %void None %19
%local_invocation_index = OpFunctionParameter %uint
%22 = OpLabel
OpAtomicStore %arg_0 %uint_2 %uint_0 %18
OpControlBarrier %uint_2 %uint_2 %uint_264
%25 = OpFunctionCall %void %atomicAnd_45a819
%27 = OpFunctionCall %void %atomicAnd_45a819
OpReturn
OpFunctionEnd
%compute_main = OpFunction %void None %7
%29 = OpLabel
%31 = OpLoad %uint %local_invocation_index_1
%30 = OpFunctionCall %void %compute_main_inner %31
OpReturn
OpFunctionEnd

View File

@ -1,24 +1,26 @@
; SPIR-V
; Version: 1.3
; Generator: Google Tint Compiler; 0
; Bound: 33
; Bound: 39
; Schema: 0
OpCapability Shader
OpMemoryModel Logical GLSL450
OpEntryPoint GLCompute %compute_main "compute_main"
OpEntryPoint GLCompute %compute_main "compute_main" %local_invocation_index_1
OpExecutionMode %compute_main LocalSize 1 1 1
OpName %local_invocation_index_1 "local_invocation_index_1"
OpName %arg_0 "arg_0"
OpName %tint_symbol "tint_symbol"
OpName %atomicCompareExchangeWeak_89ea3b "atomicCompareExchangeWeak_89ea3b"
OpName %res "res"
OpName %compute_main_inner "compute_main_inner"
OpName %local_invocation_index "local_invocation_index"
OpName %compute_main "compute_main"
OpDecorate %tint_symbol BuiltIn LocalInvocationIndex
OpDecorate %local_invocation_index_1 BuiltIn LocalInvocationIndex
%uint = OpTypeInt 32 0
%_ptr_Input_uint = OpTypePointer Input %uint
%local_invocation_index_1 = OpVariable %_ptr_Input_uint Input
%int = OpTypeInt 32 1
%_ptr_Workgroup_int = OpTypePointer Workgroup %int
%arg_0 = OpVariable %_ptr_Workgroup_int Workgroup
%uint = OpTypeInt 32 0
%_ptr_Input_uint = OpTypePointer Input %uint
%tint_symbol = OpVariable %_ptr_Input_uint Input
%void = OpTypeVoid
%7 = OpTypeFunction %void
%v2int = OpTypeVector %int 2
@ -29,7 +31,8 @@
%int_0 = OpConstant %int 0
%_ptr_Function_v2int = OpTypePointer Function %v2int
%24 = OpConstantNull %v2int
%29 = OpConstantNull %int
%25 = OpTypeFunction %void %uint
%31 = OpConstantNull %int
%uint_264 = OpConstant %uint 264
%atomicCompareExchangeWeak_89ea3b = OpFunction %void None %7
%10 = OpLabel
@ -41,10 +44,17 @@
OpStore %res %11
OpReturn
OpFunctionEnd
%compute_main = OpFunction %void None %7
%26 = OpLabel
OpAtomicStore %arg_0 %uint_2 %uint_0 %29
%compute_main_inner = OpFunction %void None %25
%local_invocation_index = OpFunctionParameter %uint
%28 = OpLabel
OpAtomicStore %arg_0 %uint_2 %uint_0 %31
OpControlBarrier %uint_2 %uint_2 %uint_264
%32 = OpFunctionCall %void %atomicCompareExchangeWeak_89ea3b
%34 = OpFunctionCall %void %atomicCompareExchangeWeak_89ea3b
OpReturn
OpFunctionEnd
%compute_main = OpFunction %void None %7
%36 = OpLabel
%38 = OpLoad %uint %local_invocation_index_1
%37 = OpFunctionCall %void %compute_main_inner %38
OpReturn
OpFunctionEnd

View File

@ -1,23 +1,25 @@
; SPIR-V
; Version: 1.3
; Generator: Google Tint Compiler; 0
; Bound: 31
; Bound: 37
; Schema: 0
OpCapability Shader
OpMemoryModel Logical GLSL450
OpEntryPoint GLCompute %compute_main "compute_main"
OpEntryPoint GLCompute %compute_main "compute_main" %local_invocation_index_1
OpExecutionMode %compute_main LocalSize 1 1 1
OpName %local_invocation_index_1 "local_invocation_index_1"
OpName %arg_0 "arg_0"
OpName %tint_symbol "tint_symbol"
OpName %atomicCompareExchangeWeak_b2ab2c "atomicCompareExchangeWeak_b2ab2c"
OpName %res "res"
OpName %compute_main_inner "compute_main_inner"
OpName %local_invocation_index "local_invocation_index"
OpName %compute_main "compute_main"
OpDecorate %tint_symbol BuiltIn LocalInvocationIndex
OpDecorate %local_invocation_index_1 BuiltIn LocalInvocationIndex
%uint = OpTypeInt 32 0
%_ptr_Input_uint = OpTypePointer Input %uint
%local_invocation_index_1 = OpVariable %_ptr_Input_uint Input
%_ptr_Workgroup_uint = OpTypePointer Workgroup %uint
%arg_0 = OpVariable %_ptr_Workgroup_uint Workgroup
%_ptr_Input_uint = OpTypePointer Input %uint
%tint_symbol = OpVariable %_ptr_Input_uint Input
%void = OpTypeVoid
%6 = OpTypeFunction %void
%v2uint = OpTypeVector %uint 2
@ -27,7 +29,8 @@
%bool = OpTypeBool
%_ptr_Function_v2uint = OpTypePointer Function %v2uint
%22 = OpConstantNull %v2uint
%27 = OpConstantNull %uint
%23 = OpTypeFunction %void %uint
%29 = OpConstantNull %uint
%uint_264 = OpConstant %uint 264
%atomicCompareExchangeWeak_b2ab2c = OpFunction %void None %6
%9 = OpLabel
@ -39,10 +42,17 @@
OpStore %res %10
OpReturn
OpFunctionEnd
%compute_main = OpFunction %void None %6
%24 = OpLabel
OpAtomicStore %arg_0 %uint_2 %uint_0 %27
%compute_main_inner = OpFunction %void None %23
%local_invocation_index = OpFunctionParameter %uint
%26 = OpLabel
OpAtomicStore %arg_0 %uint_2 %uint_0 %29
OpControlBarrier %uint_2 %uint_2 %uint_264
%30 = OpFunctionCall %void %atomicCompareExchangeWeak_b2ab2c
%32 = OpFunctionCall %void %atomicCompareExchangeWeak_b2ab2c
OpReturn
OpFunctionEnd
%compute_main = OpFunction %void None %6
%34 = OpLabel
%36 = OpLoad %uint %local_invocation_index_1
%35 = OpFunctionCall %void %compute_main_inner %36
OpReturn
OpFunctionEnd

View File

@ -1,23 +1,25 @@
; SPIR-V
; Version: 1.3
; Generator: Google Tint Compiler; 0
; Bound: 25
; Bound: 31
; Schema: 0
OpCapability Shader
OpMemoryModel Logical GLSL450
OpEntryPoint GLCompute %compute_main "compute_main"
OpEntryPoint GLCompute %compute_main "compute_main" %local_invocation_index_1
OpExecutionMode %compute_main LocalSize 1 1 1
OpName %local_invocation_index_1 "local_invocation_index_1"
OpName %arg_0 "arg_0"
OpName %tint_symbol "tint_symbol"
OpName %atomicExchange_0a5dca "atomicExchange_0a5dca"
OpName %res "res"
OpName %compute_main_inner "compute_main_inner"
OpName %local_invocation_index "local_invocation_index"
OpName %compute_main "compute_main"
OpDecorate %tint_symbol BuiltIn LocalInvocationIndex
OpDecorate %local_invocation_index_1 BuiltIn LocalInvocationIndex
%uint = OpTypeInt 32 0
%_ptr_Input_uint = OpTypePointer Input %uint
%local_invocation_index_1 = OpVariable %_ptr_Input_uint Input
%_ptr_Workgroup_uint = OpTypePointer Workgroup %uint
%arg_0 = OpVariable %_ptr_Workgroup_uint Workgroup
%_ptr_Input_uint = OpTypePointer Input %uint
%tint_symbol = OpVariable %_ptr_Input_uint Input
%void = OpTypeVoid
%6 = OpTypeFunction %void
%uint_2 = OpConstant %uint 2
@ -25,6 +27,7 @@
%uint_1 = OpConstant %uint 1
%_ptr_Function_uint = OpTypePointer Function %uint
%17 = OpConstantNull %uint
%18 = OpTypeFunction %void %uint
%uint_264 = OpConstant %uint 264
%atomicExchange_0a5dca = OpFunction %void None %6
%9 = OpLabel
@ -33,10 +36,17 @@
OpStore %res %10
OpReturn
OpFunctionEnd
%compute_main = OpFunction %void None %6
%19 = OpLabel
%compute_main_inner = OpFunction %void None %18
%local_invocation_index = OpFunctionParameter %uint
%21 = OpLabel
OpAtomicStore %arg_0 %uint_2 %uint_0 %17
OpControlBarrier %uint_2 %uint_2 %uint_264
%24 = OpFunctionCall %void %atomicExchange_0a5dca
%26 = OpFunctionCall %void %atomicExchange_0a5dca
OpReturn
OpFunctionEnd
%compute_main = OpFunction %void None %6
%28 = OpLabel
%30 = OpLoad %uint %local_invocation_index_1
%29 = OpFunctionCall %void %compute_main_inner %30
OpReturn
OpFunctionEnd

View File

@ -1,24 +1,26 @@
; SPIR-V
; Version: 1.3
; Generator: Google Tint Compiler; 0
; Bound: 26
; Bound: 32
; Schema: 0
OpCapability Shader
OpMemoryModel Logical GLSL450
OpEntryPoint GLCompute %compute_main "compute_main"
OpEntryPoint GLCompute %compute_main "compute_main" %local_invocation_index_1
OpExecutionMode %compute_main LocalSize 1 1 1
OpName %local_invocation_index_1 "local_invocation_index_1"
OpName %arg_0 "arg_0"
OpName %tint_symbol "tint_symbol"
OpName %atomicExchange_e114ba "atomicExchange_e114ba"
OpName %res "res"
OpName %compute_main_inner "compute_main_inner"
OpName %local_invocation_index "local_invocation_index"
OpName %compute_main "compute_main"
OpDecorate %tint_symbol BuiltIn LocalInvocationIndex
OpDecorate %local_invocation_index_1 BuiltIn LocalInvocationIndex
%uint = OpTypeInt 32 0
%_ptr_Input_uint = OpTypePointer Input %uint
%local_invocation_index_1 = OpVariable %_ptr_Input_uint Input
%int = OpTypeInt 32 1
%_ptr_Workgroup_int = OpTypePointer Workgroup %int
%arg_0 = OpVariable %_ptr_Workgroup_int Workgroup
%uint = OpTypeInt 32 0
%_ptr_Input_uint = OpTypePointer Input %uint
%tint_symbol = OpVariable %_ptr_Input_uint Input
%void = OpTypeVoid
%7 = OpTypeFunction %void
%uint_2 = OpConstant %uint 2
@ -26,6 +28,7 @@
%int_1 = OpConstant %int 1
%_ptr_Function_int = OpTypePointer Function %int
%18 = OpConstantNull %int
%19 = OpTypeFunction %void %uint
%uint_264 = OpConstant %uint 264
%atomicExchange_e114ba = OpFunction %void None %7
%10 = OpLabel
@ -34,10 +37,17 @@
OpStore %res %11
OpReturn
OpFunctionEnd
%compute_main = OpFunction %void None %7
%20 = OpLabel
%compute_main_inner = OpFunction %void None %19
%local_invocation_index = OpFunctionParameter %uint
%22 = OpLabel
OpAtomicStore %arg_0 %uint_2 %uint_0 %18
OpControlBarrier %uint_2 %uint_2 %uint_264
%25 = OpFunctionCall %void %atomicExchange_e114ba
%27 = OpFunctionCall %void %atomicExchange_e114ba
OpReturn
OpFunctionEnd
%compute_main = OpFunction %void None %7
%29 = OpLabel
%31 = OpLoad %uint %local_invocation_index_1
%30 = OpFunctionCall %void %compute_main_inner %31
OpReturn
OpFunctionEnd

View File

@ -1,29 +1,32 @@
; SPIR-V
; Version: 1.3
; Generator: Google Tint Compiler; 0
; Bound: 24
; Bound: 30
; Schema: 0
OpCapability Shader
OpMemoryModel Logical GLSL450
OpEntryPoint GLCompute %compute_main "compute_main"
OpEntryPoint GLCompute %compute_main "compute_main" %local_invocation_index_1
OpExecutionMode %compute_main LocalSize 1 1 1
OpName %local_invocation_index_1 "local_invocation_index_1"
OpName %arg_0 "arg_0"
OpName %tint_symbol "tint_symbol"
OpName %atomicLoad_361bf1 "atomicLoad_361bf1"
OpName %res "res"
OpName %compute_main_inner "compute_main_inner"
OpName %local_invocation_index "local_invocation_index"
OpName %compute_main "compute_main"
OpDecorate %tint_symbol BuiltIn LocalInvocationIndex
OpDecorate %local_invocation_index_1 BuiltIn LocalInvocationIndex
%uint = OpTypeInt 32 0
%_ptr_Input_uint = OpTypePointer Input %uint
%local_invocation_index_1 = OpVariable %_ptr_Input_uint Input
%_ptr_Workgroup_uint = OpTypePointer Workgroup %uint
%arg_0 = OpVariable %_ptr_Workgroup_uint Workgroup
%_ptr_Input_uint = OpTypePointer Input %uint
%tint_symbol = OpVariable %_ptr_Input_uint Input
%void = OpTypeVoid
%6 = OpTypeFunction %void
%uint_2 = OpConstant %uint 2
%uint_0 = OpConstant %uint 0
%_ptr_Function_uint = OpTypePointer Function %uint
%16 = OpConstantNull %uint
%17 = OpTypeFunction %void %uint
%uint_264 = OpConstant %uint 264
%atomicLoad_361bf1 = OpFunction %void None %6
%9 = OpLabel
@ -32,10 +35,17 @@
OpStore %res %10
OpReturn
OpFunctionEnd
%compute_main = OpFunction %void None %6
%18 = OpLabel
%compute_main_inner = OpFunction %void None %17
%local_invocation_index = OpFunctionParameter %uint
%20 = OpLabel
OpAtomicStore %arg_0 %uint_2 %uint_0 %16
OpControlBarrier %uint_2 %uint_2 %uint_264
%23 = OpFunctionCall %void %atomicLoad_361bf1
%25 = OpFunctionCall %void %atomicLoad_361bf1
OpReturn
OpFunctionEnd
%compute_main = OpFunction %void None %6
%27 = OpLabel
%29 = OpLoad %uint %local_invocation_index_1
%28 = OpFunctionCall %void %compute_main_inner %29
OpReturn
OpFunctionEnd

View File

@ -1,30 +1,33 @@
; SPIR-V
; Version: 1.3
; Generator: Google Tint Compiler; 0
; Bound: 25
; Bound: 31
; Schema: 0
OpCapability Shader
OpMemoryModel Logical GLSL450
OpEntryPoint GLCompute %compute_main "compute_main"
OpEntryPoint GLCompute %compute_main "compute_main" %local_invocation_index_1
OpExecutionMode %compute_main LocalSize 1 1 1
OpName %local_invocation_index_1 "local_invocation_index_1"
OpName %arg_0 "arg_0"
OpName %tint_symbol "tint_symbol"
OpName %atomicLoad_afcc03 "atomicLoad_afcc03"
OpName %res "res"
OpName %compute_main_inner "compute_main_inner"
OpName %local_invocation_index "local_invocation_index"
OpName %compute_main "compute_main"
OpDecorate %tint_symbol BuiltIn LocalInvocationIndex
OpDecorate %local_invocation_index_1 BuiltIn LocalInvocationIndex
%uint = OpTypeInt 32 0
%_ptr_Input_uint = OpTypePointer Input %uint
%local_invocation_index_1 = OpVariable %_ptr_Input_uint Input
%int = OpTypeInt 32 1
%_ptr_Workgroup_int = OpTypePointer Workgroup %int
%arg_0 = OpVariable %_ptr_Workgroup_int Workgroup
%uint = OpTypeInt 32 0
%_ptr_Input_uint = OpTypePointer Input %uint
%tint_symbol = OpVariable %_ptr_Input_uint Input
%void = OpTypeVoid
%7 = OpTypeFunction %void
%uint_2 = OpConstant %uint 2
%uint_0 = OpConstant %uint 0
%_ptr_Function_int = OpTypePointer Function %int
%17 = OpConstantNull %int
%18 = OpTypeFunction %void %uint
%uint_264 = OpConstant %uint 264
%atomicLoad_afcc03 = OpFunction %void None %7
%10 = OpLabel
@ -33,10 +36,17 @@
OpStore %res %11
OpReturn
OpFunctionEnd
%compute_main = OpFunction %void None %7
%19 = OpLabel
%compute_main_inner = OpFunction %void None %18
%local_invocation_index = OpFunctionParameter %uint
%21 = OpLabel
OpAtomicStore %arg_0 %uint_2 %uint_0 %17
OpControlBarrier %uint_2 %uint_2 %uint_264
%24 = OpFunctionCall %void %atomicLoad_afcc03
%26 = OpFunctionCall %void %atomicLoad_afcc03
OpReturn
OpFunctionEnd
%compute_main = OpFunction %void None %7
%28 = OpLabel
%30 = OpLoad %uint %local_invocation_index_1
%29 = OpFunctionCall %void %compute_main_inner %30
OpReturn
OpFunctionEnd

View File

@ -1,24 +1,26 @@
; SPIR-V
; Version: 1.3
; Generator: Google Tint Compiler; 0
; Bound: 26
; Bound: 32
; Schema: 0
OpCapability Shader
OpMemoryModel Logical GLSL450
OpEntryPoint GLCompute %compute_main "compute_main"
OpEntryPoint GLCompute %compute_main "compute_main" %local_invocation_index_1
OpExecutionMode %compute_main LocalSize 1 1 1
OpName %local_invocation_index_1 "local_invocation_index_1"
OpName %arg_0 "arg_0"
OpName %tint_symbol "tint_symbol"
OpName %atomicMax_a89cc3 "atomicMax_a89cc3"
OpName %res "res"
OpName %compute_main_inner "compute_main_inner"
OpName %local_invocation_index "local_invocation_index"
OpName %compute_main "compute_main"
OpDecorate %tint_symbol BuiltIn LocalInvocationIndex
OpDecorate %local_invocation_index_1 BuiltIn LocalInvocationIndex
%uint = OpTypeInt 32 0
%_ptr_Input_uint = OpTypePointer Input %uint
%local_invocation_index_1 = OpVariable %_ptr_Input_uint Input
%int = OpTypeInt 32 1
%_ptr_Workgroup_int = OpTypePointer Workgroup %int
%arg_0 = OpVariable %_ptr_Workgroup_int Workgroup
%uint = OpTypeInt 32 0
%_ptr_Input_uint = OpTypePointer Input %uint
%tint_symbol = OpVariable %_ptr_Input_uint Input
%void = OpTypeVoid
%7 = OpTypeFunction %void
%uint_2 = OpConstant %uint 2
@ -26,6 +28,7 @@
%int_1 = OpConstant %int 1
%_ptr_Function_int = OpTypePointer Function %int
%18 = OpConstantNull %int
%19 = OpTypeFunction %void %uint
%uint_264 = OpConstant %uint 264
%atomicMax_a89cc3 = OpFunction %void None %7
%10 = OpLabel
@ -34,10 +37,17 @@
OpStore %res %11
OpReturn
OpFunctionEnd
%compute_main = OpFunction %void None %7
%20 = OpLabel
%compute_main_inner = OpFunction %void None %19
%local_invocation_index = OpFunctionParameter %uint
%22 = OpLabel
OpAtomicStore %arg_0 %uint_2 %uint_0 %18
OpControlBarrier %uint_2 %uint_2 %uint_264
%25 = OpFunctionCall %void %atomicMax_a89cc3
%27 = OpFunctionCall %void %atomicMax_a89cc3
OpReturn
OpFunctionEnd
%compute_main = OpFunction %void None %7
%29 = OpLabel
%31 = OpLoad %uint %local_invocation_index_1
%30 = OpFunctionCall %void %compute_main_inner %31
OpReturn
OpFunctionEnd

View File

@ -1,23 +1,25 @@
; SPIR-V
; Version: 1.3
; Generator: Google Tint Compiler; 0
; Bound: 25
; Bound: 31
; Schema: 0
OpCapability Shader
OpMemoryModel Logical GLSL450
OpEntryPoint GLCompute %compute_main "compute_main"
OpEntryPoint GLCompute %compute_main "compute_main" %local_invocation_index_1
OpExecutionMode %compute_main LocalSize 1 1 1
OpName %local_invocation_index_1 "local_invocation_index_1"
OpName %arg_0 "arg_0"
OpName %tint_symbol "tint_symbol"
OpName %atomicMax_beccfc "atomicMax_beccfc"
OpName %res "res"
OpName %compute_main_inner "compute_main_inner"
OpName %local_invocation_index "local_invocation_index"
OpName %compute_main "compute_main"
OpDecorate %tint_symbol BuiltIn LocalInvocationIndex
OpDecorate %local_invocation_index_1 BuiltIn LocalInvocationIndex
%uint = OpTypeInt 32 0
%_ptr_Input_uint = OpTypePointer Input %uint
%local_invocation_index_1 = OpVariable %_ptr_Input_uint Input
%_ptr_Workgroup_uint = OpTypePointer Workgroup %uint
%arg_0 = OpVariable %_ptr_Workgroup_uint Workgroup
%_ptr_Input_uint = OpTypePointer Input %uint
%tint_symbol = OpVariable %_ptr_Input_uint Input
%void = OpTypeVoid
%6 = OpTypeFunction %void
%uint_2 = OpConstant %uint 2
@ -25,6 +27,7 @@
%uint_1 = OpConstant %uint 1
%_ptr_Function_uint = OpTypePointer Function %uint
%17 = OpConstantNull %uint
%18 = OpTypeFunction %void %uint
%uint_264 = OpConstant %uint 264
%atomicMax_beccfc = OpFunction %void None %6
%9 = OpLabel
@ -33,10 +36,17 @@
OpStore %res %10
OpReturn
OpFunctionEnd
%compute_main = OpFunction %void None %6
%19 = OpLabel
%compute_main_inner = OpFunction %void None %18
%local_invocation_index = OpFunctionParameter %uint
%21 = OpLabel
OpAtomicStore %arg_0 %uint_2 %uint_0 %17
OpControlBarrier %uint_2 %uint_2 %uint_264
%24 = OpFunctionCall %void %atomicMax_beccfc
%26 = OpFunctionCall %void %atomicMax_beccfc
OpReturn
OpFunctionEnd
%compute_main = OpFunction %void None %6
%28 = OpLabel
%30 = OpLoad %uint %local_invocation_index_1
%29 = OpFunctionCall %void %compute_main_inner %30
OpReturn
OpFunctionEnd

View File

@ -1,24 +1,26 @@
; SPIR-V
; Version: 1.3
; Generator: Google Tint Compiler; 0
; Bound: 26
; Bound: 32
; Schema: 0
OpCapability Shader
OpMemoryModel Logical GLSL450
OpEntryPoint GLCompute %compute_main "compute_main"
OpEntryPoint GLCompute %compute_main "compute_main" %local_invocation_index_1
OpExecutionMode %compute_main LocalSize 1 1 1
OpName %local_invocation_index_1 "local_invocation_index_1"
OpName %arg_0 "arg_0"
OpName %tint_symbol "tint_symbol"
OpName %atomicMin_278235 "atomicMin_278235"
OpName %res "res"
OpName %compute_main_inner "compute_main_inner"
OpName %local_invocation_index "local_invocation_index"
OpName %compute_main "compute_main"
OpDecorate %tint_symbol BuiltIn LocalInvocationIndex
OpDecorate %local_invocation_index_1 BuiltIn LocalInvocationIndex
%uint = OpTypeInt 32 0
%_ptr_Input_uint = OpTypePointer Input %uint
%local_invocation_index_1 = OpVariable %_ptr_Input_uint Input
%int = OpTypeInt 32 1
%_ptr_Workgroup_int = OpTypePointer Workgroup %int
%arg_0 = OpVariable %_ptr_Workgroup_int Workgroup
%uint = OpTypeInt 32 0
%_ptr_Input_uint = OpTypePointer Input %uint
%tint_symbol = OpVariable %_ptr_Input_uint Input
%void = OpTypeVoid
%7 = OpTypeFunction %void
%uint_2 = OpConstant %uint 2
@ -26,6 +28,7 @@
%int_1 = OpConstant %int 1
%_ptr_Function_int = OpTypePointer Function %int
%18 = OpConstantNull %int
%19 = OpTypeFunction %void %uint
%uint_264 = OpConstant %uint 264
%atomicMin_278235 = OpFunction %void None %7
%10 = OpLabel
@ -34,10 +37,17 @@
OpStore %res %11
OpReturn
OpFunctionEnd
%compute_main = OpFunction %void None %7
%20 = OpLabel
%compute_main_inner = OpFunction %void None %19
%local_invocation_index = OpFunctionParameter %uint
%22 = OpLabel
OpAtomicStore %arg_0 %uint_2 %uint_0 %18
OpControlBarrier %uint_2 %uint_2 %uint_264
%25 = OpFunctionCall %void %atomicMin_278235
%27 = OpFunctionCall %void %atomicMin_278235
OpReturn
OpFunctionEnd
%compute_main = OpFunction %void None %7
%29 = OpLabel
%31 = OpLoad %uint %local_invocation_index_1
%30 = OpFunctionCall %void %compute_main_inner %31
OpReturn
OpFunctionEnd

View File

@ -1,23 +1,25 @@
; SPIR-V
; Version: 1.3
; Generator: Google Tint Compiler; 0
; Bound: 25
; Bound: 31
; Schema: 0
OpCapability Shader
OpMemoryModel Logical GLSL450
OpEntryPoint GLCompute %compute_main "compute_main"
OpEntryPoint GLCompute %compute_main "compute_main" %local_invocation_index_1
OpExecutionMode %compute_main LocalSize 1 1 1
OpName %local_invocation_index_1 "local_invocation_index_1"
OpName %arg_0 "arg_0"
OpName %tint_symbol "tint_symbol"
OpName %atomicMin_69d383 "atomicMin_69d383"
OpName %res "res"
OpName %compute_main_inner "compute_main_inner"
OpName %local_invocation_index "local_invocation_index"
OpName %compute_main "compute_main"
OpDecorate %tint_symbol BuiltIn LocalInvocationIndex
OpDecorate %local_invocation_index_1 BuiltIn LocalInvocationIndex
%uint = OpTypeInt 32 0
%_ptr_Input_uint = OpTypePointer Input %uint
%local_invocation_index_1 = OpVariable %_ptr_Input_uint Input
%_ptr_Workgroup_uint = OpTypePointer Workgroup %uint
%arg_0 = OpVariable %_ptr_Workgroup_uint Workgroup
%_ptr_Input_uint = OpTypePointer Input %uint
%tint_symbol = OpVariable %_ptr_Input_uint Input
%void = OpTypeVoid
%6 = OpTypeFunction %void
%uint_2 = OpConstant %uint 2
@ -25,6 +27,7 @@
%uint_1 = OpConstant %uint 1
%_ptr_Function_uint = OpTypePointer Function %uint
%17 = OpConstantNull %uint
%18 = OpTypeFunction %void %uint
%uint_264 = OpConstant %uint 264
%atomicMin_69d383 = OpFunction %void None %6
%9 = OpLabel
@ -33,10 +36,17 @@
OpStore %res %10
OpReturn
OpFunctionEnd
%compute_main = OpFunction %void None %6
%19 = OpLabel
%compute_main_inner = OpFunction %void None %18
%local_invocation_index = OpFunctionParameter %uint
%21 = OpLabel
OpAtomicStore %arg_0 %uint_2 %uint_0 %17
OpControlBarrier %uint_2 %uint_2 %uint_264
%24 = OpFunctionCall %void %atomicMin_69d383
%26 = OpFunctionCall %void %atomicMin_69d383
OpReturn
OpFunctionEnd
%compute_main = OpFunction %void None %6
%28 = OpLabel
%30 = OpLoad %uint %local_invocation_index_1
%29 = OpFunctionCall %void %compute_main_inner %30
OpReturn
OpFunctionEnd

View File

@ -1,23 +1,25 @@
; SPIR-V
; Version: 1.3
; Generator: Google Tint Compiler; 0
; Bound: 25
; Bound: 31
; Schema: 0
OpCapability Shader
OpMemoryModel Logical GLSL450
OpEntryPoint GLCompute %compute_main "compute_main"
OpEntryPoint GLCompute %compute_main "compute_main" %local_invocation_index_1
OpExecutionMode %compute_main LocalSize 1 1 1
OpName %local_invocation_index_1 "local_invocation_index_1"
OpName %arg_0 "arg_0"
OpName %tint_symbol "tint_symbol"
OpName %atomicOr_5e3d61 "atomicOr_5e3d61"
OpName %res "res"
OpName %compute_main_inner "compute_main_inner"
OpName %local_invocation_index "local_invocation_index"
OpName %compute_main "compute_main"
OpDecorate %tint_symbol BuiltIn LocalInvocationIndex
OpDecorate %local_invocation_index_1 BuiltIn LocalInvocationIndex
%uint = OpTypeInt 32 0
%_ptr_Input_uint = OpTypePointer Input %uint
%local_invocation_index_1 = OpVariable %_ptr_Input_uint Input
%_ptr_Workgroup_uint = OpTypePointer Workgroup %uint
%arg_0 = OpVariable %_ptr_Workgroup_uint Workgroup
%_ptr_Input_uint = OpTypePointer Input %uint
%tint_symbol = OpVariable %_ptr_Input_uint Input
%void = OpTypeVoid
%6 = OpTypeFunction %void
%uint_2 = OpConstant %uint 2
@ -25,6 +27,7 @@
%uint_1 = OpConstant %uint 1
%_ptr_Function_uint = OpTypePointer Function %uint
%17 = OpConstantNull %uint
%18 = OpTypeFunction %void %uint
%uint_264 = OpConstant %uint 264
%atomicOr_5e3d61 = OpFunction %void None %6
%9 = OpLabel
@ -33,10 +36,17 @@
OpStore %res %10
OpReturn
OpFunctionEnd
%compute_main = OpFunction %void None %6
%19 = OpLabel
%compute_main_inner = OpFunction %void None %18
%local_invocation_index = OpFunctionParameter %uint
%21 = OpLabel
OpAtomicStore %arg_0 %uint_2 %uint_0 %17
OpControlBarrier %uint_2 %uint_2 %uint_264
%24 = OpFunctionCall %void %atomicOr_5e3d61
%26 = OpFunctionCall %void %atomicOr_5e3d61
OpReturn
OpFunctionEnd
%compute_main = OpFunction %void None %6
%28 = OpLabel
%30 = OpLoad %uint %local_invocation_index_1
%29 = OpFunctionCall %void %compute_main_inner %30
OpReturn
OpFunctionEnd

View File

@ -1,24 +1,26 @@
; SPIR-V
; Version: 1.3
; Generator: Google Tint Compiler; 0
; Bound: 26
; Bound: 32
; Schema: 0
OpCapability Shader
OpMemoryModel Logical GLSL450
OpEntryPoint GLCompute %compute_main "compute_main"
OpEntryPoint GLCompute %compute_main "compute_main" %local_invocation_index_1
OpExecutionMode %compute_main LocalSize 1 1 1
OpName %local_invocation_index_1 "local_invocation_index_1"
OpName %arg_0 "arg_0"
OpName %tint_symbol "tint_symbol"
OpName %atomicOr_d09248 "atomicOr_d09248"
OpName %res "res"
OpName %compute_main_inner "compute_main_inner"
OpName %local_invocation_index "local_invocation_index"
OpName %compute_main "compute_main"
OpDecorate %tint_symbol BuiltIn LocalInvocationIndex
OpDecorate %local_invocation_index_1 BuiltIn LocalInvocationIndex
%uint = OpTypeInt 32 0
%_ptr_Input_uint = OpTypePointer Input %uint
%local_invocation_index_1 = OpVariable %_ptr_Input_uint Input
%int = OpTypeInt 32 1
%_ptr_Workgroup_int = OpTypePointer Workgroup %int
%arg_0 = OpVariable %_ptr_Workgroup_int Workgroup
%uint = OpTypeInt 32 0
%_ptr_Input_uint = OpTypePointer Input %uint
%tint_symbol = OpVariable %_ptr_Input_uint Input
%void = OpTypeVoid
%7 = OpTypeFunction %void
%uint_2 = OpConstant %uint 2
@ -26,6 +28,7 @@
%int_1 = OpConstant %int 1
%_ptr_Function_int = OpTypePointer Function %int
%18 = OpConstantNull %int
%19 = OpTypeFunction %void %uint
%uint_264 = OpConstant %uint 264
%atomicOr_d09248 = OpFunction %void None %7
%10 = OpLabel
@ -34,10 +37,17 @@
OpStore %res %11
OpReturn
OpFunctionEnd
%compute_main = OpFunction %void None %7
%20 = OpLabel
%compute_main_inner = OpFunction %void None %19
%local_invocation_index = OpFunctionParameter %uint
%22 = OpLabel
OpAtomicStore %arg_0 %uint_2 %uint_0 %18
OpControlBarrier %uint_2 %uint_2 %uint_264
%25 = OpFunctionCall %void %atomicOr_d09248
%27 = OpFunctionCall %void %atomicOr_d09248
OpReturn
OpFunctionEnd
%compute_main = OpFunction %void None %7
%29 = OpLabel
%31 = OpLoad %uint %local_invocation_index_1
%30 = OpFunctionCall %void %compute_main_inner %31
OpReturn
OpFunctionEnd

View File

@ -1,38 +1,48 @@
; SPIR-V
; Version: 1.3
; Generator: Google Tint Compiler; 0
; Bound: 23
; Bound: 29
; Schema: 0
OpCapability Shader
OpMemoryModel Logical GLSL450
OpEntryPoint GLCompute %compute_main "compute_main"
OpEntryPoint GLCompute %compute_main "compute_main" %local_invocation_index_1
OpExecutionMode %compute_main LocalSize 1 1 1
OpName %local_invocation_index_1 "local_invocation_index_1"
OpName %arg_0 "arg_0"
OpName %tint_symbol "tint_symbol"
OpName %atomicStore_726882 "atomicStore_726882"
OpName %compute_main_inner "compute_main_inner"
OpName %local_invocation_index "local_invocation_index"
OpName %compute_main "compute_main"
OpDecorate %tint_symbol BuiltIn LocalInvocationIndex
OpDecorate %local_invocation_index_1 BuiltIn LocalInvocationIndex
%uint = OpTypeInt 32 0
%_ptr_Input_uint = OpTypePointer Input %uint
%local_invocation_index_1 = OpVariable %_ptr_Input_uint Input
%_ptr_Workgroup_uint = OpTypePointer Workgroup %uint
%arg_0 = OpVariable %_ptr_Workgroup_uint Workgroup
%_ptr_Input_uint = OpTypePointer Input %uint
%tint_symbol = OpVariable %_ptr_Input_uint Input
%void = OpTypeVoid
%6 = OpTypeFunction %void
%uint_2 = OpConstant %uint 2
%uint_0 = OpConstant %uint 0
%uint_1 = OpConstant %uint 1
%19 = OpConstantNull %uint
%15 = OpTypeFunction %void %uint
%21 = OpConstantNull %uint
%uint_264 = OpConstant %uint 264
%atomicStore_726882 = OpFunction %void None %6
%9 = OpLabel
OpAtomicStore %arg_0 %uint_2 %uint_0 %uint_1
OpReturn
OpFunctionEnd
%compute_main = OpFunction %void None %6
%16 = OpLabel
OpAtomicStore %arg_0 %uint_2 %uint_0 %19
%compute_main_inner = OpFunction %void None %15
%local_invocation_index = OpFunctionParameter %uint
%18 = OpLabel
OpAtomicStore %arg_0 %uint_2 %uint_0 %21
OpControlBarrier %uint_2 %uint_2 %uint_264
%22 = OpFunctionCall %void %atomicStore_726882
%24 = OpFunctionCall %void %atomicStore_726882
OpReturn
OpFunctionEnd
%compute_main = OpFunction %void None %6
%26 = OpLabel
%28 = OpLoad %uint %local_invocation_index_1
%27 = OpFunctionCall %void %compute_main_inner %28
OpReturn
OpFunctionEnd

View File

@ -1,39 +1,49 @@
; SPIR-V
; Version: 1.3
; Generator: Google Tint Compiler; 0
; Bound: 24
; Bound: 30
; Schema: 0
OpCapability Shader
OpMemoryModel Logical GLSL450
OpEntryPoint GLCompute %compute_main "compute_main"
OpEntryPoint GLCompute %compute_main "compute_main" %local_invocation_index_1
OpExecutionMode %compute_main LocalSize 1 1 1
OpName %local_invocation_index_1 "local_invocation_index_1"
OpName %arg_0 "arg_0"
OpName %tint_symbol "tint_symbol"
OpName %atomicStore_8bea94 "atomicStore_8bea94"
OpName %compute_main_inner "compute_main_inner"
OpName %local_invocation_index "local_invocation_index"
OpName %compute_main "compute_main"
OpDecorate %tint_symbol BuiltIn LocalInvocationIndex
OpDecorate %local_invocation_index_1 BuiltIn LocalInvocationIndex
%uint = OpTypeInt 32 0
%_ptr_Input_uint = OpTypePointer Input %uint
%local_invocation_index_1 = OpVariable %_ptr_Input_uint Input
%int = OpTypeInt 32 1
%_ptr_Workgroup_int = OpTypePointer Workgroup %int
%arg_0 = OpVariable %_ptr_Workgroup_int Workgroup
%uint = OpTypeInt 32 0
%_ptr_Input_uint = OpTypePointer Input %uint
%tint_symbol = OpVariable %_ptr_Input_uint Input
%void = OpTypeVoid
%7 = OpTypeFunction %void
%uint_2 = OpConstant %uint 2
%uint_0 = OpConstant %uint 0
%int_1 = OpConstant %int 1
%20 = OpConstantNull %int
%16 = OpTypeFunction %void %uint
%22 = OpConstantNull %int
%uint_264 = OpConstant %uint 264
%atomicStore_8bea94 = OpFunction %void None %7
%10 = OpLabel
OpAtomicStore %arg_0 %uint_2 %uint_0 %int_1
OpReturn
OpFunctionEnd
%compute_main = OpFunction %void None %7
%17 = OpLabel
OpAtomicStore %arg_0 %uint_2 %uint_0 %20
%compute_main_inner = OpFunction %void None %16
%local_invocation_index = OpFunctionParameter %uint
%19 = OpLabel
OpAtomicStore %arg_0 %uint_2 %uint_0 %22
OpControlBarrier %uint_2 %uint_2 %uint_264
%23 = OpFunctionCall %void %atomicStore_8bea94
%25 = OpFunctionCall %void %atomicStore_8bea94
OpReturn
OpFunctionEnd
%compute_main = OpFunction %void None %7
%27 = OpLabel
%29 = OpLoad %uint %local_invocation_index_1
%28 = OpFunctionCall %void %compute_main_inner %29
OpReturn
OpFunctionEnd

View File

@ -1,24 +1,26 @@
; SPIR-V
; Version: 1.3
; Generator: Google Tint Compiler; 0
; Bound: 26
; Bound: 32
; Schema: 0
OpCapability Shader
OpMemoryModel Logical GLSL450
OpEntryPoint GLCompute %compute_main "compute_main"
OpEntryPoint GLCompute %compute_main "compute_main" %local_invocation_index_1
OpExecutionMode %compute_main LocalSize 1 1 1
OpName %local_invocation_index_1 "local_invocation_index_1"
OpName %arg_0 "arg_0"
OpName %tint_symbol "tint_symbol"
OpName %atomicXor_75dc95 "atomicXor_75dc95"
OpName %res "res"
OpName %compute_main_inner "compute_main_inner"
OpName %local_invocation_index "local_invocation_index"
OpName %compute_main "compute_main"
OpDecorate %tint_symbol BuiltIn LocalInvocationIndex
OpDecorate %local_invocation_index_1 BuiltIn LocalInvocationIndex
%uint = OpTypeInt 32 0
%_ptr_Input_uint = OpTypePointer Input %uint
%local_invocation_index_1 = OpVariable %_ptr_Input_uint Input
%int = OpTypeInt 32 1
%_ptr_Workgroup_int = OpTypePointer Workgroup %int
%arg_0 = OpVariable %_ptr_Workgroup_int Workgroup
%uint = OpTypeInt 32 0
%_ptr_Input_uint = OpTypePointer Input %uint
%tint_symbol = OpVariable %_ptr_Input_uint Input
%void = OpTypeVoid
%7 = OpTypeFunction %void
%uint_2 = OpConstant %uint 2
@ -26,6 +28,7 @@
%int_1 = OpConstant %int 1
%_ptr_Function_int = OpTypePointer Function %int
%18 = OpConstantNull %int
%19 = OpTypeFunction %void %uint
%uint_264 = OpConstant %uint 264
%atomicXor_75dc95 = OpFunction %void None %7
%10 = OpLabel
@ -34,10 +37,17 @@
OpStore %res %11
OpReturn
OpFunctionEnd
%compute_main = OpFunction %void None %7
%20 = OpLabel
%compute_main_inner = OpFunction %void None %19
%local_invocation_index = OpFunctionParameter %uint
%22 = OpLabel
OpAtomicStore %arg_0 %uint_2 %uint_0 %18
OpControlBarrier %uint_2 %uint_2 %uint_264
%25 = OpFunctionCall %void %atomicXor_75dc95
%27 = OpFunctionCall %void %atomicXor_75dc95
OpReturn
OpFunctionEnd
%compute_main = OpFunction %void None %7
%29 = OpLabel
%31 = OpLoad %uint %local_invocation_index_1
%30 = OpFunctionCall %void %compute_main_inner %31
OpReturn
OpFunctionEnd

Some files were not shown because too many files have changed in this diff Show More