Hajime Hoshi
b1d7a5f595
shaderir/glsl: Enable dFdx for WebGL
...
With WebGL1, an extension is required for dFdx. On the other hand,
with WebGL2, GLSL ES 300 is required and the extension is forbidden.
This change fixes shaderir/glsl to switch the output depends on the
WebGL version.
This change also adds a new build tag 'ebitenwebgl1' forcing WebGL 1.
Updates #1404
2020-11-21 19:07:54 +09:00
Hajime Hoshi
185e367295
shader: Implement cap function
...
Fixes #1361
2020-10-17 23:36:09 +09:00
Hajime Hoshi
bf515bb594
Update version to v2.0.0-alpha
2020-10-04 04:30:40 +09:00
Hajime Hoshi
3c71eba446
shaderir: Bug fix: Implement atan2 for Metal correctly
...
Fixes #1360
2020-09-22 04:29:34 +09:00
Hajime Hoshi
2fb1033183
shader: Initialize output parameters explicitly
2020-09-12 00:35:14 +09:00
Hajime Hoshi
99dcb14582
shaderir/glsl: Refactoring
2020-09-10 02:11:21 +09:00
Hajime Hoshi
e1ae9bdde0
shaderir/glsl, shaderir/metal: Refactoring
2020-09-10 02:04:28 +09:00
Hajime Hoshi
337f44c916
shader: Add Metal tests
...
Fixes #1340
2020-09-10 01:19:02 +09:00
Hajime Hoshi
031f8376e9
shaderir: Refactoring
2020-09-08 03:51:29 +09:00
Hajime Hoshi
3b040e5f22
Fix test failures
2020-09-08 03:10:59 +09:00
Hajime Hoshi
1786be55f7
shader: Refactoring
2020-09-08 02:43:41 +09:00
Hajime Hoshi
0a0401e217
shader: Refactoring: Simplify calculation of LocalVarIndexOffset
2020-09-08 02:42:43 +09:00
Hajime Hoshi
f61a916e4a
shaderir/glsl: Bug fix: Calculate local variable indices correctly
...
Fixes #1339
2020-09-08 00:19:07 +09:00
Hajime Hoshi
29c7b7687f
shaderir: Add Program.UniformNames
...
Updates #1324
2020-09-06 03:41:17 +09:00
Hajime Hoshi
f5829b2cf3
shader: Check at least one variable on left side of :=
...
Updates #1330
2020-09-03 01:15:41 +09:00
Hajime Hoshi
06ed4f5444
shader: Implement len function
...
Fixes #1279
2020-08-16 02:07:39 +09:00
Hajime Hoshi
f6c3e0579f
shaderir: Adopt the precision 10 for float literals
...
Adopted the same precision of (*math/big.Float).String().
2020-08-13 00:01:16 +09:00
Hajime Hoshi
f71346da6c
shaderir: Add bool/int/float conversion
...
Updates #1289
2020-08-11 23:04:55 +09:00
Hajime Hoshi
5d2606b6a5
shader: Bug fix: Wrong local variable indices in blocks
2020-08-10 01:09:02 +09:00
Hajime Hoshi
dee8690502
shaderir/glsl: Bug fix: Copying an array did not work on GLSL
...
Fixes #1286
2020-08-09 22:18:58 +09:00
Hajime Hoshi
646518f2e8
shaderir: Fix the test side: local variables for 'for' stmts must be reserved
2020-08-09 22:12:35 +09:00
Hajime Hoshi
b73fecae79
shaderir: Add tests for different counter types
2020-08-09 21:44:06 +09:00
Hajime Hoshi
2707915376
shaderir/glsl, shaderir/metal: Bug fix: Wrong local variables with multiple 'for' statements
2020-08-09 20:12:56 +09:00
Hajime Hoshi
80361443cc
shaderir/glsl, shaderir/metal: Bug fix: Wrong local variables in for
2020-08-09 20:06:13 +09:00
Hajime Hoshi
ee9257e626
shaderir: Use pointers for Block
2020-08-09 18:00:55 +09:00
Hajime Hoshi
07514a37c8
shaderir/glsl: Bug fix: Initialize an array
...
Updates #1285
2020-08-09 04:59:29 +09:00
Hajime Hoshi
febdc46ad5
shaderir/metal: Better array initialization
...
Updates #1285
2020-08-09 04:40:15 +09:00
Hajime Hoshi
a536b3ee25
shaderir/metal: Bug fix: Array initialization
...
Updates #1285
2020-08-09 04:22:12 +09:00
Hajime Hoshi
a45e241da1
shaderir/metal: Implement the shader IR compiler for Metal
...
Fixes #1165
2020-08-08 19:14:57 +09:00
Hajime Hoshi
18b3859e20
shaderir: Export IsValidSwizzling
...
This is a preparation for compiling the IR to Metal.
Updates #1165
2020-08-08 19:08:10 +09:00
Hajime Hoshi
00ccc8ad85
shaderir/glsl: Refactoring
2020-08-07 01:53:22 +09:00
Hajime Hoshi
6576a1da76
shaderir/glsl: Refactoring
2020-08-06 17:53:28 +09:00
Hajime Hoshi
6003d85f75
shaderir: Remove some builtin functions
...
'degrees' and 'radians' are not defined in Metal.
2020-08-05 02:06:28 +09:00
Hajime Hoshi
ffee5eb6b8
shaderir/glsl: Fix the panic messages
2020-08-05 01:50:41 +09:00
Hajime Hoshi
c22ec580bc
shaderir: Remove bultin functions for bvec
2020-08-05 01:41:06 +09:00
Hajime Hoshi
8bac08cbd9
Add internal/shaderir/glsl
2020-08-03 23:27:27 +09:00
Hajime Hoshi
79e252c158
shaderir: Refactoring
2020-08-02 00:09:12 +09:00
Hajime Hoshi
fa60e31997
shaderir: Bug fix: Pass tests
2020-08-01 21:22:47 +09:00
Hajime Hoshi
4bd01fd038
graphicsdriver/opengl: Implement shaders for browsers
...
Fixes #1166
2020-08-01 20:27:46 +09:00
Hajime Hoshi
bab05874cd
shaderir: Remove unnecessary empty lines
2020-08-01 19:04:10 +09:00
Hajime Hoshi
a4334c5464
shader: Use arrays at uniform variables
...
Fixes #1274
2020-08-01 17:22:10 +09:00
Hajime Hoshi
da5642cd0e
graphicsdriver/opengl: Add type checks of uniform variables
2020-08-01 02:01:51 +09:00
Hajime Hoshi
004b279e4f
shader: Add array initialization
...
Updates #1235
2020-07-29 22:43:51 +09:00
Hajime Hoshi
d9c54bc0d0
shader: Implement an array variable
...
Updates #1235
2020-07-29 02:27:05 +09:00
Hajime Hoshi
a43efb66b2
shaderir: Bug fix: Function prototypes were required for GLSL
...
Fixes #1267
2020-07-28 00:04:03 +09:00
Hajime Hoshi
c8fa937a0a
shaderir: Format
2020-07-20 02:12:31 +09:00
Hajime Hoshi
385ff8efdf
shader: Bug fix: Wrong local variable names at for-loop
...
Fixes #1245
2020-07-13 22:49:15 +09:00
Hajime Hoshi
2ca551cdc6
shader: Implement 'for' statement
...
Fixes #1230
2020-07-13 01:44:05 +09:00
Hajime Hoshi
f95ca46c99
shaderir: Add Stmt.ForVarType and use constant.Value
...
Updates #1230
2020-07-12 22:31:12 +09:00
Hajime Hoshi
291d69500b
shaderir: Add Stmt.ForVarIndex
...
Updates #1230
2020-07-12 21:55:07 +09:00
Hajime Hoshi
202bb34bac
shaderir: Add builtin funcs dfdx, dfdy, fwidth
...
Fixes #1242
2020-07-11 21:50:10 +09:00
Hajime Hoshi
aecd29325e
shaderir: Bug fix: Wrong function names for some bulitin funcs
2020-07-11 21:46:21 +09:00
Hajime Hoshi
776de77744
shaderir: Remove and rename some builtin functions
...
Apparently matrixCompMult and outerProduct are not portable.
We adopted the naming rule foobar instead of fooBar.
2020-07-11 21:43:24 +09:00
Hajime Hoshi
4021c24534
shader: Separate uniform variables and texture variabls
...
Textures cannot be treated as a regular variable, then they should
be treated differently from other uniform variables.
Add a new function texture0At replacing texture2D.
Updates #1239
2020-07-08 01:12:07 +09:00
Hajime Hoshi
98ae0826c7
shaderir: Bug fix: Early-returns in the entry points didn't work
...
Fixes #1238
2020-07-05 17:57:57 +09:00
Hajime Hoshi
380b7382ac
shader: Add 'if'
...
Updates #1230
2020-07-05 02:33:49 +09:00
Hajime Hoshi
912135d1e7
shaderir: Use constant.Value for number literals
...
Updates #1190
2020-06-21 01:30:23 +09:00
Hajime Hoshi
4b5de9f445
shaderir: Refactoring: Add OpFromToken
2020-06-20 23:27:54 +09:00
Hajime Hoshi
28948a9976
shaderir: Add (*Type).serialize again
2020-06-20 21:08:08 +09:00
Hajime Hoshi
255da0367f
shader: Bug fix: a binary expression for an int and a float did not work
2020-06-20 18:10:23 +09:00
Hajime Hoshi
afb4e6dc3d
shaderir: Misspelling
2020-06-18 01:28:17 +09:00
Hajime Hoshi
2869885816
shaderir: Fix the initial variable values on GLSL
...
This is for consistency with number literals we are introducing.
Updates #1190
2020-06-17 01:59:02 +09:00
Hajime Hoshi
f39c591252
shader: Enable more Go syntax
2020-06-11 01:13:03 +09:00
Hajime Hoshi
399bb93044
shaderir: Add space lines between functions
2020-06-08 01:41:47 +09:00
Hajime Hoshi
9a5481459a
shaderir: Remove inout params
2020-06-07 19:24:27 +09:00
Hajime Hoshi
39c09a4f88
shaderir: Change the param order of fragment shaders
2020-06-03 02:01:50 +09:00
Hajime Hoshi
cd3d396975
shader: Implement vertex shader entry point
2020-06-03 01:03:27 +09:00
Hajime Hoshi
fa5b2ed730
shaderir: Change the param order
2020-06-03 00:46:52 +09:00
Hajime Hoshi
3118657fff
shaderir: Fix integer literals
2020-06-02 21:45:33 +09:00
Hajime Hoshi
6fa7b4bb5a
shader: Analyze blocks and shadowings
2020-06-01 00:58:33 +09:00
Hajime Hoshi
afd114e606
shader: Parse function bodies
2020-05-31 19:03:33 +09:00
Hajime Hoshi
1042eb71e0
shaderir: Rename Sampler2D -> Texture2D
2020-05-30 17:48:56 +09:00
Hajime Hoshi
8738d182fb
restoreble: Add test with shaders rendering an image
...
Updates #1168
2020-05-25 02:32:23 +09:00
Hajime Hoshi
3ed9f8ee3b
shaderir: Update comments
2020-05-24 02:07:57 +09:00
Hajime Hoshi
14e90a34aa
shaderir: Add more builtin functions
2020-05-23 22:01:10 +09:00
Hajime Hoshi
f38ca35608
shaderir: Remove attribute variables from fragment shaders
2020-05-23 19:06:44 +09:00
Hajime Hoshi
125f85effe
shaaderir: Use gl_FragColor
2020-05-23 18:18:22 +09:00
Hajime Hoshi
da4d5b1338
shaderir: Add more builtin functions
2020-05-23 18:07:32 +09:00
Hajime Hoshi
7937b302e3
shaderir: Do not use () for the callees
2020-05-23 18:06:50 +09:00
Hajime Hoshi
a338c7180c
shaderir: Split vertex shader and fragment shader at Glsl()
2020-05-21 23:58:08 +09:00
Hajime Hoshi
29dbad28f9
shaderir: Add new lines
2020-05-17 17:06:21 +09:00
Hajime Hoshi
156ed320cc
shaderir: Remove Variable and VariableType
2020-05-17 04:28:03 +09:00
Hajime Hoshi
094d845edd
shaderir: Remove Ident
2020-05-17 03:00:57 +09:00
Hajime Hoshi
dbbe4ee09c
shaderir: Add StructMember
2020-05-17 02:46:02 +09:00
Hajime Hoshi
8a6140a92f
shaderir: Refactoring
2020-05-17 02:45:03 +09:00
Hajime Hoshi
e1d0800f19
shaderir: Bug fix: Wrong implementation of isValidSwizzling
2020-05-17 02:25:37 +09:00
Hajime Hoshi
7e274050a3
shaderir: Add swizzling
2020-05-17 02:24:35 +09:00
Hajime Hoshi
7648271eff
shaderir: Implement bulit-in functions
2020-05-17 00:33:22 +09:00
Hajime Hoshi
6553c237a1
shaderir: Add comments
2020-05-16 23:42:32 +09:00
Hajime Hoshi
8f4e93338c
shaderir: Implement sampler2D
2020-05-16 23:33:20 +09:00
Hajime Hoshi
316e502f4b
shaderir: Add predefined macros
2020-05-16 23:29:01 +09:00
Hajime Hoshi
66e76597d8
shaderir: Implement fragment function
2020-05-16 23:07:24 +09:00
Hajime Hoshi
ddaed674dd
shaderir: Implement vertex function
2020-05-16 22:50:20 +09:00
Hajime Hoshi
eb5a2efad8
shaderir: Implement return
2020-05-16 20:16:04 +09:00
Hajime Hoshi
57d80c185e
shaderir: Implement call
2020-05-16 19:19:16 +09:00
Hajime Hoshi
5b69e81bd7
shaderir: Add more tests
2020-05-16 18:09:09 +09:00
Hajime Hoshi
af5249de4d
shaderir: Implement selector operator
2020-05-16 17:22:17 +09:00
Hajime Hoshi
d4d43ce193
shaderir: Allow specifying op for 'for' loop
2020-05-16 15:51:54 +09:00
Hajime Hoshi
9f4985943c
shaderir: Allow integer literals
2020-05-16 03:40:33 +09:00
Hajime Hoshi
3cffe88334
shaderir: Add for-loop
2020-05-16 03:10:03 +09:00