Commit Graph

341 Commits

Author SHA1 Message Date
Henri Verbeet 2df49ea8ef wined3d: Eliminate a useless local variable. 2009-04-08 11:42:24 +02:00
Henri Verbeet 9ec0b09d35 wined3d: Store usage and usage_idx in struct wined3d_shader_semantic.
Instead of the usage token.
2009-04-08 11:42:19 +02:00
Henri Verbeet a1dedbdf58 wined3d: Properly check if input/output varyings are used. 2009-04-08 11:42:12 +02:00
Henri Verbeet 375780a5a8 wined3d: Fix some more 3 space indentation. 2009-04-08 11:42:05 +02:00
Henri Verbeet d12e489272 wined3d: Store a struct wined3d_shader_dst_param in struct wined3d_shader_semantic. 2009-04-08 11:41:59 +02:00
Henri Verbeet a4c942f606 wined3d: Simplify shader_glsl_cmp() and shader_glsl_cnd(). 2009-04-07 14:22:00 +02:00
Henri Verbeet a374ba54e5 wined3d: Simplify shader_glsl_color_correction(). 2009-04-07 14:21:54 +02:00
Henri Verbeet 0f92bbc6bc wined3d: Store the register type in struct wined3d_shader_dst_param. 2009-04-07 14:21:49 +02:00
Henri Verbeet f7f61a58f4 wined3d: Explicitly pass register type and index to shader_is_scalar(). 2009-04-07 14:21:44 +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 decc1cec9d wined3d: Pass a pointer to struct wined3d_shader_dst_param to shader_glsl_add_dst_param(). 2009-04-06 12:57:44 +02:00
Henri Verbeet 72aff27e0e wined3d: Pass a pointer to struct wined3d_shader_dst_param to shader_glsl_append_dst_ext(). 2009-04-06 12:57:37 +02:00
Henri Verbeet 91305b1f49 wined3d: Use a more appropriate mask for masking out the write mask. 2009-04-06 12:57:32 +02:00
Henri Verbeet 1120f0f585 wined3d: Unset the current GLSL program when it's destroyed. 2009-04-06 12:57:27 +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 7bde2792c2 wined3d: Store the source and destination parameter count in struct wined3d_shader_instruction. 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 fb6547a3e1 wined3d: Compare num_params against 1 in shader_glsl_map2gl().
num_params includes the destination parameter, while we're only interested in
source parameters. This doesn't cause problems for any of the instrctions
currently handled by shader_glsl_map2gl() though, since they all happen to
have at least 1 source parameter.
2009-04-02 16:28:29 +02:00
Henri Verbeet c697bdc3a1 wined3d: Remove some code that doesn't make a whole lot of sense.
The "instr" parameter to shader_glsl_gen_modifier() is actually a source
parameter, so comparing against WINED3DSIO_TEXKILL is just silly.
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 ec43489e10 wined3d: Don't use the opcode_token field in the GLSL backend.
The idea is that we want to prevent backends from parsing the tokens
themselves, which is pretty much a requirement for adding SM4 support.
2009-04-01 14:23:56 +02:00
Tobias Jakobi 38239be58c wined3d: GLSL: Implement texrect coord fixup. 2009-03-31 12:40:21 +02:00
Henri Verbeet 42e31a4242 wined3d: Fix a few sign compare warnings. 2009-03-25 11:12:30 +01:00
Henri Verbeet 2219749ae9 wined3d: Explicitly pass the texUnitMap to shader_glsl_load_vsamplers() and shader_glsl_load_psamplers().
The general idea here is to reduce dependencies on the entire stateblock, and
pass the real dependencies explicitly. This should make it clearer what
context a shader really needs.
2009-03-12 13:09:55 +01:00
Henri Verbeet 67da604eca wined3d: Get rid of a few stack buffers. 2009-03-10 12:07:02 +01:00
Henri Verbeet 1fa83c95de wined3d: Don't call shader_glsl_append_dst() from shader_glsl_texldl().
shader_glsl_gen_sample_code() already takes care of adding the destination.
2009-03-10 12:06:47 +01:00
Henri Verbeet 695c69f6a0 wined3d: Use shader_glsl_get_write_mask_size() to calculate the write mask size. 2009-03-09 14:39:48 +01:00
Henri Verbeet 4ff5736edf wined3d: Don't compare texUnitMap entries to -1. 2009-03-09 14:39:34 +01:00
Henri Verbeet 703ef0de02 wined3d: Use flags for shader_glsl_get_sample_function().
Having three BOOL parameters looks a bit awkward.
2009-03-04 12:07:20 +01:00
Stefan Dösinger 8781174a98 wined3d: Create a common sampling function in GLSL.
This way the individual instruction handlers don't have to bother about the
color correction, and there's now a single place to implement fixup dependent
sampling writemask selection.
2009-02-27 13:14:46 +01:00
Stefan Dösinger d7a6859960 wined3d: Make shader_glsl_get_sample_function aware of *Lod functions. 2009-02-27 13:14:33 +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
Francois Gouget 83d18602d8 wined3d: Add a trailing '\n' to shader_addline() calls. 2009-02-12 17:53:35 +01:00
Stefan Dösinger 66778ed9ec wined3d: Implement EXP and EXP2 fog in GLSL. 2009-02-11 12:21:51 +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 3c3272dc41 wined3d: Don't single-allocate new gl shaders. 2009-01-20 12:45:09 +01:00
Henri Verbeet 5d875906c1 wined3d: Remove some superfluous pointer casts. 2009-01-20 12:34:05 +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 3c14b3936f wined3d: Don't bother with the GLSL info log if nobody's looking. 2009-01-03 14:55:30 +01:00
Henri Verbeet 2e0212e998 wined3d: Fix the line number for some fglrx spam.
We added a #version line a while ago, so the line number for the
warning changed.
2009-01-03 14:55:30 +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 4a19d893e5 wined3d: Only apply shader constants that changed.
This improves performance a bit for applications that use a lot of
shaders with a lot of constants.
2008-12-20 11:11:45 +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 7d92b54a97 wined3d: Use the ps_compile_args struct in glsl. 2008-12-19 17:17:04 +01:00