Commit Graph

6705 Commits

Author SHA1 Message Date
Joachim Priesner 8fff427bc0 wined3d: Load ModelView matrix for glLightfv calls.
Analogous to the light() function in state.c, the correct ModelView
matrix has to be loaded when glLightfv is called.
2015-04-13 16:41:48 +09:00
Stefan Dösinger c5c7137212 wined3d: Simplify alpha test and color keying in GLSL. 2015-04-10 21:44:13 +09:00
Stefan Dösinger 5c7707dc77 wined3d: Move alpha test states to the fragment pipeline.
This will allow some color keying cleanups. For Core Contexts we'll have
to emulate alpha testing in shaders anyway.
2015-04-10 21:44:01 +09:00
Stefan Dösinger f4b6874491 wined3d: Match blitter and fragment processing color keying capabilities.
This is necessary if e.g. the nvts or ffp fragment processing pipeline
is selected for debugging purposes on a GPU that otherwise supports the
ARB program blitter.
2015-04-10 21:43:51 +09:00
Stefan Dösinger 5d51c97d07 wined3d: Implement color keying in the glsl fragment pipeline. 2015-04-10 21:43:31 +09:00
Stefan Dösinger 2d56694445 wined3d: Implement color keying in arbfp_blit. 2015-04-10 21:43:12 +09:00
Stefan Dösinger 439076d591 wined3d: Allow ARB blits from converted surfaces. 2015-04-10 21:42:47 +09:00
Stefan Dösinger 82db5954c4 wined3d: Set color keys through the command stream. 2015-04-10 21:42:41 +09:00
Maxime Lombard 086d2af629 wined3d: Add support for Nvidia GTX 970M. 2015-04-10 21:42:27 +09:00
Sebastian Lackner 14219b0c3b wined3d: Fix a typo in vertexshader_init.
Should fix the graphical corruptions recently introduced by
002713de6d.
2015-04-08 23:14:24 +09:00
Sebastian Lackner 3a14df3b9a wined3d: Fix typo in init_output_registers. 2015-04-08 16:22:41 +09:00
Stefan Dösinger b413a4e202 wined3d: Add more formats to wined3d_format_convert_color_to_float. 2015-04-07 23:10:33 +09:00
Stefan Dösinger fa0a9232e0 wined3d: Move surface_convert_color_to_float to utils.c. 2015-04-07 23:10:30 +09:00
Stefan Dösinger 8a101bc1f5 wined3d: Add a function for wined3d_gl_resource_type to texture target conversion. 2015-04-07 23:10:20 +09:00
Stefan Dösinger f260c17b34 wined3d: Use a shader for unconverted blits. 2015-04-07 23:10:14 +09:00
Stefan Dösinger e8b9f8134d wined3d: Define a constant for the blit texture size parameter. 2015-04-03 00:33:29 +09:00
Stefan Dösinger ad50f872ae wined3d: Pass a struct arbfp_blit_type to the blit shader generation functions. 2015-04-03 00:33:28 +09:00
Stefan Dösinger 6cf421399b wined3d: Use bitfields in struct arbfp_blit_type. 2015-04-03 00:33:28 +09:00
Stefan Dösinger da7abd29b4 wined3d: Pass a wined3d_ffp_texture_type enum to blit shader functions. 2015-04-03 00:33:28 +09:00
Stefan Dösinger 844c4efb47 wined3d: Give tex_type and its values a better name. 2015-04-03 00:33:28 +09:00
Henri Verbeet 94b0e895db wined3d: Use GLSL 1.30 for SM4 shaders when available.
This is required for bitwise operators in particular if no other extension
provides them.
2015-03-31 18:49:28 +09:00
Henri Verbeet d0d8a7827b wined3d: Take WINED3D_PIXEL_CENTER_INTEGER into account when calculating vpos. 2015-03-31 18:49:28 +09:00
Henri Verbeet 94967c28b9 wined3d: Add support for half-integer pixel centers.
Like in OpenGL and Direct3D 10+.
2015-03-30 19:10:29 +09:00
Matteo Bruni 05757794a0 wined3d: Don't use the builtin FFP uniform for the projection matrix. 2015-03-27 20:40:38 +09:00
Matteo Bruni 7a8ac888de wined3d: Don't use the builtin FFP uniform for the normal matrix. 2015-03-27 20:40:38 +09:00
Stefan Dösinger be4c7a0a84 wined3d: Implement per stage constants in atifs. 2015-03-27 20:40:37 +09:00
Stefan Dösinger 3c2d0b983a wined3d: Avoid constant collision in atifs. 2015-03-24 20:06:18 +09:00
Stefan Dösinger 239e8cad7c wined3d: Add per-context private data for fragment pipelines. 2015-03-24 20:06:15 +09:00
Stefan Dösinger 1b0c063632 wined3d: Check for conversion changes in the atifs fragment pipeline.
Mapping colorop to pixelshader is necessary because misc_state_template
defines a pixel shader handler. We have to use the same representative
in all pipeline parts.

Wined3d_cs_exec_set_texture dirtifies the pixel shader state when the
fixup of a texture changes. Atifs no longer needs a pixel shader handler
on its own since vertex shader updates aren't delayed any more when the
pixel shader state is dirty.
2015-03-24 20:06:05 +09:00
Stefan Dösinger 92fee8c04f wined3d: Improve color fixups in atifs shaders.
The abilities of this hardware is too limited to support generic sign /
swizzle fixups. A generic handler would consume 4 of the 8 available
color instruction slots and 2 alpha instruction slots.

The bump mapping handler code has its own way of handling the color
fixups. It merges the fixup into the perturbation calculation without
requiring extra shader instructions. In theory this is possible for the
majority of d3d texture ops as well, but I don't think this is worth the
effort. I expect that this code will only be used for the ddraw signed
format test in practice.
2015-03-24 20:05:46 +09:00
Henri Verbeet 010ff106dd d3d10core: Implement d3d10_device_DrawInstanced(). 2015-03-24 17:41:17 +09:00
Henri Verbeet a33d3ad41b wined3d: Add support for SV_InstanceID. 2015-03-24 17:41:12 +09:00
Henri Verbeet f9fafb3686 wined3d: Use the "sysval_semantic" field instead of "semantic_name" to recognize SV_POSITION. 2015-03-24 17:41:09 +09:00
Henri Verbeet 1b08196c5a wined3d: Implement d3d10 style instance data step rates. 2015-03-24 17:41:06 +09:00
Matteo Bruni 74cda79ac3 wined3d: Introduce a get_texture_matrix() function. 2015-03-23 22:59:20 +09:00
Matteo Bruni 2d270f31c6 wined3d: Introduce a get_projection_matrix() function.
Notice that I'm using floats instead of doubles in the new function,
mostly to be able to use struct wined3d_matrix and multiply_matrix().
At a rough estimate the precision should still be good enough.
2015-03-23 22:59:19 +09:00
Matteo Bruni 65c8c40b18 wined3d: Use a separate STATE_VIEWPORT state handler in the GLSL pipeline. 2015-03-23 22:59:18 +09:00
Henri Verbeet 88f230b56e d3d10core: Also pass unused input layout elements to wined3d.
While these won't be used by the shader, they potentially affect the
calculated offset for WINED3D_APPEND_ALIGNED_ELEMENT elements.
2015-03-23 22:59:12 +09:00
Henri Verbeet cbe717b8f3 wined3d: Take the input slot into account when handling WINED3D_APPEND_ALIGNED_ELEMENT. 2015-03-23 22:59:11 +09:00
Henri Verbeet f3765e9f77 wined3d: Merge some common shader initialization code into shader_init(). 2015-03-23 22:59:10 +09:00
Henri Verbeet 002713de6d wined3d: Store shader input signatures as a wined3d_shader_signature structure. 2015-03-23 22:59:08 +09:00
Henri Verbeet 2e5ad1b6e3 wined3d: Store shader output signatures as a wined3d_shader_signature structure.
Instead of a fixed array of wined3d_shader_signature_element structures.
Shader model 4 shaders can have different semantics in a single
register, e.g.  v1.xy TEXCOORD0 and v1.zw TEXCOORD1, so having a single
wined3d_shader_signature_element structure per register isn't
necessarily sufficient.
2015-03-23 22:59:07 +09:00
Henri Verbeet ec78d50193 wined3d: Fix a TRACE in wined3d_device_draw_indexed_primitive_instanced(). 2015-03-20 21:32:50 +09:00
Henri Verbeet ba396e4212 wined3d: Simplify the wined3d_matrix structure. 2015-03-20 21:32:46 +09:00
Francois Gouget f505e6fb4a Assorted spelling fixes. 2015-03-19 21:54:14 +09:00
Matteo Bruni 9811d85141 wined3d: Don't use the builtin FFP uniform for the modelview matrix. 2015-03-19 20:56:59 +09:00
Matteo Bruni 425dc69fef wined3d: Use a separate STATE_TRANSFORM(WINED3D_TS_VIEW) state handler in the GLSL pipeline. 2015-03-19 20:56:56 +09:00
Matteo Bruni 99f3e835ac wined3d: Use a separate STATE_VDECL state handler in the GLSL pipeline.
It's mostly a copy of vertexdeclaration() from state.c, with a few
differences due to the new function being private to the GLSL backend
(e.g. d3d_info.vs_clipping is known to be TRUE) and the fragment fog
update part being split out.
2015-03-19 20:56:50 +09:00
Matteo Bruni 50861156e2 wined3d: Introduce a get_modelview_matrix() function. 2015-03-19 20:56:45 +09:00
Matteo Bruni fe4a226bfa wined3d: Introduce a get_identity_matrix() function. 2015-03-19 20:56:42 +09:00