GLSL samples: add empty entry point if needed.
If a WGSL test contains no entry points, add an empty one. In that case, do not pass its name to the generator, so we generate code for all functions, so they aren't culled for reachability. Add new test results for formerly empty tests. Bug: tint:1376 Change-Id: Ibf371b943fb273d44712dfcc9dc1b7bb4ab071db Reviewed-on: https://dawn-review.googlesource.com/c/tint/+/76540 Kokoro: Kokoro <noreply+kokoro@google.com> Reviewed-by: Ben Clayton <bclayton@google.com> Commit-Queue: Stephen White <senorblanco@chromium.org>
This commit is contained in:
parent
b4cd255c6e
commit
671d9703f0
|
@ -824,15 +824,15 @@ EShLanguage pipeline_stage_to_esh_language(tint::ast::PipelineStage stage) {
|
|||
/// @returns true on success
|
||||
bool GenerateGlsl(const tint::Program* program, const Options& options) {
|
||||
#if TINT_BUILD_GLSL_WRITER
|
||||
bool success = true;
|
||||
if (options.validate) {
|
||||
glslang::InitializeProcess();
|
||||
}
|
||||
|
||||
auto generate = [&](const tint::Program* program,
|
||||
const std::string entry_point_name) -> bool {
|
||||
tint::writer::glsl::Options gen_options;
|
||||
tint::inspector::Inspector inspector(program);
|
||||
for (auto& entry_point : inspector.GetEntryPoints()) {
|
||||
auto result =
|
||||
tint::writer::glsl::Generate(program, gen_options, entry_point.name);
|
||||
tint::writer::glsl::Generate(program, gen_options, entry_point_name);
|
||||
if (!result.success) {
|
||||
PrintWGSL(std::cerr, *program);
|
||||
std::cerr << "Failed to generate: " << result.error << std::endl;
|
||||
|
@ -858,10 +858,24 @@ bool GenerateGlsl(const tint::Program* program, const Options& options) {
|
|||
std::cerr << "Error parsing GLSL shader:\n"
|
||||
<< shader.getInfoLog() << "\n"
|
||||
<< shader.getInfoDebugLog() << "\n";
|
||||
success = false;
|
||||
return false;
|
||||
}
|
||||
}
|
||||
}
|
||||
return true;
|
||||
};
|
||||
|
||||
tint::inspector::Inspector inspector(program);
|
||||
|
||||
if (inspector.GetEntryPoints().empty()) {
|
||||
// Pass empty string here so that the GLSL generator will generate
|
||||
// code for all functions, reachable or not.
|
||||
return generate(program, "");
|
||||
}
|
||||
|
||||
bool success = true;
|
||||
for (auto& entry_point : inspector.GetEntryPoints()) {
|
||||
success &= generate(program, entry_point.name);
|
||||
}
|
||||
return success;
|
||||
#else
|
||||
|
|
|
@ -17,6 +17,7 @@
|
|||
#include <utility>
|
||||
|
||||
#include "src/program_builder.h"
|
||||
#include "src/transform/add_empty_entry_point.h"
|
||||
#include "src/transform/add_spirv_block_decoration.h"
|
||||
#include "src/transform/calculate_array_length.h"
|
||||
#include "src/transform/canonicalize_entry_point_io.h"
|
||||
|
@ -67,7 +68,7 @@ Output Glsl::Run(const Program* in, const DataMap& inputs) {
|
|||
// referenced only by phonies from being optimized out. Strictly
|
||||
// speaking, that optimization isn't incorrect, but it prevents some
|
||||
// tests (e.g., types/texture/*) from producing useful results.
|
||||
if (cfg) {
|
||||
if (cfg && !cfg->entry_point.empty()) {
|
||||
manager.Add<SingleEntryPoint>();
|
||||
data.Add<SingleEntryPoint::Config>(cfg->entry_point);
|
||||
}
|
||||
|
@ -76,6 +77,7 @@ Output Glsl::Run(const Program* in, const DataMap& inputs) {
|
|||
manager.Add<ExternalTextureTransform>();
|
||||
manager.Add<PromoteInitializersToConstVar>();
|
||||
manager.Add<PadArrayElements>();
|
||||
manager.Add<AddEmptyEntryPoint>();
|
||||
manager.Add<AddSpirvBlockDecoration>();
|
||||
|
||||
// For now, canonicalize to structs for all IO, as in HLSL.
|
||||
|
@ -90,24 +92,11 @@ Output Glsl::Run(const Program* in, const DataMap& inputs) {
|
|||
|
||||
ProgramBuilder builder;
|
||||
CloneContext ctx(&builder, &out.program);
|
||||
AddEmptyEntryPoint(ctx);
|
||||
ctx.Clone();
|
||||
builder.SetTransformApplied(this);
|
||||
return Output{Program(std::move(builder))};
|
||||
}
|
||||
|
||||
void Glsl::AddEmptyEntryPoint(CloneContext& ctx) const {
|
||||
for (auto* func : ctx.src->AST().Functions()) {
|
||||
if (func->IsEntryPoint()) {
|
||||
return;
|
||||
}
|
||||
}
|
||||
ctx.dst->Func(ctx.dst->Symbols().New("unused_entry_point"), {},
|
||||
ctx.dst->ty.void_(), {},
|
||||
{ctx.dst->Stage(ast::PipelineStage::kCompute),
|
||||
ctx.dst->WorkgroupSize(1)});
|
||||
}
|
||||
|
||||
Glsl::Config::Config(const std::string& ep, bool disable_wi)
|
||||
: entry_point(ep), disable_workgroup_init(disable_wi) {}
|
||||
Glsl::Config::Config(const Config&) = default;
|
||||
|
|
|
@ -62,10 +62,6 @@ class Glsl : public Castable<Glsl, Transform> {
|
|||
/// @param data optional extra transform-specific data
|
||||
/// @returns the transformation result
|
||||
Output Run(const Program* program, const DataMap& data = {}) override;
|
||||
|
||||
private:
|
||||
/// Add an empty shader entry point if none exist in the module.
|
||||
void AddEmptyEntryPoint(CloneContext& ctx) const;
|
||||
};
|
||||
|
||||
} // namespace transform
|
||||
|
|
|
@ -0,0 +1,55 @@
|
|||
#version 310 es
|
||||
precision mediump float;
|
||||
|
||||
layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
|
||||
void unused_entry_point() {
|
||||
return;
|
||||
}
|
||||
void main() {
|
||||
unused_entry_point();
|
||||
}
|
||||
|
||||
|
||||
|
||||
struct S {
|
||||
ivec4 arr[4];
|
||||
};
|
||||
|
||||
ivec4 src_private[4] = ivec4[4](ivec4(0, 0, 0, 0), ivec4(0, 0, 0, 0), ivec4(0, 0, 0, 0), ivec4(0, 0, 0, 0));
|
||||
shared ivec4 src_workgroup[4];
|
||||
layout (binding = 0) uniform S_1 {
|
||||
ivec4 arr[4];
|
||||
} src_uniform;
|
||||
layout (binding = 1) buffer S_2 {
|
||||
ivec4 arr[4];
|
||||
} src_storage;
|
||||
|
||||
ivec4[4] ret_arr() {
|
||||
ivec4 tint_symbol[4] = ivec4[4](ivec4(0, 0, 0, 0), ivec4(0, 0, 0, 0), ivec4(0, 0, 0, 0), ivec4(0, 0, 0, 0));
|
||||
return tint_symbol;
|
||||
}
|
||||
|
||||
S ret_struct_arr() {
|
||||
S tint_symbol_1 = S(ivec4[4](ivec4(0, 0, 0, 0), ivec4(0, 0, 0, 0), ivec4(0, 0, 0, 0), ivec4(0, 0, 0, 0)));
|
||||
return tint_symbol_1;
|
||||
}
|
||||
|
||||
void foo(ivec4 src_param[4]) {
|
||||
ivec4 src_function[4] = ivec4[4](ivec4(0, 0, 0, 0), ivec4(0, 0, 0, 0), ivec4(0, 0, 0, 0), ivec4(0, 0, 0, 0));
|
||||
ivec4 dst[4] = ivec4[4](ivec4(0, 0, 0, 0), ivec4(0, 0, 0, 0), ivec4(0, 0, 0, 0), ivec4(0, 0, 0, 0));
|
||||
ivec4 tint_symbol_2[4] = ivec4[4](ivec4(1), ivec4(2), ivec4(3), ivec4(3));
|
||||
dst = tint_symbol_2;
|
||||
dst = src_param;
|
||||
dst = ret_arr();
|
||||
ivec4 src_let[4] = ivec4[4](ivec4(0, 0, 0, 0), ivec4(0, 0, 0, 0), ivec4(0, 0, 0, 0), ivec4(0, 0, 0, 0));
|
||||
dst = src_let;
|
||||
dst = src_function;
|
||||
dst = src_private;
|
||||
dst = src_workgroup;
|
||||
dst = ret_struct_arr().arr;
|
||||
dst = src_uniform.arr;
|
||||
dst = src_storage.arr;
|
||||
int dst_nested[4][3][2] = int[4][3][2](int[3][2](int[2](0, 0), int[2](0, 0), int[2](0, 0)), int[3][2](int[2](0, 0), int[2](0, 0), int[2](0, 0)), int[3][2](int[2](0, 0), int[2](0, 0), int[2](0, 0)), int[3][2](int[2](0, 0), int[2](0, 0), int[2](0, 0)));
|
||||
int src_nested[4][3][2] = int[4][3][2](int[3][2](int[2](0, 0), int[2](0, 0), int[2](0, 0)), int[3][2](int[2](0, 0), int[2](0, 0), int[2](0, 0)), int[3][2](int[2](0, 0), int[2](0, 0), int[2](0, 0)), int[3][2](int[2](0, 0), int[2](0, 0), int[2](0, 0)));
|
||||
dst_nested = src_nested;
|
||||
}
|
|
@ -0,0 +1,55 @@
|
|||
#version 310 es
|
||||
precision mediump float;
|
||||
|
||||
layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
|
||||
void unused_entry_point() {
|
||||
return;
|
||||
}
|
||||
void main() {
|
||||
unused_entry_point();
|
||||
}
|
||||
|
||||
|
||||
|
||||
struct S {
|
||||
ivec4 arr[4];
|
||||
};
|
||||
|
||||
ivec4 src_private[4] = ivec4[4](ivec4(0, 0, 0, 0), ivec4(0, 0, 0, 0), ivec4(0, 0, 0, 0), ivec4(0, 0, 0, 0));
|
||||
shared ivec4 src_workgroup[4];
|
||||
layout (binding = 0) uniform S_1 {
|
||||
ivec4 arr[4];
|
||||
} src_uniform;
|
||||
layout (binding = 1) buffer S_2 {
|
||||
ivec4 arr[4];
|
||||
} src_storage;
|
||||
ivec4 dst[4] = ivec4[4](ivec4(0, 0, 0, 0), ivec4(0, 0, 0, 0), ivec4(0, 0, 0, 0), ivec4(0, 0, 0, 0));
|
||||
int dst_nested[4][3][2] = int[4][3][2](int[3][2](int[2](0, 0), int[2](0, 0), int[2](0, 0)), int[3][2](int[2](0, 0), int[2](0, 0), int[2](0, 0)), int[3][2](int[2](0, 0), int[2](0, 0), int[2](0, 0)), int[3][2](int[2](0, 0), int[2](0, 0), int[2](0, 0)));
|
||||
|
||||
ivec4[4] ret_arr() {
|
||||
ivec4 tint_symbol[4] = ivec4[4](ivec4(0, 0, 0, 0), ivec4(0, 0, 0, 0), ivec4(0, 0, 0, 0), ivec4(0, 0, 0, 0));
|
||||
return tint_symbol;
|
||||
}
|
||||
|
||||
S ret_struct_arr() {
|
||||
S tint_symbol_1 = S(ivec4[4](ivec4(0, 0, 0, 0), ivec4(0, 0, 0, 0), ivec4(0, 0, 0, 0), ivec4(0, 0, 0, 0)));
|
||||
return tint_symbol_1;
|
||||
}
|
||||
|
||||
void foo(ivec4 src_param[4]) {
|
||||
ivec4 src_function[4] = ivec4[4](ivec4(0, 0, 0, 0), ivec4(0, 0, 0, 0), ivec4(0, 0, 0, 0), ivec4(0, 0, 0, 0));
|
||||
ivec4 tint_symbol_2[4] = ivec4[4](ivec4(1), ivec4(2), ivec4(3), ivec4(3));
|
||||
dst = tint_symbol_2;
|
||||
dst = src_param;
|
||||
dst = ret_arr();
|
||||
ivec4 src_let[4] = ivec4[4](ivec4(0, 0, 0, 0), ivec4(0, 0, 0, 0), ivec4(0, 0, 0, 0), ivec4(0, 0, 0, 0));
|
||||
dst = src_let;
|
||||
dst = src_function;
|
||||
dst = src_private;
|
||||
dst = src_workgroup;
|
||||
dst = ret_struct_arr().arr;
|
||||
dst = src_uniform.arr;
|
||||
dst = src_storage.arr;
|
||||
int src_nested[4][3][2] = int[4][3][2](int[3][2](int[2](0, 0), int[2](0, 0), int[2](0, 0)), int[3][2](int[2](0, 0), int[2](0, 0), int[2](0, 0)), int[3][2](int[2](0, 0), int[2](0, 0), int[2](0, 0)), int[3][2](int[2](0, 0), int[2](0, 0), int[2](0, 0)));
|
||||
dst_nested = src_nested;
|
||||
}
|
|
@ -0,0 +1,62 @@
|
|||
#version 310 es
|
||||
precision mediump float;
|
||||
|
||||
layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
|
||||
void unused_entry_point() {
|
||||
return;
|
||||
}
|
||||
void main() {
|
||||
unused_entry_point();
|
||||
}
|
||||
|
||||
|
||||
|
||||
struct S {
|
||||
ivec4 arr[4];
|
||||
};
|
||||
struct S_nested {
|
||||
int arr[4][3][2];
|
||||
};
|
||||
|
||||
ivec4 src_private[4] = ivec4[4](ivec4(0, 0, 0, 0), ivec4(0, 0, 0, 0), ivec4(0, 0, 0, 0), ivec4(0, 0, 0, 0));
|
||||
shared ivec4 src_workgroup[4];
|
||||
layout (binding = 0) uniform S_1 {
|
||||
ivec4 arr[4];
|
||||
} src_uniform;
|
||||
layout (binding = 1) buffer S_2 {
|
||||
ivec4 arr[4];
|
||||
} src_storage;
|
||||
layout (binding = 2) buffer S_3 {
|
||||
ivec4 arr[4];
|
||||
} dst;
|
||||
layout (binding = 3) buffer S_nested_1 {
|
||||
int arr[4][3][2];
|
||||
} dst_nested;
|
||||
|
||||
ivec4[4] ret_arr() {
|
||||
ivec4 tint_symbol[4] = ivec4[4](ivec4(0, 0, 0, 0), ivec4(0, 0, 0, 0), ivec4(0, 0, 0, 0), ivec4(0, 0, 0, 0));
|
||||
return tint_symbol;
|
||||
}
|
||||
|
||||
S ret_struct_arr() {
|
||||
S tint_symbol_1 = S(ivec4[4](ivec4(0, 0, 0, 0), ivec4(0, 0, 0, 0), ivec4(0, 0, 0, 0), ivec4(0, 0, 0, 0)));
|
||||
return tint_symbol_1;
|
||||
}
|
||||
|
||||
void foo(ivec4 src_param[4]) {
|
||||
ivec4 src_function[4] = ivec4[4](ivec4(0, 0, 0, 0), ivec4(0, 0, 0, 0), ivec4(0, 0, 0, 0), ivec4(0, 0, 0, 0));
|
||||
ivec4 tint_symbol_2[4] = ivec4[4](ivec4(1), ivec4(2), ivec4(3), ivec4(3));
|
||||
dst.arr = tint_symbol_2;
|
||||
dst.arr = src_param;
|
||||
dst.arr = ret_arr();
|
||||
ivec4 src_let[4] = ivec4[4](ivec4(0, 0, 0, 0), ivec4(0, 0, 0, 0), ivec4(0, 0, 0, 0), ivec4(0, 0, 0, 0));
|
||||
dst.arr = src_let;
|
||||
dst.arr = src_function;
|
||||
dst.arr = src_private;
|
||||
dst.arr = src_workgroup;
|
||||
dst.arr = ret_struct_arr().arr;
|
||||
dst.arr = src_uniform.arr;
|
||||
dst.arr = src_storage.arr;
|
||||
int src_nested[4][3][2] = int[4][3][2](int[3][2](int[2](0, 0), int[2](0, 0), int[2](0, 0)), int[3][2](int[2](0, 0), int[2](0, 0), int[2](0, 0)), int[3][2](int[2](0, 0), int[2](0, 0), int[2](0, 0)), int[3][2](int[2](0, 0), int[2](0, 0), int[2](0, 0)));
|
||||
dst_nested.arr = src_nested;
|
||||
}
|
|
@ -0,0 +1,28 @@
|
|||
#version 310 es
|
||||
precision mediump float;
|
||||
|
||||
layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
|
||||
void unused_entry_point() {
|
||||
return;
|
||||
}
|
||||
void main() {
|
||||
unused_entry_point();
|
||||
}
|
||||
|
||||
|
||||
|
||||
struct S {
|
||||
int arr[4];
|
||||
};
|
||||
|
||||
void foo() {
|
||||
int src[4] = int[4](0, 0, 0, 0);
|
||||
int dst[4] = int[4](0, 0, 0, 0);
|
||||
S dst_struct = S(int[4](0, 0, 0, 0));
|
||||
int dst_array[2][4] = int[2][4](int[4](0, 0, 0, 0), int[4](0, 0, 0, 0));
|
||||
dst_struct.arr = src;
|
||||
dst_array[1] = src;
|
||||
dst = src;
|
||||
dst_struct.arr = src;
|
||||
dst_array[0] = src;
|
||||
}
|
|
@ -0,0 +1,55 @@
|
|||
#version 310 es
|
||||
precision mediump float;
|
||||
|
||||
layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
|
||||
void unused_entry_point() {
|
||||
return;
|
||||
}
|
||||
void main() {
|
||||
unused_entry_point();
|
||||
}
|
||||
|
||||
|
||||
|
||||
struct S {
|
||||
ivec4 arr[4];
|
||||
};
|
||||
|
||||
ivec4 src_private[4] = ivec4[4](ivec4(0, 0, 0, 0), ivec4(0, 0, 0, 0), ivec4(0, 0, 0, 0), ivec4(0, 0, 0, 0));
|
||||
shared ivec4 src_workgroup[4];
|
||||
layout (binding = 0) uniform S_1 {
|
||||
ivec4 arr[4];
|
||||
} src_uniform;
|
||||
layout (binding = 1) buffer S_2 {
|
||||
ivec4 arr[4];
|
||||
} src_storage;
|
||||
shared ivec4 dst[4];
|
||||
shared int dst_nested[4][3][2];
|
||||
|
||||
ivec4[4] ret_arr() {
|
||||
ivec4 tint_symbol[4] = ivec4[4](ivec4(0, 0, 0, 0), ivec4(0, 0, 0, 0), ivec4(0, 0, 0, 0), ivec4(0, 0, 0, 0));
|
||||
return tint_symbol;
|
||||
}
|
||||
|
||||
S ret_struct_arr() {
|
||||
S tint_symbol_1 = S(ivec4[4](ivec4(0, 0, 0, 0), ivec4(0, 0, 0, 0), ivec4(0, 0, 0, 0), ivec4(0, 0, 0, 0)));
|
||||
return tint_symbol_1;
|
||||
}
|
||||
|
||||
void foo(ivec4 src_param[4]) {
|
||||
ivec4 src_function[4] = ivec4[4](ivec4(0, 0, 0, 0), ivec4(0, 0, 0, 0), ivec4(0, 0, 0, 0), ivec4(0, 0, 0, 0));
|
||||
ivec4 tint_symbol_2[4] = ivec4[4](ivec4(1), ivec4(2), ivec4(3), ivec4(3));
|
||||
dst = tint_symbol_2;
|
||||
dst = src_param;
|
||||
dst = ret_arr();
|
||||
ivec4 src_let[4] = ivec4[4](ivec4(0, 0, 0, 0), ivec4(0, 0, 0, 0), ivec4(0, 0, 0, 0), ivec4(0, 0, 0, 0));
|
||||
dst = src_let;
|
||||
dst = src_function;
|
||||
dst = src_private;
|
||||
dst = src_workgroup;
|
||||
dst = ret_struct_arr().arr;
|
||||
dst = src_uniform.arr;
|
||||
dst = src_storage.arr;
|
||||
int src_nested[4][3][2] = int[4][3][2](int[3][2](int[2](0, 0), int[2](0, 0), int[2](0, 0)), int[3][2](int[2](0, 0), int[2](0, 0), int[2](0, 0)), int[3][2](int[2](0, 0), int[2](0, 0), int[2](0, 0)), int[3][2](int[2](0, 0), int[2](0, 0), int[2](0, 0)));
|
||||
dst_nested = src_nested;
|
||||
}
|
|
@ -1,12 +1,15 @@
|
|||
#version 310 es
|
||||
precision mediump float;
|
||||
|
||||
struct S {
|
||||
float f;
|
||||
};
|
||||
|
||||
layout (binding = 0) buffer tint_symbol_block_1 {
|
||||
float inner[];
|
||||
S inner[];
|
||||
} tint_symbol;
|
||||
layout (binding = 1) buffer tint_symbol_block_2 {
|
||||
float inner[];
|
||||
S inner[];
|
||||
} tint_symbol_1;
|
||||
|
||||
layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
|
||||
|
|
|
@ -0,0 +1,14 @@
|
|||
#version 310 es
|
||||
precision mediump float;
|
||||
|
||||
layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
|
||||
void unused_entry_point() {
|
||||
return;
|
||||
}
|
||||
void main() {
|
||||
unused_entry_point();
|
||||
}
|
||||
|
||||
|
||||
|
||||
const int H = 1;
|
|
@ -0,0 +1,37 @@
|
|||
SKIP: FAILED
|
||||
|
||||
#version 310 es
|
||||
precision mediump float;
|
||||
|
||||
struct modf_result {
|
||||
float fract;
|
||||
float whole;
|
||||
};
|
||||
modf_result tint_modf(float param_0) {
|
||||
float whole;
|
||||
float fract = modf(param_0, whole);
|
||||
modf_result result = {fract, whole};
|
||||
return result;
|
||||
}
|
||||
|
||||
|
||||
layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
|
||||
void unused_entry_point() {
|
||||
return;
|
||||
}
|
||||
void main() {
|
||||
unused_entry_point();
|
||||
}
|
||||
|
||||
|
||||
|
||||
void i() {
|
||||
float s = tint_modf(1.0f).whole;
|
||||
}
|
||||
Error parsing GLSL shader:
|
||||
ERROR: 0:11: '{ } style initializers' : not supported with this profile: es
|
||||
ERROR: 0:11: '' : compilation terminated
|
||||
ERROR: 2 compilation errors. No code generated.
|
||||
|
||||
|
||||
|
|
@ -0,0 +1,24 @@
|
|||
#version 310 es
|
||||
precision mediump float;
|
||||
|
||||
layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
|
||||
void unused_entry_point() {
|
||||
return;
|
||||
}
|
||||
void main() {
|
||||
unused_entry_point();
|
||||
}
|
||||
|
||||
|
||||
|
||||
struct A {
|
||||
int a;
|
||||
};
|
||||
struct B {
|
||||
int b;
|
||||
};
|
||||
|
||||
B f(A a) {
|
||||
B tint_symbol = B(0);
|
||||
return tint_symbol;
|
||||
}
|
|
@ -1,6 +1,6 @@
|
|||
SKIP: FAILED
|
||||
|
||||
bug/tint/1081.wgsl:9:25 warning: integral user-defined fragment inputs must have a flat interpolation attribute
|
||||
bug/tint/1081.wgsl:9:22 warning: integral user-defined fragment inputs must have a flat interpolation attribute
|
||||
fn main(@location(1) x: vec3<i32>) -> @location(2) i32 {
|
||||
^
|
||||
|
||||
|
|
|
@ -0,0 +1,24 @@
|
|||
#version 310 es
|
||||
precision mediump float;
|
||||
|
||||
layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
|
||||
void unused_entry_point() {
|
||||
return;
|
||||
}
|
||||
void main() {
|
||||
unused_entry_point();
|
||||
}
|
||||
|
||||
|
||||
|
||||
struct Buffer {
|
||||
uint data;
|
||||
};
|
||||
|
||||
layout (binding = 0) buffer Buffer_1 {
|
||||
uint data;
|
||||
} tint_symbol;
|
||||
|
||||
void tint_symbol_1() {
|
||||
tint_symbol.data = (tint_symbol.data + 1u);
|
||||
}
|
|
@ -0,0 +1,21 @@
|
|||
#version 310 es
|
||||
precision mediump float;
|
||||
|
||||
layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
|
||||
void unused_entry_point() {
|
||||
return;
|
||||
}
|
||||
void main() {
|
||||
unused_entry_point();
|
||||
}
|
||||
|
||||
|
||||
|
||||
struct Light {
|
||||
vec3 position;
|
||||
vec3 colour;
|
||||
};
|
||||
|
||||
layout (binding = 1) buffer Lights_1 {
|
||||
Light light[];
|
||||
} lights;
|
|
@ -0,0 +1,23 @@
|
|||
#version 310 es
|
||||
precision mediump float;
|
||||
|
||||
layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
|
||||
void unused_entry_point() {
|
||||
return;
|
||||
}
|
||||
void main() {
|
||||
unused_entry_point();
|
||||
}
|
||||
|
||||
|
||||
|
||||
struct S {
|
||||
mat2 m;
|
||||
};
|
||||
|
||||
layout (binding = 0) buffer S_1 {
|
||||
mat2 m;
|
||||
} SSBO;
|
||||
layout (binding = 0) uniform S_2 {
|
||||
mat2 m;
|
||||
} UBO;
|
|
@ -0,0 +1,18 @@
|
|||
#version 310 es
|
||||
precision mediump float;
|
||||
|
||||
layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
|
||||
void unused_entry_point() {
|
||||
return;
|
||||
}
|
||||
void main() {
|
||||
unused_entry_point();
|
||||
}
|
||||
|
||||
|
||||
|
||||
void f() {
|
||||
mat4 m = mat4(vec4(1.0f, 1.0f, 1.0f, 1.0f), vec4(1.0f, 1.0f, 1.0f, 1.0f), vec4(1.0f, 1.0f, 1.0f, 1.0f), vec4(1.0f, 1.0f, 1.0f, 1.0f));
|
||||
vec4 v1 = m[0];
|
||||
float a = v1[0];
|
||||
}
|
|
@ -0,0 +1,18 @@
|
|||
#version 310 es
|
||||
precision mediump float;
|
||||
|
||||
layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
|
||||
void unused_entry_point() {
|
||||
return;
|
||||
}
|
||||
void main() {
|
||||
unused_entry_point();
|
||||
}
|
||||
|
||||
|
||||
|
||||
void foo() {
|
||||
int explicit[2] = int[2](0, 0);
|
||||
int implict[2] = int[2](0, 0);
|
||||
implict = explicit;
|
||||
}
|
|
@ -3,12 +3,12 @@ SKIP: FAILED
|
|||
|
||||
struct buf0 {
|
||||
resolution : vec2<f32>;
|
||||
};
|
||||
}
|
||||
|
||||
struct S {
|
||||
field0 : u32;
|
||||
field1 : u32;
|
||||
};
|
||||
}
|
||||
|
||||
@group(0) @binding(0) var<uniform> x_75 : buf0;
|
||||
|
||||
|
|
|
@ -3,6 +3,6 @@ SKIP: FAILED
|
|||
|
||||
struct buf0 {
|
||||
resolution : vec2<f32>;
|
||||
};
|
||||
}
|
||||
|
||||
error: undef pointer is not valid: %845 = OpUndef %434
|
||||
|
|
|
@ -0,0 +1,19 @@
|
|||
#version 310 es
|
||||
precision mediump float;
|
||||
|
||||
layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
|
||||
void unused_entry_point() {
|
||||
return;
|
||||
}
|
||||
void main() {
|
||||
unused_entry_point();
|
||||
}
|
||||
|
||||
|
||||
|
||||
void f() {
|
||||
int i = 0;
|
||||
int j = 0;
|
||||
mat2 m = mat2(vec2(1.0f, 2.0f), vec2(3.0f, 4.0f));
|
||||
float f_1 = m[i][j];
|
||||
}
|
|
@ -0,0 +1,20 @@
|
|||
#version 310 es
|
||||
precision mediump float;
|
||||
|
||||
layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
|
||||
void unused_entry_point() {
|
||||
return;
|
||||
}
|
||||
void main() {
|
||||
unused_entry_point();
|
||||
}
|
||||
|
||||
|
||||
|
||||
void f() {
|
||||
int i = 0;
|
||||
{
|
||||
for(; false; ) {
|
||||
}
|
||||
}
|
||||
}
|
|
@ -0,0 +1,17 @@
|
|||
#version 310 es
|
||||
precision mediump float;
|
||||
|
||||
layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
|
||||
void unused_entry_point() {
|
||||
return;
|
||||
}
|
||||
void main() {
|
||||
unused_entry_point();
|
||||
}
|
||||
|
||||
|
||||
|
||||
int f() {
|
||||
int a[8] = int[8](1, 2, 3, 4, 5, 6, 7, 8);
|
||||
return a[1];
|
||||
}
|
|
@ -0,0 +1,17 @@
|
|||
#version 310 es
|
||||
precision mediump float;
|
||||
|
||||
layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
|
||||
void unused_entry_point() {
|
||||
return;
|
||||
}
|
||||
void main() {
|
||||
unused_entry_point();
|
||||
}
|
||||
|
||||
|
||||
|
||||
vec3 f() {
|
||||
mat3 m = mat3(1.0f, 2.0f, 3.0f, 4.0f, 5.0f, 6.0f, 7.0f, 8.0f, 9.0f);
|
||||
return m[1];
|
||||
}
|
|
@ -0,0 +1,17 @@
|
|||
#version 310 es
|
||||
precision mediump float;
|
||||
|
||||
layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
|
||||
void unused_entry_point() {
|
||||
return;
|
||||
}
|
||||
void main() {
|
||||
unused_entry_point();
|
||||
}
|
||||
|
||||
|
||||
|
||||
float f() {
|
||||
vec3 v = vec3(1.0f, 2.0f, 3.0f);
|
||||
return v[1];
|
||||
}
|
|
@ -0,0 +1,17 @@
|
|||
#version 310 es
|
||||
precision mediump float;
|
||||
|
||||
layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
|
||||
void unused_entry_point() {
|
||||
return;
|
||||
}
|
||||
void main() {
|
||||
unused_entry_point();
|
||||
}
|
||||
|
||||
|
||||
|
||||
int f(int x) {
|
||||
int a[8] = int[8](1, 2, 3, 4, 5, 6, 7, 8);
|
||||
return a[x];
|
||||
}
|
|
@ -0,0 +1,17 @@
|
|||
#version 310 es
|
||||
precision mediump float;
|
||||
|
||||
layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
|
||||
void unused_entry_point() {
|
||||
return;
|
||||
}
|
||||
void main() {
|
||||
unused_entry_point();
|
||||
}
|
||||
|
||||
|
||||
|
||||
vec3 f(int x) {
|
||||
mat3 m = mat3(1.0f, 2.0f, 3.0f, 4.0f, 5.0f, 6.0f, 7.0f, 8.0f, 9.0f);
|
||||
return m[x];
|
||||
}
|
|
@ -0,0 +1,17 @@
|
|||
#version 310 es
|
||||
precision mediump float;
|
||||
|
||||
layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
|
||||
void unused_entry_point() {
|
||||
return;
|
||||
}
|
||||
void main() {
|
||||
unused_entry_point();
|
||||
}
|
||||
|
||||
|
||||
|
||||
float f(int x) {
|
||||
vec3 v = vec3(1.0f, 2.0f, 3.0f);
|
||||
return v[x];
|
||||
}
|
|
@ -0,0 +1,17 @@
|
|||
#version 310 es
|
||||
precision mediump float;
|
||||
|
||||
layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
|
||||
void unused_entry_point() {
|
||||
return;
|
||||
}
|
||||
void main() {
|
||||
unused_entry_point();
|
||||
}
|
||||
|
||||
|
||||
|
||||
int f() {
|
||||
int a[8] = int[8](1, 2, 3, 4, 5, 6, 7, 8);
|
||||
return a[1];
|
||||
}
|
|
@ -0,0 +1,17 @@
|
|||
#version 310 es
|
||||
precision mediump float;
|
||||
|
||||
layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
|
||||
void unused_entry_point() {
|
||||
return;
|
||||
}
|
||||
void main() {
|
||||
unused_entry_point();
|
||||
}
|
||||
|
||||
|
||||
|
||||
vec3 f() {
|
||||
mat3 m = mat3(1.0f, 2.0f, 3.0f, 4.0f, 5.0f, 6.0f, 7.0f, 8.0f, 9.0f);
|
||||
return m[1];
|
||||
}
|
|
@ -0,0 +1,17 @@
|
|||
#version 310 es
|
||||
precision mediump float;
|
||||
|
||||
layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
|
||||
void unused_entry_point() {
|
||||
return;
|
||||
}
|
||||
void main() {
|
||||
unused_entry_point();
|
||||
}
|
||||
|
||||
|
||||
|
||||
float f() {
|
||||
vec3 v = vec3(1.0f, 2.0f, 3.0f);
|
||||
return v[1];
|
||||
}
|
|
@ -0,0 +1,17 @@
|
|||
#version 310 es
|
||||
precision mediump float;
|
||||
|
||||
layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
|
||||
void unused_entry_point() {
|
||||
return;
|
||||
}
|
||||
void main() {
|
||||
unused_entry_point();
|
||||
}
|
||||
|
||||
|
||||
|
||||
int f(int i) {
|
||||
int a[8] = int[8](1, 2, 3, 4, 5, 6, 7, 8);
|
||||
return a[i];
|
||||
}
|
|
@ -0,0 +1,17 @@
|
|||
#version 310 es
|
||||
precision mediump float;
|
||||
|
||||
layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
|
||||
void unused_entry_point() {
|
||||
return;
|
||||
}
|
||||
void main() {
|
||||
unused_entry_point();
|
||||
}
|
||||
|
||||
|
||||
|
||||
vec3 f(int i) {
|
||||
mat3 m = mat3(1.0f, 2.0f, 3.0f, 4.0f, 5.0f, 6.0f, 7.0f, 8.0f, 9.0f);
|
||||
return m[i];
|
||||
}
|
|
@ -0,0 +1,17 @@
|
|||
#version 310 es
|
||||
precision mediump float;
|
||||
|
||||
layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
|
||||
void unused_entry_point() {
|
||||
return;
|
||||
}
|
||||
void main() {
|
||||
unused_entry_point();
|
||||
}
|
||||
|
||||
|
||||
|
||||
float f(int i) {
|
||||
vec3 v = vec3(1.0f, 2.0f, 3.0f);
|
||||
return v[i];
|
||||
}
|
|
@ -0,0 +1,17 @@
|
|||
#version 310 es
|
||||
precision mediump float;
|
||||
|
||||
layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
|
||||
void unused_entry_point() {
|
||||
return;
|
||||
}
|
||||
void main() {
|
||||
unused_entry_point();
|
||||
}
|
||||
|
||||
|
||||
|
||||
int f() {
|
||||
int a[8] = int[8](1, 2, 3, 4, 5, 6, 7, 8);
|
||||
return a[1];
|
||||
}
|
|
@ -0,0 +1,17 @@
|
|||
#version 310 es
|
||||
precision mediump float;
|
||||
|
||||
layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
|
||||
void unused_entry_point() {
|
||||
return;
|
||||
}
|
||||
void main() {
|
||||
unused_entry_point();
|
||||
}
|
||||
|
||||
|
||||
|
||||
vec3 f() {
|
||||
mat3 m = mat3(1.0f, 2.0f, 3.0f, 4.0f, 5.0f, 6.0f, 7.0f, 8.0f, 9.0f);
|
||||
return m[1];
|
||||
}
|
|
@ -0,0 +1,17 @@
|
|||
#version 310 es
|
||||
precision mediump float;
|
||||
|
||||
layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
|
||||
void unused_entry_point() {
|
||||
return;
|
||||
}
|
||||
void main() {
|
||||
unused_entry_point();
|
||||
}
|
||||
|
||||
|
||||
|
||||
float f() {
|
||||
vec3 v = vec3(1.0f, 2.0f, 3.0f);
|
||||
return v[1];
|
||||
}
|
|
@ -0,0 +1,17 @@
|
|||
#version 310 es
|
||||
precision mediump float;
|
||||
|
||||
layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
|
||||
void unused_entry_point() {
|
||||
return;
|
||||
}
|
||||
void main() {
|
||||
unused_entry_point();
|
||||
}
|
||||
|
||||
|
||||
|
||||
int f() {
|
||||
int a[8] = int[8](1, 2, 3, 4, 5, 6, 7, 8);
|
||||
return a[1];
|
||||
}
|
|
@ -0,0 +1,17 @@
|
|||
#version 310 es
|
||||
precision mediump float;
|
||||
|
||||
layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
|
||||
void unused_entry_point() {
|
||||
return;
|
||||
}
|
||||
void main() {
|
||||
unused_entry_point();
|
||||
}
|
||||
|
||||
|
||||
|
||||
vec3 f() {
|
||||
mat3 m = mat3(1.0f, 2.0f, 3.0f, 4.0f, 5.0f, 6.0f, 7.0f, 8.0f, 9.0f);
|
||||
return m[1];
|
||||
}
|
|
@ -0,0 +1,17 @@
|
|||
#version 310 es
|
||||
precision mediump float;
|
||||
|
||||
layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
|
||||
void unused_entry_point() {
|
||||
return;
|
||||
}
|
||||
void main() {
|
||||
unused_entry_point();
|
||||
}
|
||||
|
||||
|
||||
|
||||
float f() {
|
||||
vec3 v = vec3(1.0f, 2.0f, 3.0f);
|
||||
return v[1];
|
||||
}
|
|
@ -0,0 +1,17 @@
|
|||
#version 310 es
|
||||
precision mediump float;
|
||||
|
||||
layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
|
||||
void unused_entry_point() {
|
||||
return;
|
||||
}
|
||||
void main() {
|
||||
unused_entry_point();
|
||||
}
|
||||
|
||||
|
||||
|
||||
int f(int x) {
|
||||
int a[8] = int[8](1, 2, 3, 4, 5, 6, 7, 8);
|
||||
return a[x];
|
||||
}
|
|
@ -0,0 +1,17 @@
|
|||
#version 310 es
|
||||
precision mediump float;
|
||||
|
||||
layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
|
||||
void unused_entry_point() {
|
||||
return;
|
||||
}
|
||||
void main() {
|
||||
unused_entry_point();
|
||||
}
|
||||
|
||||
|
||||
|
||||
vec3 f(int x) {
|
||||
mat3 m = mat3(1.0f, 2.0f, 3.0f, 4.0f, 5.0f, 6.0f, 7.0f, 8.0f, 9.0f);
|
||||
return m[x];
|
||||
}
|
|
@ -0,0 +1,17 @@
|
|||
#version 310 es
|
||||
precision mediump float;
|
||||
|
||||
layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
|
||||
void unused_entry_point() {
|
||||
return;
|
||||
}
|
||||
void main() {
|
||||
unused_entry_point();
|
||||
}
|
||||
|
||||
|
||||
|
||||
float f(int x) {
|
||||
vec3 v = vec3(1.0f, 2.0f, 3.0f);
|
||||
return v[x];
|
||||
}
|
|
@ -0,0 +1,17 @@
|
|||
#version 310 es
|
||||
precision mediump float;
|
||||
|
||||
layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
|
||||
void unused_entry_point() {
|
||||
return;
|
||||
}
|
||||
void main() {
|
||||
unused_entry_point();
|
||||
}
|
||||
|
||||
|
||||
|
||||
int f() {
|
||||
int a[8] = int[8](1, 2, 3, 4, 5, 6, 7, 8);
|
||||
return a[1];
|
||||
}
|
|
@ -0,0 +1,17 @@
|
|||
#version 310 es
|
||||
precision mediump float;
|
||||
|
||||
layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
|
||||
void unused_entry_point() {
|
||||
return;
|
||||
}
|
||||
void main() {
|
||||
unused_entry_point();
|
||||
}
|
||||
|
||||
|
||||
|
||||
vec3 f() {
|
||||
mat3 m = mat3(1.0f, 2.0f, 3.0f, 4.0f, 5.0f, 6.0f, 7.0f, 8.0f, 9.0f);
|
||||
return m[1];
|
||||
}
|
|
@ -0,0 +1,17 @@
|
|||
#version 310 es
|
||||
precision mediump float;
|
||||
|
||||
layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
|
||||
void unused_entry_point() {
|
||||
return;
|
||||
}
|
||||
void main() {
|
||||
unused_entry_point();
|
||||
}
|
||||
|
||||
|
||||
|
||||
float f() {
|
||||
vec3 v = vec3(1.0f, 2.0f, 3.0f);
|
||||
return v[1];
|
||||
}
|
|
@ -0,0 +1,17 @@
|
|||
#version 310 es
|
||||
precision mediump float;
|
||||
|
||||
layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
|
||||
void unused_entry_point() {
|
||||
return;
|
||||
}
|
||||
void main() {
|
||||
unused_entry_point();
|
||||
}
|
||||
|
||||
|
||||
|
||||
int f(int i) {
|
||||
int a[8] = int[8](1, 2, 3, 4, 5, 6, 7, 8);
|
||||
return a[i];
|
||||
}
|
|
@ -0,0 +1,17 @@
|
|||
#version 310 es
|
||||
precision mediump float;
|
||||
|
||||
layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
|
||||
void unused_entry_point() {
|
||||
return;
|
||||
}
|
||||
void main() {
|
||||
unused_entry_point();
|
||||
}
|
||||
|
||||
|
||||
|
||||
vec3 f(int i) {
|
||||
mat3 m = mat3(1.0f, 2.0f, 3.0f, 4.0f, 5.0f, 6.0f, 7.0f, 8.0f, 9.0f);
|
||||
return m[i];
|
||||
}
|
|
@ -0,0 +1,17 @@
|
|||
#version 310 es
|
||||
precision mediump float;
|
||||
|
||||
layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
|
||||
void unused_entry_point() {
|
||||
return;
|
||||
}
|
||||
void main() {
|
||||
unused_entry_point();
|
||||
}
|
||||
|
||||
|
||||
|
||||
float f(int i) {
|
||||
vec3 v = vec3(1.0f, 2.0f, 3.0f);
|
||||
return v[i];
|
||||
}
|
|
@ -0,0 +1,19 @@
|
|||
#version 310 es
|
||||
precision mediump float;
|
||||
|
||||
layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
|
||||
void unused_entry_point() {
|
||||
return;
|
||||
}
|
||||
void main() {
|
||||
unused_entry_point();
|
||||
}
|
||||
|
||||
|
||||
|
||||
int add_int_min_explicit() {
|
||||
int a = -2147483648;
|
||||
int b = (a + 1);
|
||||
int c = (-2147483648 + 1);
|
||||
return c;
|
||||
}
|
|
@ -0,0 +1,22 @@
|
|||
#version 310 es
|
||||
precision mediump float;
|
||||
|
||||
layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
|
||||
void unused_entry_point() {
|
||||
return;
|
||||
}
|
||||
void main() {
|
||||
unused_entry_point();
|
||||
}
|
||||
|
||||
|
||||
|
||||
bool get_bool() {
|
||||
return true;
|
||||
}
|
||||
|
||||
void f() {
|
||||
bvec2 v2 = bvec2(get_bool());
|
||||
bvec3 v3 = bvec3(get_bool());
|
||||
bvec4 v4 = bvec4(get_bool());
|
||||
}
|
|
@ -0,0 +1,22 @@
|
|||
#version 310 es
|
||||
precision mediump float;
|
||||
|
||||
layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
|
||||
void unused_entry_point() {
|
||||
return;
|
||||
}
|
||||
void main() {
|
||||
unused_entry_point();
|
||||
}
|
||||
|
||||
|
||||
|
||||
float get_f32() {
|
||||
return 1.0f;
|
||||
}
|
||||
|
||||
void f() {
|
||||
vec2 v2 = vec2(get_f32());
|
||||
vec3 v3 = vec3(get_f32());
|
||||
vec4 v4 = vec4(get_f32());
|
||||
}
|
|
@ -0,0 +1,22 @@
|
|||
#version 310 es
|
||||
precision mediump float;
|
||||
|
||||
layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
|
||||
void unused_entry_point() {
|
||||
return;
|
||||
}
|
||||
void main() {
|
||||
unused_entry_point();
|
||||
}
|
||||
|
||||
|
||||
|
||||
int get_i32() {
|
||||
return 1;
|
||||
}
|
||||
|
||||
void f() {
|
||||
ivec2 v2 = ivec2(get_i32());
|
||||
ivec3 v3 = ivec3(get_i32());
|
||||
ivec4 v4 = ivec4(get_i32());
|
||||
}
|
|
@ -0,0 +1,22 @@
|
|||
#version 310 es
|
||||
precision mediump float;
|
||||
|
||||
layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
|
||||
void unused_entry_point() {
|
||||
return;
|
||||
}
|
||||
void main() {
|
||||
unused_entry_point();
|
||||
}
|
||||
|
||||
|
||||
|
||||
uint get_u32() {
|
||||
return 1u;
|
||||
}
|
||||
|
||||
void f() {
|
||||
uvec2 v2 = uvec2(get_u32());
|
||||
uvec3 v3 = uvec3(get_u32());
|
||||
uvec4 v4 = uvec4(get_u32());
|
||||
}
|
|
@ -0,0 +1,30 @@
|
|||
#version 310 es
|
||||
precision mediump float;
|
||||
|
||||
layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
|
||||
void unused_entry_point() {
|
||||
return;
|
||||
}
|
||||
void main() {
|
||||
unused_entry_point();
|
||||
}
|
||||
|
||||
|
||||
|
||||
void f() {
|
||||
bool tint_tmp = true;
|
||||
if (!tint_tmp) {
|
||||
tint_tmp = false;
|
||||
}
|
||||
bvec2 v2 = bvec2((tint_tmp));
|
||||
bool tint_tmp_1 = true;
|
||||
if (!tint_tmp_1) {
|
||||
tint_tmp_1 = false;
|
||||
}
|
||||
bvec3 v3 = bvec3((tint_tmp_1));
|
||||
bool tint_tmp_2 = true;
|
||||
if (!tint_tmp_2) {
|
||||
tint_tmp_2 = false;
|
||||
}
|
||||
bvec4 v4 = bvec4((tint_tmp_2));
|
||||
}
|
|
@ -0,0 +1,18 @@
|
|||
#version 310 es
|
||||
precision mediump float;
|
||||
|
||||
layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
|
||||
void unused_entry_point() {
|
||||
return;
|
||||
}
|
||||
void main() {
|
||||
unused_entry_point();
|
||||
}
|
||||
|
||||
|
||||
|
||||
void f() {
|
||||
vec2 v2 = vec2((1.0f + 2.0f));
|
||||
vec3 v3 = vec3((1.0f + 2.0f));
|
||||
vec4 v4 = vec4((1.0f + 2.0f));
|
||||
}
|
|
@ -0,0 +1,18 @@
|
|||
#version 310 es
|
||||
precision mediump float;
|
||||
|
||||
layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
|
||||
void unused_entry_point() {
|
||||
return;
|
||||
}
|
||||
void main() {
|
||||
unused_entry_point();
|
||||
}
|
||||
|
||||
|
||||
|
||||
void f() {
|
||||
ivec2 v2 = ivec2((1 + 2));
|
||||
ivec3 v3 = ivec3((1 + 2));
|
||||
ivec4 v4 = ivec4((1 + 2));
|
||||
}
|
|
@ -0,0 +1,18 @@
|
|||
#version 310 es
|
||||
precision mediump float;
|
||||
|
||||
layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
|
||||
void unused_entry_point() {
|
||||
return;
|
||||
}
|
||||
void main() {
|
||||
unused_entry_point();
|
||||
}
|
||||
|
||||
|
||||
|
||||
void f() {
|
||||
uvec2 v2 = uvec2((1u + 2u));
|
||||
uvec3 v3 = uvec3((1u + 2u));
|
||||
uvec4 v4 = uvec4((1u + 2u));
|
||||
}
|
|
@ -0,0 +1,18 @@
|
|||
#version 310 es
|
||||
precision mediump float;
|
||||
|
||||
layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
|
||||
void unused_entry_point() {
|
||||
return;
|
||||
}
|
||||
void main() {
|
||||
unused_entry_point();
|
||||
}
|
||||
|
||||
|
||||
|
||||
void f() {
|
||||
bvec2 v2 = bvec2(true);
|
||||
bvec3 v3 = bvec3(true);
|
||||
bvec4 v4 = bvec4(true);
|
||||
}
|
|
@ -0,0 +1,18 @@
|
|||
#version 310 es
|
||||
precision mediump float;
|
||||
|
||||
layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
|
||||
void unused_entry_point() {
|
||||
return;
|
||||
}
|
||||
void main() {
|
||||
unused_entry_point();
|
||||
}
|
||||
|
||||
|
||||
|
||||
void f() {
|
||||
vec2 v2 = vec2(1.0f);
|
||||
vec3 v3 = vec3(1.0f);
|
||||
vec4 v4 = vec4(1.0f);
|
||||
}
|
|
@ -0,0 +1,18 @@
|
|||
#version 310 es
|
||||
precision mediump float;
|
||||
|
||||
layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
|
||||
void unused_entry_point() {
|
||||
return;
|
||||
}
|
||||
void main() {
|
||||
unused_entry_point();
|
||||
}
|
||||
|
||||
|
||||
|
||||
void f() {
|
||||
ivec2 v2 = ivec2(1);
|
||||
ivec3 v3 = ivec3(1);
|
||||
ivec4 v4 = ivec4(1);
|
||||
}
|
|
@ -0,0 +1,18 @@
|
|||
#version 310 es
|
||||
precision mediump float;
|
||||
|
||||
layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
|
||||
void unused_entry_point() {
|
||||
return;
|
||||
}
|
||||
void main() {
|
||||
unused_entry_point();
|
||||
}
|
||||
|
||||
|
||||
|
||||
void f() {
|
||||
uvec2 v2 = uvec2(1u);
|
||||
uvec3 v3 = uvec3(1u);
|
||||
uvec4 v4 = uvec4(1u);
|
||||
}
|
|
@ -0,0 +1,23 @@
|
|||
#version 310 es
|
||||
precision mediump float;
|
||||
|
||||
layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
|
||||
void unused_entry_point() {
|
||||
return;
|
||||
}
|
||||
void main() {
|
||||
unused_entry_point();
|
||||
}
|
||||
|
||||
|
||||
|
||||
void f() {
|
||||
bool tint_tmp = true;
|
||||
if (!tint_tmp) {
|
||||
tint_tmp = false;
|
||||
}
|
||||
bool v = (tint_tmp);
|
||||
bvec2 v2 = bvec2(v);
|
||||
bvec3 v3 = bvec3(v);
|
||||
bvec4 v4 = bvec4(v);
|
||||
}
|
|
@ -0,0 +1,19 @@
|
|||
#version 310 es
|
||||
precision mediump float;
|
||||
|
||||
layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
|
||||
void unused_entry_point() {
|
||||
return;
|
||||
}
|
||||
void main() {
|
||||
unused_entry_point();
|
||||
}
|
||||
|
||||
|
||||
|
||||
void f() {
|
||||
float v = (1.0f + 2.0f);
|
||||
vec2 v2 = vec2(v);
|
||||
vec3 v3 = vec3(v);
|
||||
vec4 v4 = vec4(v);
|
||||
}
|
|
@ -0,0 +1,19 @@
|
|||
#version 310 es
|
||||
precision mediump float;
|
||||
|
||||
layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
|
||||
void unused_entry_point() {
|
||||
return;
|
||||
}
|
||||
void main() {
|
||||
unused_entry_point();
|
||||
}
|
||||
|
||||
|
||||
|
||||
void f() {
|
||||
int v = (1 + 2);
|
||||
ivec2 v2 = ivec2(v);
|
||||
ivec3 v3 = ivec3(v);
|
||||
ivec4 v4 = ivec4(v);
|
||||
}
|
|
@ -0,0 +1,19 @@
|
|||
#version 310 es
|
||||
precision mediump float;
|
||||
|
||||
layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
|
||||
void unused_entry_point() {
|
||||
return;
|
||||
}
|
||||
void main() {
|
||||
unused_entry_point();
|
||||
}
|
||||
|
||||
|
||||
|
||||
void f() {
|
||||
uint v = (1u + 2u);
|
||||
uvec2 v2 = uvec2(v);
|
||||
uvec3 v3 = uvec3(v);
|
||||
uvec4 v4 = uvec4(v);
|
||||
}
|
|
@ -0,0 +1,18 @@
|
|||
#version 310 es
|
||||
precision mediump float;
|
||||
|
||||
layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
|
||||
void unused_entry_point() {
|
||||
return;
|
||||
}
|
||||
void main() {
|
||||
unused_entry_point();
|
||||
}
|
||||
|
||||
|
||||
|
||||
void f() {
|
||||
float a = vec2(1.0f).y;
|
||||
float b = vec3(1.0f).z;
|
||||
float c = vec4(1.0f).w;
|
||||
}
|
|
@ -0,0 +1,144 @@
|
|||
#version 310 es
|
||||
precision mediump float;
|
||||
|
||||
layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
|
||||
void unused_entry_point() {
|
||||
return;
|
||||
}
|
||||
void main() {
|
||||
unused_entry_point();
|
||||
}
|
||||
|
||||
|
||||
|
||||
struct S {
|
||||
vec3 v;
|
||||
};
|
||||
|
||||
layout (binding = 0) uniform S_1 {
|
||||
vec3 v;
|
||||
} U;
|
||||
|
||||
void f() {
|
||||
vec3 v = U.v;
|
||||
float x = U.v.x;
|
||||
float y = U.v.y;
|
||||
float z = U.v.z;
|
||||
vec2 xx = U.v.xx;
|
||||
vec2 xy = U.v.xy;
|
||||
vec2 xz = U.v.xz;
|
||||
vec2 yx = U.v.yx;
|
||||
vec2 yy = U.v.yy;
|
||||
vec2 yz = U.v.yz;
|
||||
vec2 zx = U.v.zx;
|
||||
vec2 zy = U.v.zy;
|
||||
vec2 zz = U.v.zz;
|
||||
vec3 xxx = U.v.xxx;
|
||||
vec3 xxy = U.v.xxy;
|
||||
vec3 xxz = U.v.xxz;
|
||||
vec3 xyx = U.v.xyx;
|
||||
vec3 xyy = U.v.xyy;
|
||||
vec3 xyz = U.v.xyz;
|
||||
vec3 xzx = U.v.xzx;
|
||||
vec3 xzy = U.v.xzy;
|
||||
vec3 xzz = U.v.xzz;
|
||||
vec3 yxx = U.v.yxx;
|
||||
vec3 yxy = U.v.yxy;
|
||||
vec3 yxz = U.v.yxz;
|
||||
vec3 yyx = U.v.yyx;
|
||||
vec3 yyy = U.v.yyy;
|
||||
vec3 yyz = U.v.yyz;
|
||||
vec3 yzx = U.v.yzx;
|
||||
vec3 yzy = U.v.yzy;
|
||||
vec3 yzz = U.v.yzz;
|
||||
vec3 zxx = U.v.zxx;
|
||||
vec3 zxy = U.v.zxy;
|
||||
vec3 zxz = U.v.zxz;
|
||||
vec3 zyx = U.v.zyx;
|
||||
vec3 zyy = U.v.zyy;
|
||||
vec3 zyz = U.v.zyz;
|
||||
vec3 zzx = U.v.zzx;
|
||||
vec3 zzy = U.v.zzy;
|
||||
vec3 zzz = U.v.zzz;
|
||||
vec4 xxxx = U.v.xxxx;
|
||||
vec4 xxxy = U.v.xxxy;
|
||||
vec4 xxxz = U.v.xxxz;
|
||||
vec4 xxyx = U.v.xxyx;
|
||||
vec4 xxyy = U.v.xxyy;
|
||||
vec4 xxyz = U.v.xxyz;
|
||||
vec4 xxzx = U.v.xxzx;
|
||||
vec4 xxzy = U.v.xxzy;
|
||||
vec4 xxzz = U.v.xxzz;
|
||||
vec4 xyxx = U.v.xyxx;
|
||||
vec4 xyxy = U.v.xyxy;
|
||||
vec4 xyxz = U.v.xyxz;
|
||||
vec4 xyyx = U.v.xyyx;
|
||||
vec4 xyyy = U.v.xyyy;
|
||||
vec4 xyyz = U.v.xyyz;
|
||||
vec4 xyzx = U.v.xyzx;
|
||||
vec4 xyzy = U.v.xyzy;
|
||||
vec4 xyzz = U.v.xyzz;
|
||||
vec4 xzxx = U.v.xzxx;
|
||||
vec4 xzxy = U.v.xzxy;
|
||||
vec4 xzxz = U.v.xzxz;
|
||||
vec4 xzyx = U.v.xzyx;
|
||||
vec4 xzyy = U.v.xzyy;
|
||||
vec4 xzyz = U.v.xzyz;
|
||||
vec4 xzzx = U.v.xzzx;
|
||||
vec4 xzzy = U.v.xzzy;
|
||||
vec4 xzzz = U.v.xzzz;
|
||||
vec4 yxxx = U.v.yxxx;
|
||||
vec4 yxxy = U.v.yxxy;
|
||||
vec4 yxxz = U.v.yxxz;
|
||||
vec4 yxyx = U.v.yxyx;
|
||||
vec4 yxyy = U.v.yxyy;
|
||||
vec4 yxyz = U.v.yxyz;
|
||||
vec4 yxzx = U.v.yxzx;
|
||||
vec4 yxzy = U.v.yxzy;
|
||||
vec4 yxzz = U.v.yxzz;
|
||||
vec4 yyxx = U.v.yyxx;
|
||||
vec4 yyxy = U.v.yyxy;
|
||||
vec4 yyxz = U.v.yyxz;
|
||||
vec4 yyyx = U.v.yyyx;
|
||||
vec4 yyyy = U.v.yyyy;
|
||||
vec4 yyyz = U.v.yyyz;
|
||||
vec4 yyzx = U.v.yyzx;
|
||||
vec4 yyzy = U.v.yyzy;
|
||||
vec4 yyzz = U.v.yyzz;
|
||||
vec4 yzxx = U.v.yzxx;
|
||||
vec4 yzxy = U.v.yzxy;
|
||||
vec4 yzxz = U.v.yzxz;
|
||||
vec4 yzyx = U.v.yzyx;
|
||||
vec4 yzyy = U.v.yzyy;
|
||||
vec4 yzyz = U.v.yzyz;
|
||||
vec4 yzzx = U.v.yzzx;
|
||||
vec4 yzzy = U.v.yzzy;
|
||||
vec4 yzzz = U.v.yzzz;
|
||||
vec4 zxxx = U.v.zxxx;
|
||||
vec4 zxxy = U.v.zxxy;
|
||||
vec4 zxxz = U.v.zxxz;
|
||||
vec4 zxyx = U.v.zxyx;
|
||||
vec4 zxyy = U.v.zxyy;
|
||||
vec4 zxyz = U.v.zxyz;
|
||||
vec4 zxzx = U.v.zxzx;
|
||||
vec4 zxzy = U.v.zxzy;
|
||||
vec4 zxzz = U.v.zxzz;
|
||||
vec4 zyxx = U.v.zyxx;
|
||||
vec4 zyxy = U.v.zyxy;
|
||||
vec4 zyxz = U.v.zyxz;
|
||||
vec4 zyyx = U.v.zyyx;
|
||||
vec4 zyyy = U.v.zyyy;
|
||||
vec4 zyyz = U.v.zyyz;
|
||||
vec4 zyzx = U.v.zyzx;
|
||||
vec4 zyzy = U.v.zyzy;
|
||||
vec4 zyzz = U.v.zyzz;
|
||||
vec4 zzxx = U.v.zzxx;
|
||||
vec4 zzxy = U.v.zzxy;
|
||||
vec4 zzxz = U.v.zzxz;
|
||||
vec4 zzyx = U.v.zzyx;
|
||||
vec4 zzyy = U.v.zzyy;
|
||||
vec4 zzyz = U.v.zzyz;
|
||||
vec4 zzzx = U.v.zzzx;
|
||||
vec4 zzzy = U.v.zzzy;
|
||||
vec4 zzzz = U.v.zzzz;
|
||||
}
|
|
@ -0,0 +1,144 @@
|
|||
#version 310 es
|
||||
precision mediump float;
|
||||
|
||||
layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
|
||||
void unused_entry_point() {
|
||||
return;
|
||||
}
|
||||
void main() {
|
||||
unused_entry_point();
|
||||
}
|
||||
|
||||
|
||||
|
||||
struct S {
|
||||
ivec3 v;
|
||||
};
|
||||
|
||||
layout (binding = 0) uniform S_1 {
|
||||
ivec3 v;
|
||||
} U;
|
||||
|
||||
void f() {
|
||||
ivec3 v = U.v;
|
||||
int x = U.v.x;
|
||||
int y = U.v.y;
|
||||
int z = U.v.z;
|
||||
ivec2 xx = U.v.xx;
|
||||
ivec2 xy = U.v.xy;
|
||||
ivec2 xz = U.v.xz;
|
||||
ivec2 yx = U.v.yx;
|
||||
ivec2 yy = U.v.yy;
|
||||
ivec2 yz = U.v.yz;
|
||||
ivec2 zx = U.v.zx;
|
||||
ivec2 zy = U.v.zy;
|
||||
ivec2 zz = U.v.zz;
|
||||
ivec3 xxx = U.v.xxx;
|
||||
ivec3 xxy = U.v.xxy;
|
||||
ivec3 xxz = U.v.xxz;
|
||||
ivec3 xyx = U.v.xyx;
|
||||
ivec3 xyy = U.v.xyy;
|
||||
ivec3 xyz = U.v.xyz;
|
||||
ivec3 xzx = U.v.xzx;
|
||||
ivec3 xzy = U.v.xzy;
|
||||
ivec3 xzz = U.v.xzz;
|
||||
ivec3 yxx = U.v.yxx;
|
||||
ivec3 yxy = U.v.yxy;
|
||||
ivec3 yxz = U.v.yxz;
|
||||
ivec3 yyx = U.v.yyx;
|
||||
ivec3 yyy = U.v.yyy;
|
||||
ivec3 yyz = U.v.yyz;
|
||||
ivec3 yzx = U.v.yzx;
|
||||
ivec3 yzy = U.v.yzy;
|
||||
ivec3 yzz = U.v.yzz;
|
||||
ivec3 zxx = U.v.zxx;
|
||||
ivec3 zxy = U.v.zxy;
|
||||
ivec3 zxz = U.v.zxz;
|
||||
ivec3 zyx = U.v.zyx;
|
||||
ivec3 zyy = U.v.zyy;
|
||||
ivec3 zyz = U.v.zyz;
|
||||
ivec3 zzx = U.v.zzx;
|
||||
ivec3 zzy = U.v.zzy;
|
||||
ivec3 zzz = U.v.zzz;
|
||||
ivec4 xxxx = U.v.xxxx;
|
||||
ivec4 xxxy = U.v.xxxy;
|
||||
ivec4 xxxz = U.v.xxxz;
|
||||
ivec4 xxyx = U.v.xxyx;
|
||||
ivec4 xxyy = U.v.xxyy;
|
||||
ivec4 xxyz = U.v.xxyz;
|
||||
ivec4 xxzx = U.v.xxzx;
|
||||
ivec4 xxzy = U.v.xxzy;
|
||||
ivec4 xxzz = U.v.xxzz;
|
||||
ivec4 xyxx = U.v.xyxx;
|
||||
ivec4 xyxy = U.v.xyxy;
|
||||
ivec4 xyxz = U.v.xyxz;
|
||||
ivec4 xyyx = U.v.xyyx;
|
||||
ivec4 xyyy = U.v.xyyy;
|
||||
ivec4 xyyz = U.v.xyyz;
|
||||
ivec4 xyzx = U.v.xyzx;
|
||||
ivec4 xyzy = U.v.xyzy;
|
||||
ivec4 xyzz = U.v.xyzz;
|
||||
ivec4 xzxx = U.v.xzxx;
|
||||
ivec4 xzxy = U.v.xzxy;
|
||||
ivec4 xzxz = U.v.xzxz;
|
||||
ivec4 xzyx = U.v.xzyx;
|
||||
ivec4 xzyy = U.v.xzyy;
|
||||
ivec4 xzyz = U.v.xzyz;
|
||||
ivec4 xzzx = U.v.xzzx;
|
||||
ivec4 xzzy = U.v.xzzy;
|
||||
ivec4 xzzz = U.v.xzzz;
|
||||
ivec4 yxxx = U.v.yxxx;
|
||||
ivec4 yxxy = U.v.yxxy;
|
||||
ivec4 yxxz = U.v.yxxz;
|
||||
ivec4 yxyx = U.v.yxyx;
|
||||
ivec4 yxyy = U.v.yxyy;
|
||||
ivec4 yxyz = U.v.yxyz;
|
||||
ivec4 yxzx = U.v.yxzx;
|
||||
ivec4 yxzy = U.v.yxzy;
|
||||
ivec4 yxzz = U.v.yxzz;
|
||||
ivec4 yyxx = U.v.yyxx;
|
||||
ivec4 yyxy = U.v.yyxy;
|
||||
ivec4 yyxz = U.v.yyxz;
|
||||
ivec4 yyyx = U.v.yyyx;
|
||||
ivec4 yyyy = U.v.yyyy;
|
||||
ivec4 yyyz = U.v.yyyz;
|
||||
ivec4 yyzx = U.v.yyzx;
|
||||
ivec4 yyzy = U.v.yyzy;
|
||||
ivec4 yyzz = U.v.yyzz;
|
||||
ivec4 yzxx = U.v.yzxx;
|
||||
ivec4 yzxy = U.v.yzxy;
|
||||
ivec4 yzxz = U.v.yzxz;
|
||||
ivec4 yzyx = U.v.yzyx;
|
||||
ivec4 yzyy = U.v.yzyy;
|
||||
ivec4 yzyz = U.v.yzyz;
|
||||
ivec4 yzzx = U.v.yzzx;
|
||||
ivec4 yzzy = U.v.yzzy;
|
||||
ivec4 yzzz = U.v.yzzz;
|
||||
ivec4 zxxx = U.v.zxxx;
|
||||
ivec4 zxxy = U.v.zxxy;
|
||||
ivec4 zxxz = U.v.zxxz;
|
||||
ivec4 zxyx = U.v.zxyx;
|
||||
ivec4 zxyy = U.v.zxyy;
|
||||
ivec4 zxyz = U.v.zxyz;
|
||||
ivec4 zxzx = U.v.zxzx;
|
||||
ivec4 zxzy = U.v.zxzy;
|
||||
ivec4 zxzz = U.v.zxzz;
|
||||
ivec4 zyxx = U.v.zyxx;
|
||||
ivec4 zyxy = U.v.zyxy;
|
||||
ivec4 zyxz = U.v.zyxz;
|
||||
ivec4 zyyx = U.v.zyyx;
|
||||
ivec4 zyyy = U.v.zyyy;
|
||||
ivec4 zyyz = U.v.zyyz;
|
||||
ivec4 zyzx = U.v.zyzx;
|
||||
ivec4 zyzy = U.v.zyzy;
|
||||
ivec4 zyzz = U.v.zyzz;
|
||||
ivec4 zzxx = U.v.zzxx;
|
||||
ivec4 zzxy = U.v.zzxy;
|
||||
ivec4 zzxz = U.v.zzxz;
|
||||
ivec4 zzyx = U.v.zzyx;
|
||||
ivec4 zzyy = U.v.zzyy;
|
||||
ivec4 zzyz = U.v.zzyz;
|
||||
ivec4 zzzx = U.v.zzzx;
|
||||
ivec4 zzzy = U.v.zzzy;
|
||||
ivec4 zzzz = U.v.zzzz;
|
||||
}
|
|
@ -0,0 +1,144 @@
|
|||
#version 310 es
|
||||
precision mediump float;
|
||||
|
||||
layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
|
||||
void unused_entry_point() {
|
||||
return;
|
||||
}
|
||||
void main() {
|
||||
unused_entry_point();
|
||||
}
|
||||
|
||||
|
||||
|
||||
struct S {
|
||||
uvec3 v;
|
||||
};
|
||||
|
||||
layout (binding = 0) uniform S_1 {
|
||||
uvec3 v;
|
||||
} U;
|
||||
|
||||
void f() {
|
||||
uvec3 v = U.v;
|
||||
uint x = U.v.x;
|
||||
uint y = U.v.y;
|
||||
uint z = U.v.z;
|
||||
uvec2 xx = U.v.xx;
|
||||
uvec2 xy = U.v.xy;
|
||||
uvec2 xz = U.v.xz;
|
||||
uvec2 yx = U.v.yx;
|
||||
uvec2 yy = U.v.yy;
|
||||
uvec2 yz = U.v.yz;
|
||||
uvec2 zx = U.v.zx;
|
||||
uvec2 zy = U.v.zy;
|
||||
uvec2 zz = U.v.zz;
|
||||
uvec3 xxx = U.v.xxx;
|
||||
uvec3 xxy = U.v.xxy;
|
||||
uvec3 xxz = U.v.xxz;
|
||||
uvec3 xyx = U.v.xyx;
|
||||
uvec3 xyy = U.v.xyy;
|
||||
uvec3 xyz = U.v.xyz;
|
||||
uvec3 xzx = U.v.xzx;
|
||||
uvec3 xzy = U.v.xzy;
|
||||
uvec3 xzz = U.v.xzz;
|
||||
uvec3 yxx = U.v.yxx;
|
||||
uvec3 yxy = U.v.yxy;
|
||||
uvec3 yxz = U.v.yxz;
|
||||
uvec3 yyx = U.v.yyx;
|
||||
uvec3 yyy = U.v.yyy;
|
||||
uvec3 yyz = U.v.yyz;
|
||||
uvec3 yzx = U.v.yzx;
|
||||
uvec3 yzy = U.v.yzy;
|
||||
uvec3 yzz = U.v.yzz;
|
||||
uvec3 zxx = U.v.zxx;
|
||||
uvec3 zxy = U.v.zxy;
|
||||
uvec3 zxz = U.v.zxz;
|
||||
uvec3 zyx = U.v.zyx;
|
||||
uvec3 zyy = U.v.zyy;
|
||||
uvec3 zyz = U.v.zyz;
|
||||
uvec3 zzx = U.v.zzx;
|
||||
uvec3 zzy = U.v.zzy;
|
||||
uvec3 zzz = U.v.zzz;
|
||||
uvec4 xxxx = U.v.xxxx;
|
||||
uvec4 xxxy = U.v.xxxy;
|
||||
uvec4 xxxz = U.v.xxxz;
|
||||
uvec4 xxyx = U.v.xxyx;
|
||||
uvec4 xxyy = U.v.xxyy;
|
||||
uvec4 xxyz = U.v.xxyz;
|
||||
uvec4 xxzx = U.v.xxzx;
|
||||
uvec4 xxzy = U.v.xxzy;
|
||||
uvec4 xxzz = U.v.xxzz;
|
||||
uvec4 xyxx = U.v.xyxx;
|
||||
uvec4 xyxy = U.v.xyxy;
|
||||
uvec4 xyxz = U.v.xyxz;
|
||||
uvec4 xyyx = U.v.xyyx;
|
||||
uvec4 xyyy = U.v.xyyy;
|
||||
uvec4 xyyz = U.v.xyyz;
|
||||
uvec4 xyzx = U.v.xyzx;
|
||||
uvec4 xyzy = U.v.xyzy;
|
||||
uvec4 xyzz = U.v.xyzz;
|
||||
uvec4 xzxx = U.v.xzxx;
|
||||
uvec4 xzxy = U.v.xzxy;
|
||||
uvec4 xzxz = U.v.xzxz;
|
||||
uvec4 xzyx = U.v.xzyx;
|
||||
uvec4 xzyy = U.v.xzyy;
|
||||
uvec4 xzyz = U.v.xzyz;
|
||||
uvec4 xzzx = U.v.xzzx;
|
||||
uvec4 xzzy = U.v.xzzy;
|
||||
uvec4 xzzz = U.v.xzzz;
|
||||
uvec4 yxxx = U.v.yxxx;
|
||||
uvec4 yxxy = U.v.yxxy;
|
||||
uvec4 yxxz = U.v.yxxz;
|
||||
uvec4 yxyx = U.v.yxyx;
|
||||
uvec4 yxyy = U.v.yxyy;
|
||||
uvec4 yxyz = U.v.yxyz;
|
||||
uvec4 yxzx = U.v.yxzx;
|
||||
uvec4 yxzy = U.v.yxzy;
|
||||
uvec4 yxzz = U.v.yxzz;
|
||||
uvec4 yyxx = U.v.yyxx;
|
||||
uvec4 yyxy = U.v.yyxy;
|
||||
uvec4 yyxz = U.v.yyxz;
|
||||
uvec4 yyyx = U.v.yyyx;
|
||||
uvec4 yyyy = U.v.yyyy;
|
||||
uvec4 yyyz = U.v.yyyz;
|
||||
uvec4 yyzx = U.v.yyzx;
|
||||
uvec4 yyzy = U.v.yyzy;
|
||||
uvec4 yyzz = U.v.yyzz;
|
||||
uvec4 yzxx = U.v.yzxx;
|
||||
uvec4 yzxy = U.v.yzxy;
|
||||
uvec4 yzxz = U.v.yzxz;
|
||||
uvec4 yzyx = U.v.yzyx;
|
||||
uvec4 yzyy = U.v.yzyy;
|
||||
uvec4 yzyz = U.v.yzyz;
|
||||
uvec4 yzzx = U.v.yzzx;
|
||||
uvec4 yzzy = U.v.yzzy;
|
||||
uvec4 yzzz = U.v.yzzz;
|
||||
uvec4 zxxx = U.v.zxxx;
|
||||
uvec4 zxxy = U.v.zxxy;
|
||||
uvec4 zxxz = U.v.zxxz;
|
||||
uvec4 zxyx = U.v.zxyx;
|
||||
uvec4 zxyy = U.v.zxyy;
|
||||
uvec4 zxyz = U.v.zxyz;
|
||||
uvec4 zxzx = U.v.zxzx;
|
||||
uvec4 zxzy = U.v.zxzy;
|
||||
uvec4 zxzz = U.v.zxzz;
|
||||
uvec4 zyxx = U.v.zyxx;
|
||||
uvec4 zyxy = U.v.zyxy;
|
||||
uvec4 zyxz = U.v.zyxz;
|
||||
uvec4 zyyx = U.v.zyyx;
|
||||
uvec4 zyyy = U.v.zyyy;
|
||||
uvec4 zyyz = U.v.zyyz;
|
||||
uvec4 zyzx = U.v.zyzx;
|
||||
uvec4 zyzy = U.v.zyzy;
|
||||
uvec4 zyzz = U.v.zyzz;
|
||||
uvec4 zzxx = U.v.zzxx;
|
||||
uvec4 zzxy = U.v.zzxy;
|
||||
uvec4 zzxz = U.v.zzxz;
|
||||
uvec4 zzyx = U.v.zzyx;
|
||||
uvec4 zzyy = U.v.zzyy;
|
||||
uvec4 zzyz = U.v.zzyz;
|
||||
uvec4 zzzx = U.v.zzzx;
|
||||
uvec4 zzzy = U.v.zzzy;
|
||||
uvec4 zzzz = U.v.zzzz;
|
||||
}
|
|
@ -0,0 +1,142 @@
|
|||
#version 310 es
|
||||
precision mediump float;
|
||||
|
||||
layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
|
||||
void unused_entry_point() {
|
||||
return;
|
||||
}
|
||||
void main() {
|
||||
unused_entry_point();
|
||||
}
|
||||
|
||||
|
||||
|
||||
struct S {
|
||||
vec3 v;
|
||||
};
|
||||
|
||||
S P = S(vec3(0.0f, 0.0f, 0.0f));
|
||||
|
||||
void f() {
|
||||
vec3 v = P.v;
|
||||
float x = P.v.x;
|
||||
float y = P.v.y;
|
||||
float z = P.v.z;
|
||||
vec2 xx = P.v.xx;
|
||||
vec2 xy = P.v.xy;
|
||||
vec2 xz = P.v.xz;
|
||||
vec2 yx = P.v.yx;
|
||||
vec2 yy = P.v.yy;
|
||||
vec2 yz = P.v.yz;
|
||||
vec2 zx = P.v.zx;
|
||||
vec2 zy = P.v.zy;
|
||||
vec2 zz = P.v.zz;
|
||||
vec3 xxx = P.v.xxx;
|
||||
vec3 xxy = P.v.xxy;
|
||||
vec3 xxz = P.v.xxz;
|
||||
vec3 xyx = P.v.xyx;
|
||||
vec3 xyy = P.v.xyy;
|
||||
vec3 xyz = P.v.xyz;
|
||||
vec3 xzx = P.v.xzx;
|
||||
vec3 xzy = P.v.xzy;
|
||||
vec3 xzz = P.v.xzz;
|
||||
vec3 yxx = P.v.yxx;
|
||||
vec3 yxy = P.v.yxy;
|
||||
vec3 yxz = P.v.yxz;
|
||||
vec3 yyx = P.v.yyx;
|
||||
vec3 yyy = P.v.yyy;
|
||||
vec3 yyz = P.v.yyz;
|
||||
vec3 yzx = P.v.yzx;
|
||||
vec3 yzy = P.v.yzy;
|
||||
vec3 yzz = P.v.yzz;
|
||||
vec3 zxx = P.v.zxx;
|
||||
vec3 zxy = P.v.zxy;
|
||||
vec3 zxz = P.v.zxz;
|
||||
vec3 zyx = P.v.zyx;
|
||||
vec3 zyy = P.v.zyy;
|
||||
vec3 zyz = P.v.zyz;
|
||||
vec3 zzx = P.v.zzx;
|
||||
vec3 zzy = P.v.zzy;
|
||||
vec3 zzz = P.v.zzz;
|
||||
vec4 xxxx = P.v.xxxx;
|
||||
vec4 xxxy = P.v.xxxy;
|
||||
vec4 xxxz = P.v.xxxz;
|
||||
vec4 xxyx = P.v.xxyx;
|
||||
vec4 xxyy = P.v.xxyy;
|
||||
vec4 xxyz = P.v.xxyz;
|
||||
vec4 xxzx = P.v.xxzx;
|
||||
vec4 xxzy = P.v.xxzy;
|
||||
vec4 xxzz = P.v.xxzz;
|
||||
vec4 xyxx = P.v.xyxx;
|
||||
vec4 xyxy = P.v.xyxy;
|
||||
vec4 xyxz = P.v.xyxz;
|
||||
vec4 xyyx = P.v.xyyx;
|
||||
vec4 xyyy = P.v.xyyy;
|
||||
vec4 xyyz = P.v.xyyz;
|
||||
vec4 xyzx = P.v.xyzx;
|
||||
vec4 xyzy = P.v.xyzy;
|
||||
vec4 xyzz = P.v.xyzz;
|
||||
vec4 xzxx = P.v.xzxx;
|
||||
vec4 xzxy = P.v.xzxy;
|
||||
vec4 xzxz = P.v.xzxz;
|
||||
vec4 xzyx = P.v.xzyx;
|
||||
vec4 xzyy = P.v.xzyy;
|
||||
vec4 xzyz = P.v.xzyz;
|
||||
vec4 xzzx = P.v.xzzx;
|
||||
vec4 xzzy = P.v.xzzy;
|
||||
vec4 xzzz = P.v.xzzz;
|
||||
vec4 yxxx = P.v.yxxx;
|
||||
vec4 yxxy = P.v.yxxy;
|
||||
vec4 yxxz = P.v.yxxz;
|
||||
vec4 yxyx = P.v.yxyx;
|
||||
vec4 yxyy = P.v.yxyy;
|
||||
vec4 yxyz = P.v.yxyz;
|
||||
vec4 yxzx = P.v.yxzx;
|
||||
vec4 yxzy = P.v.yxzy;
|
||||
vec4 yxzz = P.v.yxzz;
|
||||
vec4 yyxx = P.v.yyxx;
|
||||
vec4 yyxy = P.v.yyxy;
|
||||
vec4 yyxz = P.v.yyxz;
|
||||
vec4 yyyx = P.v.yyyx;
|
||||
vec4 yyyy = P.v.yyyy;
|
||||
vec4 yyyz = P.v.yyyz;
|
||||
vec4 yyzx = P.v.yyzx;
|
||||
vec4 yyzy = P.v.yyzy;
|
||||
vec4 yyzz = P.v.yyzz;
|
||||
vec4 yzxx = P.v.yzxx;
|
||||
vec4 yzxy = P.v.yzxy;
|
||||
vec4 yzxz = P.v.yzxz;
|
||||
vec4 yzyx = P.v.yzyx;
|
||||
vec4 yzyy = P.v.yzyy;
|
||||
vec4 yzyz = P.v.yzyz;
|
||||
vec4 yzzx = P.v.yzzx;
|
||||
vec4 yzzy = P.v.yzzy;
|
||||
vec4 yzzz = P.v.yzzz;
|
||||
vec4 zxxx = P.v.zxxx;
|
||||
vec4 zxxy = P.v.zxxy;
|
||||
vec4 zxxz = P.v.zxxz;
|
||||
vec4 zxyx = P.v.zxyx;
|
||||
vec4 zxyy = P.v.zxyy;
|
||||
vec4 zxyz = P.v.zxyz;
|
||||
vec4 zxzx = P.v.zxzx;
|
||||
vec4 zxzy = P.v.zxzy;
|
||||
vec4 zxzz = P.v.zxzz;
|
||||
vec4 zyxx = P.v.zyxx;
|
||||
vec4 zyxy = P.v.zyxy;
|
||||
vec4 zyxz = P.v.zyxz;
|
||||
vec4 zyyx = P.v.zyyx;
|
||||
vec4 zyyy = P.v.zyyy;
|
||||
vec4 zyyz = P.v.zyyz;
|
||||
vec4 zyzx = P.v.zyzx;
|
||||
vec4 zyzy = P.v.zyzy;
|
||||
vec4 zyzz = P.v.zyzz;
|
||||
vec4 zzxx = P.v.zzxx;
|
||||
vec4 zzxy = P.v.zzxy;
|
||||
vec4 zzxz = P.v.zzxz;
|
||||
vec4 zzyx = P.v.zzyx;
|
||||
vec4 zzyy = P.v.zzyy;
|
||||
vec4 zzyz = P.v.zzyz;
|
||||
vec4 zzzx = P.v.zzzx;
|
||||
vec4 zzzy = P.v.zzzy;
|
||||
vec4 zzzz = P.v.zzzz;
|
||||
}
|
|
@ -0,0 +1,142 @@
|
|||
#version 310 es
|
||||
precision mediump float;
|
||||
|
||||
layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
|
||||
void unused_entry_point() {
|
||||
return;
|
||||
}
|
||||
void main() {
|
||||
unused_entry_point();
|
||||
}
|
||||
|
||||
|
||||
|
||||
struct S {
|
||||
ivec3 v;
|
||||
};
|
||||
|
||||
S P = S(ivec3(0, 0, 0));
|
||||
|
||||
void f() {
|
||||
ivec3 v = P.v;
|
||||
int x = P.v.x;
|
||||
int y = P.v.y;
|
||||
int z = P.v.z;
|
||||
ivec2 xx = P.v.xx;
|
||||
ivec2 xy = P.v.xy;
|
||||
ivec2 xz = P.v.xz;
|
||||
ivec2 yx = P.v.yx;
|
||||
ivec2 yy = P.v.yy;
|
||||
ivec2 yz = P.v.yz;
|
||||
ivec2 zx = P.v.zx;
|
||||
ivec2 zy = P.v.zy;
|
||||
ivec2 zz = P.v.zz;
|
||||
ivec3 xxx = P.v.xxx;
|
||||
ivec3 xxy = P.v.xxy;
|
||||
ivec3 xxz = P.v.xxz;
|
||||
ivec3 xyx = P.v.xyx;
|
||||
ivec3 xyy = P.v.xyy;
|
||||
ivec3 xyz = P.v.xyz;
|
||||
ivec3 xzx = P.v.xzx;
|
||||
ivec3 xzy = P.v.xzy;
|
||||
ivec3 xzz = P.v.xzz;
|
||||
ivec3 yxx = P.v.yxx;
|
||||
ivec3 yxy = P.v.yxy;
|
||||
ivec3 yxz = P.v.yxz;
|
||||
ivec3 yyx = P.v.yyx;
|
||||
ivec3 yyy = P.v.yyy;
|
||||
ivec3 yyz = P.v.yyz;
|
||||
ivec3 yzx = P.v.yzx;
|
||||
ivec3 yzy = P.v.yzy;
|
||||
ivec3 yzz = P.v.yzz;
|
||||
ivec3 zxx = P.v.zxx;
|
||||
ivec3 zxy = P.v.zxy;
|
||||
ivec3 zxz = P.v.zxz;
|
||||
ivec3 zyx = P.v.zyx;
|
||||
ivec3 zyy = P.v.zyy;
|
||||
ivec3 zyz = P.v.zyz;
|
||||
ivec3 zzx = P.v.zzx;
|
||||
ivec3 zzy = P.v.zzy;
|
||||
ivec3 zzz = P.v.zzz;
|
||||
ivec4 xxxx = P.v.xxxx;
|
||||
ivec4 xxxy = P.v.xxxy;
|
||||
ivec4 xxxz = P.v.xxxz;
|
||||
ivec4 xxyx = P.v.xxyx;
|
||||
ivec4 xxyy = P.v.xxyy;
|
||||
ivec4 xxyz = P.v.xxyz;
|
||||
ivec4 xxzx = P.v.xxzx;
|
||||
ivec4 xxzy = P.v.xxzy;
|
||||
ivec4 xxzz = P.v.xxzz;
|
||||
ivec4 xyxx = P.v.xyxx;
|
||||
ivec4 xyxy = P.v.xyxy;
|
||||
ivec4 xyxz = P.v.xyxz;
|
||||
ivec4 xyyx = P.v.xyyx;
|
||||
ivec4 xyyy = P.v.xyyy;
|
||||
ivec4 xyyz = P.v.xyyz;
|
||||
ivec4 xyzx = P.v.xyzx;
|
||||
ivec4 xyzy = P.v.xyzy;
|
||||
ivec4 xyzz = P.v.xyzz;
|
||||
ivec4 xzxx = P.v.xzxx;
|
||||
ivec4 xzxy = P.v.xzxy;
|
||||
ivec4 xzxz = P.v.xzxz;
|
||||
ivec4 xzyx = P.v.xzyx;
|
||||
ivec4 xzyy = P.v.xzyy;
|
||||
ivec4 xzyz = P.v.xzyz;
|
||||
ivec4 xzzx = P.v.xzzx;
|
||||
ivec4 xzzy = P.v.xzzy;
|
||||
ivec4 xzzz = P.v.xzzz;
|
||||
ivec4 yxxx = P.v.yxxx;
|
||||
ivec4 yxxy = P.v.yxxy;
|
||||
ivec4 yxxz = P.v.yxxz;
|
||||
ivec4 yxyx = P.v.yxyx;
|
||||
ivec4 yxyy = P.v.yxyy;
|
||||
ivec4 yxyz = P.v.yxyz;
|
||||
ivec4 yxzx = P.v.yxzx;
|
||||
ivec4 yxzy = P.v.yxzy;
|
||||
ivec4 yxzz = P.v.yxzz;
|
||||
ivec4 yyxx = P.v.yyxx;
|
||||
ivec4 yyxy = P.v.yyxy;
|
||||
ivec4 yyxz = P.v.yyxz;
|
||||
ivec4 yyyx = P.v.yyyx;
|
||||
ivec4 yyyy = P.v.yyyy;
|
||||
ivec4 yyyz = P.v.yyyz;
|
||||
ivec4 yyzx = P.v.yyzx;
|
||||
ivec4 yyzy = P.v.yyzy;
|
||||
ivec4 yyzz = P.v.yyzz;
|
||||
ivec4 yzxx = P.v.yzxx;
|
||||
ivec4 yzxy = P.v.yzxy;
|
||||
ivec4 yzxz = P.v.yzxz;
|
||||
ivec4 yzyx = P.v.yzyx;
|
||||
ivec4 yzyy = P.v.yzyy;
|
||||
ivec4 yzyz = P.v.yzyz;
|
||||
ivec4 yzzx = P.v.yzzx;
|
||||
ivec4 yzzy = P.v.yzzy;
|
||||
ivec4 yzzz = P.v.yzzz;
|
||||
ivec4 zxxx = P.v.zxxx;
|
||||
ivec4 zxxy = P.v.zxxy;
|
||||
ivec4 zxxz = P.v.zxxz;
|
||||
ivec4 zxyx = P.v.zxyx;
|
||||
ivec4 zxyy = P.v.zxyy;
|
||||
ivec4 zxyz = P.v.zxyz;
|
||||
ivec4 zxzx = P.v.zxzx;
|
||||
ivec4 zxzy = P.v.zxzy;
|
||||
ivec4 zxzz = P.v.zxzz;
|
||||
ivec4 zyxx = P.v.zyxx;
|
||||
ivec4 zyxy = P.v.zyxy;
|
||||
ivec4 zyxz = P.v.zyxz;
|
||||
ivec4 zyyx = P.v.zyyx;
|
||||
ivec4 zyyy = P.v.zyyy;
|
||||
ivec4 zyyz = P.v.zyyz;
|
||||
ivec4 zyzx = P.v.zyzx;
|
||||
ivec4 zyzy = P.v.zyzy;
|
||||
ivec4 zyzz = P.v.zyzz;
|
||||
ivec4 zzxx = P.v.zzxx;
|
||||
ivec4 zzxy = P.v.zzxy;
|
||||
ivec4 zzxz = P.v.zzxz;
|
||||
ivec4 zzyx = P.v.zzyx;
|
||||
ivec4 zzyy = P.v.zzyy;
|
||||
ivec4 zzyz = P.v.zzyz;
|
||||
ivec4 zzzx = P.v.zzzx;
|
||||
ivec4 zzzy = P.v.zzzy;
|
||||
ivec4 zzzz = P.v.zzzz;
|
||||
}
|
|
@ -0,0 +1,142 @@
|
|||
#version 310 es
|
||||
precision mediump float;
|
||||
|
||||
layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
|
||||
void unused_entry_point() {
|
||||
return;
|
||||
}
|
||||
void main() {
|
||||
unused_entry_point();
|
||||
}
|
||||
|
||||
|
||||
|
||||
struct S {
|
||||
uvec3 v;
|
||||
};
|
||||
|
||||
S P = S(uvec3(0u, 0u, 0u));
|
||||
|
||||
void f() {
|
||||
uvec3 v = P.v;
|
||||
uint x = P.v.x;
|
||||
uint y = P.v.y;
|
||||
uint z = P.v.z;
|
||||
uvec2 xx = P.v.xx;
|
||||
uvec2 xy = P.v.xy;
|
||||
uvec2 xz = P.v.xz;
|
||||
uvec2 yx = P.v.yx;
|
||||
uvec2 yy = P.v.yy;
|
||||
uvec2 yz = P.v.yz;
|
||||
uvec2 zx = P.v.zx;
|
||||
uvec2 zy = P.v.zy;
|
||||
uvec2 zz = P.v.zz;
|
||||
uvec3 xxx = P.v.xxx;
|
||||
uvec3 xxy = P.v.xxy;
|
||||
uvec3 xxz = P.v.xxz;
|
||||
uvec3 xyx = P.v.xyx;
|
||||
uvec3 xyy = P.v.xyy;
|
||||
uvec3 xyz = P.v.xyz;
|
||||
uvec3 xzx = P.v.xzx;
|
||||
uvec3 xzy = P.v.xzy;
|
||||
uvec3 xzz = P.v.xzz;
|
||||
uvec3 yxx = P.v.yxx;
|
||||
uvec3 yxy = P.v.yxy;
|
||||
uvec3 yxz = P.v.yxz;
|
||||
uvec3 yyx = P.v.yyx;
|
||||
uvec3 yyy = P.v.yyy;
|
||||
uvec3 yyz = P.v.yyz;
|
||||
uvec3 yzx = P.v.yzx;
|
||||
uvec3 yzy = P.v.yzy;
|
||||
uvec3 yzz = P.v.yzz;
|
||||
uvec3 zxx = P.v.zxx;
|
||||
uvec3 zxy = P.v.zxy;
|
||||
uvec3 zxz = P.v.zxz;
|
||||
uvec3 zyx = P.v.zyx;
|
||||
uvec3 zyy = P.v.zyy;
|
||||
uvec3 zyz = P.v.zyz;
|
||||
uvec3 zzx = P.v.zzx;
|
||||
uvec3 zzy = P.v.zzy;
|
||||
uvec3 zzz = P.v.zzz;
|
||||
uvec4 xxxx = P.v.xxxx;
|
||||
uvec4 xxxy = P.v.xxxy;
|
||||
uvec4 xxxz = P.v.xxxz;
|
||||
uvec4 xxyx = P.v.xxyx;
|
||||
uvec4 xxyy = P.v.xxyy;
|
||||
uvec4 xxyz = P.v.xxyz;
|
||||
uvec4 xxzx = P.v.xxzx;
|
||||
uvec4 xxzy = P.v.xxzy;
|
||||
uvec4 xxzz = P.v.xxzz;
|
||||
uvec4 xyxx = P.v.xyxx;
|
||||
uvec4 xyxy = P.v.xyxy;
|
||||
uvec4 xyxz = P.v.xyxz;
|
||||
uvec4 xyyx = P.v.xyyx;
|
||||
uvec4 xyyy = P.v.xyyy;
|
||||
uvec4 xyyz = P.v.xyyz;
|
||||
uvec4 xyzx = P.v.xyzx;
|
||||
uvec4 xyzy = P.v.xyzy;
|
||||
uvec4 xyzz = P.v.xyzz;
|
||||
uvec4 xzxx = P.v.xzxx;
|
||||
uvec4 xzxy = P.v.xzxy;
|
||||
uvec4 xzxz = P.v.xzxz;
|
||||
uvec4 xzyx = P.v.xzyx;
|
||||
uvec4 xzyy = P.v.xzyy;
|
||||
uvec4 xzyz = P.v.xzyz;
|
||||
uvec4 xzzx = P.v.xzzx;
|
||||
uvec4 xzzy = P.v.xzzy;
|
||||
uvec4 xzzz = P.v.xzzz;
|
||||
uvec4 yxxx = P.v.yxxx;
|
||||
uvec4 yxxy = P.v.yxxy;
|
||||
uvec4 yxxz = P.v.yxxz;
|
||||
uvec4 yxyx = P.v.yxyx;
|
||||
uvec4 yxyy = P.v.yxyy;
|
||||
uvec4 yxyz = P.v.yxyz;
|
||||
uvec4 yxzx = P.v.yxzx;
|
||||
uvec4 yxzy = P.v.yxzy;
|
||||
uvec4 yxzz = P.v.yxzz;
|
||||
uvec4 yyxx = P.v.yyxx;
|
||||
uvec4 yyxy = P.v.yyxy;
|
||||
uvec4 yyxz = P.v.yyxz;
|
||||
uvec4 yyyx = P.v.yyyx;
|
||||
uvec4 yyyy = P.v.yyyy;
|
||||
uvec4 yyyz = P.v.yyyz;
|
||||
uvec4 yyzx = P.v.yyzx;
|
||||
uvec4 yyzy = P.v.yyzy;
|
||||
uvec4 yyzz = P.v.yyzz;
|
||||
uvec4 yzxx = P.v.yzxx;
|
||||
uvec4 yzxy = P.v.yzxy;
|
||||
uvec4 yzxz = P.v.yzxz;
|
||||
uvec4 yzyx = P.v.yzyx;
|
||||
uvec4 yzyy = P.v.yzyy;
|
||||
uvec4 yzyz = P.v.yzyz;
|
||||
uvec4 yzzx = P.v.yzzx;
|
||||
uvec4 yzzy = P.v.yzzy;
|
||||
uvec4 yzzz = P.v.yzzz;
|
||||
uvec4 zxxx = P.v.zxxx;
|
||||
uvec4 zxxy = P.v.zxxy;
|
||||
uvec4 zxxz = P.v.zxxz;
|
||||
uvec4 zxyx = P.v.zxyx;
|
||||
uvec4 zxyy = P.v.zxyy;
|
||||
uvec4 zxyz = P.v.zxyz;
|
||||
uvec4 zxzx = P.v.zxzx;
|
||||
uvec4 zxzy = P.v.zxzy;
|
||||
uvec4 zxzz = P.v.zxzz;
|
||||
uvec4 zyxx = P.v.zyxx;
|
||||
uvec4 zyxy = P.v.zyxy;
|
||||
uvec4 zyxz = P.v.zyxz;
|
||||
uvec4 zyyx = P.v.zyyx;
|
||||
uvec4 zyyy = P.v.zyyy;
|
||||
uvec4 zyyz = P.v.zyyz;
|
||||
uvec4 zyzx = P.v.zyzx;
|
||||
uvec4 zyzy = P.v.zyzy;
|
||||
uvec4 zyzz = P.v.zyzz;
|
||||
uvec4 zzxx = P.v.zzxx;
|
||||
uvec4 zzxy = P.v.zzxy;
|
||||
uvec4 zzxz = P.v.zzxz;
|
||||
uvec4 zzyx = P.v.zzyx;
|
||||
uvec4 zzyy = P.v.zzyy;
|
||||
uvec4 zzyz = P.v.zzyz;
|
||||
uvec4 zzzx = P.v.zzzx;
|
||||
uvec4 zzzy = P.v.zzzy;
|
||||
uvec4 zzzz = P.v.zzzz;
|
||||
}
|
|
@ -0,0 +1,27 @@
|
|||
#version 310 es
|
||||
precision mediump float;
|
||||
|
||||
layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
|
||||
void unused_entry_point() {
|
||||
return;
|
||||
}
|
||||
void main() {
|
||||
unused_entry_point();
|
||||
}
|
||||
|
||||
|
||||
|
||||
struct S {
|
||||
vec3 v;
|
||||
};
|
||||
|
||||
layout (binding = 0) buffer S_1 {
|
||||
vec3 v;
|
||||
} U;
|
||||
|
||||
void f() {
|
||||
U.v = vec3(1.0f, 2.0f, 3.0f);
|
||||
U.v.x = 1.0f;
|
||||
U.v.y = 2.0f;
|
||||
U.v.z = 3.0f;
|
||||
}
|
|
@ -0,0 +1,27 @@
|
|||
#version 310 es
|
||||
precision mediump float;
|
||||
|
||||
layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
|
||||
void unused_entry_point() {
|
||||
return;
|
||||
}
|
||||
void main() {
|
||||
unused_entry_point();
|
||||
}
|
||||
|
||||
|
||||
|
||||
struct S {
|
||||
ivec3 v;
|
||||
};
|
||||
|
||||
layout (binding = 0) buffer S_1 {
|
||||
ivec3 v;
|
||||
} U;
|
||||
|
||||
void f() {
|
||||
U.v = ivec3(1, 2, 3);
|
||||
U.v.x = 1;
|
||||
U.v.y = 2;
|
||||
U.v.z = 3;
|
||||
}
|
|
@ -0,0 +1,27 @@
|
|||
#version 310 es
|
||||
precision mediump float;
|
||||
|
||||
layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
|
||||
void unused_entry_point() {
|
||||
return;
|
||||
}
|
||||
void main() {
|
||||
unused_entry_point();
|
||||
}
|
||||
|
||||
|
||||
|
||||
struct S {
|
||||
uvec3 v;
|
||||
};
|
||||
|
||||
layout (binding = 0) buffer S_1 {
|
||||
uvec3 v;
|
||||
} U;
|
||||
|
||||
void f() {
|
||||
U.v = uvec3(1u, 2u, 3u);
|
||||
U.v.x = 1u;
|
||||
U.v.y = 2u;
|
||||
U.v.z = 3u;
|
||||
}
|
|
@ -0,0 +1,25 @@
|
|||
#version 310 es
|
||||
precision mediump float;
|
||||
|
||||
layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
|
||||
void unused_entry_point() {
|
||||
return;
|
||||
}
|
||||
void main() {
|
||||
unused_entry_point();
|
||||
}
|
||||
|
||||
|
||||
|
||||
struct S {
|
||||
vec3 v;
|
||||
};
|
||||
|
||||
S P = S(vec3(0.0f, 0.0f, 0.0f));
|
||||
|
||||
void f() {
|
||||
P.v = vec3(1.0f, 2.0f, 3.0f);
|
||||
P.v.x = 1.0f;
|
||||
P.v.y = 2.0f;
|
||||
P.v.z = 3.0f;
|
||||
}
|
|
@ -0,0 +1,25 @@
|
|||
#version 310 es
|
||||
precision mediump float;
|
||||
|
||||
layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
|
||||
void unused_entry_point() {
|
||||
return;
|
||||
}
|
||||
void main() {
|
||||
unused_entry_point();
|
||||
}
|
||||
|
||||
|
||||
|
||||
struct S {
|
||||
ivec3 v;
|
||||
};
|
||||
|
||||
S P = S(ivec3(0, 0, 0));
|
||||
|
||||
void f() {
|
||||
P.v = ivec3(1, 2, 3);
|
||||
P.v.x = 1;
|
||||
P.v.y = 2;
|
||||
P.v.z = 3;
|
||||
}
|
|
@ -0,0 +1,25 @@
|
|||
#version 310 es
|
||||
precision mediump float;
|
||||
|
||||
layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
|
||||
void unused_entry_point() {
|
||||
return;
|
||||
}
|
||||
void main() {
|
||||
unused_entry_point();
|
||||
}
|
||||
|
||||
|
||||
|
||||
struct S {
|
||||
uvec3 v;
|
||||
};
|
||||
|
||||
S P = S(uvec3(0u, 0u, 0u));
|
||||
|
||||
void f() {
|
||||
P.v = uvec3(1u, 2u, 3u);
|
||||
P.v.x = 1u;
|
||||
P.v.y = 2u;
|
||||
P.v.z = 3u;
|
||||
}
|
|
@ -0,0 +1,14 @@
|
|||
#version 310 es
|
||||
precision mediump float;
|
||||
|
||||
layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
|
||||
void unused_entry_point() {
|
||||
return;
|
||||
}
|
||||
void main() {
|
||||
unused_entry_point();
|
||||
}
|
||||
|
||||
|
||||
|
||||
const mat2 m = mat2(0.0f, 1.0f, 2.0f, 3.0f);
|
|
@ -0,0 +1,14 @@
|
|||
#version 310 es
|
||||
precision mediump float;
|
||||
|
||||
layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
|
||||
void unused_entry_point() {
|
||||
return;
|
||||
}
|
||||
void main() {
|
||||
unused_entry_point();
|
||||
}
|
||||
|
||||
|
||||
|
||||
const mat2 m = mat2(vec2(0.0f, 1.0f), vec2(2.0f, 3.0f));
|
|
@ -0,0 +1,14 @@
|
|||
#version 310 es
|
||||
precision mediump float;
|
||||
|
||||
layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
|
||||
void unused_entry_point() {
|
||||
return;
|
||||
}
|
||||
void main() {
|
||||
unused_entry_point();
|
||||
}
|
||||
|
||||
|
||||
|
||||
const mat2 m = mat2(0.0f, 1.0f, 2.0f, 3.0f);
|
|
@ -0,0 +1,14 @@
|
|||
#version 310 es
|
||||
precision mediump float;
|
||||
|
||||
layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
|
||||
void unused_entry_point() {
|
||||
return;
|
||||
}
|
||||
void main() {
|
||||
unused_entry_point();
|
||||
}
|
||||
|
||||
|
||||
|
||||
const mat2 m = mat2(vec2(0.0f, 1.0f), vec2(2.0f, 3.0f));
|
|
@ -0,0 +1,14 @@
|
|||
#version 310 es
|
||||
precision mediump float;
|
||||
|
||||
layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
|
||||
void unused_entry_point() {
|
||||
return;
|
||||
}
|
||||
void main() {
|
||||
unused_entry_point();
|
||||
}
|
||||
|
||||
|
||||
|
||||
const mat2x3 m = mat2x3(0.0f, 1.0f, 2.0f, 3.0f, 4.0f, 5.0f);
|
|
@ -0,0 +1,14 @@
|
|||
#version 310 es
|
||||
precision mediump float;
|
||||
|
||||
layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
|
||||
void unused_entry_point() {
|
||||
return;
|
||||
}
|
||||
void main() {
|
||||
unused_entry_point();
|
||||
}
|
||||
|
||||
|
||||
|
||||
const mat2x3 m = mat2x3(vec3(0.0f, 1.0f, 2.0f), vec3(3.0f, 4.0f, 5.0f));
|
|
@ -0,0 +1,14 @@
|
|||
#version 310 es
|
||||
precision mediump float;
|
||||
|
||||
layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
|
||||
void unused_entry_point() {
|
||||
return;
|
||||
}
|
||||
void main() {
|
||||
unused_entry_point();
|
||||
}
|
||||
|
||||
|
||||
|
||||
const mat2x3 m = mat2x3(0.0f, 1.0f, 2.0f, 3.0f, 4.0f, 5.0f);
|
|
@ -0,0 +1,14 @@
|
|||
#version 310 es
|
||||
precision mediump float;
|
||||
|
||||
layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
|
||||
void unused_entry_point() {
|
||||
return;
|
||||
}
|
||||
void main() {
|
||||
unused_entry_point();
|
||||
}
|
||||
|
||||
|
||||
|
||||
const mat2x3 m = mat2x3(vec3(0.0f, 1.0f, 2.0f), vec3(3.0f, 4.0f, 5.0f));
|
|
@ -0,0 +1,14 @@
|
|||
#version 310 es
|
||||
precision mediump float;
|
||||
|
||||
layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
|
||||
void unused_entry_point() {
|
||||
return;
|
||||
}
|
||||
void main() {
|
||||
unused_entry_point();
|
||||
}
|
||||
|
||||
|
||||
|
||||
const mat2x4 m = mat2x4(0.0f, 1.0f, 2.0f, 3.0f, 4.0f, 5.0f, 6.0f, 7.0f);
|
|
@ -0,0 +1,14 @@
|
|||
#version 310 es
|
||||
precision mediump float;
|
||||
|
||||
layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
|
||||
void unused_entry_point() {
|
||||
return;
|
||||
}
|
||||
void main() {
|
||||
unused_entry_point();
|
||||
}
|
||||
|
||||
|
||||
|
||||
const mat2x4 m = mat2x4(vec4(0.0f, 1.0f, 2.0f, 3.0f), vec4(4.0f, 5.0f, 6.0f, 7.0f));
|
|
@ -0,0 +1,14 @@
|
|||
#version 310 es
|
||||
precision mediump float;
|
||||
|
||||
layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
|
||||
void unused_entry_point() {
|
||||
return;
|
||||
}
|
||||
void main() {
|
||||
unused_entry_point();
|
||||
}
|
||||
|
||||
|
||||
|
||||
const mat2x4 m = mat2x4(0.0f, 1.0f, 2.0f, 3.0f, 4.0f, 5.0f, 6.0f, 7.0f);
|
|
@ -0,0 +1,14 @@
|
|||
#version 310 es
|
||||
precision mediump float;
|
||||
|
||||
layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
|
||||
void unused_entry_point() {
|
||||
return;
|
||||
}
|
||||
void main() {
|
||||
unused_entry_point();
|
||||
}
|
||||
|
||||
|
||||
|
||||
const mat2x4 m = mat2x4(vec4(0.0f, 1.0f, 2.0f, 3.0f), vec4(4.0f, 5.0f, 6.0f, 7.0f));
|
|
@ -0,0 +1,14 @@
|
|||
#version 310 es
|
||||
precision mediump float;
|
||||
|
||||
layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
|
||||
void unused_entry_point() {
|
||||
return;
|
||||
}
|
||||
void main() {
|
||||
unused_entry_point();
|
||||
}
|
||||
|
||||
|
||||
|
||||
const mat3x2 m = mat3x2(0.0f, 1.0f, 2.0f, 3.0f, 4.0f, 5.0f);
|
|
@ -0,0 +1,14 @@
|
|||
#version 310 es
|
||||
precision mediump float;
|
||||
|
||||
layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
|
||||
void unused_entry_point() {
|
||||
return;
|
||||
}
|
||||
void main() {
|
||||
unused_entry_point();
|
||||
}
|
||||
|
||||
|
||||
|
||||
const mat3x2 m = mat3x2(vec2(0.0f, 1.0f), vec2(2.0f, 3.0f), vec2(4.0f, 5.0f));
|
|
@ -0,0 +1,14 @@
|
|||
#version 310 es
|
||||
precision mediump float;
|
||||
|
||||
layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
|
||||
void unused_entry_point() {
|
||||
return;
|
||||
}
|
||||
void main() {
|
||||
unused_entry_point();
|
||||
}
|
||||
|
||||
|
||||
|
||||
const mat3x2 m = mat3x2(0.0f, 1.0f, 2.0f, 3.0f, 4.0f, 5.0f);
|
|
@ -0,0 +1,14 @@
|
|||
#version 310 es
|
||||
precision mediump float;
|
||||
|
||||
layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
|
||||
void unused_entry_point() {
|
||||
return;
|
||||
}
|
||||
void main() {
|
||||
unused_entry_point();
|
||||
}
|
||||
|
||||
|
||||
|
||||
const mat3x2 m = mat3x2(vec2(0.0f, 1.0f), vec2(2.0f, 3.0f), vec2(4.0f, 5.0f));
|
|
@ -0,0 +1,14 @@
|
|||
#version 310 es
|
||||
precision mediump float;
|
||||
|
||||
layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
|
||||
void unused_entry_point() {
|
||||
return;
|
||||
}
|
||||
void main() {
|
||||
unused_entry_point();
|
||||
}
|
||||
|
||||
|
||||
|
||||
const mat3 m = mat3(0.0f, 1.0f, 2.0f, 3.0f, 4.0f, 5.0f, 6.0f, 7.0f, 8.0f);
|
|
@ -0,0 +1,14 @@
|
|||
#version 310 es
|
||||
precision mediump float;
|
||||
|
||||
layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
|
||||
void unused_entry_point() {
|
||||
return;
|
||||
}
|
||||
void main() {
|
||||
unused_entry_point();
|
||||
}
|
||||
|
||||
|
||||
|
||||
const mat3 m = mat3(vec3(0.0f, 1.0f, 2.0f), vec3(3.0f, 4.0f, 5.0f), vec3(6.0f, 7.0f, 8.0f));
|
|
@ -0,0 +1,14 @@
|
|||
#version 310 es
|
||||
precision mediump float;
|
||||
|
||||
layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
|
||||
void unused_entry_point() {
|
||||
return;
|
||||
}
|
||||
void main() {
|
||||
unused_entry_point();
|
||||
}
|
||||
|
||||
|
||||
|
||||
const mat3 m = mat3(0.0f, 1.0f, 2.0f, 3.0f, 4.0f, 5.0f, 6.0f, 7.0f, 8.0f);
|
|
@ -0,0 +1,14 @@
|
|||
#version 310 es
|
||||
precision mediump float;
|
||||
|
||||
layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
|
||||
void unused_entry_point() {
|
||||
return;
|
||||
}
|
||||
void main() {
|
||||
unused_entry_point();
|
||||
}
|
||||
|
||||
|
||||
|
||||
const mat3 m = mat3(vec3(0.0f, 1.0f, 2.0f), vec3(3.0f, 4.0f, 5.0f), vec3(6.0f, 7.0f, 8.0f));
|
|
@ -0,0 +1,14 @@
|
|||
#version 310 es
|
||||
precision mediump float;
|
||||
|
||||
layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
|
||||
void unused_entry_point() {
|
||||
return;
|
||||
}
|
||||
void main() {
|
||||
unused_entry_point();
|
||||
}
|
||||
|
||||
|
||||
|
||||
const mat3x4 m = mat3x4(0.0f, 1.0f, 2.0f, 3.0f, 4.0f, 5.0f, 6.0f, 7.0f, 8.0f, 9.0f, 10.0f, 11.0f);
|
Some files were not shown because too many files have changed in this diff Show More
Loading…
Reference in New Issue