Ethan Lee <flibitijibibo@flibitijibibo.com> [Sat, 30 Jan 2021 13:55:25 -0500] rev 1321
spirv: Work around OpLogicalNot being unsupported for ints
Ethan Lee <flibitijibibo@flibitijibibo.com> [Sun, 10 Jan 2021 15:02:29 -0500] rev 1320
glsl: Move misc face/position variables to after main, fixes ES3 compatibility
Ethan Lee <flibitijibibo@flibitijibibo.com> [Thu, 31 Dec 2020 15:56:57 -0500] rev 1319
glsl: Fix support for PSIZE1 and up
Martin Krošlák <kroslakma@gmail.com> [Wed, 11 Nov 2020 15:09:32 -0500] rev 1318
spirv: Fix PointCoord input using vec4 instead of vec2
Ethan Lee <flibitijibibo@flibitijibibo.com> [Tue, 10 Nov 2020 19:17:45 -0500] rev 1317
Replace SWAPDBL loop with memcpy, fixes MinGW Win64
Ryan C. Gordon <icculus@icculus.org> [Fri, 23 Oct 2020 23:35:41 -0400] rev 1316
Fix caller-defined swizzles for Shader Model 1 shaders.
Evan Hemsley <evan@moonside.games> [Thu, 22 Oct 2020 10:57:02 -0400] rev 1315
vulkan: Decouple block size from block increment
Ethan Lee <flibitijibibo@flibitijibibo.com> [Thu, 15 Oct 2020 01:17:45 -0400] rev 1314
D3D11: Increase bool uniform buffer size (thanks @jeffphilp!)
Ethan Lee <flibitijibibo@flibitijibibo.com> [Thu, 15 Oct 2020 01:03:56 -0400] rev 1313
Missed an increment...
Ethan Lee <flibitijibibo@flibitijibibo.com> [Thu, 15 Oct 2020 00:57:03 -0400] rev 1312
D3D11: bool constants are stored as int4 (thanks @jeffphilp!)
Ryan C. Gordon <icculus@icculus.org> [Wed, 14 Oct 2020 16:43:03 -0400] rev 1311
opengl: Don't assert if vs_flip_loc == -1.
This can be -1 if the GLSL compiler removed it, or if you bound a program
without a vertex shader at all.
Ryan C. Gordon <icculus@icculus.org> [Tue, 13 Oct 2020 01:23:44 -0400] rev 1310
glsl: better fix for incorrect SM1.1 defines.
Ryan C. Gordon <icculus@icculus.org> [Tue, 13 Oct 2020 01:23:19 -0400] rev 1309
Make sure attribute registers are declared correctly in weird SM1 case.
Ryan C. Gordon <icculus@icculus.org> [Tue, 13 Oct 2020 01:03:20 -0400] rev 1308
glsl: for SM1.1, don't add incorrect gl_TexCoord defines.
We handled this elsewhere.
Ryan C. Gordon <icculus@icculus.org> [Tue, 13 Oct 2020 01:02:07 -0400] rev 1307
utils: Added testglcompile.c, to see if the GL accepts our generated shaders.
Ryan C. Gordon <icculus@icculus.org> [Mon, 12 Oct 2020 15:33:01 -0400] rev 1306
assembler: Don't lose the TEXBEM opcode in the special ps_1_1 TEX detection.
Ethan Lee <flibitijibibo@flibitijibibo.com> [Fri, 02 Oct 2020 14:48:29 -0400] rev 1305
d3d11: Fix possible leaks after compiling shaders
Evan Hemsley <evan@moonside.games> [Wed, 30 Sep 2020 22:51:53 -0400] rev 1304
vulkan: Add support for multithreaded UBOs
Ethan Lee <flibitijibibo@flibitijibibo.com> [Sun, 30 Aug 2020 21:35:31 -0400] rev 1303
spirv: Separate pixel shader outputs from inputs, fix linker accordingly
Ethan Lee <flibitijibibo@flibitijibibo.com> [Thu, 27 Aug 2020 17:18:38 -0400] rev 1302
vulkan: Fix overlapping pixel/vertex shaders where one shader is NULL
Ethan Lee <flibitijibibo@flibitijibibo.com> [Wed, 26 Aug 2020 14:37:18 -0400] rev 1301
Write locations for SPIR-V pixel shader outputs
Ethan Lee <flibitijibibo@flibitijibibo.com> [Tue, 25 Aug 2020 22:41:43 -0400] rev 1300
Handle MOJOSHADER_USAGE_UNKNOWN in SPIR-V linker
Martin Krošlák <kroslakma@gmail.com> [Thu, 23 Jul 2020 18:16:22 -0400] rev 1299
Fix SM1 shaders on SPIR-V after TEX* opcodes changes:
- Fix implicit input attribute on SPIR-V profile
- Remove texcoord attribs from other TEX* opcodes
Ryan C. Gordon <icculus@icculus.org> [Thu, 23 Jul 2020 05:12:09 -0400] rev 1298
assembler: set the default source arg swizzle to the correct value.
Ryan C. Gordon <icculus@icculus.org> [Mon, 20 Jul 2020 20:07:44 -0400] rev 1297
metal: Fix RCP and RSQ output to match GLSL.
Ryan C. Gordon <icculus@icculus.org> [Mon, 20 Jul 2020 20:07:06 -0400] rev 1296
d3d11: Only build the D3D11 glue code on Windows.
Ryan C. Gordon <icculus@icculus.org> [Mon, 20 Jul 2020 20:06:34 -0400] rev 1295
cmake: build the HLSL profile by default.
Ryan C. Gordon <icculus@icculus.org> [Mon, 20 Jul 2020 19:24:46 -0400] rev 1294
Rebuilt the lexer with a much newer re2c.
Ryan C. Gordon <icculus@icculus.org> [Mon, 20 Jul 2020 19:22:41 -0400] rev 1293
glsl: Correct RCP and RSQ output.
Ryan C. Gordon <icculus@icculus.org> [Mon, 20 Jul 2020 19:02:27 -0400] rev 1292
glsl: Fix compiler warning.
Ryan C. Gordon <icculus@icculus.org> [Mon, 20 Jul 2020 18:53:54 -0400] rev 1291
RSQ opcode requires replicate swizzle.
Ryan C. Gordon <icculus@icculus.org> [Mon, 20 Jul 2020 16:14:43 -0400] rev 1290
The assembler needs to accept an implicit ".x" swizzle on RCP's source arg.
Ryan C. Gordon <icculus@icculus.org> [Mon, 20 Jul 2020 15:37:27 -0400] rev 1289
Minor replicate_swizzle optimization.
Do it in two tests instead of three, and with two shifts instead of five.
Ryan C. Gordon <icculus@icculus.org> [Mon, 20 Jul 2020 15:35:34 -0400] rev 1288
Clean up assembler writemask parsing a little.
Ryan C. Gordon <icculus@icculus.org> [Mon, 20 Jul 2020 15:18:14 -0400] rev 1287
List default writemasks for instructions.
This lets this line of assembly generate correct code:
m3x3 r7, r4, c28
As this is legal, but the bytecode validator will throw it out for having a
writemask of .xyzw on r7 when it requires .xyz. The assembler needs to know
what the implicit writemask should be in this circumstance.
(Some instructions might still be incorrect, but are left at the default of a
full .xyzw writemask, so they continue to act as before until corrected.)
Ryan C. Gordon <icculus@icculus.org> [Mon, 20 Jul 2020 15:14:32 -0400] rev 1286
Fixed typo in error message.
Ryan C. Gordon <icculus@icculus.org> [Mon, 20 Jul 2020 14:54:14 -0400] rev 1285
Assembler now accepts "c[5]" as equivalent to "c5".
This only accepts a constant integers, you can't currently do something like
"c[2+3]" even if the constants could be completely folded during assembly. I
don't know if Microsoft's tools allow that, will have to revisit later if so.
Ryan C. Gordon <icculus@icculus.org> [Mon, 20 Jul 2020 14:52:00 -0400] rev 1284
Assembler now deals with scalar registers specifying a write mask better.
Ryan C. Gordon <icculus@icculus.org> [Mon, 20 Jul 2020 14:51:03 -0400] rev 1283
Don't make the MOJOSHADER_DO_INSTRUCTION_TABLE caller undef everything after.
Ryan C. Gordon <icculus@icculus.org> [Mon, 20 Jul 2020 14:50:10 -0400] rev 1282
For SM1.1 TEX, don't add texcoord attributes.
Other parts of the system will generate the tX registers as global
variables, assign gl_TexCoord[X] to them, and overwrite them with the
sampled pixels during the TEX instruction. Setting these as texcoord
attributes causes it to _also_ generate a generic vertex attribute and
cause all sorts of problems.
Ryan C. Gordon <icculus@icculus.org> [Sun, 19 Jul 2020 23:44:13 -0400] rev 1281
Correct the reported usage on SM1 vertex shader input registers.
They are hardcoded to mean specific things (v0 is POSITION0, v1 is
BLENDWEIGHT, etc).
Caleb Cornett <caleb.cornett@outlook.com> [Tue, 07 Jul 2020 21:00:14 -0400] rev 1280
VS2010 buildfix
Caleb Cornett <caleb.cornett@outlook.com> [Tue, 07 Jul 2020 19:25:47 -0400] rev 1279
Metal uniform buffer overhaul.
1. Metal now uses a single, ~1MB uniform buffer per frame that is shared among
all shaders. From my testing this should be more than enough room for the FNA
catalog (aside from possibly Little Racers Street with its memory leak). This
is a major boon for Metal memory management since it only requires one buffer
instead of 3,000 (in LRS's case)! And it simplifies the internal workings of
mojoshader_metal dramatically.
2. Metal now has a MOJOSHADER_mtlMakeContextCurrent API to match GL and Vulkan.
Other parts of the context API have been rewritten as well to match the
behavior you'd expect.
3. The MOJOSHADER_mtlGetUniformBuffers function has been replaced with
MOJOSHADER_mtlGetUniformData. Now that we only use a single uniform buffer,
there's no need to return one for each of the shaders.
4. The MOJOSHADER_mtlGetFunctionHandle function no longer allocates memory.
Instead, all MTLFunction handles are cached in the MOJOSHADER_mtlShader
structs at library creation time. This removes the burden of memory
management from the user.
5. A variety of formatting and documentation updates.
Ethan Lee <flibitijibibo@flibitijibibo.com> [Tue, 07 Jul 2020 17:44:32 -0400] rev 1278
spirv: Fix bogus detection of PSIZE0
Ethan Lee <flibitijibibo@flibitijibibo.com> [Tue, 07 Jul 2020 17:19:45 -0400] rev 1277
Add dynamic linking support for SPIR-V modules
Evan Hemsley <evan@moonside.games> [Mon, 06 Jul 2020 16:23:06 -0400] rev 1276
vulkan: Rework UBO allocation to use a single monolithic buffer
Ethan Lee <flibitijibibo@flibitijibibo.com> [Mon, 06 Jul 2020 12:51:28 -0400] rev 1275
vulkan: Fix uniform buffer copies for bools
Martin Krošlák <kroslakma@gmail.com> [Fri, 03 Jul 2020 10:43:01 -0400] rev 1274
spirv: Fix support for FOG1
Martin Krošlák <kroslakma@gmail.com> [Thu, 02 Jul 2020 18:08:57 -0400] rev 1273
spirv: Fix texcoord use before load
Ethan Lee <flibitijibibo@flibitijibibo.com> [Thu, 02 Jul 2020 18:08:02 -0400] rev 1272
Fix include path for vulkan.h
Evan Hemsley <evan@moonside.games> [Wed, 01 Jul 2020 04:29:09 -0400] rev 1271
Add support for Vulkan rendering.
Co-authors include:
- Caleb Cornett <caleb.cornett@outlook.com>
- Martin Krošlák <kroslakma@gmail.com>
- Ethan Lee <flibitijibibo@flibitijibibo.com>
Ethan Lee <flibitijibibo@flibitijibibo.com> [Thu, 25 Jun 2020 10:35:29 -0400] rev 1270
Add getError to effectShaderContext
Ethan Lee <flibitijibibo@flibitijibibo.com> [Thu, 25 Jun 2020 10:10:52 -0400] rev 1269
Improve error handling in Effect implementation
Ethan Lee <flibitijibibo@flibitijibibo.com> [Wed, 24 Jun 2020 21:13:32 -0400] rev 1268
spirv: Fix asserts for pixel shader POSITION/PSIZE lengths
Ethan Lee <flibitijibibo@flibitijibibo.com> [Wed, 24 Jun 2020 21:02:33 -0400] rev 1267
spirv: Rework attrib offset/length organization
Ethan Lee <flibitijibibo@flibitijibibo.com> [Wed, 24 Jun 2020 14:19:46 -0400] rev 1266
Note the usage index range for MOJOSHADER_usage enum
Ethan Lee <flibitijibibo@flibitijibibo.com> [Wed, 24 Jun 2020 14:19:28 -0400] rev 1265
spirv: Fix support for POSITION1+
Ethan Lee <flibitijibibo@flibitijibibo.com> [Wed, 24 Jun 2020 14:17:58 -0400] rev 1264
spirv: Have separate VPOS paths for GL/VK
Ethan Lee <flibitijibibo@flibitijibibo.com> [Wed, 24 Jun 2020 12:45:53 -0400] rev 1263
spirv: Allow COLOR usages to go up to 4, not just 2
Caleb Cornett <caleb.cornett@outlook.com> [Wed, 24 Jun 2020 09:57:00 -0400] rev 1262
Disable D3D11 HLSL optimizations, as they break program behavior