Commit Graph

120 Commits

Author SHA1 Message Date
Stefan Dösinger 382fa588a9 wined3d: Handle color key dirtification in wined3d_cs_exec_set_texture. 2015-04-15 22:21:57 +09:00
Stefan Dösinger 5c7707dc77 wined3d: Move alpha test states to the fragment pipeline.
This will allow some color keying cleanups. For Core Contexts we'll have
to emulate alpha testing in shaders anyway.
2015-04-10 21:44:01 +09:00
Stefan Dösinger be4c7a0a84 wined3d: Implement per stage constants in atifs. 2015-03-27 20:40:37 +09:00
Stefan Dösinger 3c2d0b983a wined3d: Avoid constant collision in atifs. 2015-03-24 20:06:18 +09:00
Stefan Dösinger 239e8cad7c wined3d: Add per-context private data for fragment pipelines. 2015-03-24 20:06:15 +09:00
Stefan Dösinger 1b0c063632 wined3d: Check for conversion changes in the atifs fragment pipeline.
Mapping colorop to pixelshader is necessary because misc_state_template
defines a pixel shader handler. We have to use the same representative
in all pipeline parts.

Wined3d_cs_exec_set_texture dirtifies the pixel shader state when the
fixup of a texture changes. Atifs no longer needs a pixel shader handler
on its own since vertex shader updates aren't delayed any more when the
pixel shader state is dirty.
2015-03-24 20:06:05 +09:00
Stefan Dösinger 92fee8c04f wined3d: Improve color fixups in atifs shaders.
The abilities of this hardware is too limited to support generic sign /
swizzle fixups. A generic handler would consume 4 of the 8 available
color instruction slots and 2 alpha instruction slots.

The bump mapping handler code has its own way of handling the color
fixups. It merges the fixup into the perturbation calculation without
requiring extra shader instructions. In theory this is possible for the
majority of d3d texture ops as well, but I don't think this is worth the
effort. I expect that this code will only be used for the ddraw signed
format test in practice.
2015-03-24 20:05:46 +09:00
Henri Verbeet 079b6d4c11 wined3d: Unify the shader state IDs. 2013-10-09 11:11:07 +02:00
Stefan Dösinger 112617f00b wined3d: Move tex_unit_map and friends into the context. 2013-09-16 13:05:58 +02:00
Henri Verbeet 62859daf0b wined3d: Avoid looking up shaders for shader stages that didn't change. 2013-08-21 12:13:56 +02:00
Henri Verbeet 37d1e8b79c wined3d: Try to avoid redundant constant updates.
This gives a minor performance improvement. For example, in 3DMark03 Game Test
1 this gives about a 4% improvement, in the Counter Strike: Source stress test
it's about 1%. (NVIDIA GF9600M, Intel T9550, 1024x768).
2013-08-16 11:55:24 +02:00
Stefan Dösinger 6621b11ad1 wined3d: Don't pass the device to atifs_free_ffpshader. 2013-05-15 19:04:19 +02:00
Stefan Dösinger 76941eff00 wined3d: Move gl_info->limits.max_texture_stages to d3d_info. 2013-04-25 20:25:10 +02:00
Stefan Dösinger f7580726b0 wined3d: Don't pass the device to gen_ffp_frag_op. 2013-04-25 20:25:08 +02:00
Michael Stefaniuc 50a9fb579c wined3d: Remove ERR() on HeapAlloc failure for small sizes known at compile time. 2013-02-06 09:04:41 +01:00
Michael Stefaniuc b28aff0dd7 wined3d: Use assignment instead of memcpy to copy structs. 2013-01-28 14:00:18 +01:00
Henri Verbeet 0e0e3b76f5 wined3d: Move "ffp_proj_control" to the fragment caps. 2013-01-21 12:51:21 +01:00
Henri Verbeet 78984cf46c wined3d: Get rid of ENTER_GL / LEAVE_GL. 2012-12-11 12:03:39 +01:00
Stefan Dösinger 8e05ee6994 wined3d: Add GL_ALPHA to the atifs argument replicator debug function. 2012-12-05 12:48:11 +01:00
Stefan Dösinger 799ea13fb9 wined3d: Use sign fixup for the atifs bumpenv matrix. 2012-12-05 12:48:04 +01:00
Stefan Dösinger 33802da4f3 wined3d: Correctly count used stages in the atifs pipeline. 2012-12-05 12:47:39 +01:00
Henri Verbeet d74cb4571b wined3d: Simplify shader selection. 2012-11-05 11:30:32 +01:00
Henri Verbeet 5059da9e32 wined3d: Don't depend on device internals in fragment_pipeline.alloc_private().
In particular, device->shader_backend and device->shader_priv aren't
initialized yet when the fragment pipe is initialized.
2012-10-29 10:47:03 +01:00
Henri Verbeet 894d161891 wined3d: Call core GL functions through gl_info.gl_ops as well. 2012-07-25 20:10:08 +02:00
Henri Verbeet af1ba676c8 wined3d: Pass a gl_info structure to fragment_pipeline.enable_extension(). 2012-07-25 20:01:31 +02:00
Francois Gouget 19ba80e7c2 wined3d: We must include Wine's port.h before using NAN. 2012-06-01 17:41:52 +02:00
Henri Verbeet b6431d9493 wined3d: Get rid of the WINED3DTEXTUREOP typedef. 2012-01-11 17:47:22 +01:00
Henri Verbeet 43fcbcb36e wined3d: Get rid of the WINED3DTEXTURESTAGESTATETYPE typedef. 2012-01-10 10:47:27 +01:00
Henri Verbeet 3082c1a9de wined3d: Get rid of the WINED3DRENDERSTATETYPE typedef. 2011-12-20 10:11:47 +01:00
Andrew Talbot 819225d98b wined3d: Mark some fall-throughs in switch statements. 2011-10-14 13:12:28 +02:00
Matteo Bruni f47f9f7c74 wined3d: Store currently active texture in the wined3d context. 2011-08-25 11:31:55 +02:00
Henri Verbeet b09b7e323c wined3d: Store a pointer to the state table in the context. 2011-07-25 11:59:15 +02:00
Henri Verbeet e4d2d78500 wined3d: Pass a wined3d_state pointer to state handlers.
Instead of an entire stateblock. This is mainly useful is we ever want to call
state handlers on state not stored in a stateblock.
2011-07-14 14:11:25 +02:00
Henri Verbeet 0df3db37ac wined3d: Explicitly pass device and state to gen_ffp_frag_op(). 2011-07-06 11:14:29 +02:00
Stefan Dösinger dda91ac02a wined3d: Call frag_pipe->enable_extension under the GL lock. 2011-05-26 16:41:14 +02:00
Henri Verbeet 0e0e5c3e38 wined3d: Get rid of the IWineD3DDevice typedefs. 2011-05-17 10:06:23 +02:00
Henri Verbeet 96d225d4dd wined3d: Get rid of the IWineD3DStateBlockImpl typedef. 2011-01-31 12:25:05 +01:00
Henri Verbeet a4477fea4a wined3d: Pass an IWineD3DDeviceImpl pointer to free_private(). 2010-12-02 11:54:15 +01:00
Henri Verbeet 6b9118e462 wined3d: Pass an IWineD3DDeviceImpl pointer to alloc_private(). 2010-12-02 11:54:10 +01:00
Henri Verbeet 00550613e7 wined3d: Remove a redundant parameter to enable_extension(). 2010-12-02 11:54:03 +01:00
Henri Verbeet a7ded9a67d wined3d: Pass a wined3d_state structure to use_ps(). 2010-09-28 17:33:17 +02:00
Henri Verbeet 9224751a13 wined3d: Pass a wined3d_state structure to use_vs(). 2010-09-28 17:33:17 +02:00
Henri Verbeet 23e286613f wined3d: Directly pass the texture to texture_activate_dimensions(). 2010-09-24 11:34:14 +02:00
Henri Verbeet 5b3c1a2082 wined3d: Move texture states to wined3d_state. 2010-09-16 10:12:17 -05:00
Henri Verbeet 1ef4f075c1 wined3d: Introduce a separate structure for stateblock states.
We'd like to not pass an entire stateblock to things like state handlers and
the shader backend, because those then use the stateblock to get to the
device and through there to all the rest of wined3d. This would also be
required for serialization of wined3d draw and state change commands into a
single GL context. Resource updates would be explicitly excluded from
serialization.
2010-09-15 10:33:14 -05:00
Henri Verbeet b68d257710 wined3d: Get rid of redundant comparisons against NULL / 0. 2010-09-14 09:43:33 -05:00
Henri Verbeet fa3a72c63a wined3d: Add a handler for WINED3DRS_SRGBWRITEENABLE to the atifs fragment pipe. 2010-09-03 11:05:29 +02:00
Henri Verbeet e8ac9bbd7f wined3d: Get rid of GLINFO_LOCATION. 2010-05-25 13:29:00 +02:00
Henri Verbeet 11bda6e0ab wined3d: Set the ati_fragment_shader.c GLINFO_LOCATION to *gl_info. 2010-05-25 13:27:58 +02:00
Henri Verbeet d5b68e7640 wined3d: Make sure all fields of the fragment pipe caps are always initialized. 2010-05-03 13:50:45 +02:00