Commit Graph

600 Commits

Author SHA1 Message Date
Józef Kucia 6fa62b2667 wined3d: Move internal format queries to separate function.
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>
2016-02-09 00:37:25 +09:00
Henri Verbeet 36b38b8a20 wined3d: Introduce a debug function for struct wined3d_box.
Signed-off-by: Henri Verbeet <hverbeet@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2016-02-04 14:41:49 +09:00
Józef Kucia 4d162e2e6c wined3d: Add support for WINED3DFMT_R16_UNORM format.
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>
2016-01-29 23:40:33 +09:00
Józef Kucia 5aef8a8b82 wined3d: Add support for WINED3DFMT_R32G32B32_FLOAT format.
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>
2016-01-29 23:40:30 +09:00
Matteo Bruni b1429f931e wined3d: Add a real implementation of wined3d_check_device_multisample_type().
Signed-off-by: Matteo Bruni <mbruni@codeweavers.com>
Signed-off-by: Henri Verbeet <hverbeet@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2016-01-29 00:42:25 +09:00
Matteo Bruni 961215b8b8 wined3d: Improve wined3d_popcount() implementation.
Signed-off-by: Matteo Bruni <mbruni@codeweavers.com>
Signed-off-by: Henri Verbeet <hverbeet@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2016-01-27 23:35:31 +09:00
Henri Verbeet cf899ac267 wined3d: Rename WINED3D_RTYPE_VOLUME_TEXTURE to WINED3D_RTYPE_TEXTURE_3D.
Signed-off-by: Henri Verbeet <hverbeet@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2016-01-27 12:38:50 +09:00
Henri Verbeet dafaae7730 wined3d: Unify WINED3D_RTYPE_TEXTURE and WINED3D_RTYPE_CUBE_TEXTURE.
Signed-off-by: Henri Verbeet <hverbeet@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2016-01-27 12:38:46 +09:00
Józef Kucia dbfb379438 wined3d: Add support for WINED3DFMT_R8G8B8A8_SINT 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>
2016-01-26 22:32:40 +09:00
Józef Kucia 4cec8df5ee wined3d: Add support for WINED3DFMT_R8G8B8A8_UINT 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>
2016-01-26 22:32:40 +09:00
Józef Kucia a5889a5cda wined3d: Add support for WINED3DFMT_R8G8_UNORM format.
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>
2016-01-08 21:36:31 +09:00
Józef Kucia 09d2e1d484 wined3d: Add support for WINED3DFMT_BC2_UNORM format.
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>
2016-01-08 21:36:23 +09:00
Józef Kucia 3e11204210 wined3d: Add support for WINED3DFMT_BC1_UNORM format.
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>
2016-01-08 21:36:20 +09:00
Józef Kucia 9d3460c9e0 wined3d: Add support for WINED3DFMT_BC3_UNORM format.
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>
2016-01-08 21:36:17 +09:00
Stefan Dösinger bcabae6f40 wined3d: Clip software cursor blits.
This prevents the SW cursor from disappearing when it is at the edge of
the screen.

Signed-off-by: Stefan Dösinger <stefandoesinger@gmx.at>
Signed-off-by: Henri Verbeet <hverbeet@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2015-12-12 05:27:11 +01:00
Matteo Bruni 0985606be4 wined3d: Flat shading emulation for core contexts.
Signed-off-by: Matteo Bruni <mbruni@codeweavers.com>
Signed-off-by: Henri Verbeet <hverbeet@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2015-11-13 22:54:23 +09:00
Henri Verbeet 99033b1453 wined3d: Get rid of getDepthStencilBits().
Signed-off-by: Henri Verbeet <hverbeet@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2015-11-04 14:41:39 +09:00
Henri Verbeet e0ab314b62 wined3d: Get rid of getColorBits().
Signed-off-by: Henri Verbeet <hverbeet@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2015-11-04 14:41:38 +09:00
Matteo Bruni 59cb65b153 wined3d: Add a format fixup for INTZ on core profile.
Signed-off-by: Matteo Bruni <mbruni@codeweavers.com>
Signed-off-by: Henri Verbeet <hverbeet@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2015-10-22 17:32:12 +09:00
Matteo Bruni 09eda02b68 wined3d: Output all the texture coordinates in the FFP replacement VS when there are enough varyings.
Signed-off-by: Matteo Bruni <mbruni@codeweavers.com>
Signed-off-by: Henri Verbeet <hverbeet@codeweavers.com>
2015-10-07 21:28:54 +09:00
Matteo Bruni f511787423 wined3d: Avoid reading uninitialized texcoord varyings in FFP replacement fragment shaders.
Signed-off-by: Matteo Bruni <mbruni@codeweavers.com>
Signed-off-by: Henri Verbeet <hverbeet@codeweavers.com>
2015-10-07 21:28:53 +09:00
Matteo Bruni 47bf62962a wined3d: Initialize unwritten texcoord varyings in the FFP replacement vertex shader.
Only when the GPU supports enough varyings.

Signed-off-by: Matteo Bruni <mbruni@codeweavers.com>
2015-10-06 19:23:07 +09:00
Stefan Dösinger a887a87a90 wined3d: WINED3DFMT_B5G5R5X1_UNORM doesn't have an alpha channel.
Signed-off-by: Stefan Dösinger <stefan@codeweavers.com>
2015-10-02 15:38:04 +09:00
Henri Verbeet 2773b27bb1 wined3d: Use unsigned mask constants in shifts. 2015-08-26 23:53:22 +09:00
Stefan Dösinger 1a965811f6 wined3d: Add a slop for color keying. 2015-08-24 20:42:20 +09:00
Stefan Dösinger 3bd0eb3eab wined3d: Use GL_RGB565 if available.
This offers better precision on r300g and r600g than GL_RGB5.
2015-08-20 20:16:15 +09:00
Henri Verbeet 7f29d994ad wined3d: Add base format info for WINED3DFMT_R8G8B8A8_UNORM_SRGB. 2015-08-06 23:36:01 +09:00
Stefan Dösinger 34d8b987c4 wined3d: Try to detect the polygon offset scale value.
FEAR draws the same geometry twice, the second time using zfunc=equal.
In both cases it sets a huge depth bias of -0.5, presumably to get
better precision for the fragile Z comparison. The GL polygon offset we
set ends up being so large that it pulls the geometry into the negative
Z range. It isn't clipped (or no longer, older NV drivers probably had a
separate bug there), but the Z value gets clamped to 0.0 in the first
draw and doesn't match the incoming Z in the second draw.
2015-07-30 23:50:57 +02:00
Matteo Bruni 12ef1756d2 wined3d: Don't run check_filter() on core contexts.
The code uses glBegin() / glEnd() and other APIs removed from core
profile.
2015-07-28 13:41:47 +02:00
Matteo Bruni 53d1527945 wined3d: Avoid glBegin() / glEnd() in check_fbo_compat() when possible. 2015-07-28 13:41:46 +02:00
Matteo Bruni 04a195a980 wined3d: Use a core-compatible GL format for ATI2N. 2015-07-07 21:04:12 +09:00
Józef Kucia 1f680c52fe wined3d: Implement vertex blending in glsl_vertex_pipe. 2015-07-03 16:51:34 +09:00
Matteo Bruni 170dca7741 wined3d: Handle per-vertex point size in the GLSL FFP replacement. 2015-06-17 20:01:19 +09:00
Matteo Bruni 4189d29776 wined3d: Avoid the builtin GLSL vertex attributes. 2015-06-12 21:23:12 +09:00
Stefan Dösinger 985c061ad3 wined3d: Downgrade the framebuffer attachment FIXMEs to WARNs. 2015-06-09 22:09:58 +09:00
Stefan Dösinger 733d4b5ecc wined3d: Don't use depth textures without ARB_depth_texture. 2015-06-09 22:09:57 +09:00
Stefan Dösinger 28af7b407b wined3d: Require FBO attachability for render targets and depth stencils. 2015-06-09 22:09:57 +09:00
Stefan Dösinger 04c3c97072 wined3d: Set WINED3DFMT_FLAG_FBO_ATTACHABLE on depth stencil formats. 2015-06-09 22:09:57 +09:00
Stefan Dösinger dc7cb59c3a wined3d: Keep track of renderbuffer capabilities. 2015-06-08 18:51:30 +09:00
Matteo Bruni b02a166cc8 wined3d: Introduce a get_fog_start_end() function. 2015-06-05 16:53:16 +09:00
Matteo Bruni 92fbe333d0 wined3d: Handle point sprites with PS 3.0. 2015-06-05 16:52:29 +09:00
Matteo Bruni 953a45303c wined3d: Introduce a get_pointsize() function. 2015-05-29 16:44:18 +09:00
Matteo Bruni 36520c3e9d wined3d: Introduce a get_pointsize_minmax() function. 2015-05-29 16:44:13 +09:00
Stefan Dösinger bd658a15b9 wined3d: Check resource types separately in check_fbo_compat. 2015-05-25 21:43:18 +09:00
Stefan Dösinger d030c5ad06 wined3d: Don't allow 3D depth textures. 2015-05-19 22:56:14 +09:00
Stefan Dösinger 0356cbfab9 wined3d: Fix a copy / paste mistake. 2015-05-08 14:37:17 +09:00
Matteo Bruni 0c05f9f8fd wined3d: Rename *emission* as *emissive*.
Emission is the OpenGL name, emissive the D3D one. Prefer the latter.
2015-05-05 18:50:56 +09:00
Matteo Bruni 15720f09de wined3d: Report ATI1N and ATI2N volume textures as not supported. 2015-04-30 19:58:01 +09:00
Stefan Dösinger 0152b0dad3 wined3d: Move the ARB_texture_rectangle check to init_format_texture_info. 2015-04-27 15:07:48 +09:00
Stefan Dösinger 0d6d64b358 wined3d: Move the ARB_texture_cube_map check to init_format_texture_info. 2015-04-27 15:07:46 +09:00
Stefan Dösinger 7109bebd02 wined3d: Move volume DXTn handling to apply_format_fixups. 2015-04-27 15:07:42 +09:00
Stefan Dösinger 072e1a3fb2 wined3d: Move the EXT_texture3D check to init_format_texture_info. 2015-04-24 19:08:45 +09:00
Stefan Dösinger 9def5ff409 wined3d: Query info for each resource type from ARB_internalformat_query2. 2015-04-24 19:08:41 +09:00
Stefan Dösinger 3c0ed9ce0a wined3d: Introduce resource-type specific format flags. 2015-04-24 19:08:35 +09:00
Stefan Dösinger 4fbaab2020 wined3d: Shadow format flags in wined3d_rendertarget_view. 2015-04-23 20:43:20 +09:00
Stefan Dösinger 382fa588a9 wined3d: Handle color key dirtification in wined3d_cs_exec_set_texture. 2015-04-15 22:21:57 +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 82db5954c4 wined3d: Set color keys through the command stream. 2015-04-10 21:42: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 844c4efb47 wined3d: Give tex_type and its values a better name. 2015-04-03 00:33: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
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
Henri Verbeet ba396e4212 wined3d: Simplify the wined3d_matrix structure. 2015-03-20 21:32:46 +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
Stefan Dösinger d4db09d0e9 wined3d: Support WINED3DFMT_R5G5_SNORM_L6_UNORM with EXT_texture_snorm.
From: Stefan Dösinger <stefandoesinger@gmx.at>
2015-03-10 21:43:34 +09:00
Stefan Dösinger 6df52ca7e6 wined3d: Add support for GL_EXT_texture_snorm. 2015-03-10 21:43:32 +09:00
Stefan Dösinger 6f2f73a456 wined3d: Improve the unsigned emulation of WINED3DFMT_R5G5_SNORM_L6_UNORM. 2015-03-10 21:43:11 +09:00
Stefan Dösinger ce836bf651 wined3d: Properly up-scale WINED3DFMT_R5G5_SNORM_L6_UNORM. 2015-03-10 21:43:07 +09:00
Stefan Dösinger 52ab9e382e wined3d: Read WINED3D_TEXTURE_COLOR_KEY and gl_color_key to find format conversions.
The idea is to make it clear that wined3d_texture_load is responsible
for checking the color key for changes. Once we can do color keying in
the shader we also have one place where we can disable the surface
conversion.
2015-02-18 22:02:39 +09:00
Henri Verbeet ca06f960ed wined3d: Use the same flags for wined3d_texture_set_color_key() and the "color_key_flags" field it sets.
This fixes a regression introduced by commit a8ab569415.
2015-01-19 14:31:51 +01:00
Henri Verbeet 2e5abc156a wined3d: Implement WINED3DSIH_SAMPLE in the GLSL shader backend. 2015-01-19 14:31:32 +01:00
Henri Verbeet af9ccb490a ddraw: Use wined3d_log2i() to calculate the level count in ddraw_surface_create(). 2014-12-10 19:32:08 +01:00
Henri Verbeet f5939399f0 wined3d: Use __builtin_clz() in wined3d_log2i() when available. 2014-12-10 13:40:47 +01:00
Matteo Bruni ea85db2a3f wined3d: Add ATI1N texture format support. 2014-11-04 21:15:56 +09:00
Matteo Bruni dd923c3029 wined3d: Check ARB_TEXTURE_COMPRESSION_RGTC for applying the correct fixup. 2014-10-30 23:08:47 +09:00
Henri Verbeet 77646173a0 wined3d: Move the color key conversion helpers to util.c. 2014-10-08 13:13:37 +02:00
Henri Verbeet 429d72965d wined3d: Allow sRGB read/write and VTF on WINED3DFMT_R8G8B8A8_UNORM. 2014-09-01 13:12:44 +02:00
Henri Verbeet b005ad6f90 wined3d: Use rendertarget views for color output instead of surfaces. 2014-08-21 12:24:42 +02:00
Henri Verbeet 80bca9bc9c wined3d: Add constant buffer support to the GLSL shader backend. 2014-08-04 14:23:29 +02:00
Henri Verbeet fa312a32b2 wined3d: Add format information for WINED3DFMT_R8_UNORM. 2014-06-13 10:11:59 +02:00
Stefan Dösinger 3cd83f4d56 wined3d: Use GL_ALPHA8 for WINED3DFMT_P8_UINT surfaces. 2014-05-14 13:30:19 +02:00
Stefan Dösinger 7b049245f5 wined3d: Always provide P8 GL texture information. 2014-05-14 13:30:08 +02:00
Stefan Dösinger c1cca63e5d wined3d: Always store the palette index in the alpha component. 2014-05-14 13:29:52 +02:00
Stefan Dösinger 1558391a11 wined3d: Store RGBQUADs in palettes. 2014-05-07 20:21:56 +02:00
Henri Verbeet 81fb749ecf wined3d: Introduce a separate function to calculate the pitch for a given format and width. 2014-04-23 15:00:14 +02:00
Martin Storsjo 171529106b wined3d: Add support for NV12 textures. 2014-02-17 20:16:29 +01:00
Stefan Dösinger b81e560531 wined3d: Migrate surfaces to the new location flags. 2014-01-17 18:10:10 +01:00
Stefan Dösinger 2b8e900ac4 wined3d: Give buffers their own location. 2014-01-15 20:03:53 +01:00
Stefan Dösinger adf0ab2ad8 wined3d: Give the DIB section its own location. 2014-01-14 20:18:24 +01:00
Jonathan Liu 91c5cf33ad wined3d: Avoid wined3d_ftoa buffer overflow. 2014-01-14 12:31:37 +01:00
Stefan Dösinger 965d00f4b6 wined3d: Give user memory its own location. 2014-01-10 17:59:16 +01:00
Henri Verbeet 4710c4b51a wined3d: Store color keys in textures instead of in surfaces. 2014-01-09 15:50:39 +01:00
Henri Verbeet 12f16f2127 wined3d: Reimplement wined3d_ftoa().
The current implementation is not precise enough when the FPU is in REAL4
mode, which also happens to be the mode d3d9 sets by default. Doing the same
thing with integer math is a huge pain, so just replace the decimal separator
instead.
2013-11-22 11:37:02 +01:00
Henri Verbeet 3ad8989614 wined3d: Introduce a function for safely releasing a DC. 2013-11-04 11:05:43 +01:00
Henri Verbeet 079b6d4c11 wined3d: Unify the shader state IDs. 2013-10-09 11:11:07 +02:00