Commit Graph

1314 Commits

Author SHA1 Message Date
Józef Kucia f38de4ff61 wined3d: Fix memory leak in shader_glsl_init_transform_feedback().
Signed-off-by: Józef Kucia <jkucia@codeweavers.com>
Signed-off-by: Henri Verbeet <hverbeet@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2018-05-14 16:05:23 +02:00
Henri Verbeet 71f24b8dbd wined3d: Add core context P8 blit support to the GLSL blitter.
We use GL_R8 for WINED3DFMT_P8_UINT in core contexts, since GL_ALPHA8 is not
available.

Signed-off-by: Henri Verbeet <hverbeet@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2018-04-30 20:41:59 +02:00
Matteo Bruni a46e47f8d0 wined3d: Implement P8 blits in the GLSL blitter.
Signed-off-by: Henri Verbeet <hverbeet@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2018-04-30 10:40:17 +02:00
Henri Verbeet 67df305261 wined3d: Make the "args" parameter to glsl_blitter_generate_program() const.
Signed-off-by: Henri Verbeet <hverbeet@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2018-04-30 10:40:12 +02:00
Józef Kucia 16517e4eea wined3d: Implement copying for 1D textures.
1D textures are handled by raw and CPU blitter.

Signed-off-by: Józef Kucia <jkucia@codeweavers.com>
Signed-off-by: Henri Verbeet <hverbeet@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2018-04-27 16:33:28 +02:00
Józef Kucia f6160d2ae8 wined3d: Disable transform feedback when there are no varyings to record.
In order to avoid GL errors when glBeginTransformFeedback() is called.
This is required only because we do not fully support stream output
component ranges.

Signed-off-by: Józef Kucia <jkucia@codeweavers.com>
Signed-off-by: Henri Verbeet <hverbeet@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2018-04-26 20:30:30 +02:00
Józef Kucia 3702e2bc42 wined3d: Avoid using gl_ViewportIndex unnecessarily.
Fixes geometry shaders when ARB_viewport_array is not available.

Signed-off-by: Józef Kucia <jkucia@codeweavers.com>
Signed-off-by: Henri Verbeet <hverbeet@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2018-04-24 00:25:15 +02:00
Józef Kucia ca8e05154e wined3d: Add support for stream output with vertex shaders.
In Direct3D, a stream-output geometry shader can be created from a
vertex shader bytecode. We generate a pass-through geometry shader in
this case. Pass-through geometry shaders are helpful because they can
easily split outputs when rasterization is disabed. We could also add
another codepath in order to avoid geometry shaders when possible.

Signed-off-by: Józef Kucia <jkucia@codeweavers.com>
Signed-off-by: Henri Verbeet <hverbeet@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2018-04-24 00:25:15 +02:00
Matteo Bruni f7926c0793 wined3d: Allow context_draw_shaded_quad() to function without immediate mode draws.
Signed-off-by: Henri Verbeet <hverbeet@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2018-04-19 13:29:52 +02:00
Matteo Bruni 0c2f9a4f34 wined3d: Enable GL_ARB_viewport_array extension in GLSL shaders.
Signed-off-by: Matteo Bruni <mbruni@codeweavers.com>
Signed-off-by: Henri Verbeet <hverbeet@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2018-04-18 21:36:47 +02:00
Matteo Bruni 29d506939e wined3d: Use staging resources to blit from CPU resources in the GLSL blitter.
Signed-off-by: Henri Verbeet <hverbeet@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2018-04-16 21:38:15 +02:00
Matteo Bruni aa59d40a18 wined3d: Implement source fixups in the GLSL blitter.
Signed-off-by: Henri Verbeet <hverbeet@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2018-04-16 21:38:15 +02:00
Nikolay Sivov 853f6538e4 wined3d: Add support for setting multiple viewports.
Signed-off-by: Nikolay Sivov <nsivov@codeweavers.com>
Signed-off-by: Henri Verbeet <hverbeet@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2018-04-16 20:42:56 +02:00
Matteo Bruni 2f0777b8aa wined3d: Introduce a GLSL-based blitter.
Signed-off-by: Henri Verbeet <hverbeet@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2018-04-12 14:14:01 +02:00
Józef Kucia 13a53aa969 wined3d: Require BPTC compression for SM5.
It's required for feature level 11_0.

At some point, we probably would like to separate shader model checks
from feature level checks.

Signed-off-by: Józef Kucia <jkucia@codeweavers.com>
Signed-off-by: Henri Verbeet <hverbeet@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2018-04-10 12:57:48 +02:00
Sven Hesse 0e9f94ec1c wined3d: Implement support for 1D textures.
Signed-off-by: Henri Verbeet <hverbeet@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2018-04-03 09:38:45 +02:00
Henri Verbeet 4aaf9ebe82 wined3d: Get rid of the dst_arg enum.
Signed-off-by: Henri Verbeet <hverbeet@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2018-03-23 14:02:53 +01:00
Henri Verbeet 06a4f978ac wined3d: Use upper-case enum elements in the projection_types enum.
Signed-off-by: Henri Verbeet <hverbeet@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2018-03-23 14:02:46 +01:00
Henri Verbeet 9cdc8876b0 wined3d: Use upper-case enum elements in the vertexprocessing_mode enum.
Signed-off-by: Henri Verbeet <hverbeet@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2018-03-23 14:02:41 +01:00
Henri Verbeet f08342f573 wined3d: Use the global memory allocation helpers.
Signed-off-by: Henri Verbeet <hverbeet@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2018-02-14 09:06:58 +01:00
Józef Kucia 220841f33a wined3d: Do not enable GL_ARB_texture_multisample in GLSL.
GLSL 1.50 is required for SM4+.

Signed-off-by: Józef Kucia <jkucia@codeweavers.com>
Signed-off-by: Henri Verbeet <hverbeet@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2018-02-09 18:53:11 +01:00
Józef Kucia cd5f8f786b wined3d: Fix resinfo for multisample textures.
Signed-off-by: Józef Kucia <jkucia@codeweavers.com>
Signed-off-by: Henri Verbeet <hverbeet@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2018-02-08 21:07:12 +01:00
Józef Kucia f2e614b1f8 wined3d: Implement ld2dms instruction.
Signed-off-by: Józef Kucia <jkucia@codeweavers.com>
Signed-off-by: Henri Verbeet <hverbeet@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2018-02-05 16:24:50 +01:00
Józef Kucia 780ec0c1f9 wined3d: Add support for multisample samplers.
Signed-off-by: Józef Kucia <jkucia@codeweavers.com>
Signed-off-by: Henri Verbeet <hverbeet@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2018-02-05 16:24:48 +01:00
Józef Kucia 4a55ddce47 wined3d: Recognize SM5 eval_sample_index instruction.
Signed-off-by: Józef Kucia <jkucia@codeweavers.com>
Signed-off-by: Henri Verbeet <hverbeet@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2017-12-11 18:21:15 +01:00
Józef Kucia 72ecfb0ae4 wined3d: Fix relative addressing for SM4+ vertex shader inputs.
Relative addressing doesn't necessarily work for SM3.

Signed-off-by: Józef Kucia <jkucia@codeweavers.com>
Signed-off-by: Henri Verbeet <hverbeet@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2017-12-07 19:14:11 +01:00
Józef Kucia 266f1054b5 wined3d: Correctly transform FFP clip planes.
A plane isn't transformed as simply as a vector.

Signed-off-by: Józef Kucia <jkucia@codeweavers.com>
Signed-off-by: Matteo Bruni <mbruni@codeweavers.com>
Signed-off-by: Henri Verbeet <hverbeet@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2017-12-05 20:30:06 +01:00
Józef Kucia 429e0c9130 wined3d: Implement SV_CullDistance.
Signed-off-by: Józef Kucia <jkucia@codeweavers.com>
Signed-off-by: Henri Verbeet <hverbeet@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2017-12-05 20:30:06 +01:00
Józef Kucia 431aa3274c wined3d: Implement SV_ClipDistance.
In D3D10+ all clip distances declared in a shader are always enabled.
In other words, enablement of clip distances is a property of a shader.

Signed-off-by: Józef Kucia <jkucia@codeweavers.com>
Signed-off-by: Henri Verbeet <hverbeet@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2017-12-05 20:30:05 +01:00
Henri Verbeet 89d038e189 wined3d: Really remove an outdated comment.
Signed-off-by: Henri Verbeet <hverbeet@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2017-12-04 15:04:02 +01:00
Józef Kucia 2fdec9a898 wined3d: Limit number of supported user clip planes to 8.
We never supported, and we should never need to support more than 8 user
clip planes in wined3d.

OpenGL drivers do not expose more than 8 clip distances. Similarly,
other APIs, D3D10, D3D11 and D3D12 provide exactly 8 clip distances.

Signed-off-by: Józef Kucia <jkucia@codeweavers.com>
Signed-off-by: Henri Verbeet <hverbeet@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2017-12-04 11:52:05 +01:00
Józef Kucia 577ccfdda9 wined3d: Introduce helper function to generate conditional instructions.
Signed-off-by: Józef Kucia <jkucia@codeweavers.com>
Signed-off-by: Henri Verbeet <hverbeet@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2017-12-01 15:56:55 +01:00
Józef Kucia f3e612bf16 wined3d: Fix SM4 discard_z instruction.
Signed-off-by: Józef Kucia <jkucia@codeweavers.com>
Signed-off-by: Henri Verbeet <hverbeet@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2017-12-01 15:56:54 +01:00
Austin English 96288ce94a wined3d: Remove outdated comment.
Signed-off-by: Austin English <austinenglish@gmail.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2017-12-01 09:18:02 +01:00
Józef Kucia 4cfa13c533 wined3d: Invalidate pixel shader only when rasterization is toggled.
Signed-off-by: Józef Kucia <jkucia@codeweavers.com>
Signed-off-by: Henri Verbeet <hverbeet@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2017-11-07 21:24:45 +01:00
Józef Kucia b9464cfdc2 wined3d: Handle stream output components when rasterization is disabled.
Geometry shader outputs can be freely split when there is no pixel shader.

Signed-off-by: Józef Kucia <jkucia@codeweavers.com>
Signed-off-by: Henri Verbeet <hverbeet@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2017-11-07 21:24:45 +01:00
Józef Kucia 57433da776 wined3d: Disable pixel shader when rasterization is disabled.
Allows us to split shader output variables when rasterization
is disabled.

Signed-off-by: Józef Kucia <jkucia@codeweavers.com>
Signed-off-by: Henri Verbeet <hverbeet@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2017-11-07 21:24:45 +01:00
Józef Kucia ce8610cea5 wined3d: Use textureGrad*() to implement sample_c_lz for array and cube textures.
Based on a patch by Michael Müller.

Signed-off-by: Józef Kucia <jkucia@codeweavers.com>
Signed-off-by: Henri Verbeet <hverbeet@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2017-11-06 19:37:15 +01:00
Józef Kucia dbea9b3ef4 wined3d: Require ARB_draw_indirect for SM5.
In order to disable feature level 11_0 when indirect draws
are not supported.

Signed-off-by: Józef Kucia <jkucia@codeweavers.com>
Signed-off-by: Henri Verbeet <hverbeet@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2017-11-03 23:44:53 +01:00
Józef Kucia 0832b5cded wined3d: Skip unhandled stream output components.
This should at least avoid trashing other stream output elements.

Signed-off-by: Józef Kucia <jkucia@codeweavers.com>
Signed-off-by: Henri Verbeet <hverbeet@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2017-10-19 16:53:49 +02:00
Józef Kucia 9cb69d91b2 wined3d: Pack interpolation modes.
Signed-off-by: Józef Kucia <jkucia@codeweavers.com>
Signed-off-by: Henri Verbeet <hverbeet@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2017-10-18 15:38:18 +02:00
Józef Kucia 5189a4f135 wined3d: Implement SM4+ interpolation modifiers for GLSL < 4.40.
Signed-off-by: Józef Kucia <jkucia@codeweavers.com>
Signed-off-by: Henri Verbeet <hverbeet@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2017-10-18 15:38:16 +02:00
Józef Kucia 46b3a03a97 wined3d: Implement interpolation mode when GLSL 4.40 is available.
Signed-off-by: Józef Kucia <jkucia@codeweavers.com>
Signed-off-by: Henri Verbeet <hverbeet@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2017-10-18 15:38:13 +02:00
Józef Kucia 5deb1a20c3 wined3d: Use GLSL 4.40 if available.
Signed-off-by: Józef Kucia <jkucia@codeweavers.com>
Signed-off-by: Henri Verbeet <hverbeet@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2017-10-18 15:38:13 +02:00
Józef Kucia f75f581aa2 wined3d: Unroll SM4+ pixel shader inputs.
In order to add interpolation qualifiers per shader input.

Hull shader outputs are not unrolled because they can be accessed
through the indexable vocp register.

Signed-off-by: Józef Kucia <jkucia@codeweavers.com>
Signed-off-by: Henri Verbeet <hverbeet@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2017-10-18 15:37:54 +02:00
Józef Kucia 033df63757 wined3d: Use correct data type for immediate constants.
In order to generate correct GLSL for image stores.

Signed-off-by: Józef Kucia <jkucia@codeweavers.com>
Signed-off-by: Henri Verbeet <hverbeet@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2017-10-16 15:26:33 +02:00
Michael Müller 76783293cf wined3d: Add conservative depth output information to GLSL pixel shaders.
Signed-off-by: Józef Kucia <jkucia@codeweavers.com>
Signed-off-by: Henri Verbeet <hverbeet@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2017-09-11 18:43:16 +02:00
Michael Müller c95e0ef092 wined3d: Recognize conservative depth output registers.
Signed-off-by: Józef Kucia <jkucia@codeweavers.com>
Signed-off-by: Henri Verbeet <hverbeet@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2017-09-11 18:43:12 +02:00
Józef Kucia a6d26527c6 wined3d: Implement forceEarlyDepthStencil shader global flag.
Signed-off-by: Józef Kucia <jkucia@codeweavers.com>
Signed-off-by: Henri Verbeet <hverbeet@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2017-07-24 18:58:30 +02:00
Józef Kucia 5151b80b2d wined3d: Translate ld_{raw, structured} instructions more carefully.
Signed-off-by: Józef Kucia <jkucia@codeweavers.com>
Signed-off-by: Henri Verbeet <hverbeet@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2017-07-18 20:43:33 +02:00