Paul Gofman
95a49bdce6
d3dx9: Add scalar and vector setting path to set_constants().
...
Signed-off-by: Paul Gofman <gofmanp@gmail.com>
Signed-off-by: Matteo Bruni <mbruni@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2017-06-16 18:10:45 +02:00
Paul Gofman
f48d38e5ac
d3dx9: Avoid casting each value separately in set_constants().
...
Signed-off-by: Paul Gofman <gofmanp@gmail.com>
Signed-off-by: Matteo Bruni <mbruni@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2017-06-16 18:10:42 +02:00
Paul Gofman
607ae76ada
d3dx9: Add const qualifier to regstore_set_values() input data.
...
Signed-off-by: Paul Gofman <gofmanp@gmail.com>
Signed-off-by: Matteo Bruni <mbruni@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2017-06-14 08:17:25 +02:00
Paul Gofman
45b0add678
d3dx9: Introduce get_reg_components() helper function and use it instead of get_offset_reg() when appropriate.
...
Signed-off-by: Paul Gofman <gofmanp@gmail.com>
Signed-off-by: Matteo Bruni <mbruni@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2017-06-14 08:17:23 +02:00
Francois Gouget
aacf28d701
d3dx9_36: Add a trailing '\n' to a FIXME() message.
...
Signed-off-by: Francois Gouget <fgouget@free.fr>
Signed-off-by: Matteo Bruni <mbruni@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2017-06-05 19:48:31 +02:00
Paul Gofman
68e6691a5b
d3dx9: Remove redundant FIXME in set_constants().
...
Signed-off-by: Paul Gofman <gofmanp@gmail.com>
Signed-off-by: Matteo Bruni <mbruni@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2017-06-05 19:48:25 +02:00
Paul Gofman
ef22e6f0da
d3dx9: Limit constant size by register count instead of table size.
...
Signed-off-by: Paul Gofman <gofmanp@gmail.com>
Signed-off-by: Matteo Bruni <mbruni@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2017-06-05 19:48:11 +02:00
Paul Gofman
730832d2d8
d3dx9: Merge constant setting for child parameters when possible.
...
Signed-off-by: Paul Gofman <gofmanp@gmail.com>
Signed-off-by: Matteo Bruni <mbruni@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2017-06-01 09:37:07 +02:00
Paul Gofman
4c7653ef5d
d3dx9: Don't add const setting entries with zero count.
...
Signed-off-by: Paul Gofman <gofmanp@gmail.com>
Signed-off-by: Matteo Bruni <mbruni@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2017-06-01 09:37:03 +02:00
Paul Gofman
1816d8a9fa
d3dx9: Precompute and store a constant direct copy flag.
...
Signed-off-by: Paul Gofman <gofmanp@gmail.com>
Signed-off-by: Matteo Bruni <mbruni@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2017-06-01 09:36:59 +02:00
Paul Gofman
6cefc5fa6c
d3dx9: Factor out table_type_from_param_type() function.
...
Signed-off-by: Paul Gofman <gofmanp@gmail.com>
Signed-off-by: Matteo Bruni <mbruni@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2017-06-01 09:36:58 +02:00
Paul Gofman
09e089cc66
d3dx9: Factor out get_const_upload_info() function.
...
Signed-off-by: Paul Gofman <gofmanp@gmail.com>
Signed-off-by: Matteo Bruni <mbruni@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2017-06-01 09:36:56 +02:00
Paul Gofman
2f72e9669f
d3dx9: Get rid of table lookup for converting between register indexes and offsets.
...
Signed-off-by: Paul Gofman <gofmanp@gmail.com>
Signed-off-by: Matteo Bruni <mbruni@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2017-05-30 11:12:57 +02:00
Paul Gofman
f03de9ac4c
d3dx9: Fix NAN handling in 'cmp' preshader opcode.
...
Signed-off-by: Paul Gofman <gofmanp@gmail.com>
Signed-off-by: Matteo Bruni <mbruni@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2017-05-22 13:45:38 +02:00
Paul Gofman
cd62062673
d3dx9: Add 'div' preshader opcode.
...
Signed-off-by: Paul Gofman <gofmanp@gmail.com>
Signed-off-by: Matteo Bruni <mbruni@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2017-05-22 13:45:29 +02:00
Paul Gofman
2f47898953
d3dx9: Add 'atan2' preshader opcode.
...
Signed-off-by: Paul Gofman <gofmanp@gmail.com>
Signed-off-by: Matteo Bruni <mbruni@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2017-05-22 13:45:27 +02:00
Paul Gofman
89043af09f
d3dx9: Add 'atan' preshader opcode.
...
Signed-off-by: Paul Gofman <gofmanp@gmail.com>
Signed-off-by: Matteo Bruni <mbruni@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2017-05-22 13:45:25 +02:00
Paul Gofman
537390ed8d
d3dx9: Add 'acos' preshader opcode.
...
Signed-off-by: Paul Gofman <gofmanp@gmail.com>
Signed-off-by: Matteo Bruni <mbruni@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2017-05-22 13:45:23 +02:00
Paul Gofman
5d887de728
d3dx9: Add 'asin' preshader opcode.
...
Signed-off-by: Paul Gofman <gofmanp@gmail.com>
Signed-off-by: Matteo Bruni <mbruni@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2017-05-22 13:45:21 +02:00
Paul Gofman
53bf72e266
d3dx9: Loop through input parameters in is_const_tab_input_dirty().
...
Signed-off-by: Paul Gofman <gofmanp@gmail.com>
Signed-off-by: Matteo Bruni <mbruni@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2017-05-18 19:56:40 +02:00
Paul Gofman
5e87656ec3
d3dx9: Avoid redundant constant tables updates.
...
Signed-off-by: Paul Gofman <gofmanp@gmail.com>
Signed-off-by: Matteo Bruni <mbruni@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2017-05-18 19:56:40 +02:00
Paul Gofman
b5784f926c
d3dx9: Factor out regstore_set_modified_reg() function.
...
Signed-off-by: Paul Gofman <gofmanp@gmail.com>
Signed-off-by: Matteo Bruni <mbruni@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2017-05-18 19:56:39 +02:00
Paul Gofman
454a2c5c21
d3dx9: Match native out of bounds array selector index handling.
...
Signed-off-by: Paul Gofman <gofmanp@gmail.com>
Signed-off-by: Matteo Bruni <mbruni@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2017-05-18 19:56:39 +02:00
Paul Gofman
a179584844
d3dx9: Use versioned parameter updates instead of 'dirty' flags.
...
Signed-off-by: Paul Gofman <gofmanp@gmail.com>
Signed-off-by: Matteo Bruni <mbruni@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2017-05-18 19:47:26 +02:00
Alexandre Julliard
d321cdcd28
d3dx9: Check for missing log2 function.
...
Signed-off-by: Matteo Bruni <mbruni@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2017-05-17 21:57:13 +02:00
Paul Gofman
651e8bfaee
d3dx9: Add 'log' preshader opcode.
...
Signed-off-by: Paul Gofman <gofmanp@gmail.com>
Signed-off-by: Matteo Bruni <mbruni@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2017-05-11 10:17:50 -05:00
Paul Gofman
6a06baee60
d3dx9: Sort preshader opcode table.
...
Signed-off-by: Paul Gofman <gofmanp@gmail.com>
Signed-off-by: Matteo Bruni <mbruni@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2017-05-11 10:17:50 -05:00
Paul Gofman
b4cac62546
d3dx9: Set reg_component_count to 4 for immediate constants.
...
Signed-off-by: Paul Gofman <gofmanp@gmail.com>
Signed-off-by: Matteo Bruni <mbruni@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2017-04-28 09:14:39 +02:00
Paul Gofman
30bc3bab30
d3dx9: Return an error for out of bounds input register in parse_preshader().
...
Signed-off-by: Paul Gofman <gofmanp@gmail.com>
Signed-off-by: Matteo Bruni <mbruni@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2017-04-28 09:14:16 +02:00
Paul Gofman
905421351f
d3dx9: Fix register index for the scalar op case in parse_preshader().
...
Signed-off-by: Paul Gofman <gofmanp@gmail.com>
Signed-off-by: Matteo Bruni <mbruni@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2017-04-28 09:11:19 +02:00
Paul Gofman
d6ab655a09
d3dx9: Support effect state manager.
...
Signed-off-by: Paul Gofman <gofmanp@gmail.com>
Signed-off-by: Matteo Bruni <mbruni@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2017-04-10 22:12:44 +02:00
Paul Gofman
42cbd578f7
d3dx9: Support relative addressing in preshaders.
...
Signed-off-by: Paul Gofman <gofmanp@gmail.com>
Signed-off-by: Matteo Bruni <mbruni@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2017-04-03 19:57:22 +02:00
Matteo Bruni
b1cea9b100
d3dx9: Dump preshader immediates table.
...
Signed-off-by: Matteo Bruni <mbruni@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2017-04-03 19:34:47 +02:00
Paul Gofman
3b99567192
d3dx9: Fix a warning output in preshader.
...
Signed-off-by: Paul Gofman <gofmanp@gmail.com>
Signed-off-by: Matteo Bruni <mbruni@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2017-03-24 09:38:34 +01:00
Paul Gofman
a844ce7dc4
d3dx9: Don't apply unmodified states in CommitChanges().
...
Signed-off-by: Paul Gofman <gofmanp@gmail.com>
Signed-off-by: Matteo Bruni <mbruni@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2017-03-21 20:52:38 +01:00
Paul Gofman
cd024a263f
d3dx9: Improve performance and memory usage in preshader constants setting.
...
Signed-off-by: Paul Gofman <gofmanp@gmail.com>
Signed-off-by: Matteo Bruni <mbruni@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2016-06-15 17:11:52 +09:00
Matteo Bruni
c614f0b1b4
d3dx9: Turn an ERR into a WARN.
...
It can potentially happen if the application passes broken effect data.
Signed-off-by: Matteo Bruni <mbruni@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2016-06-15 17:11:52 +09:00
Paul Gofman
4786f53ef8
d3dx9: Add d3ds_dotswiz opcode to preshader.
...
Signed-off-by: Paul Gofman <gofmanp@gmail.com>
Signed-off-by: Matteo Bruni <mbruni@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2016-05-27 00:10:04 +09:00
Paul Gofman
2925d6e6ec
d3dx9: Add 'exp' preshader opcode.
...
Signed-off-by: Paul Gofman <gofmanp@gmail.com>
Signed-off-by: Matteo Bruni <mbruni@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2016-05-04 01:03:30 +09:00
Paul Gofman
453d9f7bce
d3dx9: Implement setting named shader constants in effect.
...
Signed-off-by: Paul Gofman <gofmanp@gmail.com>
Signed-off-by: Matteo Bruni <mbruni@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2016-04-19 23:29:25 +09:00
Paul Gofman
58d80d90a5
d3dx9: Add basic opcodes to preshader.
...
Signed-off-by: Paul Gofman <gofmanp@gmail.com>
Signed-off-by: Matteo Bruni <mbruni@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2016-04-18 15:05:23 +09:00
Paul Gofman
43208b6348
d3dx9: Implement fxlc constants (expressions) in effect.
...
Signed-off-by: Paul Gofman <gofmanp@gmail.com>
Signed-off-by: Matteo Bruni <mbruni@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2016-04-18 15:05:15 +09:00
Paul Gofman
b76ee0c7f8
d3dx9: Implement preshaders disassembly dump.
...
Signed-off-by: Paul Gofman <gofmanp@gmail.com>
Signed-off-by: Matteo Bruni <mbruni@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2016-04-07 00:59:56 +09:00
Paul Gofman
9b3e942ffc
d3dx9: Implement preshader parsing.
...
Signed-off-by: Paul Gofman <gofmanp@gmail.com>
Signed-off-by: Matteo Bruni <mbruni@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2016-04-07 00:59:56 +09:00
Paul Gofman
8eeeb4d1e1
d3dx9: Introduce preshaders in effect.
...
Signed-off-by: Paul Gofman <gofmanp@gmail.com>
Signed-off-by: Matteo Bruni <mbruni@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2016-03-29 10:36:47 +09:00