Commit Graph

446 Commits

Author SHA1 Message Date
Jason Green
4a1375bdd6 wined3d: Simplify generate_base_shader() when checking for USING_GLSL usage. 2006-05-20 17:38:09 +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
Stefan Dösinger
cfcdb6515b wined3d: Sort of oversized surface support. 2006-05-20 14:06:09 +02:00
Stefan Dösinger
672fa65334 wined3d: Add more device caps. 2006-05-20 14:05:38 +02:00
Stefan Dösinger
ebcbda72c4 wined3d: Allow SYSTEMMEM textures and surfaces. 2006-05-20 14:05:23 +02:00
Stefan Dösinger
566cdcf55c wined3d: Implement IWineD3DDevice::SetDisplayMode. 2006-05-20 14:05:06 +02:00
Phil Costin
df3902e6c1 wined3d: Trace output corrections and cleanups. 2006-05-20 13:58:31 +02:00
Phil Costin
1b320431b8 wined3d: Check registry for UseGLSL enabled. 2006-05-18 16:40:32 +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
fa62d9d3b4 wined3d: Parameter trace corrections. 2006-05-18 10:32:22 +02:00
Ivan Gyurdiev
3d905baf50 wined3d: SETP takes 3 parameters. 2006-05-18 10:32:08 +02:00
Ivan Gyurdiev
c65a86828c wined3d: Use COLOROUT/DEPTHOUT for pixel shaders 2.0+.
As previously mentioned, RASTOUT is invalid on pixel shaders.
On shaders 1.x, r0 is treated as the color output register:
http://www.gamedev.net/columns/hardcore/dxshader3/page2.asp
That's what we currently do in all cases, change it not to do so
for shaders >= 2.0. Support COLOROUT/DEPTHOUT instead.
2006-05-17 10:56:25 +02:00
Ivan Gyurdiev
174734e4a2 wined3d: LRP is not a valid ARBvp code. 2006-05-17 10:56:01 +02:00
Ivan Gyurdiev
8470e54bdf wined3d: Remove detailed traces from map2gl/input_modifiers functions. 2006-05-17 10:55:50 +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
53d240a3e0 wined3d: Do not rely on num_params to skip unhandled tokens in shaders 2.0. 2006-05-17 10:52:37 +02:00
Ivan Gyurdiev
d4dd9869b8 wined3d: Allow multiple output modifiers. 2006-05-17 10:51:47 +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
Stefan Dösinger
f7d89201c1 wined3d: Unset the ddraw primary when it is released. 2006-05-16 12:42:12 +02:00
Stefan Dösinger
2a35f769e3 wined3d: Add missing render states to the dumping function. 2006-05-16 12:41:51 +02:00
Stefan Dösinger
7cd41b944b wined3d: Implement IWineD3DDevice::SetFrontBackBuffers. 2006-05-16 12:41:41 +02:00
Ivan Gyurdiev
8b7401c39a wined3d: Shaders: share dump_param function, version functions. 2006-05-15 16:07:31 +02:00
Ivan Gyurdiev
7757d7bc5c wined3d: Fix incorrect sizeof. 2006-05-15 16:04:07 +02:00
Francois Gouget
f7c24f37ad Various trace fixes.
Add trailing '\n's to trace calls.
Remove spaces before '\n'.
2006-05-15 15:05:09 +02:00
Francois Gouget
e739ba9551 Assorted spelling fixes. 2006-05-15 15:05:05 +02:00
Stefan Dösinger
eaec7793d5 wined3d: Avoid a NULL dereference in RealizePalette. 2006-05-15 14:03:06 +02:00
Stefan Dösinger
34b1482fdc wined3d: Render state additions and fixes. 2006-05-15 14:02:57 +02:00
Stefan Dösinger
8af7dd5dea wined3d: Nonpow2 repacking support for GetDC. 2006-05-15 14:02:37 +02:00
Stefan Dösinger
daa6a3d714 wined3d: Support for single buffering. 2006-05-15 14:02:18 +02:00
Stefan Dösinger
2f724834f8 wined3d: Implement IWineGDISurface. 2006-05-15 14:02:03 +02:00
Stefan Dösinger
9abdac6aaa wined3d: Implement IWineD3DDevice::ProcessVertices. 2006-05-15 13:57:17 +02:00
Ivan Gyurdiev
b2d96086e5 wined3d: Set pIndexData to 0 in DrawIndexedPrimitiveUP. 2006-05-11 12:11:55 +02:00
Ivan Gyurdiev
257692e087 wined3d: Initialize volume format. 2006-05-11 12:11:42 +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
e9927d6ffd wined3d: Further split GLSL & ARB_v/f_program generation and allow GLSL functions to be called. 2006-05-10 12:20:39 +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
68f75555d3 wined3d: Use GenerateShader in pixel shaders and remove old function. 2006-05-10 12:19:42 +02:00
Jason Green
087c67c459 wined3d: Add GenerateShader function to pixel shaders. 2006-05-10 12:19:19 +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
d982954808 wined3d: Created generate_base_shader which will be shared by pixel & vertex shaders. 2006-05-10 12:17:18 +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