Commit Graph

77 Commits

Author SHA1 Message Date
6a6c3ed1cf Fix a Big Mistake 2022-12-25 02:56:46 +01:00
=
b614217a82 File Support 2022-12-23 05:05:50 +01:00
=
6c76004761 DONT USE THIS LIBRARY IF YOU DON'T KNOW HOW TO USE 2022-12-23 04:59:41 +01:00
Tillmann Karras
03193c0838 Remove unnecessary function call 2022-09-14 17:42:15 +02:00
Tillmann Karras
5219cd6501 Fix segfault on empty .proc (#25) 2022-09-14 17:42:15 +02:00
Tillmann Karras
9e161a5fc1 Fix segfault on invalid input register (#25) 2022-09-14 17:42:15 +02:00
Tillmann Karras
6e0063ea00 Fix missed error on invalid index register (#24) 2022-09-14 17:42:15 +02:00
Lioncash
bbfbf4c6fd picasso: Mark member functions of DVLEData as const
These only query state about the data, they don't modify it
2017-12-29 01:29:01 +01:00
Lioncash
fbc3f381f3 picasso_assembler: Silence a -Wmissing-prototypes warning
This is only used in this translation unit.
2017-12-29 01:28:50 +01:00
fincs
e74836bffc Fix compilation error after d1a1c0a0 2017-12-28 13:31:39 +01:00
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