Commit Graph

212 Commits

Author SHA1 Message Date
Henri Verbeet 915b91757f wined3d: Store the destination relative addressing token as a struct wined3d_shader_src_param. 2009-04-20 14:13:08 +02:00
Henri Verbeet d3fc7dca99 wined3d: Get rid of the "token" field from struct wined3d_shader_dst_param. 2009-04-14 15:25:07 -05:00
Henri Verbeet 62d9dc2177 wined3d: Store the relative addressing mode in struct wined3d_shader_dst_param. 2009-04-10 10:23:20 +02:00
Henri Verbeet 22e57d025c wined3d: Store the destination shift in struct wined3d_shader_dst_param. 2009-04-10 10:23:15 +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 d12e489272 wined3d: Store a struct wined3d_shader_dst_param in struct wined3d_shader_semantic. 2009-04-08 11:41:59 +02:00
Henri Verbeet 9f26fed28d wined3d: Separate the internal representation of vertex declaration elements from the struct used to create it.
Internally we want to store some extra data, like ffp_valid. One of the later
patches also stores the format desc in the declaration elements, instead of
the current WINED3DDECLTYPE.
2009-03-27 15:51:25 +01:00
Henri Verbeet 42e31a4242 wined3d: Fix a few sign compare warnings. 2009-03-25 11:12:30 +01:00
Henri Verbeet 8ce2506aa8 wined3d: Try to make Coverity shut up (CID 863, 905).
Comparing gl_shaders against NULL after potentially dereferencing it a few
lines earlier probably confuses Coverity. Checking num_gl_shaders instead
should avoid this.
2009-03-24 12:56:19 +01:00
Stefan Dösinger 8dcd51286d WineD3D: Put vertex shader duplication infrastructure in place. 2009-02-11 12:21:25 +01:00
Michael Stefaniuc cc6b283d3a wined3d: Remove some unused defines. 2009-02-03 12:40:12 +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 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
Henri Verbeet f3743fb402 wined3d: Shaders will never have a NULL function. 2008-12-16 12:52:04 +01:00
Henri Verbeet 8553665cb1 wined3d: Move the shader version to reg_maps. 2008-12-15 14:00:26 +01:00
Henri Verbeet fb475c7c29 wined3d: Don't reparse the entire shader just to update the sampler types. 2008-12-12 11:40:20 +01:00
Henri Verbeet 441f515d08 wined3d: Don't trace the shader if nobody's looking. 2008-12-11 12:14:55 +01:00
Henri Verbeet 8124f5e14a wined3d: shader_trace_init() shouldn't have side effects.
This moves setting baseShader.hex_version and baseShader.functionLength to
shader_get_registers_used(), where it's more appropriate.
2008-12-11 12:14:50 +01:00
Henri Verbeet 9541c346b3 wined3d: Remove some more unused code. 2008-12-11 12:14:40 +01:00
Henri Verbeet 50a87e23e7 wined3d: Fix the IWineD3DVertexShader and IWineD3DPixelShader IUnknown methods.
IWineD3DVertexShader isn't supposed to implement IWineD3DPixelShader.
2008-12-09 11:27:32 +01:00
Henri Verbeet 4997bee1bf wined3d: Add functions to initialize and free shader buffers. 2008-12-09 11:27:13 +01:00
Henri Verbeet f1f62fb5ce wined3d: Remove some unused code. 2008-12-09 11:26:49 +01:00
Henri Verbeet 5532c990b6 wined3d: Const correctness fixes. 2008-12-02 14:04:15 +01:00
Stefan Dösinger ff767f4984 wined3d: Make the shader backend call CompileShader.
A number of considerations contribute to this:

1) The shader backend knows best which shader(s) it needs. GLSL needs
both, arb only one
2) The shader backend may pass some parameters to the compilation
code(e.g. which pixel format fixup to use)
3) The structures used in (2) are different in vs and ps, so a
baseshader::Compile won't work
4) The structures in (2) are wined3d-private structures, so
having a public method in the vtable won't work(its a bad idea
anyway).
2008-11-25 13:06:23 +01:00
Alexandre Julliard 6cfef95ce7 wined3d: Convert source files to utf-8. 2008-10-18 19:21:20 +02:00
Henri Verbeet 2e76954097 wined3d: Move part of the shader instruction table to the backend. 2008-09-24 12:53:05 +02:00
Henri Verbeet e2bc8dfe3b wined3d: Use shader_glsl_log() in some more places. 2008-09-23 12:25:32 +02:00
Henri Verbeet ca28930113 wined3d: Merge pshader_hw_map2gl() and vshader_hw_map2gl().
This isn't the prettiest way to merge those functions, but it's a start.
2008-09-23 12:25:27 +02:00
Stefan Dösinger a580325a47 wined3d: Remove some more junk code. 2008-08-28 11:24:49 +02:00
Stefan Dösinger b1d8af7926 wined3d: Update copyright lines. 2008-04-02 20:22:42 +02:00
Stefan Dösinger a66fb40d83 wined3d: Move shader generation into the shader backend.
Generating the shader ID and parts of the shader prolog and epilog was
done by the common vertexshader.c / pixelshader.c, which is ugly.

This patch doesn't get rid of all the uglyness, somewhen we'll still
have to sort out the relationship of [arb|glsl]_generate_shader and
[arb|glsl]_generate_declarations.
2008-03-25 19:35:58 +01:00
James Hawkins c2a627c6e8 janitorial: Remove links to any microsoft site. 2008-03-01 12:17:07 +01:00
Austin English 3471f841a1 wined3d: Spelling fixes. 2008-01-18 12:53:33 +01:00
Stefan Dösinger ea093f4a38 wined3d: Multiply the half pixel correction with .w. 2007-12-28 11:28:59 +01:00
Stefan Dösinger 2eab3d5c11 wined3d: Ignore tesselated and unused streams when comparing attribs. 2007-12-18 13:23:16 +01:00
Stefan Dösinger 54fa712981 wined3d: Initialize output texcoord .w to 1.0 if needed.
The GL_ARB_vertex_program extension does not define a standard value for
output texture coordinates. This makes problems when using vertex
shaders with fixed function fragment processing because fffp divides the
texture coords by its .w component. This means that gl shaders have to
write to the .w component of texture coords. Direct3D shaders however
do not.
2007-12-07 14:54:22 +01:00
Stefan Dösinger 1cc7530332 wined3d: Ignore unused attributes when generating the swizzle array. 2007-12-06 13:48:59 +01:00
Stefan Dösinger 218de935d1 wined3d: Fix a sign mistake in the code creating the sorted attrib. 2007-11-28 13:40:29 +01:00
Stefan Dösinger 959212304d wined3d: Track vertex declaration changes on vertex shaders.
If an attribute has type D3DDECLTYPE_D3DCOLOR, the red and blue channels
are swizzled in the shader. Since the attribute is stored in the vertex
declaration and not the vertex shader, it can change by setting a new
vertex declaration. If this happens, we have to recompile the shader
with the swizzling of that specific attribute turned on or off.
2007-11-21 12:18:02 +01:00
Stefan Dösinger cfc5725760 wined3d: Move glsl shader destruction to the glsl shader backend. 2007-11-21 12:06:27 +01:00
Stefan Dösinger af4edef5e1 wined3d: Move destroying the glsl vshader into a separate function. 2007-11-21 12:06:15 +01:00
Stefan Dösinger bd97580683 wined3d: Move IUnknown functions to IWineD3DBaseShader. 2007-11-20 12:53:07 +01:00
Stefan Dösinger 683c258ff4 wined3d: Remove a hack that slipped in. 2007-11-16 13:23:09 +01:00
Stefan Dösinger edb78187a9 wined3d: Hardcode local constants into the shader if possible. 2007-11-14 11:51:26 +01:00
Francois Gouget 41643327ee wined3d: Add trailing '\n's to two shader_addline() calls. 2007-11-13 13:35:55 +01:00
Stefan Dösinger c7c785861a wined3d: Replace the position fixup mul-add-add with a MAD. 2007-11-08 12:03:39 +01:00
Stefan Dösinger fb0dde7b27 wined3d: Relative addressing offsets are limited to [-64; 63] in arb. 2007-11-08 11:54:43 +01:00
Stefan Dösinger 3febe738ab wined3d: Handle ps 3.0 varyings in a different way. 2007-11-06 13:34:57 +01:00
Stefan Dösinger 822030e329 wined3d: Enable the mNxN implementation for pixel shaders. 2007-10-01 13:00:19 +02:00