Commit Graph

227 Commits

Author SHA1 Message Date
Stefan Dösinger 6dc11616d5 wined3d: Take care against overwriting a source register in cmp. 2007-10-03 11:02:56 +02:00
Stefan Dösinger 9c6cdda147 wined3d: Reverse the position fixup if the pshader is reading vpos. 2007-10-03 11:02:48 +02:00
Francois Gouget b2bc712323 Assorted spelling fixes. 2007-09-27 20:12:53 +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 1c4a15d2cd wined3d: Recompile glsl pixelshaders if the sampler format changes. 2007-09-24 13:30:08 +02:00
Stefan Dösinger 10f25e0104 wined3d: Add signed format conversion for glsl. 2007-09-24 13:29:54 +02:00
Stefan Dösinger d684c9c1a5 wined3d: Fix a typo in shader_glsl_cross. 2007-09-20 15:52:54 +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 8273cfdf01 wined3d: Fix texdp3tex in glsl. 2007-09-14 14:26:17 +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 5ab9d85c39 wined3d: Implement texbeml. 2007-09-12 12:10:03 +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 8656713366 wined3d: Implement texldb. 2007-09-11 13:47:58 +02:00
Stefan Dösinger a006d2568b wined3d: Fix texdepth instruction. 2007-09-11 13:47:49 +02:00
Stefan Dösinger 33ecb1db1a wined3d: The temp vars are tmp0 and tmp1. 2007-08-31 12:08:57 +02:00
Stefan Dösinger e7cbb340dc wined3d: Remove stateblock::set.*. 2007-08-13 11:36:43 +02:00
H. Verbeet 1c14c180b7 wined3d: Implement dsx & dsy shader instructions. 2007-07-03 12:32:52 +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
H. Verbeet 973496d5e4 wined3d: Cleanup shader_glsl_load_psamplers(). 2007-07-02 13:36:26 +02:00
H. Verbeet 1d4042cee1 wined3d: Implement texldl. 2007-06-28 11:01:15 +02:00
Michael Stefaniuc 0326da9dd5 wined3d: Remove superfluous casts of void pointers to other pointer types. 2007-06-27 12:53:37 +02:00
H. Verbeet 3ad03206ab wined3d: Rename max_samplers to max_fragment_samplers. 2007-06-26 11:56:57 +02:00
H. Verbeet 2e786e09bb wined3d: Use texture2D to sample in pshader_glsl_texdp3tex(). 2007-06-21 13:10:32 +02:00
H. Verbeet 8311ff32a3 wined3d: Take the texUnitMap into account when loading shader_glsl_load_psamplers(). 2007-06-13 11:23:06 +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 c3c5724789 wined3d: WINED3DSIO_POW should use the absolute value of the first source register. 2007-05-11 13:24:15 +02:00
H. Verbeet 89245248c7 wined3d: Handle the ps_3_0 vPos field. 2007-05-04 13:41:54 +02:00
H. Verbeet a79654d339 wined3d: Fix some swizzles on scalars. 2007-04-13 12:56:06 +02:00
Fabian Bieler 0ce39d5869 wined3d: Fix GLSL cnd instruction.
According to MSDN the cnd instruction should translate:
dst = src0 > 0.5 ? src1 : src2;
2007-04-05 10:55:00 +02:00
Fabian Bieler 91df230624 wined3d: Fix GLSL cnd instruction for INF and NAN arguments. 2007-04-04 21:26:30 +02:00
Fabian Bieler 2843b0f929 wined3d: Fix GLSL cmp instruction for INF and NAN arguments. 2007-04-04 21:26:23 +02:00
Fabian Bieler 333de16fb6 wined3d: Implement support for projective textures in ps 2.0 and later. 2007-03-29 21:15:29 +02:00
Stefan Dösinger bee084503b wined3d: Implement bem shader instruction. 2007-03-27 12:30:38 +02:00
Fabian Bieler 97967d3671 wined3d: Fix glsl texbem instruction for projective textures. 2007-03-23 12:31:35 +01:00
Fabian Bieler 4b3ac837aa wined3d: Implemented bump map transform for texbem in GLSL with native signed textures. 2007-03-23 12:31:27 +01:00
Stefan Huehner 4d1d01f266 Mark several functions as static. 2007-03-13 13:35:12 +01:00
H. Verbeet 30ee071eb9 wined3d: Disable vertex shaders when transformed vertices are used. 2007-03-13 11:55:55 +01:00
H. Verbeet 25cd1c4d28 wined3d: gl_FogFragCoord is a scalar. 2007-03-05 12:06:45 +01:00
H. Verbeet 19d223cade wined3d: Store multiple constant indices per list entry. 2007-02-28 13:35:34 +01:00
H. Verbeet 2c85e5e8a3 wined3d: Store GLSL programs in a hash table rather than a linked list. 2007-02-28 13:35:23 +01:00
Stefan Dösinger 99576ea24e wined3d: Implement texbem in arb, improve it in glsl. 2007-02-15 11:36:14 +01:00
Stefan Dösinger 49a49fcfec wined3d: Load one bump mapping environment matrix into pixel shaders if needed. 2007-02-15 11:36:01 +01:00
Francois Gouget 536e738552 Assorted spelling fixes. 2007-02-14 21:03:57 +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
H. Verbeet 8f0884066f wined3d: Add WINED3DDECLUSAGE, use it. 2007-02-14 13:50:22 +01:00
H. Verbeet 2d9540cab7 wined3d: Don't use WINED3DSHADERDECLUSAGE_PSIZE / WINED3DSHADERDECLUSAGE_FOG. 2007-02-14 13:50:01 +01:00
Chris Robinson 5f1a1bbc84 wined3d: Properly round negative values in shader_glsl_mov. 2007-02-12 14:12:29 +01:00
Stefan Dösinger fa97fbdcad wined3d: Make shader_cleanup more useful. 2007-02-12 12:37:48 +01:00
H. Verbeet efed4c33c2 wined3d: gl_FragDepth is a float, so fixup the write mask. 2007-01-19 12:29:11 +01:00
H. Verbeet 955fb95eb6 wined3d: Give shader constants their own debug channel. 2007-01-18 12:09:09 +01:00
H. Verbeet 79c7aeab00 wined3d: Fix a typo. 2007-01-18 12:09:03 +01:00
H. Verbeet e3cc00cf47 wined3d: Add a glsl_src_param_t type, pass it to shader_glsl_add_src_param() instead of three separate character arrays. 2007-01-16 16:14:21 +01:00
H. Verbeet 04e6250c87 wined3d: Add a glsl_dst_param_t type, pass it to shader_glsl_add_dst_param() instead of three separate character arrays. 2007-01-16 16:13:58 +01:00
H. Verbeet 6f3fae4e04 wined3d: Simplify shader_glsl_get_write_mask(). 2007-01-16 16:13:29 +01:00
H. Verbeet c6bccc9278 wined3d: Simplify shader_glsl_get_swizzle(). 2007-01-16 16:13:19 +01:00
H. Verbeet 48f82d3f5e wined3d: Fix pshader_glsl_tex() and pshader_glsl_texcoord(). 2007-01-16 16:13:10 +01:00
H. Verbeet c3bfef8d7e wined3d: Pass the correct mask to shader_glsl_add_src_param() in shader_glsl_callnz(). 2007-01-16 16:12:46 +01:00
H. Verbeet 50e0deafca wined3d: Pass the correct mask to shader_glsl_add_src_param() in shader_glsl_breakc(). 2007-01-16 16:12:37 +01:00
H. Verbeet f593cd0de8 wined3d: Pass the correct mask to shader_glsl_add_src_param() in shader_glsl_ifc(). 2007-01-16 16:12:26 +01:00
H. Verbeet a89edf1be9 wined3d: Pass the correct mask to shader_glsl_add_src_param() in shader_glsl_if(). 2007-01-16 16:12:18 +01:00
H. Verbeet 9f22df26ef wined3d: Pass the correct mask to shader_glsl_add_src_param() in shader_glsl_rep(). 2007-01-16 16:12:11 +01:00
H. Verbeet 2cb49c67db wined3d: Pass the correct mask to shader_glsl_add_src_param() in shader_glsl_loop().
Fix the comment.
2007-01-16 16:12:02 +01:00
H. Verbeet cf1a3cc81a wined3d: Pass the correct mask to shader_glsl_add_src_param() in pshader_glsl_texm3x3vspec().
Use shader_glsl_get_sample_function().
Use the GLSL builtin reflect() function.
2007-01-16 16:11:45 +01:00
H. Verbeet f0fb61daed wined3d: Pass the correct mask to shader_glsl_add_src_param() in pshader_glsl_texm3x3spec().
Use shader_glsl_get_sample_function().
2007-01-16 16:11:26 +01:00
H. Verbeet ba1740909e wined3d: Pass the correct mask to shader_glsl_add_src_param() in pshader_glsl_texm3x3(). 2007-01-16 16:11:13 +01:00
H. Verbeet b26fae9a25 wined3d: Pass the correct mask to shader_glsl_add_src_param() in pshader_glsl_texm3x3tex().
Use shader_glsl_get_sample_function().
2007-01-16 16:11:02 +01:00
H. Verbeet 950783d4fd wined3d: Pass the correct mask to shader_glsl_add_src_param() in pshader_glsl_texm3x2tex(). 2007-01-16 16:10:43 +01:00
H. Verbeet 92ab90eee8 wined3d: Pass the correct mask to shader_glsl_add_src_param() in pshader_glsl_texm3x3pad(). 2007-01-16 16:10:34 +01:00
H. Verbeet 459e0bf633 wined3d: Pass the correct mask to shader_glsl_add_src_param() in pshader_glsl_texm3x2pad(). 2007-01-16 16:10:23 +01:00
H. Verbeet 04144983eb wined3d: Pass the correct mask to shader_glsl_add_src_param() in pshader_glsl_texm3x2depth(). 2007-01-16 16:10:17 +01:00
H. Verbeet 1947b27380 wined3d: Pass the correct mask to shader_glsl_add_src_param() in pshader_glsl_texdp3(). 2007-01-16 16:10:07 +01:00
H. Verbeet 3cd84d9ab6 wined3d: Pass the correct mask to shader_glsl_add_src_param() in pshader_glsl_texdp3tex(). 2007-01-16 16:10:01 +01:00
H. Verbeet 0fcb682af6 wined3d: Rewrite pshader_glsl_texreg2rgb to properly take the write mask into account.
Use shader_glsl_get_sample_function() rather than having the instruction handler figure it out itself.
Get rid of shader_glsl_add_dst_old().
2007-01-16 16:09:50 +01:00
H. Verbeet 67e203215f wined3d: Split out getting the sample function and coordinate mask from shader_glsl_sample(). 2007-01-16 16:09:23 +01:00
H. Verbeet 54137bacfa wined3d: Pass the correct mask to shader_glsl_add_src_param() in pshader_glsl_texreg2gb(). 2007-01-16 16:09:09 +01:00
H. Verbeet 8325937ded wined3d: Pass the correct mask to shader_glsl_add_src_param() in pshader_glsl_texreg2ar.
Use the correct source swizzle.
2007-01-16 16:08:58 +01:00
H. Verbeet 7d07f31045 wined3d: Pass the correct mask to shader_glsl_add_src_param() in shader_glsl_dst(). 2007-01-16 16:08:35 +01:00
H. Verbeet 146093af33 wined3d: Rewrite shader_glsl_rcp() to properly take the write mask into account. 2007-01-16 16:08:19 +01:00
H. Verbeet 9857158a99 wined3d: Rewrite shader_glsl_expp() to properly take the write mask into account. 2007-01-16 16:08:08 +01:00
H. Verbeet 2c60906ec4 wined3d: Rewrite shader_glsl_cnd() to properly take the write mask into account.
Take the difference between ps 1.4 and earlier versions into account.
2007-01-16 16:07:56 +01:00
H. Verbeet 693b6ef876 wined3d: Rewrite shader_glsl_cmp() to properly take the write mask into account. 2007-01-16 16:07:44 +01:00
H. Verbeet 1414d75a3f wined3d: Rewrite shader_glsl_lrp() to properly take the write mask into account, use the GLSL mix instruction. 2007-01-16 16:07:35 +01:00
H. Verbeet e0588e7475 wined3d: Pass the correct mask to shader_glsl_add_src_param() in shader_glsl_lit(). 2007-01-16 16:07:15 +01:00
H. Verbeet cb5c47f8fe wined3d: Rewrite shader_glsl_mov() to properly take the write mask into account.
In case of writing to an address register round the source.
2007-01-16 16:07:05 +01:00
H. Verbeet 9425aef623 wined3d: Rewrite pshader_glsl_dp2add() to properly take the write mask into account. 2007-01-16 16:06:37 +01:00
H. Verbeet f3a4d35dee wined3d: Rewrite shader_glsl_dot() to properly take the write mask into account. 2007-01-16 16:06:25 +01:00
H. Verbeet b3ff0c3703 wined3d: Rewrite shader_glsl_map2gl() to properly take the write mask into account. 2007-01-16 16:06:11 +01:00
H. Verbeet 7252b4d340 wined3d: Give WINED3DSIO_CRS its own function, properly take the write mask into account. 2007-01-16 16:05:49 +01:00
H. Verbeet b557a8021a wined3d: Move WINED3DSIO_SGE & WINED3DSIO_SLT from shader_glsl_map2gl() to shader_glsl_compare() where they belong.
Properly take the write mask into account
2007-01-16 16:04:18 +01:00
H. Verbeet e0f0bf1d08 wined3d: Rewrite shader_glsl_mad() to properly take the write mask into account. 2007-01-16 16:03:59 +01:00
H. Verbeet b0fd23e844 wined3d: Rewrite shader_glsl_arith() to properly take the write mask into account. 2007-01-16 16:03:50 +01:00
H. Verbeet 4452120007 wined3d: Rewrite shader_glsl_sincos() to properly take the write mask into account.
The write mask can only be one of .x, .y, .xy
2007-01-16 16:03:38 +01:00
H. Verbeet dc0d2a27f1 wined3d: Pass the correct mask to shader_glsl_add_src_param() in shader_glsl_get_register_name(). 2007-01-16 16:03:25 +01:00
H. Verbeet b8bc92dc7b wined3d: Pass a mask to shader_glsl_add_src_param(). 2007-01-16 16:03:15 +01:00
H. Verbeet 1bfc08e081 wined3d: Rename shader_glsl_add_dst() to shader_glsl_add_dst_old(), add shader_glsl_append_dst(). 2007-01-16 16:02:41 +01:00
H. Verbeet b28bd67fd9 wined3d: Fixup the write mask for gl_FogFragCoord and gl_PointSize.
gl_FogFragCoord and gl_PointSize are floats rather than vec4s in GLSL,
so they shouldn't have a destination swizzle, and the write mask we
return should consist of only the first component.
2007-01-16 16:02:21 +01:00
H. Verbeet 16cf41413b wined3d: Return the (binary) write mask from shader_glsl_add_dst_param(). 2007-01-16 16:02:13 +01:00