Commit Graph

894 Commits

Author SHA1 Message Date
Henri Verbeet dc21460397 wined3d: Replace "VertexShaderMode" and "PixelShaderMode" with shader model limits. 2013-01-25 11:18:13 +01:00
Henri Verbeet 5ce220eb2f wined3d: Add sRGB writes to the shader backend and fragment pipe caps. 2013-01-22 12:13:42 +01:00
Henri Verbeet c525cf381d wined3d: Move "vs_clipping" to the shader caps. 2013-01-21 12:51:22 +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
Frédéric Delanoy a6db668895 wined3d: Add some 'fall through' comments (coverity). 2012-11-30 11:42:24 +01:00
Henri Verbeet 7f62678c16 d3d10core: Implement d3d10_device_DrawIndexedInstanced(). 2012-11-27 16:54:57 +01:00
Henri Verbeet eefe6346a9 wined3d: Properly handle scalar destinations in shader_glsl_conditional_move().
In particular, we modify dst.write_mask in the code further down in order to
mask out unused channels, but the writemask is ignored for scalar registers.
Since all that code is redundant anyway for scalar destinations, we can just
reuse the special case for scalar src0.
2012-11-27 16:54:50 +01:00
Henri Verbeet 9a27b0ad71 wined3d: Add support for geometry shaders to the GLSL shader backend. 2012-11-15 12:19:36 +01:00
Henri Verbeet 0a7b32e3f0 wined3d: Handle relative addresses in the common code in shader_glsl_get_register_name(). 2012-11-12 12:15:30 +01:00
Henri Verbeet 10d46bc042 wined3d: Add support for GLSL based fixed function fragment shaders. 2012-11-12 12:15:25 +01:00
Henri Verbeet 986f4cb9b1 wined3d: Introduce a separate function for generating the sRGB write GLSL code. 2012-11-09 11:30:25 +01:00
Henri Verbeet f6d05fbae6 wined3d: Introduce a separate function for generating the fixed function fog GLSL code. 2012-11-09 11:30:22 +01:00
Henri Verbeet 02250bb1bd wined3d: Introduce a separate function for initializing ps uniform locations. 2012-11-08 15:37:48 +01:00
Henri Verbeet c9f4cfc96a wined3d: Introduce a separate function for initializing vs uniform locations. 2012-11-08 15:37:48 +01:00
Henri Verbeet e8b0de1e14 wined3d: Use more consistent names for the various bumpenv uniforms. 2012-11-07 11:57:29 +01:00
Henri Verbeet 9b118257c4 wined3d: Introduce a separate structure for the ps specific fields in struct glsl_shader_prog_link. 2012-11-07 11:57:27 +01:00
Henri Verbeet ffd5e3eb81 wined3d: Introduce a separate structure for the vs specific fields in struct glsl_shader_prog_link. 2012-11-06 16:02:34 +01:00
Henri Verbeet b8bb2a4f85 wined3d: Use the shader object ids as program key. 2012-11-06 16:02:34 +01:00
Henri Verbeet 0e856abf6d wined3d: Enable or disable the fragment pipe in shader_select(). 2012-11-05 11:30:33 +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 17e33e9b27 wined3d: Make the shader backend responsible for controlling the fixed function fragment pipe. 2012-10-25 11:48:31 +02:00
Henri Verbeet 81ae7f606b wined3d: Explicitly check the shader type in shader_generate_glsl_declarations(). 2012-10-23 12:11:13 +02:00
Henri Verbeet c490fb37cf wined3d: Implement WINED3DSIH_MOVC in the GLSL shader backend. 2012-10-22 11:44:22 +02:00
Henri Verbeet 7a437c29f3 wined3d: Merge a couple of shader type specific blocks in shader_generate_glsl_declarations(). 2012-10-22 11:44:20 +02:00
Henri Verbeet b96b4c63ee wined3d: Use shader_glsl_get_prefix() in shader_glsl_gen_sample_code(). 2012-10-22 11:44:02 +02:00
Henri Verbeet 6beb7dc1a8 wined3d: Merge most of the code for shader_glsl_cmp() and shader_glsl_cnd(). 2012-10-18 22:32:19 +02:00
Henri Verbeet b72ab48ed8 wined3d: Implement WINED3DSIH_ROUND_NI in the GLSL shader backend. 2012-10-18 22:32:14 +02:00
Henri Verbeet 0c1dd7f7d1 wined3d: Explicitly check the shader type in shader_glsl_load_constantsF(). 2012-10-18 22:32:09 +02:00
Henri Verbeet 7365f9e6af wined3d: Explicitly check the shader type in shader_glsl_get_register_name(). 2012-10-18 22:32:03 +02:00
Henri Verbeet e31945b8aa wined3d: Implement WINED3DSIH_USHR in the GLSL shader backend. 2012-10-18 19:20:12 +02:00
Henri Verbeet 5ca5409b81 wined3d: Implement WINED3DSIH_UDIV in the GLSL shader backend. 2012-10-18 19:20:06 +02:00
Henri Verbeet cc0b1bb03f wined3d: Explcitly check the shader type in shader_glsl_get_sample_function(). 2012-10-18 19:20:01 +02:00
Henri Verbeet e832978adb wined3d: Explicitly check the shader type in shader_glsl_gen_sample_code(). 2012-10-18 19:19:54 +02:00
Henri Verbeet 6c3595fba8 wined3d: Handle WINED3DSPR_PRIMID in the GLSL shader backend. 2012-10-17 11:45:01 +02:00
Henri Verbeet 347dda068f wined3d: Explicitly check the shader type in shader_glsl_mov(). 2012-10-16 11:36:40 +02:00
Henri Verbeet 82a44af259 wined3d: Explicitly check the shader type in shader_glsl_texldl(). 2012-10-16 11:36:34 +02:00
Henri Verbeet 5626e165ff wined3d: Introduce a structure for shader register indices. 2012-10-15 13:31:07 +02:00
Henri Verbeet 21361d5237 wined3d: Use the correct relative address for constant buffers in the GLSL shader backend. 2012-10-15 13:31:06 +02:00
Henri Verbeet 2324ce6efb wined3d: Implement WINED3DSIH_IMUL in the GLSL shader backend. 2012-10-12 13:21:33 +02:00
Henri Verbeet ad1a1ee4fe wined3d: Implement WINED3DSIH_UTOF in the GLSL shader backend. 2012-10-12 13:21:28 +02:00
Henri Verbeet b7cd93240d wined3d: Implement WINED3DSIH_ITOF in the GLSL shader backend. 2012-10-12 13:21:22 +02:00
Henri Verbeet d48a0bc427 wined3d: Implement WINED3DSIH_FTOI in the GLSL shader backend. 2012-10-12 13:21:17 +02:00
Henri Verbeet f8e1550ebb wined3d: Implement WINED3DSIH_LT in the GLSL shader backend. 2012-10-11 18:51:04 +02:00
Henri Verbeet 842f75ee75 wined3d: Implement WINED3DSIH_IGE in the GLSL shader backend. 2012-10-11 18:51:00 +02:00
Henri Verbeet 819e5fa623 wined3d: Implement WINED3DSIH_GE in the GLSL shader backend. 2012-10-11 18:50:56 +02:00
Henri Verbeet 09f5f59229 wined3d: Implement WINED3DSIH_EQ in the GLSL shader backend. 2012-10-11 18:50:53 +02:00
Henri Verbeet 4c4b224330 wined3d: Implement WINED3DSIH_XOR in the GLSL shader backend. 2012-10-11 18:50:46 +02:00
Henri Verbeet 8f915156b9 wined3d: Implement SM4 WINED3DSIH_SINCOS in the GLSL shader backend. 2012-10-10 10:33:18 +02:00
Henri Verbeet e34acc2251 wined3d: Implement SM4 loops in the GLSL shader backend. 2012-10-10 10:33:14 +02:00
Henri Verbeet 6e4ecdf854 wined3d: Implement WINED3DSIH_IADD in the GLSL shader backend. 2012-10-10 10:33:09 +02:00
Henri Verbeet f9c181bf74 wined3d: Implement WINED3DSIH_DIV in the GLSL shader backend. 2012-10-10 10:33:05 +02:00
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
Henri Verbeet c7a1848656 wined3d: Store render targets as IWineD3DSurfaceImpl pointers in the device. 2010-04-20 11:14:30 +02:00
Henri Verbeet 4cd69b8a09 wined3d: Simplify the generated GLSL for NRM. 2010-03-19 14:31:40 +01:00
Henri Verbeet 18ec2525a4 wined3d: Store the swapchain instead of the surface in the context. 2010-03-16 11:44:44 +01:00
Roderick Colenbrander 922ad80f42 wined3d: Rename yuv to complex in order to prepare for 8-bit palette fixups using the same code. 2010-03-03 12:53:41 +01:00
Henri Verbeet 576ea95803 wined3d: Remove the unused device type parameter from the shader backend's get_caps() function. 2010-02-04 13:39:27 +01:00
Henri Verbeet c43c2a2845 wined3d: Use the absolute source value in shader_glsl_rsq(). 2010-02-01 14:16:26 +01:00
Henri Verbeet adf4ca2e23 wined3d: Handle a zero source value for WINED3DSIH_RSQ. 2010-02-01 14:16:22 +01:00
Henri Verbeet ef82681d59 wined3d: Handle a zero source value for WINED3DSIH_RCP. 2010-02-01 14:16:18 +01:00
Henri Verbeet 4a8f93bade wined3d: Handle a zero source value for WINED3DSIH_LOG. 2010-02-01 14:16:15 +01:00
Henri Verbeet bef792f5ff wined3d: Handle zero-length vectors for WINED3DSIH_NRM.
Unfortunately there's no reliable way to generate infinity in GLSL, but a
sufficiently large value will probably do. The important part of the patch is
that we don't generate NaN, because that will keep propagating through the
entire shader.
2010-02-01 14:16:11 +01:00
Henri Verbeet 9f21f2c2f2 wined3d: Dump the GLSL shader source on link failure.
Mostly to help Mesa developers diagnose bug reports involving GLSL compile
failures, but it's convenient in general to have the source all in one place.
2010-01-29 13:30:06 +01:00
Henri Verbeet 705f96fa39 wined3d: Get rid of some unnecessary casts to specific shader types. 2010-01-26 12:08:13 +01:00
Henri Verbeet 3d112b6525 wined3d: Add support for EXT_gpu_shader4 provided sampling functions with explicit derivatives. 2010-01-25 12:58:59 +01:00
Henri Verbeet f71e84d89c wined3d: Store a pointer to the GL info in the shader context. 2010-01-25 12:58:52 +01:00
Henri Verbeet c78cce8845 wined3d: Use the correct GLSL functions for sampling Rect textures with explicit derivatives.
Also kill the obsolete comment.
2010-01-25 12:58:48 +01:00
Henri Verbeet 5f4ff65fb4 wined3d: Use the GLSL round() function when available. 2010-01-25 12:58:43 +01:00
Henri Verbeet 46cefd312c wined3d: Recognize the SM4 cut opcode. 2010-01-07 09:26:54 +01:00
Henri Verbeet 3687677427 wined3d: Recognize the SM4 lt opcode. 2010-01-07 09:26:30 +01:00
Henri Verbeet 6d5aca61f3 wined3d: Recognize the SM4 iadd opcode. 2010-01-07 09:26:25 +01:00
Henri Verbeet 22939f9d29 wined3d: Recognize the SM4 emit opcode. 2010-01-07 09:26:20 +01:00
Henri Verbeet c57c76b78e wined3d: Recognize the SM4 ige opcode. 2010-01-07 09:26:08 +01:00
Henri Verbeet b548e387ae wined3d: Move shader input/output signatures to IWineD3DBaseShaderClass. 2009-12-31 12:12:16 +01:00
Henri Verbeet b3defd4c80 wined3d: Rename "wineD3DDevice" to "device". 2009-12-10 11:54:47 +01:00
Stefan Dösinger 0e77a381ea wined3d: Create clip coords only if they are used.
If GL vertex shader clipping is supported (GLSL or NVvp), we currently
always calculate clipping results in the shader. They're gracefully
discarded by opengl, but we need 6 constants / uniforms to calculate
unused values.
2009-11-12 15:18:00 +01:00
Henri Verbeet 111307dfba wined3d: Get rid of the GL_SUPPORT macro. 2009-10-29 13:09:33 +01:00
Henri Verbeet 48e03bc189 wined3d: Introduce a separate structure for various OpenGL implementation limits. 2009-10-29 13:09:27 +01:00
Henri Verbeet eeb54b9922 wined3d: Keep better track of where we're using wined3d contexts.
The idea here is that we can restore the thread's current GL context on
context_release() if it doesn't correspond to the current wined3d context on
context_acquire().
2009-10-28 11:15:19 +01:00
Henri Verbeet 6be41fd59a wined3d: Get rid of GL_LIMITS. 2009-10-22 10:46:05 +02:00
Henri Verbeet 55047f811a wined3d: Fix some GLINFO_LOCATION abuse. 2009-10-22 10:45:57 +02:00
Henri Verbeet fa548414f9 wined3d: Free the shader buffer in shader_glsl_free() (Valgrind). 2009-10-21 16:05:57 +02:00
Stefan Dösinger 435646550b wined3d: Use GLSL constant limits in GLSL. 2009-10-20 14:46:13 +02:00
Stefan Dösinger 2d802af4d9 wined3d: Make shader specific constants accessible via GL_LIMITS. 2009-10-20 14:46:08 +02:00
Stefan Dösinger dc45657f2c wined3d: Fix vs_2_0 sgn.
vs_2_0's sgn has two extra parameters - temporary registers for the
instruction. This patch fixes the crash of the d3d9:visual test on windows and
properly handles the vs_2_0 version of sgn.
2009-10-02 12:36:59 +02:00
Henri Verbeet f88c6e5ce5 wined3d: Move common shader fields to IWineD3DBaseShaderClass. 2009-09-25 15:14:35 +02:00
Rico Schüller 8a890d399a wined3d: Fix shader spam. 2009-09-18 10:47:17 -05:00
Henri Verbeet ab8523931a wined3d: Only warn about using Lod sample functions in fragment shaders is ARB_shader_texture_lod isn't supported. 2009-09-01 14:05:51 +02:00
Henri Verbeet 560d63548d wined3d: Remove trailing spaces. 2009-08-27 11:45:37 +02:00
Henri Verbeet dc8b1bdc0f wined3d: Rename some GLSL instruction handlers.
The pshader_glsl_* names are a leftover from when we had separate code for
vertex and fragment shaders.
2009-08-19 14:45:23 +02:00
Henri Verbeet e205973915 wined3d: Remove the redundant vs_nv_version and ps_nv_version fields from struct wined3d_gl_info. 2009-08-13 11:45:36 +02:00
Henri Verbeet f7918b978f wined3d: Make the "luminanceparams" shader_reg_maps member a bitmap. 2009-08-12 13:22:50 +02:00
Henri Verbeet 95bb4c0486 wined3d: Make the "bumpmat" shader_reg_maps member a bitmap. 2009-08-12 13:22:44 +02:00
Henri Verbeet 3d718d6414 wined3d: Make the "labels" shader_reg_maps member a bitmap. 2009-08-12 13:22:37 +02:00
Henri Verbeet 270f57e755 wined3d: Make the "address" shader_reg_maps member a bitmap. 2009-08-12 13:22:30 +02:00
Henri Verbeet 6fa9fa15da wined3d: Make the "temporary" shader_reg_maps member a bitmap. 2009-08-11 12:36:20 +02:00
Henri Verbeet 50853e295b wined3d: Make the "texcoord" shader_reg_maps member a bitmap. 2009-08-11 12:36:16 +02:00
Henri Verbeet b2ace3b1ab wined3d: Correctly check for luminance bumpmap parameters in shader_generate_glsl_declarations(). 2009-08-11 12:35:49 +02:00
Francois Gouget e74efb5487 Assorted spelling fixes. 2009-08-11 12:35:38 +02:00
Henri Verbeet 8d746c31ba wined3d: Properly handle negative loop step in shader_glsl_loop(). 2009-08-10 13:52:37 +02:00