|
fecb8ead
|
2025-09-04T12:27:48
|
|
WGSL: implement inc/dec with generated functions
Implements inc/dec with generated WGSL functions that take pointers
and perform a post/pre inc/decrement. This works with scalars, vectors,
and matrices, both float and int.
WGSL supports inc/dec only on integer types, and only as statements
(not as expressions). https://www.w3.org/TR/WGSL/#increment-decrement.
The regular ++ and -- are used in this specific case.
The WGSL outputter records usage of increment/decrement and produces
a call to the correct function. A new class is introduced to keep the
record of which types need generated inc/dec WGSL functions.
Bug: angleproject:42267100
Change-Id: I0e70760ba5bd00f978e216f958216ae3137a146e
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/6935269
Commit-Queue: Matthew Denton <mpdenton@chromium.org>
Reviewed-by: Geoff Lang <geofflang@chromium.org>
|
|
6c4c0055
|
2025-10-01T15:13:14
|
|
WGSL: fix do-while when body has continue
If the body of the do while had a "continue" it would
skip over the evaluation of the loop condition and
potentially loop forever.
Change to use the special WGSL "continuing" statement,
which goes at the end of a loop body and always executes,
even if there is an earlier "continue".
Bug: angleproject:42267100
Change-Id: I4ac73e6abcb12e0ff395b83dc5666ac1870724e9
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/7003772
Reviewed-by: Liza Burakova <liza@chromium.org>
Commit-Queue: Matthew Denton <mpdenton@chromium.org>
Reviewed-by: Geoff Lang <geofflang@chromium.org>
|
|
4cff5289
|
2025-08-12T19:31:36
|
|
WGSL: append TSymbolUniqueId to overloaded functions
dEQP-GLES2.functional.shaders.functions.overloading.*
passes after this.
So that overloaded functions have unique names in GLSL,
append their TSymbol's unique id to the name of the
emitted WGSL function.
Bug: angleproject:42267100
Change-Id: I25026e71f9e27cb323014cd4102f914226c27d02
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/6843927
Reviewed-by: Geoff Lang <geofflang@chromium.org>
Commit-Queue: Matthew Denton <mpdenton@chromium.org>
|
|
a471c005
|
2025-08-19T17:24:38
|
|
WGSL: derivative_uniformity diagnostic should be a warning
WGSL requires derivatives to be calculated only if it can
statically prove control flow is uniform. GLSL allows
dynamically uniform control flow in this case. This CL uses
WGSL's diagnostic filter to make derivative_uniformity
diagnostics into warnings, to match GLSL semantics.
Bug: angleproject:392542001
Change-Id: I98dd55205ad6d3c9d13ca3f94c0e7858ba92d536
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/6862844
Reviewed-by: Geoff Lang <geofflang@chromium.org>
Auto-Submit: Matthew Denton <mpdenton@chromium.org>
Commit-Queue: Matthew Denton <mpdenton@chromium.org>
Commit-Queue: Geoff Lang <geofflang@chromium.org>
|
|
cfe2c8fe
|
2025-06-25T13:25:01
|
|
WGSL: RewriteMultielementSwizzle
WGSL doesn't support assignments to multi-element swizzles.
This is used in a lot of shader tests, so temporarily work around
this with an AST traverser that splits these assignments into
multiple assignments that only assign to single element
swizzles.
One special case is multiplication-by-a-matrix assignment:
vec.xy *= mat;
is converted to
vec.x = (vec.xy * mat).x;
vec.y = (vec.xy * mat).y;
Bug: angleproject:392542001
Change-Id: I3f393039aae13eb3f2c5dc5e553f68eb03b6316d
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/6847280
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Commit-Queue: Matthew Denton <mpdenton@chromium.org>
Reviewed-by: Liza Burakova <liza@chromium.org>
|
|
b9cec916
|
2025-08-12T19:44:18
|
|
WGSL: default uniforms gathered in interface block
The default uniform struct was being manually output by
OutputUniformBlocksAndSamplers(), which did not add the appropriate
@align(16) annotations to lay the struct out according to WGSL's
uniform address space layout requirements.
This CL uses Vulkan's method of gathering the default uniforms
into an interface block. The interface block will be output
normally by the traverser, including @align() annotations.
The variable declaring an instance of the interface block is
still output by OutputUniformBlocksAndSamplers() because it needs
special @group() and @binding() annotations.
Bug: angleproject:376553328
Change-Id: Ib3be7d51ffedefe5ec579a1c9aaf0a535146c694
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/6795028
Commit-Queue: Matthew Denton <mpdenton@chromium.org>
Reviewed-by: Liza Burakova <liza@chromium.org>
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
|
|
7e28089b
|
2025-07-31T18:44:01
|
|
WGSL: support bvecs in uniforms
WGSL does not allow booleans in the uniform address space.
The last CL uses u32s to represent bools in the uniform address
space, and this CL uses vecN<u32> to represent bvecN.
Bug: angleproject:376553328
Change-Id: Ibf9f1fbf230ca03dd3d4661ba599e5fb1cb26ac4
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/6808955
Reviewed-by: Liza Burakova <liza@chromium.org>
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Commit-Queue: Matthew Denton <mpdenton@chromium.org>
|
|
ca3d732d
|
2025-07-24T16:22:31
|
|
WGSL: support bool in uniforms
WGSL does not allow booleans in the uniform address space.
This CL changes the translator to substitute u32 for bool
in the uniform address space, and convert it to bool on use.
Arrays of bools are obviously arrays of u32s, and those
will need special conversion functions to convert the entire
array<u32> to array<bool> if necessary.
This also includes the optimization of an array<bool> in a
uniform--when indexing into it, only the indexed element
will be converted to a native bool, instead of converting
the entire array and then indexing.
Note that substituting u32 for bool matches std140, so this
change requires no changes to layout of uniforms.
Also note that WGSL really likes explicit casts, so there's
not really a way to avoid inserting explicit casts everywhere
when using u32.
Bug: angleproject:376553328
Change-Id: I8f72e55c6b401c28ff622622df7a450b7032721f
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/6785609
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Commit-Queue: Matthew Denton <mpdenton@chromium.org>
Reviewed-by: Liza Burakova <liza@chromium.org>
|
|
a1d5d102
|
2025-07-22T02:15:43
|
|
WGSL: Allow matrices as in/out vars in shaders
WGSL only supports scalars and vectors in in/out vars in shaders,
matrices will need to be broken into column vectors and then
put back together at the beginning (or end) of the shader.
Arrays also need to be split, which will be done in another CL.
Bug: angleproject:42267100
Change-Id: If1ba28c1b687ae0a3a5a554479f0ff0b5d9df39c
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/6777201
Commit-Queue: Matthew Denton <mpdenton@chromium.org>
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Reviewed-by: Liza Burakova <liza@chromium.org>
|
|
2c1a55b3
|
2025-07-16T13:44:49
|
|
WGSL: implement == for vectors by wrapping in all()
WGSL's vec comparisons are component-wise, so wrapping the result in a
call to all() returns true if all components compare equal, matching
the behavior of GLSL's vec comparisons (== and !=).
Bug: angleproject:42267100
Change-Id: Icfbfacf72e53096e2567fa89bcd4bf573e457ec1
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/6777197
Reviewed-by: Geoff Lang <geofflang@chromium.org>
Reviewed-by: Liza Burakova <liza@chromium.org>
Commit-Queue: Matthew Denton <mpdenton@chromium.org>
|
|
005336e4
|
2025-06-11T17:17:16
|
|
WGPU: Basic texture cubes
Allows uploading to texture cube faces and sampling from them
in shaders using samplerCube.
Bug: angleproject:420782526
Change-Id: I45d4370fcc418f39afb225114d13632a78c7c200
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/6593999
Reviewed-by: Liza Burakova <liza@chromium.org>
Reviewed-by: Geoff Lang <geofflang@chromium.org>
Commit-Queue: Matthew Denton <mpdenton@chromium.org>
|
|
1e613fec
|
2025-05-27T16:59:26
|
|
Compiler: sort uniforms by precision
This change reoreders the AST sequences so that uniform declarations
with lower precisions are places in front of uniform declarations with
higher precisions. This is to prepare for the upcoming change that
converts uniforms declared with mediump or lowp to 16-bit and pack them
to 32-bit integeter using packHalf2x16().
Bug: b/405795981
Change-Id: I5e1e293399dc8b51b9a6e83115f95beb0c4a7b1b
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/6594255
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Reviewed-by: Amirali Abdolrashidi <abdolrashidi@google.com>
|
|
96c9f065
|
2025-05-15T19:22:29
|
|
WGPU: Flip y for the default framebuffer
Bug: angleproject:389145696
Change-Id: I0d527ad3dc24dbca7e9d914b03edacdc257a568f
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/6477137
Reviewed-by: Geoff Lang <geofflang@chromium.org>
Commit-Queue: Matthew Denton <mpdenton@chromium.org>
|
|
cac1e824
|
2025-04-29T18:27:36
|
|
WGSL: Output driver uniform and UBO structs
This is the WGSL half of the change to implement driver uniforms.
Driver uniforms are implemented as a UBO and reuse the default
set of driver uniforms. User-provided UBOs don't yet have
variables outputted for them.
This requires moving MSL's ReduceInterfaceBlocks to the tree_ops
dir in order to change interface block definitions into struct
definitions.
Bug: angleproject:389145696
Change-Id: I27f3837b3d115f2ffac66cc545f3b60ca9f01cb6
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/6477564
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Commit-Queue: Matthew Denton <mpdenton@chromium.org>
Reviewed-by: Geoff Lang <geofflang@chromium.org>
|
|
00d99277
|
2025-03-19T17:22:24
|
|
[WGSL] Emit sampler types and texture lookup builtins
The split texture/sampler WGSL variables will now have the correct
types corresponding to their GLSL types.
Texture builtins are translated as faithfully as possible. There are
some issues with the translation:
1. Texture builtins using an implicit level-of-detail in a vertex
shader are supposed to sample from the base mip level. Right
now these are translated into WGSL functions that cannot be used
in a vertex shader at all.
2. Some texture builtins that take integer samplers do not have
corresponding WGSL versions, e.g. the sampling GLSL function
texture() takes integer samplers but the mostly equivalent
WGSL builtin, textureSample(), will only take float samplers.
3. A number of GLSL texture builtins are not supported in WGSL
when uses on shadow samplers, e.g. anything with a bias
parameter, an explicit LOD parameter, or explicit gradients,
Bug: angleproject:389145696
Change-Id: Idfd75721f88181db9643235b954629ac477163e4
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/6372082
Commit-Queue: Matthew Denton <mpdenton@chromium.org>
Reviewed-by: Geoff Lang <geofflang@chromium.org>
Reviewed-by: Liza Burakova <liza@chromium.org>
|
|
0cdbc781
|
2025-03-06T11:22:18
|
|
WGSL: Output samplers, including samplers from structs
This output two WGSL variables for each GLSL sampler, including samplers
in structs. This does not output the correct types for the WGSL
variables, yet, nor does it generate texture access function calls.
It also can't deal with arrays of samplers, which are not allowed in
WGSL.
Note that WGSL does not allow structs containing samplers to be
arguments to a function, like Vulkan, nor does it allowed arrays of
samplers at all, unlike Vulkan. This deals with the former problem the
same way as Vulkan and Metal, by monomorphizing functions that take
unsupported arguments.
Bug: angleproject:389145696
Change-Id: I346688783dd2771c8fe6848b6783d948ed111783
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/6253672
Reviewed-by: Geoff Lang <geofflang@chromium.org>
Commit-Queue: Matthew Denton <mpdenton@chromium.org>
|
|
8ee72cc7
|
2025-01-13T13:44:31
|
|
WGSL: support matCx2 in uniforms
matCx2 in WGSL does not match std140 layout and so it needs to
be translated as array<ANGLE_wrapped_vec2, C> when in a uniform.
On use it needs to be converted to a WGSL-native matCx2.
This also includes the optimization of an array<matCx2> in a
uniform--when indexing into it, only the indexed element
will be converted to a native matCx2, instead of converting
the entire array and then indexing.
Bug: angleproject:376553328
Change-Id: I1d84471234b3d3cf4cf361ae89cb61675d5bf9a8
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/6157788
Reviewed-by: Liza Burakova <liza@chromium.org>
Commit-Queue: Matthew Denton <mpdenton@chromium.org>
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
|
|
b1a0d60f
|
2025-01-08T15:10:41
|
|
WGSL: Fix accidentally overloaded functions
Small-stride arrays in uniforms with the same element type, but
different array sizes, would cause the WGSL generator to produce
conversion functions with the same name but different array sizes.
This CL puts the array size in the name of the function to
avoid overloading, which is unsupported in WGSL.
Bug: angleproject:376553328
Change-Id: I446e91ccb9da2872c88f1a4e05283aacc9d6f8b1
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/6160334
Commit-Queue: Matt Denton <mpdenton@google.com>
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Auto-Submit: Matthew Denton <mpdenton@chromium.org>
Reviewed-by: Matt Denton <mpdenton@google.com>
Reviewed-by: Liza Burakova <liza@chromium.org>
|
|
363f6264
|
2025-01-07T10:35:09
|
|
WGSL: unwrap single array element from uniform
...instead of unwrapping the entire array when only one element is
being accessed.
The is step #4 from the implementation plan in
https://docs.google.com/document/d/17Qku1QEbLDhvJS-JJ9lPQAbnuZtLxWhG-ha5eCUhtEY/edit?tab=t.0#bookmark=id.dt9vmixnpdvo
Bug: angleproject:376553328
Change-Id: I6c559f44b75cd1d3c4a478141c11f65a33d76bdf
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/6102117
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Commit-Queue: Matt Denton <mpdenton@google.com>
Reviewed-by: Matt Denton <mpdenton@google.com>
Reviewed-by: Liza Burakova <liza@chromium.org>
|
|
53ec86ab
|
2024-12-17T14:40:31
|
|
WGSL: support small stride arrays in uniforms
WGSL requires arrays in the uniform address space to have a stride
a multiple of 16.
This CL makes WGSL translator emit wrapper structs for array element
types used in the uniform address space, when the array stride is
not a multiple of 16. The exception is for structs that aren't
an aligned size of 16n, and for any types matCx2, since they are
(or will be) handled in different ways that ensure alignment to 16.
This should leave only f32, i32, u32, and vec2.
See https://www.w3.org/TR/WGSL/#example-67da5de6 for an example
of using a wrapper struct.
This requires converting arrays with a wrapper struct element type
to arrays with an unwrapped element type when they are first used;
this can be "optimized" later for the common case of accessing a
single array element, which can then be unwrapped immediately. This
CL generates WGSL conversion functions when necessary.
After this, the only types that can't yet be used in a uniform
are matCx2 and bools.
This is #2 in
https://docs.google.com/document/d/17Qku1QEbLDhvJS-JJ9lPQAbnuZtLxWhG-ha5eCUhtEY/edit?tab=t.0#bookmark=id.rt3slgehd4te
Bug: angleproject:376553328
Change-Id: I1edfa7f481a6cbf5b595643aae8728e67bc4b770
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/6092038
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Reviewed-by: Liza Burakova <liza@chromium.org>
Reviewed-by: Matt Denton <mpdenton@google.com>
Commit-Queue: Matt Denton <mpdenton@google.com>
|
|
473798bf
|
2024-11-28T00:38:36
|
|
WGSL: @align appropriate struct members in uniforms.
Structs used in the uniform address space need to have certain
members aligned according to the uniform address space layout
constraints (substantially similar to std140).
This CL adds @align annotations where necessary, in structs used
in the uniform address space. Strictly speaking, it's okay to apply
@align annotations to all structs used in the WGSL program, but this
CL uses a pre-pass AST traverser to records all the structs used
in the uniform address space. This is to avoid more unreadable
generated code, and when more transformations are applied to
these structs in future CLs, less generated code overall.
After this, the only types that can't yet be used in a uniform
are matCx2, arrays with stride not divisble by 16 (except when the
array element type is a struct), and bools.
This is #1 in struct translation in
https://docs.google.com/document/d/17Qku1QEbLDhvJS-JJ9lPQAbnuZtLxWhG-ha5eCUhtEY/edit?tab=t.0#bookmark=id.rudfrn2o6jv1
Bug: angleproject:376553328
Change-Id: Ibff3414043a6ecb4a01ef8e3e71dad9c1066ddfd
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/6056951
Commit-Queue: Matthew Denton <mpdenton@chromium.org>
Reviewed-by: Liza Burakova <liza@chromium.org>
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
|
|
4a835cf2
|
2024-11-01T13:31:00
|
|
WebGPU: send uniforms to GPU for use in shader
Basic uniforms should now be accessible in the shader during a draw
call, rather than just via glGetUniform*().
This is unoptimized and creates a new GPU-side copy of all the uniforms,
every time any uniform changes.
This sets up the bind group layout for a pipeline and sets the bind
groups in the renderer pass. Right now these bind groups only contain
the default uniform blocks, but in the future will need to contain
textures, samplers, and non-default uniform blocks (UBOs).
Bug: angleproject:376553328
Change-Id: I50891b81ab2ee374d674213257f76319c0222120
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/5980972
Reviewed-by: Geoff Lang <geofflang@chromium.org>
Reviewed-by: Liza Burakova <liza@chromium.org>
Commit-Queue: Matthew Denton <mpdenton@chromium.org>
|
|
a6ee4641
|
2024-09-25T11:41:47
|
|
WGSL: Output default uniform block and accesses to it
Default uniforms are put into a WGSL struct, and all accesses
of those uniforms now output struct accesses.
Similarly to I/O vars and builtins, these are outputted in a
pre-pass, but in the future it might make sense to do what
Vulkan does and do an AST transformation to put the default
uniforms into a UBO which should be outputted similarly.
This does not handle bool, matCx2, or array of element size < 16.
Bug: angleproject:42267100
Change-Id: If29e2895a8aba3212b581813316af87273c1515c
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/5878759
Reviewed-by: Liza Burakova <liza@chromium.org>
Reviewed-by: Geoff Lang <geofflang@chromium.org>
Commit-Queue: Matthew Denton <mpdenton@chromium.org>
|
|
7e462c22
|
2024-09-17T15:32:41
|
|
WGPU: Implement SetUniform() enough so GetUniform() works
Lays out a shadow buffer for basic uniforms per-shadertype
in std140, which is close to matching WGPU's layout. This
does not actually pass the buffer to WGPU as a uniform
buffer. GetUniform() just reads from the shadow buffer.
This is copied from the VK backend and so some code is
deduplicated.
Bug: angleproject:42267100
Change-Id: I727dc9e09a7ccabbb617f148dd68590469883b07
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/5867444
Reviewed-by: Geoff Lang <geofflang@chromium.org>
Commit-Queue: Matthew Denton <mpdenton@chromium.org>
Reviewed-by: Liza Burakova <liza@chromium.org>
|
|
c2a9300c
|
2024-09-10T19:33:33
|
|
WGSL: Rewrite input/output variables
GLSL builtin variables and in/out variables correspond to WGSL's main
function params and return value, so rewrite them accordingly.
This is done by generating structs to use as main function params and
return values, generating similar global structs, and copying the
former into the latter so the rest of the program can just use the
variables stored in the global structs.
Bug: angleproject:42267100
Change-Id: Ic3e1196f6fb95b963ce03845096a59ea7599d608
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/5835347
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Reviewed-by: Geoff Lang <geofflang@chromium.org>
Commit-Queue: Matthew Denton <mpdenton@chromium.org>
|
|
35f01e7f
|
2024-06-26T14:30:27
|
|
ESSL -> WGSL: Support basic control flow
If/else, while, do/while, for.
Return, break, continue, discard
Bug: angleproject:42267100
Change-Id: I0c8ef30b45aec639a07323e333db970d4c42dec0
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/5661103
Reviewed-by: Liza Burakova <liza@chromium.org>
Commit-Queue: Matthew Denton <mpdenton@chromium.org>
Reviewed-by: Geoff Lang <geofflang@chromium.org>
|
|
89ef2812
|
2024-06-26T11:19:54
|
|
ESSL -> WGSL: unary and binary exprs, operators, array access
Array indexing is always checked to be within bounds. For runtime-sized
arrays, this requires emitting a clamp(). For now this includes a bug
the left-side-expression (the array itself) has any side effects, which
shouldn't actually be possible but may be in future versions of WGSL.
Implementing unary, binary, and remaining aggregate expressions requires
implementing operators, many of which do not have exact corresponding
versions between GLSL and WGSL. This implements many operators but for
simplicity leaves some unimplemented and some half-implemented.
See WGSLOutput_test.cpp for some code examples.
Bug: angleproject:42267100
Change-Id: I3737abb5dffd156deba0429fa86570270d711d3c
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/5651994
Reviewed-by: Geoff Lang <geofflang@chromium.org>
Commit-Queue: Matthew Denton <mpdenton@chromium.org>
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
|
|
7ca9f46a
|
2024-06-21T13:09:24
|
|
ESSL -> WGSL: Emit func calls, struct access, constants
Also includes constructor calls, swizzles, and a slightly incorrect
version of the ternary operator.
The ternary operator doesn't exist in WGSL, only a non-short-circuiting
select() builtin. For now the ternary is implemented with select()
but that isn't correct if any of the true/false expressions have side
effects, and may have perf implications by computing both true/false
expressions.
Constants are mostly done after this, however NaN and infinity are not
valid constants in WGSL and it's unclear what we can do about this as
WGPU implementations are allowed to assume NaNs and infinities are
never operated on.
Bug: angleproject:42267100
Change-Id: Ie6190091a7b95d3d372736ab7cea45868846e7be
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/5648990
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Commit-Queue: Matthew Denton <mpdenton@chromium.org>
Reviewed-by: Geoff Lang <geofflang@chromium.org>
|
|
a04239d8
|
2024-06-18T11:38:52
|
|
ESSL -> WGSL: Emit most types and function params
This emits struct declarations, as well as array/matrix/vec types.
As a result this also emits function parameters.
Bug: angleproject:42267100
Change-Id: Ib9c7e543fd38f7c1dfa64d8e63b054fc5111b336
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/5598298
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Reviewed-by: Geoff Lang <geofflang@chromium.org>
Commit-Queue: Matthew Denton <mpdenton@chromium.org>
|
|
af72bf7f
|
2024-05-24T15:00:44
|
|
ESSL -> WGSL: emit basic types
This emits dimensionless types (no vectors, matrices, arrays).
Function signatures will emit their return type (assuming it
is dimensionless).
Bug: angleproject:42267100
Change-Id: I0d2479f71408eb20b9c329a99c70a6bf6426a72f
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/5590384
Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
|
|
d68395fe
|
2024-05-24T15:14:46
|
|
ESSL->WGSL: Emit basic function signatures
...signatures don't yet include types or parameters.
See WGSLOutput_test.cpp for a sample translation.
Bug: angleproject:8662
Change-Id: I93273156f72ba193441e737074bd1a8a054f2ea9
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/5582949
Commit-Queue: Matthew Denton <mpdenton@chromium.org>
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Reviewed-by: Liza Burakova <liza@chromium.org>
|