Commit Graph

680 Commits

Author SHA1 Message Date
Stefan Dösinger c2c7b1df91 wined3d: Implement WINED3DSI_TEXLD_BIAS in arb. 2007-09-25 11:20:58 +02:00
Stefan Dösinger 9531a10897 wined3d: Add support for some unimplemented instructions to arb shaders. 2007-09-25 11:20:51 +02:00
Stefan Dösinger de534a41a4 wined3d: Improve projected texture handling in arb. 2007-09-25 11:20:42 +02:00
Stefan Dösinger bf9cc30aac wined3d: Put V8U8 back into the UNKNOWN format group. 2007-09-25 11:20:33 +02:00
Stefan Dösinger 316095c7a3 wined3d: A0 needs the .x swizzle. 2007-09-24 13:30:42 +02:00
Stefan Dösinger 6313e0ffff wined3d: SRGB write correction emulation. 2007-09-24 13:30:30 +02:00
Stefan Dösinger 2b2c9199e8 wined3d: Unify pixel format correction. 2007-09-24 13:30:21 +02:00
Stefan Dösinger 02114ac21f wined3d: The D3DSI_COISSUE flag changes the behavior of cnd. 2007-09-14 14:26:26 +02:00
Stefan Dösinger 7248354067 wined3d: Pixel shader 1.x constants are clamped to [-1;1]. 2007-09-14 14:23:45 +02:00
Stefan Dösinger bc69315f78 wined3d: texm3x3(v)spec normalizes the normal vector. 2007-09-13 11:38:46 +02:00
Stefan Dösinger 422e0ba1cc wined3d: texkill ignores the .w only in ps 1.x. 2007-09-11 13:48:08 +02:00
Stefan Dösinger a006d2568b wined3d: Fix texdepth instruction. 2007-09-11 13:47:49 +02:00
Francois Gouget a80903e54b wined3d: '0x' is redundant with the '#' format modifier. 2007-08-10 11:56:20 +02:00
Stefan Dösinger a1f83aae8e wined3d: rsq and rcp use the .w component if no swizzle is given. 2007-07-03 12:29:34 +02:00
Stefan Dösinger a460a2df43 wined3d: Store the gl information in a per adapter structure and initialize it only once. 2007-06-11 13:51:06 +02:00
H. Verbeet 5d00923017 wined3d: Remove some redundant fields from IWineD3DBaseTextureImpl. 2007-05-04 13:41:45 +02:00
Stefan Dösinger bee084503b wined3d: Implement bem shader instruction. 2007-03-27 12:30:38 +02:00
Stefan Dösinger 929116f23c wined3d: Handle input modifiers in texcrd with arb shaders. 2007-03-27 12:30:26 +02:00
Fabian Bieler e617c91f22 wined3d: Fix arb texbem instruction for projective textures. 2007-03-23 12:32:10 +01:00
Fabian Bieler 878e02538e wined3d: Remove fog coordinate clamping in the vertex shader. 2007-03-23 12:30:58 +01:00
Fabian Bieler 7cedd56d24 wined3d: Implement linear fog with pixel shader. 2007-03-23 12:30:23 +01:00
Stefan Dösinger e25a16fda5 wined3d: General signed format correction without native signed formats.
Implement signed d3d formats for D3DFMT_V8U8 and D3DFMT_Q8W8V8U8 if no
suitable opengl signed format is supported.
2007-03-21 22:51:19 +01:00
Stefan Dösinger ede01abee2 wined3d: Support GL_ATI_envmap_bumpmap for D3DFMT_V8U8. 2007-03-21 22:50:41 +01:00
Andrew Talbot 2f5f3825c6 wined3d: Replace inline static with static inline. 2007-03-17 20:04:46 +01:00
Fabian Bieler 8dae597f24 wined3d: Implemented signed texture formats via NV_TEXTURE_SHADER. 2007-03-13 11:51:56 +01:00
Stefan Dösinger ae57138eae wined3d: WINED3DFMT_U8V8 is signed.
Plain OpenGL does not provide any signed pixel formats, so the
unsigned GL_RGB is used for loading perturbation data into pixel
shaders that use texbem. For correct loading, the signedness has to be
considered.
2007-03-06 22:16:12 +01:00
H. Verbeet 19d223cade wined3d: Store multiple constant indices per list entry. 2007-02-28 13:35:34 +01:00
Stefan Dösinger 2f96220b3e 6/10: WineD3D: rsq and rcp instructions may need a default swizzle in arb.
ARB shaders need a swizzle for the RSQ and RCP instructions, while d3d
shaders do not. The DirectX sdk says that the x component is used if
no swizzle is given.
2007-02-15 17:21:27 +01:00
Stefan Dösinger 99576ea24e wined3d: Implement texbem in arb, improve it in glsl. 2007-02-15 11:36:14 +01:00
H. Verbeet efed9aea1f d3d8: Move loading local d3d8 vertex shader constants from wined3d to d3d8. 2007-02-14 13:54:55 +01:00
H. Verbeet 32e5cac2be wined3d: Get rid of the vertexDeclaration field in IWineD3DVertexShaderImpl. 2007-02-14 13:54:29 +01:00
Stefan Dösinger fa97fbdcad wined3d: Make shader_cleanup more useful. 2007-02-12 12:37:48 +01:00
H. Verbeet 32778357f8 wined3d: Use ARB_VERTEX_PROGRAM instead of GL_VERTEX_PROGRAM_ARB with GL_SUPPORT.
Spotted by Marcus Meissner.
2007-01-23 11:26:58 +01:00
H. Verbeet 955fb95eb6 wined3d: Give shader constants their own debug channel. 2007-01-18 12:09:09 +01:00
Stefan Dösinger 799770b992 wined3d: Apply shaders in their state handlers. 2007-01-08 20:56:51 +01:00
Alexandre Julliard d46d7d13ab Revert "wined3d: Simplify the get_write_mask and get_swizzle functions."
This reverts commit a9f658f6a6.
2007-01-02 13:21:47 +01:00
H. Verbeet a9f658f6a6 wined3d: Simplify the get_write_mask and get_swizzle functions. 2006-12-29 20:56:16 +01:00
H. Verbeet c8fc7df8a3 wined3d: Cleanup & merge pshader_get_input_register_swizzle() and vshader_program_add_input_param_swizzle(). 2006-12-29 20:56:01 +01:00
H. Verbeet 572cac4eec wined3d: Cleanup & merge pshader_get_write_mask() and vshader_program_add_output_param_swizzle(). 2006-12-29 20:55:39 +01:00
H. Verbeet a22933e08e wined3d: The default debug channel for arb_program_shader.c & glsl_shader.c already is d3d_shader. 2006-12-28 12:18:09 +01:00
Dmitry Timoshkov 47ffd7ae95 wined3d: Make some data const. 2006-12-14 20:11:41 +01:00
H. Verbeet f035df9ac5 wined3d: Use the texture sampling function in a few more instructions (ARB asm shaders). 2006-11-28 12:22:24 +01:00
H. Verbeet ac651a7058 wined3d: Fix the texm3x3tex instruction to sample properly. 2006-11-28 12:19:48 +01:00
H. Verbeet e7122e9a79 wined3d: Create a separate function for sampling a texture. 2006-11-28 12:19:39 +01:00
H. Verbeet df6f482a69 wined3d: Move some code specific to the different shader backends into the respective source files. 2006-11-28 12:19:19 +01:00
Kovács András eb7b1f4bce wined3d: Fix introduced regression in shader_glsl_mnxn and vshader_hw_mnxn. 2006-10-30 20:37:34 +01:00
Kovács András da6c01bea0 wined3d: Implement D3DSIO_MOVA in ARB backend. 2006-10-27 14:12:58 +02:00
Ivan Gyurdiev ce2e980d1b wined3d: Add shader version/end masks to the WINED3D namespace. 2006-10-13 11:15:45 +02:00
Ivan Gyurdiev 9846602412 wined3d: Add D3DTEXTURETRANSFORMTYPE to the WINED3D namespace. 2006-10-13 11:15:31 +02:00
Ivan Gyurdiev b7edf5b008 wined3d: Add D3DSHADER_ADDRMODE masks to the WINED3D namespace. 2006-10-13 11:15:00 +02:00
Ivan Gyurdiev 837027fcb7 wined3d: D3DTEXTURESTAGESTATETYPE: Consistently use in WINED3D namespace. 2006-10-11 12:18:53 +02:00
Ivan Gyurdiev 82379f22a7 wined3d: Move D3DSP dest modifier related items into the WINED3D namespace. 2006-10-10 13:38:45 +02:00
Ivan Gyurdiev 76b571cb48 wined3d: Move D3DSP source modifier-related items into the WINED3D namespace. 2006-10-10 13:38:36 +02:00
Ivan Gyurdiev 17c9d9588a wined3d: Move D3DSP_REG structures into the WINED3D namespace. 2006-10-10 13:37:49 +02:00
Ivan Gyurdiev 7259b9d8b6 wined3d: Move D3DSPR structure into the WINED3D namespace. 2006-10-10 13:37:12 +02:00
Ivan Gyurdiev 062541c026 wined3d: Move D3DSIO structure into WINED3D namespace. 2006-10-10 13:37:03 +02:00
Ivan Gyurdiev 3dcd3681f3 wined3d: Win64 printf fixes. 2006-10-02 14:38:04 +02:00
Ivan Gyurdiev 42a9262acf wined3d: Read GL info and load constants into the same device. 2006-09-27 19:53:43 +02:00
Ivan Gyurdiev d0032a1a2a wined3d: Move device pointer into the BaseShader class. 2006-09-27 19:44:09 +02:00
Stefan Dösinger 96bce8d6d4 wined3d: Avoid wasting a uniform. 2006-09-25 18:24:19 +02:00
Stefan Dösinger 760456dc7f wined3d: Find the correct sampler type for < 2.0 pshaders. 2006-08-28 11:37:24 +02:00
Stefan Dösinger d4a88724dd wined3d: Load projected textures in fragment shaders. 2006-08-25 11:19:15 +02:00
H. Verbeet 09eb0c40a6 wined3d: Improve float constant loading a bit.
- Use a list to keep track of what constants are set.
- Move TRACEs and checkGLcall calls out of the main constant loading loop.
2006-08-21 12:17:42 +02:00
H. Verbeet 2358fbbb03 wined3d: Fix indices for the float constant map.
Indices for the float constant map should be multiplied by 4 because
we're loading 4 component float vectors, not because the size of a
float is 4.
2006-08-21 12:15:12 +02:00
Jason Green 72bfe131d1 wined3d: More shader fixes / new instructions.
- Replace gl_FragColor with gl_FragData[0] for GLSL pixel shader output.
- Subtract 1 more constant from total GLSL allowed float constants to
  accommodate the PROJECTION matrix row that we reference.
2006-07-28 14:01:16 +02:00
Jason Green 46c4b88ba5 wined3d: Fix some upside-down rendering issues for shaders. 2006-07-27 12:03:25 +02:00
Jason Green 718716b77a wined3d: Make the number of floating point shader constants dynamic. 2006-07-19 09:54:30 +02:00
Christian Costa 2dc451e181 wined3d: Readd missing copyright to shaders files. 2006-07-18 11:10:34 +02:00
Christian Costa 95ac88cc0b wined3d: Fix typo in ARB pixel shader. 2006-07-18 11:10:23 +02:00
Jason Green 6a97f2202e wined3d: Fix for vertex shaders. 2006-07-17 15:05:38 +02:00
Ivan Gyurdiev 8068fc3b9c wined3d: Clamp texcoord output between 0 and 1. 2006-07-11 17:12:04 +02:00
Ivan Gyurdiev e9de563e41 wined3d: Place immediate constants in the same array as global constants.
- move DEF, DEFI, DEFB handling into the register counting pass
- keep track of defined constants as a linked list (because there's a
  few of them)
- apply immediate constants after global constants in the constant
  loading function
- both types of constants now get loaded with array notation in the
  shader (into the same array)
2006-07-11 17:11:30 +02:00
Ivan Gyurdiev 5b3c500efe wined3d: Reverse semantics maps for shaders. 2006-07-07 17:39:26 +02:00
Jason Green 3529e0ceeb wined3d: Fix D3DSIO_M#X# instruction for both ARB and GLSL shaders.
This instruction was being handled incorrectly in the case where the
2nd src argument contained a relatively addressed constant.
2006-07-06 16:31:24 +02:00
Ivan Gyurdiev 276609e1e5 wined3d: Move register count pass to SetFunction.
Move semantics pointers out of the reg_maps, make them persistent data
in the shader (again, for future software shaders).
2006-07-06 16:07:38 +02:00
Ivan Gyurdiev 1bfec25031 wined3d: Resync ARB mnxn function with GLSL mnxn function. 2006-07-03 12:04:09 +02:00
Ivan Gyurdiev d06e13db99 wined3d: Move SHADER_ARB code into arb_program_shader.c. 2006-07-03 12:03:31 +02:00
Jason Green 0b09ecb291 wined3d: Move D3DSIO_DEF instruction for ARB shaders into arb_program_shader.c. 2006-06-20 11:28:15 +02:00
Jason Green 34d271bab6 wined3d: Add preliminary support for constant boolean and integer registers in GLSL.
- Separate the declaration phase of the shader string generator into
  the arb and glsl specific files.
- Add declarations and recognition for application-sent constant
  integers and booleans (locally defined ones will follow).
- Standardize capitilization of pixel/vertex specific variable names.
2006-06-19 10:50:14 +02:00
Jason Green 2d8e05f8a1 wined3d: Move constant loading into target-specific files.
- Moves GLSL constant loading code into glsl_shader.c and out of the
  over-populated drawprim.c.
- Creates a new file named arb_program_shader.c which will hold code
  specific to ARB_vertex_program & ARB_fragment_program.
- Remove the constant loading calls from drawprim.c
2006-06-19 10:49:52 +02:00