Commit Graph

239 Commits

Author SHA1 Message Date
Henri Verbeet 0f92bbc6bc wined3d: Store the register type in struct wined3d_shader_dst_param. 2009-04-07 14:21:49 +02:00
Henri Verbeet 6f66c1ddbd wined3d: Store the write mask in struct wined3d_shader_dst_param. 2009-04-07 14:21:37 +02:00
Henri Verbeet f0de1622d0 wined3d: Store the destination modifiers in struct wined3d_shader_dst_param. 2009-04-06 12:57:52 +02:00
Henri Verbeet 6660978b44 wined3d: Use register_idx in the ARB shader backend. 2009-04-03 13:01:50 +02:00
Henri Verbeet 7b62165546 wined3d: Store the register index in struct wined3d_shader_dst_param. 2009-04-03 13:01:44 +02:00
Henri Verbeet 7245cd2b81 wined3d: Add a struct wined3d_shader_dst_param for storing destination parameter information. 2009-04-03 13:01:38 +02:00
Henri Verbeet 04b2e0b19b wined3d: Remove the opcode field from struct wined3d_shader_instruction. 2009-04-03 13:01:30 +02:00
Henri Verbeet 29c9dc989d wined3d: Use the source and destination parameter count in the ARB shader backend. 2009-04-03 13:01:20 +02:00
Henri Verbeet 7bde2792c2 wined3d: Store the source and destination parameter count in struct wined3d_shader_instruction. 2009-04-02 16:28:29 +02:00
Henri Verbeet d633b6d47e wined3d: Avoid comparing against WINED3DSIO_* in the ARB shader backend. 2009-04-02 16:28:29 +02:00
Henri Verbeet 44648b2b91 wined3d: Store the instruction handler index in struct wined3d_shader_instruction.
This allows us to avoid comparing against WINED3DSIO_*, which is specific to
the bytecode.
2009-04-02 16:28:29 +02:00
Henri Verbeet c3a01b315e wined3d: Use a more reasonable name for "SHADER_OPCODE_ARG". 2009-04-01 14:24:19 +02:00
Henri Verbeet e44335585e wined3d: Don't use the opcode_token field in the ARB backend. 2009-04-01 14:24:02 +02:00
Stefan Dösinger 3fbdb64270 wined3d: Update a comment.
shader_select takes care of compiling the shader since we have the shader
duplication infrastructure. However, there's still a motivation to skip the
shader_select call if the vertex shader is dirty.
2009-03-30 14:21:52 +02:00
Stefan Dösinger 703dcca61b wined3d: Fix some whitespace. 2009-03-30 14:21:44 +02:00
Henri Verbeet afc5744e70 wined3d: Pass format_desc to set_shader().
This should be the last unnecessary getFormatDescEntry() call.
2009-03-24 12:57:45 +01:00
Henri Verbeet a56e3a102b wined3d: Only return a pointer to struct GlPixelFormatDesc from getFormatDescEntry(). 2009-03-13 11:29:10 +01:00
Henri Verbeet 362bc0d694 wined3d: Don't compare const_num against -1. 2009-03-09 14:39:39 +01:00
Stefan Dösinger 5cf764aec2 wined3d: Put the color_correction calls into the instruction handlers.
The color correction cannot be done behind the back of the individual
instruction handlers because it might conflict with the instruction's
color modifications and the D3D provided writemask.
2009-02-27 13:14:23 +01:00
Stefan Dösinger 6012475e59 wined3d: Properly update last_was_pshader. 2009-02-24 16:57:30 +01:00
Henri Verbeet 828f42cb1f wined3d: Add some traces to state handlers.
Should make it a bit clearer what's happening in some cases.
2009-02-19 12:53:44 +01:00
Stefan Dösinger 693d9ded47 wined3d: Properly set the fog frag coord according to the FOGTABLEMODE.
This also fixes the test that an earlier patch broke, so the todo_wine can be
removed again.
2009-02-11 12:21:44 +01:00
Stefan Dösinger 8dcd51286d WineD3D: Put vertex shader duplication infrastructure in place. 2009-02-11 12:21:25 +01:00
Michael Stefaniuc 118c75a8c7 wined3d: Remove superfluous pointer casts. 2009-02-03 12:40:14 +01:00
Stefan Dösinger 50109aa969 wined3d: Get rid of last_was_foggy_shader & friends.
The fog settings do not depend on wether the shader writes to oFog or not,
instead they depend on the FOGVERTEXMODE and FOGTABLEMODE settings, and if a
vertex shader is bound at all.

It works the same way as with the fixed function, and having a vertex shader
is the same as using pretransformed vertices, just that the fog coord comes
from the shader instead of the specular color:

FOGTABLEMODE != NONE: The Z coord is used, oFog is ignored
FOGTABLEMODE == NONE, with VS: oFog is used
FOGTABLEMODE == NONE, no VS, XYZ: Z is used
FOGTABLEMODE == NONE, no VS, XYZRHW: diffuse color is used
2009-01-20 12:45:40 +01:00
Stefan Dösinger 3c3272dc41 wined3d: Don't single-allocate new gl shaders. 2009-01-20 12:45:09 +01:00
Stefan Dösinger 1deafcb5a7 wined3d: Split the remains of state_fog. 2009-01-12 13:02:49 +01:00
Stefan Dösinger 2dd18635c9 wined3d: Move fogdensity and fogcolor to the fragment pipeline. 2009-01-12 13:02:29 +01:00
Stefan Dösinger e61aa24aa3 wined3d: Use the ARB fog option in ARB_fragment_program shaders.
This is the "replacement" for the fog coord optimization removed in
the previous patch.
2009-01-12 13:02:19 +01:00
Stefan Dösinger 7c21147dcd wined3d: Remove the pixelshader fogstart/fogend optimization. 2009-01-12 13:01:49 +01:00
Henri Verbeet 6791e6b752 wined3d: Simplify handling of swizzled attributes.
This should also be a little bit faster.
2009-01-08 13:21:43 +01:00
Henri Verbeet a8697d90e4 wined3d: Renumber WINED3DTEXTURESTAGESTATETYPE enum elements.
Saves some space by not having unused entries is the arrays tracking these
states.
2009-01-06 12:45:43 +01:00
Allan Tong fdd512deeb wined3d: Add mapping for MOV instructions in shader_hw_map2gl. 2009-01-02 11:53:35 +01:00
Henri Verbeet 2b926db50d wined3d: Make use_vs() and use_ps() work on a stateblock instead of a device.
Most callers work on a stateblock rather than a device, and the main fields
we check (vertexShader and pixelShader) are part of the stateblock as well.
2008-12-31 12:25:56 +01:00
Henri Verbeet 6f5af4047f wined3d: Get rid of the glname field in struct SHADER_OPCODE.
It's only used for shader_hw_map2gl() and vshader_hw_rsq_rcp(), and we
can handle those the same way we handle the GLSL equivalents.
2008-12-30 11:36:35 +01:00
Francois Gouget 2166afceb7 Assorted spelling fixes. 2008-12-29 11:36:49 +01:00
Henri Verbeet 02e4c33611 wined3d: Consistently use .xyzw for vector components. 2008-12-20 11:11:55 +01:00
Stefan Dösinger 690cbe76ac wined3d: Make pixelshaders disable fog properly.
This is a first step towards cleaning up the fog mess. The fog
parameter is added to the pixelshader compile args structure. That way
multiple pshaders are compiled for different fog settings, and the
pixel shader can remove the fog line if fog is not enabled. That way
we don't need special fog start and end settings, and this allows us
to implement EXP and EXP2 fog in the future too.
2008-12-19 17:17:16 +01:00
Stefan Dösinger 20189eb4f8 wined3d: Make use of ps_compile_args in arb shader. 2008-12-19 17:16:56 +01:00
Stefan Dösinger 61e581abb4 wined3d: Pass the ps_compile_args structures to the shader generation code. 2008-12-19 17:16:39 +01:00
Henri Verbeet d099dde7a9 wined3d: Track shader constants in the shader backend. 2008-12-18 13:17:02 +01:00
Henri Verbeet 73823ef5f6 wined3d: Remove the shader_cleanup() method from the shader backend. 2008-12-17 14:02:24 +01:00
Stefan Dösinger 5315b7992d wined3d: Correct a stage number. 2008-12-16 14:34:20 +01:00
Stefan Dösinger 6ec741e766 wined3d: Set up the shaders when delaying fixed func applying. 2008-12-16 14:31:39 +01:00
Henri Verbeet 8553665cb1 wined3d: Move the shader version to reg_maps. 2008-12-15 14:00:26 +01:00
Henri Verbeet b409061337 wined3d: Make some constant arrays also static.
As pointed out by Dan Kegel.
2008-12-10 10:50:37 +01:00
Henri Verbeet 4aa00e8a21 wined3d: Rename texture_stage_op.color_correction to texture_stage_op.color_fixup.
This is consistent with other uses of struct color_fixup_desc.
2008-12-10 10:50:24 +01:00
Henri Verbeet ce4d03318b wined3d: Fix some spelling errors. 2008-12-09 11:27:51 +01:00
Henri Verbeet 4997bee1bf wined3d: Add functions to initialize and free shader buffers. 2008-12-09 11:27:13 +01:00
Henri Verbeet a13df0e4ef wined3d: Explicitly pass the version and instruction table to shader_get_opcode(). 2008-12-05 11:59:02 +01:00