Henri Verbeet
2b46c4046a
wined3d: Implement WINED3DSIH_BREAKP in the GLSL shader backend.
2012-10-10 10:32:58 +02:00
Henri Verbeet
0931522795
wined3d: Implement WINED3DSIH_AND in the GLSL shader backend.
2012-10-08 11:28:41 +02:00
Henri Verbeet
4d39cb56fc
wined3d: Handle WINED3DSPR_CONSTBUFFER registers in the GLSL shader backend.
2012-10-03 11:19:42 +02:00
Henri Verbeet
6d948e1a8c
wined3d: Recognize the SM4 dcl_constantBuffer opcode.
2012-10-01 23:08:00 +02:00
Henri Verbeet
e13a589bfc
wined3d: Set more accurate limits for SM4 shaders.
2012-09-28 11:26:44 +02:00
Henri Verbeet
aa9daa285e
wined3d: Unify GLSL input / output variable naming.
2012-09-28 11:26:40 +02:00
Henri Verbeet
49f9d39493
wined3d: Introduce a separate function to retrieve the GLSL variable prefix.
2012-09-27 13:10:54 +02:00
Henri Verbeet
1ff07a7d68
wined3d: Take the data type of registers into account in the GLSL shader backend.
2012-09-25 11:19:15 +02:00
Henri Verbeet
eb4d20ef31
wined3d: Take the data type of immediates into account in shader_glsl_get_register_name().
2012-09-24 09:58:09 +02:00
Henri Verbeet
f298b96972
wined3d: Simplify shader_glsl_destroy() control flow a bit.
2012-09-21 10:53:13 +02:00
Henri Verbeet
00cdf1aaf1
wined3d: Merge the glsl_vshader_private and glsl_pshader_private structures.
2012-09-19 23:55:01 +02:00
Henri Verbeet
fb989f1d1e
wined3d: Implement version checks for geometry shaders.
2012-09-19 13:04:56 +02:00
Henri Verbeet
0932129993
wined3d: Implement WINED3DSIH_EMIT in the GLSL shader backend.
2012-09-18 10:18:57 +02:00
Henri Verbeet
c982e5f64b
wined3d: Implement WINED3DSIH_CUT in the GLSL shader backend.
2012-09-17 12:28:50 +02:00
Henri Verbeet
a67ee02a48
wined3d: Recognize the SM4 dcl_outputTopology opcode.
2012-09-17 12:28:40 +02:00
Henri Verbeet
0fbb98424c
wined3d: Recognize the SM4 dcl_inputPrimitive opcode.
2012-09-17 12:28:36 +02:00
Henri Verbeet
d574d639a4
wined3d: Recognize the SM4 dcl_maxOutputVertexCount opcode.
2012-09-17 12:28:28 +02:00
Henri Verbeet
a7bad0bde5
wined3d: Just handle all instructions in the shader backend.
2012-09-14 15:43:28 +02:00
Matteo Bruni
d37f8ea866
wined3d: Use BOOL instead of char in shader_load_constants().
2012-08-21 11:45:55 +02:00
Henri Verbeet
c11c2e2dbb
wined3d: Get rid of the d3d_caps debug channel.
2012-06-22 16:14:26 +02:00
Francois Gouget
19ba80e7c2
wined3d: We must include Wine's port.h before using NAN.
2012-06-01 17:41:52 +02:00
Matteo Bruni
2d810bdc89
wined3d: Clamp fog coordinate in the vertex shader.
2012-03-09 17:25:57 +01:00
Henri Verbeet
56a4680b69
wined3d: Complain when the hardware may not be able to run a shader.
2012-02-06 10:19:30 -06:00
Henri Verbeet
bee9adbd05
wined3d: Get rid of the WINED3DDECLUSAGE typedef.
2012-01-19 11:56:47 +01:00
Henri Verbeet
7f7bc520b6
wined3d: Get rid of the WINED3DTEXTURETRANSFORMFLAGS typedef.
2012-01-10 10:47:30 +01:00
Henri Verbeet
43fcbcb36e
wined3d: Get rid of the WINED3DTEXTURESTAGESTATETYPE typedef.
2012-01-10 10:47:27 +01:00
Henri Verbeet
66d453ce5c
wined3d: Don't declare more varyings than required by the shader model.
2011-12-06 15:50:58 +01:00
Henri Verbeet
ab73f20e38
wined3d: Use proper texcoord masks for GLSL texm3x3spec / texm3x3vspec.
2011-11-29 13:23:04 +01:00
Henri Verbeet
14cf780fde
wined3d: Recognize the SM4 xor opcode.
2011-11-22 10:52:33 +01:00
Henri Verbeet
d695dd3af4
wined3d: Recognize the SM4 ushr opcode.
2011-11-22 10:52:29 +01:00
Henri Verbeet
9afff037e5
wined3d: Recognize the SM4 udiv opcode.
2011-11-22 10:52:25 +01:00
Henri Verbeet
e2d099a14d
wined3d: Recognize the SM4 round_ni opcode.
2011-11-21 11:00:50 +01:00
Henri Verbeet
829e28cb4d
wined3d: Recognize the SM4 ge opcode.
2011-11-21 11:00:46 +01:00
Henri Verbeet
af11214562
wined3d: Recognize the SM4 eq opcode.
2011-11-21 11:00:42 +01:00
Henri Verbeet
563edce2fa
wined3d: Get rid of the WINED3DSHADER_PARAM_SRCMOD_TYPE typedef.
2011-11-15 16:09:09 +01:00
Henri Verbeet
13efdc6a37
wined3d: Introduce a "state" variable in shader_glsl_load_constants().
2011-11-14 15:25:22 +01:00
Henri Verbeet
adf7c33023
wined3d: Get rid of the COMPARISON_TYPE typedef.
2011-11-09 11:34:32 +01:00
Henri Verbeet
323a95418e
wined3d: Get rid of the WINED3DSAMPLER_TEXTURE_TYPE typedef.
2011-11-09 11:34:24 +01:00
Andrew Talbot
e0cd19d88d
wined3d: Remove extraneous braces from switch statements.
2011-11-07 11:54:25 +01:00
Henri Verbeet
b49e08aa8d
wined3d: Get rid of the local_constant typedef.
2011-10-31 23:52:59 +01:00
Matteo Bruni
5f2c6b3c82
wined3d: Enable SM4 support in the GLSL shader backend when possible.
2011-10-26 12:41:34 +02:00
Matteo Bruni
7254f5e661
wined3d: Return only the shader major version.
2011-10-26 12:41:34 +02:00
Henri Verbeet
7aac0159a9
wined3d: Move the ARB shader program constant handling to the backend where it belongs.
2011-10-26 12:41:33 +02:00
Stefan Dösinger
ec0ac720bf
wined3d: Make sure that lit doesn't return NaN.
2011-09-12 10:09:34 +02:00
Henri Verbeet
74b418c9e0
wined3d: Don't print the GLSL info log by default on fglrx.
2011-09-05 10:56:46 +02:00
Henri Verbeet
7d46943067
wined3d: Make some parameters to get_glsl_program_entry() const.
2011-08-23 16:53:52 +02:00
Henri Verbeet
3b3470b151
wined3d: Make the shader parameter to shader_glsl_generate_vshader() const.
2011-08-23 16:53:52 +02:00
Henri Verbeet
f75675031f
wined3d: Make the shader parameter to shader_glsl_generate_pshader() const.
2011-08-23 16:53:52 +02:00
Henri Verbeet
68b9071329
wined3d: Make the shader and ctx_priv parameters to shader_generate_glsl_declarations() const.
2011-07-25 11:59:11 +02:00
Henri Verbeet
6a046eddd7
wined3d: Get rid of the vpos_uniform field from the wined3d_pixel_shader structure.
2011-07-25 11:59:07 +02:00
Henri Verbeet
dbcbf0c45b
wined3d: Make the heap parameter to update_heap_entry() const.
2011-07-22 12:57:20 +02:00
Henri Verbeet
959874c2d8
wined3d: Make the tex_unit_map parameter to shader_glsl_load_vsamplers() const.
2011-07-22 12:57:19 +02:00
Henri Verbeet
86dd8476db
wined3d: Make the tex_unit_map parameter to shader_glsl_load_psamplers() const.
2011-07-22 12:57:19 +02:00
Henri Verbeet
12be5afd92
wined3d: Get rid of the glsl_sample_function_t typedef.
2011-06-29 10:08:34 -05:00
Henri Verbeet
8fa44dd76d
wined3d: Get rid of the glsl_src_param_t typedef.
2011-06-29 10:08:28 -05:00
Henri Verbeet
3f62b618c4
wined3d: Get rid of the glsl_dst_param_t typedef.
2011-06-29 10:08:19 -05:00
Henri Verbeet
5a26da1d19
wined3d: Make the wined3d_shader_context shader pointer const.
2011-06-23 09:47:34 +02:00
Henri Verbeet
c51db63ba4
wined3d: Require ARB_shader_texture_lod for SM3.
2011-06-16 11:16:26 +02:00
Henri Verbeet
95bd0ec61c
wined3d: Just enable ARB_shader_texture_lod if it's available.
2011-06-07 14:18:34 +02:00
Henri Verbeet
aba42d1fa5
wined3d: Introduce a separate structure for framebuffer state.
2011-05-19 10:07:57 +02:00
Henri Verbeet
d52ae4b63f
wined3d: Get rid of the glsl_program_key_t typedef.
2011-05-17 10:06:34 +02:00
Henri Verbeet
0e0e5c3e38
wined3d: Get rid of the IWineD3DDevice typedefs.
2011-05-17 10:06:23 +02:00
Stefan Dösinger
a549b8f090
wined3d: Fix a few MSVC data loss warnings.
2011-05-13 17:05:27 +02:00
Francois Gouget
5920de5ffb
Assorted spelling and case fixes.
2011-05-09 12:09:27 +02:00
Henri Verbeet
86b0c6bd7b
wined3d: Rename "shader_backend_t" to "wined3d_shader_backend_ops".
...
This makes it more consistent with the other call table names in wined3d.
2011-05-05 11:45:22 +02:00
Henri Verbeet
a05841bd1a
wined3d: Rename "pCaps" to "caps".
2011-04-27 11:50:29 +02:00
Henri Verbeet
3f0120241b
wined3d: Enable SM3 if ARB_shader_texture_lod is supported.
2011-04-26 10:46:52 +02:00
Henri Verbeet
9d0e17e9ea
wined3d: Either set SM3 for both vertex and fragment shaders or for neither.
2011-04-26 10:46:45 +02:00
Henri Verbeet
8fe80e18b2
wined3d: Get rid of the IWineD3DBaseShader typedefs.
2011-03-31 12:37:47 +02:00
Henri Verbeet
f8f83ff2f7
wined3d: Remove COM from the shader implementation.
2011-03-31 12:37:46 +02:00
Henri Verbeet
5555d904be
wined3d: Get rid of IWineD3DBaseShaderClass.
2011-03-31 12:37:46 +02:00
Henri Verbeet
99bed5d41d
wined3d: Get rid of IWineD3DPixelShaderImpl.
2011-03-30 12:18:20 +02:00
Henri Verbeet
dab01d435e
wined3d: Get rid of IWineD3DVertexShaderImpl.
2011-03-30 12:18:09 +02:00
Henri Verbeet
3d4fe0b750
wined3d: Get rid of IWineD3DPixelShader.
2011-03-30 12:18:03 +02:00
Henri Verbeet
c5bf96c951
wined3d: Get rid of IWineD3DBaseTextureClass.
2011-03-29 12:34:40 +02:00
Henri Verbeet
eb5bfad18d
wined3d: Get rid of the IWineD3DBaseTexture typedefs.
2011-03-28 17:08:52 +02:00
Henri Verbeet
ac9c592ca9
wined3d: Store all the resource desc information in struct wined3d_resource.
2011-03-09 12:29:17 +01:00
Matteo Bruni
75386a99b4
wined3d: Make clip planes independent from offscreen/onscreen drawing.
2011-02-15 17:24:26 +01:00
Henri Verbeet
4c30b82c83
wined3d: Just fail if the texture type is not supported in create_glsl_blt_shader() (LLVM/Clang).
...
Changing the texture type has no effect at this point, and it wouldn't work
properly anyway.
2011-02-01 12:01:10 +01:00
Henri Verbeet
96d225d4dd
wined3d: Get rid of the IWineD3DStateBlockImpl typedef.
2011-01-31 12:25:05 +01:00
Henri Verbeet
91ac0c37b1
wined3d: Disable vertex shader output clamping.
...
It looks like NV50+ hardware gets you infinities and NaN's in D3D as well for
most things, so we should only need special handling for pow and nrm.
2011-01-25 12:32:38 +01:00
Henri Verbeet
a50546e563
wined3d: Use dot() instead of length() in shader_glsl_nrm().
...
As Eric Anholt pointed out, using length() here is suboptimal. It essentially
translates into "inversesqrt(dot(x, x));", but needs to handle the case of
zero-length vectors, much like nrm.
2011-01-24 14:43:26 +01:00
Henri Verbeet
7bc7caf423
wined3d: Pass an IWineD3DBaseTextureImpl array to pixelshader_update_samplers().
2010-12-16 11:50:09 +01:00
Henri Verbeet
bd2e7aedcf
wined3d: Store an IWineD3DBaseShaderImpl pointer in wined3d_shader_context.
2010-12-15 11:55:22 +01:00
Henri Verbeet
2f36d600ef
wined3d: Pass an IWineD3DBaseShaderImpl pointer to shader_generate_main().
2010-12-15 11:55:19 +01:00
Henri Verbeet
c492ec196e
wined3d: Pass implementation pointers to get_glsl_program_entry().
2010-12-15 11:55:13 +01:00
Henri Verbeet
d6446c7a97
wined3d: Store implementation pointers in glsl_program_key_t.
2010-12-14 11:38:42 +01:00
Henri Verbeet
dd1ba15ec7
wined3d: Store implementation pointers in struct glsl_shader_prog_link.
2010-12-14 11:38:39 +01:00
Henri Verbeet
b0bc24eec3
wined3d: Pass implementation pointers to generate_param_reorder_function().
2010-12-14 11:38:37 +01:00
Henri Verbeet
77beea98b9
wined3d: Avoid some interface pointers in set_glsl_shader_program().
2010-12-14 11:38:34 +01:00
Henri Verbeet
fe2ffe1e6a
wined3d: Pass an IWineD3DBaseShaderImpl pointer to shader_destroy().
2010-12-13 16:24:23 +01:00
Henri Verbeet
97ca0e6863
wined3d: Pass an IWineD3DBaseShaderImpl pointer to shader_generate_glsl_declarations().
2010-12-13 16:24:19 +01:00
Henri Verbeet
b5637a934e
wined3d: Store an IWineD3DDeviceImpl pointer in IWineD3DBaseShaderClass.
2010-12-08 11:27:49 +01:00
Henri Verbeet
db164a990c
wined3d: Rename shader_reg_maps to wined3d_shader_reg_maps.
...
For consistency with other shader translation structures.
2010-12-07 11:33:23 +01:00
Henri Verbeet
e9ff40d918
wined3d: Use local reg_maps variables where possible.
2010-12-06 12:21:31 +01:00
Henri Verbeet
f92a0667d7
wined3d: Remove a unused parameter to shader_dirtifyable_constants().
2010-12-02 11:53:57 +01:00
Henri Verbeet
f45aeb4abe
wined3d: Pass an IWineD3DDeviceImpl pointer to shader_free_private().
2010-12-01 11:09:08 +01:00
Henri Verbeet
4a69874938
wined3d: Pass an IWineD3DDeviceImpl pointer to shader_alloc_private().
2010-12-01 11:09:02 +01:00
Henri Verbeet
77923346da
wined3d: Pass an IWineD3DDeviceImpl pointer to shader_update_float_pixel_constants().
2010-12-01 11:08:57 +01:00
Henri Verbeet
4a6d0da207
wined3d: Pass an IWineD3DDeviceImpl pointer to shader_update_float_vertex_constants().
2010-12-01 11:08:51 +01:00
Henri Verbeet
7363b0e98a
wined3d: Explicitly pass data and gl_info to shader_deselect_depth_blt().
2010-11-30 10:57:23 +01:00
Henri Verbeet
93a824d744
wined3d: Explicitly pass data and gl_info to shader_select_depth_blt().
2010-11-30 10:57:17 +01:00
Henri Verbeet
e832b57a15
wined3d: Move loop state to wined3d_shader_context.
2010-10-29 14:33:56 +02:00
Henri Verbeet
8a4a76f9a7
wined3d: Move "parse_state" to wined3d_shader_context.
2010-10-29 14:33:56 +02:00
Henri Verbeet
3a41bbdd71
wined3d: Access reg_maps though ins->ctx in shader_glsl_get_register_name().
...
This is all part of the ongoing work to make the shader backend interface less
dependent on wined3d internals.
2010-10-28 18:18:11 +02:00
Henri Verbeet
1b2f9d29d7
wined3d: Get rid of the posFixup field from the device.
2010-10-26 11:58:12 +02:00
Henri Verbeet
5ef7a8c242
wined3d: Explicitly pass parameters to shader_load_np2fixup_constants().
2010-10-25 14:29:37 +02:00
Henri Verbeet
d508a855c1
wined3d: Recognize the SM4 sqrt opcode.
2010-10-20 18:37:07 +02:00
Henri Verbeet
4eb8fd7960
wined3d: Recognize the SM4 sample_d opcode.
2010-10-14 17:54:52 +02:00
Henri Verbeet
50f6fbadb0
wined3d: Recognize the SM4 ld opcode.
2010-10-13 13:00:30 +02:00
Henri Verbeet
7c6658f970
wined3d: Recognize the SM4 ieq opcode.
2010-10-13 13:00:26 +02:00
Henri Verbeet
a9e3058426
wined3d: Recognize the SM4 ftoi opcode.
2010-10-13 13:00:22 +02:00
Henri Verbeet
b53d346d35
wined3d: Recognize the SM4 div opcode.
2010-10-13 13:00:17 +02:00
Henri Verbeet
ff9c2fcdb2
wined3d: Recognize the SM4 utof opcode.
2010-10-11 17:11:28 +02:00
Henri Verbeet
18d7a73af8
wined3d: Recognize the SM4 sample_l opcode.
2010-10-11 17:11:28 +02:00
Henri Verbeet
407ed1b875
wined3d: Recognize the SM4 sample opcode.
2010-10-11 17:11:28 +02:00
Henri Verbeet
b2f520b5f0
wined3d: Recognize the SM4 itof opcode.
2010-10-11 17:11:28 +02:00
Henri Verbeet
1fe1676ae9
wined3d: SM4 immediate constants are typeless.
2010-10-08 15:26:42 +02:00
Henri Verbeet
d369136a96
wined3d: Recognize the SM4 imul opcode.
2010-10-08 15:26:33 +02:00
Henri Verbeet
512e6cec2c
wined3d: Recognize the SM4 movc opcode.
2010-10-07 15:58:10 +02:00
Henri Verbeet
1330f844f8
wined3d: Recognize the SM4 and opcode.
2010-10-07 15:58:09 +02:00
Matteo Bruni
20010235ad
wined3d: Keep track of texture transformation states in compiled pixel shaders.
2010-10-04 15:00:08 +02:00
Henri Verbeet
e12f5ff08a
wined3d: Pass a wined3d_state structure to find_ps_compile_args().
2010-09-29 12:22:39 +02:00
Henri Verbeet
8d5a25bbec
wined3d: Pass a wined3d_state structure to find_vs_compile_args().
2010-09-29 12:22:36 +02:00
Henri Verbeet
9224751a13
wined3d: Pass a wined3d_state structure to use_vs().
2010-09-28 17:33:17 +02:00
Henri Verbeet
b37ce45d6c
wined3d: Move pixel shader constants to wined3d_state.
2010-09-20 13:48:13 +02:00
Henri Verbeet
33dfb9539c
wined3d: Move the pixel shader to wined3d_state.
2010-09-20 13:48:13 +02:00
Henri Verbeet
8a148cc7c5
wined3d: Move vertex shader constants to wined3d_state.
2010-09-20 13:48:12 +02:00
Henri Verbeet
dd4aea36c9
wined3d: Move the vertex shader to wined3d_state.
2010-09-20 13:48:12 +02:00
Henri Verbeet
d728d5f0ec
wined3d: Move texture bindings to wined3d_state.
2010-09-18 13:05:49 +02:00
Henri Verbeet
5a3a4ac77a
wined3d: Remove IWineD3DBaseTexture::GetTextureDimensions() from the public wined3d interface.
2010-09-18 13:05:44 +02:00
Henri Verbeet
5b3c1a2082
wined3d: Move texture states to wined3d_state.
2010-09-16 10:12:17 -05:00
Henri Verbeet
b68d257710
wined3d: Get rid of redundant comparisons against NULL / 0.
2010-09-14 09:43:33 -05:00
Henri Verbeet
2af746b96e
wined3d: Check the GLSL info log for all shaders.
2010-08-25 11:57:24 +02:00
Stefan Dösinger
79666d2b6d
wined3d: Don't return a value from a void function.
2010-08-23 13:37:03 +02:00
Henri Verbeet
37c8632811
wined3d: Make some lookup tables const.
2010-08-04 13:24:24 +02:00
Henri Verbeet
4936e71828
wined3d: Clamp vertex shader outputs.
...
To avoid having to interpolate infinities over fragments.
2010-07-29 17:33:35 +02:00
Henri Verbeet
2114a36936
wined3d: Unify vertex shader output handling between shader models.
2010-07-29 17:33:35 +02:00
Henri Verbeet
ea2bb2a904
wined3d: Invalid NP2 fixup info is an internal error.
2010-07-28 12:22:52 +02:00
Henri Verbeet
0d25da0c0d
wined3d: Properly take both input and output masks into account in handle_ps3_input().
2010-07-28 12:22:50 +02:00
Henri Verbeet
ce39714228
wined3d: Check for unread registers in a more logical way in handle_ps3_input().
...
~0U always >= (in_count + 2).
2010-07-28 12:22:40 +02:00
Francois Gouget
620087c545
wined3d: Remove spaces after '\n's.
2010-06-24 10:33:46 +02:00
Rico Schüller
c223e73bbb
wined3d: Improve fglrx glsl spam filter.
2010-06-15 19:58:30 +02:00
Henri Verbeet
6f57aabc0a
wined3d: Handle a zero source value for WINED3DSIH_POW.
2010-05-27 14:46:43 +02:00
Henri Verbeet
e8ac9bbd7f
wined3d: Get rid of GLINFO_LOCATION.
2010-05-25 13:29:00 +02:00
Henri Verbeet
79145e215b
wined3d: Add support for shadow samplers.
2010-05-17 13:19:53 +02:00
Henri Verbeet
49e076eabd
wined3d: Separate context acquisition and state application.
2010-05-04 13:14:59 +02:00
Henri Verbeet
f09b8e454d
wined3d: Avoid some needless depth buffer copies.
...
If an application switches between render targets of a different size, but
with the same depth/stencil surface it'll typically clear the depth/stencil
surface before drawing. However, in case of the smaller render target that
wouldn't be a full clear, so we'd have to do a depth copy if we also switched
between onscreen and offscreen rendering. Keeping track of which part of the
depth/stencil surface is current for onscreen/offscreen allows us to avoid
most of these kinds of copies. The current scheme requires the current/dirty
rectangle to have an origin at (0,0). This could be extended to an arbitrary
rectangle, but the bookkeeping becomes somewhat more complex in that case, and
it's not clear that there would be much of a benefit at this point.
2010-04-29 10:19:39 -05:00
Alexandre Julliard
fdfabd53f1
wined3d: Avoid a compiler warning on old gcc.
2010-04-26 07:18:18 -05:00
Henri Verbeet
1c403e44b5
wined3d: Store the current render target as an IWineD3DSurfaceImpl pointer in the context.
2010-04-22 11:28:12 +02:00