Lioncash
d1a1c0a011
picasso_frontend: Get rid of undefined behavior
...
Type-punning via a union is well-defined in C (specifically C99 and onwards), but not C++
2017-12-28 13:29:28 +01:00
Lioncash
299c35d6fc
picasso_assembler: Silence a -Wlogical-op-parenthesis warning
2017-12-28 03:06:58 +01:00
Lioncash
708ce762e0
picasso_assembler: Correct ending square-bracket check in parseReg
...
Signed-off-by: Lioncash <mathew1800@gmail.com>
2017-12-28 02:27:09 +01:00
fincs
97814558db
lcnt -> aL
2017-12-27 18:43:54 +01:00
fincs
625b28e36a
Rename a0/a1 index regs to a0.x/a0.y to match D3D naming convention
2017-12-27 18:06:10 +01:00
fincs
9aac60a683
Index regs can only be used with uniform regs (discovered by @Tilka)
2017-12-27 14:44:20 +01:00
fincs
d19c7b7cd0
Minor simplification
2017-12-27 14:38:59 +01:00
Tillmann Karras
eeda288b29
Add break
...
Don't use this instruction unless you know what you're doing. It does
*not* touch the if/call stacks, so the following code will behave in an
unexpected way (and cannot be fixed by inserting nops):
```
ifu true
for ...
ifu true
break
.end
.end
.else
; will be executed since the inner if is still on the stack
.end
```
breakc has the same problem but does not require a separate condition.
2017-12-17 18:23:00 +01:00
Tillmann Karras
89deb50e23
Add litp
...
This instruction prepares a vector for vs_3_0-style lighting by clamping
to certain bounds.
2017-12-17 17:22:54 +01:00
Tillmann Karras
0629de23e0
Add dst/dsti
2017-12-17 17:22:54 +01:00
Tillmann Karras
6dd682dbd5
Fix off-by-one error in max shader size check
2017-12-17 17:04:51 +01:00
fincs
4464084525
Fix some compilation warnings/errors
2017-06-10 13:36:30 +02:00
fincs
346f761609
Fix mad opdesc allocation errors by swapping out lower opdescs
2017-03-18 20:40:29 +01:00
fincs
9721aac006
Add .in directive for explicit input regs in DVLE uniform table
2017-03-18 00:47:02 +01:00
fincs
0d03822d0a
Support (dummy) o7-o15 output registers in vertex shaders
2017-03-18 00:46:37 +01:00
fincs
4c7129925d
Support '$' in identifier names (translated to '.' in DVLE)
2017-03-18 00:45:58 +01:00
fincs
73e8119a43
Overhauled geoshader/outmap support, see details:
...
- GSH DVLEs now have each an independent uniform space.
- .gsh directive now accepts parameters to configure GSH mode.
- .out supports explicit outreg, outmasks are also now fixed.
- Added dummy attribute, removed 7 attribute.
- Back-compat mode is used for old code.
2016-07-20 17:20:48 +02:00
fincs
05d9e79095
Add auto-NOP insertion to work around flow-of-control PICA errata
2016-07-20 17:16:12 +02:00
fincs
d7a3af7c52
Add rgba/stpq component names
2016-07-20 17:13:53 +02:00
fincs
ed10f00333
Add error message for invalid input register usage (e.g. add r0,v1,v2)
2016-07-20 17:13:26 +02:00
fincs
d4714a5441
Optimize opdesc allocation to take into account unused operands
2016-07-20 17:11:59 +02:00
fincs
3e44d48f38
Correct MAD instruction encoding yet again & other miscellaneous fixes
2016-07-20 17:10:18 +02:00
fincs
08e77dad03
Add command line flag for retrieving the picasso version ( fix #11 )
2016-03-26 14:03:02 +01:00
fincs
e5e8127a5d
Correct MAD instruction encoding
2016-03-26 14:02:02 +01:00
fincs
5a597fb870
Add .constfa for creating floating-point vector constant arrays.
2016-02-20 00:24:34 +01:00
fincs
d822bd4e26
Add support for inverting the condition in JMPU (addresses #9 )
2016-01-25 12:52:35 +01:00
fincs
956a328a6f
Add proper support for the MOVA instruction
2016-01-24 11:58:16 +01:00
Yuri Kunde Schlesner
02c0cd4b08
Return correct value for a2/lcnt index register
2016-01-21 23:18:05 -08:00
fincs
36fa1cd15a
Fix compilation with GCC 4.7
2015-10-25 19:33:29 +01:00
fincs
e462d199da
Fix #5
2015-09-05 11:42:22 +02:00
fincs
7ae2c49768
Fix #4
2015-09-04 23:45:25 +02:00
fincs
cefa910b58
Implement .gsh directive
2015-08-22 23:21:49 +02:00
fincs
8366ecf660
Add changelog
2015-08-22 13:46:22 +02:00
fincs
011668baef
Implement .setf/.seti/.setb with documentation
2015-08-22 13:30:33 +02:00
fincs
ae2f31ab01
Merge branch 'master' of github.com:fincs/picasso
2015-08-21 12:41:57 +02:00
fincs
3eba3a0701
Autodetect between inverted and non-inverted versions of opcodes
2015-08-21 12:41:35 +02:00
Luke Street
c3c94c6574
Use built-in byte swap functions on LLVM
2015-08-17 11:36:46 -04:00
fincs
556fbe1d82
Ensure DVLEs are word aligned
2015-08-15 13:03:11 +02:00
fincs
04d3edce72
Proper argument parsing, reenable header file generation
2015-08-13 23:54:04 +02:00
fincs
e152f4e626
WIP multi-shader support, see details:
...
- picasso now accepts several input files, which are each compiled
into DVLE objects inside the .shbin
- Uniform allocation is shared amongst all DVLEs.
- Constant allocation is private to each DVLE.
- Header file generation is temporarily disabled.
- New directives:
.nodvle
Disables the generation of a DVLE object for the current input file.
This allows sharing code amongst shaders.
.entry entryName
Specifies the name of the entrypoint procedure of the current DVLE.
By default it's 'main'.
2015-08-13 21:46:08 +02:00
fincs
b250513be0
Fix invalid string management [thanks to mtheall for pointing this out]
2015-03-06 21:16:00 +01:00
fincs
6e176f33c5
Geoshader support!
2015-03-04 22:42:34 +01:00
fincs
01104710fd
Actually output whole opdesc
2015-03-02 18:07:06 +01:00
fincs
35e187eb27
Fix condition field
2015-03-02 17:52:50 +01:00
fincs
28c07f3363
Add more output types & correct number of integer uniforms
2015-03-02 17:37:46 +01:00
fincs
8437350b4b
LRP -> MADI
2015-03-02 17:36:47 +01:00
fincs
19f705076a
Add support for BREAKC/CALLC/IFC/JMPC
2014-12-15 22:59:06 +01:00
fincs
af4f62dab0
Rename ARL to MOVA
2014-12-14 13:31:47 +01:00
fincs
091795c102
Add FOR/CALLU/IFU/JMPU (format 3 instructions)
2014-12-12 00:14:46 +01:00
fincs
1d71ea12e7
Add CALL
2014-12-11 23:23:13 +01:00