Jonathan Ernst
360a3f9142
Update the address of the Free Software Foundation.
2006-05-23 14:11:13 +02:00
Ivan Gyurdiev
438d88e1e8
wined3d: Only run parse_decl_usage on vshader INPUT registers.
2006-05-22 11:38:55 +02:00
Jason Green
683e5bfc55
wined3d: Move PARAM C[] program.env[] into baseshader and out of vertex shaders.
2006-05-20 17:37:48 +02:00
Ivan Gyurdiev
42b89791ff
wined3d: Take predication tokens into account.
...
Each instruction can have a predication token. Account for it in the
trace pass, register count pass, and store it in the SHADER_OPCODE_ARG
structure for generation. MSDN claims the token is at the end of the
instruction, but that's not true - testing a demo, which lets me
manipulate the shader shows the predication token is the first source
token immediately following the destination token.
2006-05-18 10:32:54 +02:00
Ivan Gyurdiev
3d905baf50
wined3d: SETP takes 3 parameters.
2006-05-18 10:32:08 +02:00
Ivan Gyurdiev
174734e4a2
wined3d: LRP is not a valid ARBvp code.
2006-05-17 10:56:01 +02:00
Ivan Gyurdiev
c05bc5d9c1
wined3d: Write "unrecognized_register" in fallback case for get_register_name().
2006-05-17 10:55:39 +02:00
Ivan Gyurdiev
746d1b1cd3
wined3d: Modify shader_dump_param() to take into account address token.
...
Currently we hardcode a0.x, which I think is correct for shaders 1.0.
However, for shaders 2.0, we must look into the address token, and
print the register there. Handle both cases to correct the trace.
2006-05-17 10:55:11 +02:00
Ivan Gyurdiev
03b67e3030
wined3d: Use shader_get_param() in trace pass, reg. count pass, generation pass.
...
Change the trace pass, the register counting pass, and the hw
generator pass to take into account the new get_params() function. For
hw generation, store the address tokens into the SHADER_OPCODE_ARG
structure, so they're available to generator functions.
2006-05-17 10:54:23 +02:00
Ivan Gyurdiev
404eff792f
wined3d: Add shader_get_param() fn, which processes address tokens.
...
Add a new function to process parameters.
On shaders 1.0, processing parameters amounts to *pToken++.
On shaders 2.0+, we have a relative addressing token to account for.
This function should be used, instead of relying on num_params everywhere.
2006-05-17 10:53:18 +02:00
Ivan Gyurdiev
c94ecdff61
wined3d: Fix SINCOS parameters.
...
SINCOS has 4 parameters in shaders 2.0.
It has 2 parameters in shaders 3.0.
It's undefined in shaders 1.0.
2006-05-17 10:50:33 +02:00
Ivan Gyurdiev
6b5d076394
wined3d: DEFI takes 5 parameters.
...
According the spec and the Painkiller log, DEFI has 5 parameters on
vertex shaders.
2006-05-17 10:50:10 +02:00
Paul Vriens
ba438d4f5d
wined3d: Correctly define the number of possible parameters.
2006-05-16 12:53:28 +02:00
Ivan Gyurdiev
8b7401c39a
wined3d: Shaders: share dump_param function, version functions.
2006-05-15 16:07:31 +02:00
Ivan Gyurdiev
c61af3af8d
wined3d: Share shader_dump_ins_modifiers().
...
Share shader_dump_ins_modifiers(), and make vertex shaders use it.
The saturate modifer (_sat) is valid on vs_3_0+, and it isn't being
shown in the trace.
2006-05-11 12:10:59 +02:00
Jason Green
246677ae46
wined3d: Modified the opcode tables (and struct) to include a pointer to a GLSL generator function.
2006-05-10 12:20:08 +02:00
Jason Green
604579ed62
wined3d: Use new GenerateShader function for vertex shaders.
2006-05-10 12:19:01 +02:00
Jason Green
36b0b9cc1c
wined3d: Added new GenerateShader function for Vertex Shaders & declare generate_base_shader().
2006-05-10 12:18:08 +02:00
Jason Green
c15447d4b0
wined3d: Rename the TEMP variables in vertexshader.c to R from T for consistency.
2006-05-10 12:17:01 +02:00
Jason Green
cc2ea9e08c
wined3d: Place # of textures, addresses, & temps used inside the baseShader struct to prepare for GenerateShader merge.
2006-05-10 12:16:22 +02:00
Jason Green
653e71d774
wined3d: Further split up GenerateProgramArbHW for pixelshaders.
2006-05-10 12:16:02 +02:00
Jason Green
f015124ae0
wined3d: Move D3DSIO_M#x# vertex shader opcodes to a more standard function.
2006-05-10 12:15:35 +02:00
Jason Green
eee6fc9277
wined3d: Move DCL, DEF operations out of Generate loop and into separate functions.
2006-05-10 12:15:12 +02:00
Jason Green
5308e026d1
wined3d: Move program_dump_decl_usage into baseshader.
2006-05-10 12:14:39 +02:00
Ivan Gyurdiev
9d4960bfcb
wined3d: Clean up some dead code.
2006-05-10 11:29:44 +02:00
Ivan Gyurdiev
cdfe848b6d
wined3d: Break out arithmetic instruction processing.
2006-05-10 11:28:11 +02:00
Ivan Gyurdiev
320e33dcb3
wined3d: Merge register counting pass.
2006-05-10 11:26:01 +02:00
Ivan Gyurdiev
aadafd64da
wined3d: Make register counting pass the same.
2006-05-10 11:24:33 +02:00
Ivan Gyurdiev
1d0c672393
wined3d: Share get_opcode.
2006-05-09 20:45:10 +02:00
Ivan Gyurdiev
c93239d36d
wined3d: Clean up per version shader limits code.
2006-05-09 11:58:14 +02:00
Ivan Gyurdiev
5f10560762
wined3d: Addline cleanup.
2006-05-09 11:55:45 +02:00
Jason Green
66ab457196
wined3d: Eliminate duplicate function: vshader_program_dump_param().
2006-05-08 15:19:12 +02:00
Ivan Gyurdiev
4b3079438b
wined3d: Share get_register_code().
2006-05-08 15:15:30 +02:00
Ivan Gyurdiev
aea0b5d0f8
wined3d: Separate pshader/vshader tables.
2006-05-08 13:36:31 +02:00
Ivan Gyurdiev
07f4f70487
wined3d: QueryInterface corrections.
2006-05-05 20:23:41 +02:00
Roderick Colenbrander
c4eff1eb44
wined3d: Vertex Shader regtype cleanups.
2006-05-05 18:01:09 +02:00
Ivan Gyurdiev
63ef9788dd
wined3d: Trace corrections/improvements.
2006-04-20 15:38:00 +02:00
Ivan Gyurdiev
3dddaae795
wined3d: Use ARB[f|v]p1.0 for ps2/ps3/vs3.
2006-04-18 11:22:48 +02:00
Ivan Gyurdiev
e3c8e65084
wined3d: Use correct register number mask.
...
The regmask currently being used is wrong - 0x1FFF includes the high
two bits of the register type.
2006-04-18 11:20:45 +02:00
Ivan Gyurdiev
e0a1442f6c
wined3d: Dcl opcode takes 2 parameters.
2006-04-18 11:19:48 +02:00
Ivan Gyurdiev
d3d56e765d
wined3d: Fix flow control instructions number of parameters.
...
- else, endif, break take 0 parameters [not 2]
- if, rep take 1 parameter [not 2]
- breakp takes 1 parameter [not 2]
- move all flow control instructions in one place
- sync software shaders signatures with this
2006-04-18 11:18:48 +02:00
Ivan Gyurdiev
0d6eaf363d
wined3d: Skip unhandled opcodes in vshaders.
2006-04-18 11:17:34 +02:00
Ivan Gyurdiev
8ab0237e21
wined3d: Reorganize shaders code a bit.
2006-04-12 11:42:04 +02:00
Ivan Gyurdiev
88a7c9e948
wined3d: Downgrade some FIXMEs.
2006-04-10 12:23:45 +02:00
Stefan Dösinger
9d67b4287e
wined3d: Rename return values from D3D* to WINED3D*.
2006-04-07 14:54:04 +02:00
H. Verbeet
59af5c4a62
wined3d: Move fields common to vertex shaders and pixel shaders to IWineD3DBaseShader.
2006-03-30 21:55:15 +02:00
H. Verbeet
1e1a708e8a
wined3d: Create an IWineD3DBaseShader class.
2006-03-29 13:40:45 +02:00
H. Verbeet
d4132cf7d7
wined3d: Move the vshader_ins and pshader_ins arrays into their respective objects.
2006-03-29 13:40:16 +02:00
H. Verbeet
3ee642bb09
wined3d: Move the SHADER_OPCODE definition to wined3d_private.h.
2006-03-29 13:39:33 +02:00
H. Verbeet
518de008db
wined3d: Move the D3DSIO_DCL dumping code into its own function.
2006-03-24 13:00:38 +01:00
H. Verbeet
1aca53860a
wined3d: Set vertex attribute pointers defined in vertex declarations properly.
2006-03-22 21:41:05 +01:00
H. Verbeet
e7b33b0f37
wined3d: Fix slightly misleading ParseVertexDeclarationUsage naming.
2006-03-22 21:40:37 +01:00
Roderick Colenbrander
bcbf5f397e
d3d8/wined3d: Vertex shader fixes.
2006-03-17 13:11:06 +01:00
H. Verbeet
008c6a00b9
wined3d: Enable color fixups for vertex shaders.
2006-03-09 13:08:55 +01:00
H. Verbeet
21d62ed1f1
wined3d: Minor vshader_program_add_param cleanup.
...
- In vshader_program_add_param, pass a pointer to the shader object
instead of individual parameters.
- In vshader_program_add_param, rename input to is_input to make it
clearer what the parameter does.
- Fix a typo & cleanup a comment.
2006-03-09 13:08:35 +01:00
H. Verbeet
78a43b3dbc
wined3d: Fix a few FIXME's.
2006-03-07 10:56:52 +01:00
H. Verbeet
bd8db45e44
wined3d: Update the QueryInterface functions of IWineD3DBase subclasses.
2006-02-06 11:32:41 +01:00
Ragnvald "Despair" Maartmann-Moe IV
3e495fe465
wined3d: Fix matrix copy/paste bug.
2005-12-16 12:39:07 +01:00
Oliver Stieber
7c482cb9a1
wined3d: Vertex shader 8 support.
...
Start to add support for DirectX 8 vertex shaders, constants and
registers are now correctly assigned and loaded allowing support for
most basic d3d8 shaders.
2005-12-09 11:23:52 +01:00
H. Verbeet
246b07de7c
wined3d: Return the correct parent in IWineD3DPixelShaderImpl_GetParent.
...
Remove an unnecessary cast.
2005-12-03 18:10:56 +01:00
Oliver Stieber
d3c33dc018
Correct the matrix sizes in software shaders and remove an erroneous
...
parameter from lrp.
2005-11-28 10:39:48 +01:00
Francois Gouget
6d442aeb34
Assorted spelling fixes.
2005-11-23 20:14:43 +01:00
Oliver Stieber
30ad95b6cd
Corrects an error in the _m3xm3 shader function in pixel and vertex
...
shaders.
2005-11-22 15:01:55 +00:00
Raphael Junqueira
705aec5a6f
- defined D3DCOLOR_B macros to access byte values of D3DCOLOR
...
- use D3DCOLOR macros instead of using shift + masks
- fix a bug where diffuse.lpData checked instead of specular.lpData
- implement color fixup on ARB VShader compilation code:
-> on input parameters using swizzle
-> add is_color parameter on vshader_program_add_param
2005-11-15 12:03:13 +00:00
Francois Gouget
f4c0524ec6
Assorted spelling and case fixes.
2005-11-10 11:39:07 +00:00
Oliver Stieber
473cac840b
Correct the number of parameters expected for the LRP function.
2005-10-27 10:23:53 +00:00
Oliver Stieber
44b4777972
Add checks for ARB_vertex_program before allowing vertex shaders to
...
use ARB_vertex_program.
2005-10-11 20:27:54 +00:00
Oliver Stieber
0fbf69fcf8
Report unrecognized opcodes as FIXMEs instead of TRACEs so that they
...
are easier to spot and fix.
2005-10-10 19:52:49 +00:00
Francois Gouget
a8c7284f92
Assorted spelling fixes.
2005-09-26 10:58:41 +00:00
Oliver Stieber
1be54d8b79
Integrate hardware vertex shaders into the drawing pipeline.
2005-08-19 10:05:00 +00:00
Oliver Stieber
2c0e97e641
Copy the parser and cross compiler from d3d8 and update everything to
...
vertex shaders 3.0.
The Parser will now display the input shader in DirectX style, and the
cross compiler now generates valid ARB_VERTEX_PROGRAM programs and
outputs the result in ARB_VERTEX_PROGRAM style.
Support for a number of extended attributes has been added, but this
may not be complete, and dereferencing from loop counters isn't
properly parsed yet.
2005-08-17 11:34:03 +00:00
Oliver Stieber
80cbb93163
Tidy up vertex shaders and bring the current code inline with the rest
...
of wined3d.
2005-08-17 09:54:54 +00:00
Oliver Stieber
9253e0e39c
Tidy up some comments and formatting.
2005-07-13 14:15:54 +00:00
Dmitry Timoshkov
eba47f1dfe
Make remaining OLE interface vtables const.
2005-06-06 19:50:35 +00:00
Oliver Stieber
2121f7831e
Put all the stubs in wined3d in place, with some functionality copied
...
across from d3d9.
Make sure all d3d9 device function call their wined3d counterpart (or
perform a function).
2005-03-02 12:16:10 +00:00
Jason Edmeades
24ab49e250
Create a wined3d interface, and generate a wined3d object in the d3d9
...
create method. Make the first (simple) call implementation into the
new wined3d interface.
2004-09-23 04:34:27 +00:00
Marcus Meissner
2b5b00b0ff
Fixed position of tmp.f assigned like in dlls/d3d8/shader.c.
...
Fixed strict aliasing problem.
2004-04-26 20:05:52 +00:00
Alexandre Julliard
e8a339c1d2
Portability fixes for LSB compatibility.
2004-03-01 21:32:02 +00:00
Raphael Junqueira
0196861349
Add the wined3d dll for beginning a cleaner d3d architecture that will
...
contain the shared openGL code needed for all wine direct3d
implementations.
2003-11-14 03:50:35 +00:00