Commit Graph

418 Commits

Author SHA1 Message Date
Roderick Colenbrander 69a40127c6 wined3d: Add D3DUSAGE_QUERY_PIXELSHADER_BLENDING to CheckDeviceFormat. 2008-03-28 15:50:36 +01:00
Stefan Dösinger 39e2cbc5d5 wined3d: Enable D3DFMT_V8U8 with GL_ATI_fragment_shader. 2008-03-25 19:50:55 +01:00
Stefan Dösinger 4640be8dc8 wined3d: Fragment processing using GL_ATI_fragment_shader.
This adds code for handling fixed function fragment processing with the
GL_ATI_fragment_shader extension. This is a sort-of programmable
interface for fragment processing at the level of shader model 1.4 in
d3d. This code is of use on r200, r250 and r280 cards(radeon 8500 to
9200) which do not support GL_ARB_fragment_program, but support pixel
shader 1.4 on Windows. This code is somewhat a counterpart to the
existing fragment processing code using GL_NV_register_combiners and
GL_NV_texture_shader.
2008-03-25 19:50:32 +01:00
Stefan Dösinger 18e16f4e66 wined3d: Add GL_ATI_fragment_shader. 2008-03-25 19:48:35 +01:00
Stefan Dösinger 28fdebe404 wined3d: Alloc / free shader private data and blt stuff in Init3D/Uninit3D. 2008-03-25 19:48:24 +01:00
Stefan Dösinger ee7e149998 wined3d: Move shader caps setting into the arb and glsl shader backends. 2008-03-25 19:39:23 +01:00
Stefan Dösinger 5ab5202e0f wined3d: Set shader specific caps in the shader backend.
The whole control structures in directx.c get terribly confusing with
the various codepaths for texturing and different shader
implementations. It is also hard to reflect the shader model
decisions this way too. This patch moves the shader specific parts of
the caps code into the shader backend where we can set our caps
dependent of the shader model decisions and without complex caps flag
checks.
2008-03-25 19:39:11 +01:00
Stefan Dösinger 8869c0f147 d3d: De-pointerize the WINED3DCAPS structure. 2008-03-25 19:36:38 +01:00
Stefan Dösinger 6d5f562dcf wined3d: Move the shader backend selection into a separate function. 2008-03-25 19:36:13 +01:00
Roderick Colenbrander eaa1ff0d2c wined3d: Always report D16 as Windows drivers report it on all cards (likely using emulation). 2008-03-25 16:14:03 +01:00
Roderick Colenbrander cb9252db36 wined3d: Fix a typo in CheckSrgbWriteCapability. We support both X8R8G8B8 and A8R8G8B8. 2008-03-24 20:39:50 +01:00
Roderick Colenbrander 9123e8f374 wined3d: Add more debug code to CheckDeviceFormat. 2008-03-24 20:39:37 +01:00
Roderick Colenbrander e749825793 wined3d: CheckTextureCapability returns TRUE for V8U8. 2008-03-24 12:08:34 +01:00
Roderick Colenbrander 856af1b5d7 wined3d: Add srgb write support to CheckDeviceFormat. 2008-03-22 12:23:23 +01:00
Roderick Colenbrander 9e9ef6238a wined3d: Remove unneeded code in CheckDeviceFormat.
All these checks are done during the capability checks which are
performed under the resource type checks.
2008-03-22 11:46:25 +01:00
Roderick Colenbrander 5d151c0ffc wined3d: Don't continue with CheckDeviceFormat when the texture format isn't around.
It is legal to pass Usage=0 to CheckDeviceFormat and in both this case
and in the case a format isn't available UsageCaps would be 0 and a
format would be reported available.
2008-03-22 11:45:58 +01:00
Roderick Colenbrander 460f0d1608 wined3d: Return WINED3DERR_NOTAVAILABLE when cubemapping isn't supported. 2008-03-22 11:45:41 +01:00
Roderick Colenbrander 616944ae7e wined3d: Add reporting of D3DRTYPE_VOLUME capabilties.
We assume it has the same capabilities as VOLUMETEXTURE. MSDN is very
vague on this topic. Intel/Nvidia/ATI drivers seem to offer nearly the
same caps on both, so do that too.
2008-03-22 11:45:31 +01:00
Roderick Colenbrander 6f3127291f wined3d: When volume textures aren't around (GL_EXT_texture3D not supported) return WINED3DERR_NOTAVAILABLE. 2008-03-22 11:44:11 +01:00
Roderick Colenbrander eef51ed4ca wined3d: We don't offer index/vertex buffer caps. Neither do Windows drivers (at least Nvidia, Ati and Intel). 2008-03-22 11:14:37 +01:00
Roderick Colenbrander 51a8162330 wined3d: Check pixel formats of the same pixel type. 2008-03-21 15:19:05 +01:00
Roderick Colenbrander fd71421ebe wined3d: Report software processing in CheckDeviceFormat. 2008-03-19 17:21:59 +01:00
Roderick Colenbrander 30a3bc2651 wined3d: Add dynamic locking support to CheckDeviceFormat. 2008-03-19 17:21:47 +01:00
Roderick Colenbrander 7fd87f10cd wined3d: There is no need for the !Usage checks at the start of the resource type checks.
The return-path of the code will handle this properly and this also
ensures that the R8G8B8 dxVersion test is reached.
2008-03-19 17:21:34 +01:00
Roderick Colenbrander 0e9d02ded4 wined3d: Add correct autogenmipmap support. 2008-03-18 11:17:42 +01:00
Roderick Colenbrander aa46edd60c wined3d: Add a function which checks the filtering capabilities for a format. 2008-03-18 11:17:31 +01:00
Roderick Colenbrander 2f1e01bbe3 wined3d: Put vertex texture capability checking in its own function. 2008-03-18 11:17:15 +01:00
Roderick Colenbrander 32a32d82c4 wined3d: Put the SRG read capability check in its own function. 2008-03-18 11:17:01 +01:00
Roderick Colenbrander 4e66c9c990 wined3d: Add a function which checks the legacy bump mapping capabilities. 2008-03-18 11:16:48 +01:00
Roderick Colenbrander d44c295651 wined3d: Check the render target capabilities of a resource type. 2008-03-17 11:42:19 +01:00
Roderick Colenbrander ecf24604e2 wined3d: Check the texture capabilities we offer for the different texture types (cube, plain, volume). 2008-03-17 11:41:58 +01:00
Roderick Colenbrander 02f6c9ece8 wined3d: Move depth/stencil verification to CheckDepthStencilCapability. 2008-03-17 11:41:39 +01:00
Artur Szymiec 102b9d12e4 wined3d: Add a device uuid. 2008-03-13 20:44:18 +01:00
Rico Schüller 7cbdb29884 wined3d: Fix copy and past error. 2008-03-06 12:46:50 +01:00
Stefan Dösinger d20768c120 wined3d: Support shininess > 128 if opengl does. 2008-03-05 19:23:06 +01:00
Stefan Dösinger 8b28ca720e wined3d: Use GL_EXT_gpu_program_parameters if available. 2008-03-04 12:15:32 +01:00
Stefan Dösinger 107e80a79c wined3d: Implement a different constant dirtification algorithm.
Add a new property of the shader backend which indicates whether the
shader backend is able to dirtify single constants rather than
dirtifying vshader and pshader constants as a whole. Depending on this
a different Set*ConstantF implementation is used which marks constants
dirty. The ARB shader backend uses this and marks constants clean
after uploading.
2008-03-04 12:15:16 +01:00
Stefan Dösinger 5709a0b4b6 wined3d: Call fixup_extensions before destroying the fake context. 2008-03-03 20:45:48 +01:00
Francois Gouget 29ef0b90ee Assorted spelling, punctuation and case fixes. 2008-03-03 12:04:48 +01:00
James Hawkins c2a627c6e8 janitorial: Remove links to any microsoft site. 2008-03-01 12:17:07 +01:00
Roderick Colenbrander 4ac1b94d96 wined3d: Improved CheckDeviceType. 2008-02-27 14:52:25 +01:00
Stefan Dösinger f912f18b13 wined3d: Move shader model private data into its own structure. 2008-02-26 11:31:39 +01:00
Stefan Dösinger 6269415793 wined3d: Add GL_APPLE_float_pixels. 2008-02-26 11:31:29 +01:00
Roderick Colenbrander f5149e651e wined3d: Check real depth/stencil capabilities based on WGL pixel formats. 2008-02-26 11:29:59 +01:00
Stefan Dösinger f952419651 wined3d: Enable the texcoord init workaround on radeon HD cards on MacOS. 2008-02-19 14:47:59 +01:00
Roderick Colenbrander c2d978410f wined3d: Add separate alpha blend support. 2008-02-18 14:19:57 +01:00
Stefan Dösinger 989d283000 wined3d: Detect and work around the MacOS Geforce 8 PBO brokeness. 2008-02-18 13:36:58 +01:00
Stefan Dösinger b8c613196d wined3d: Fix a syntax error in the ARB vertex program offset shader.
As some Mesa developers pointed out, the GL_ARB_vertex_program grammar
does not allow an immediate value as source argument in ARL. Most
compilers accept it, but since it is not the purpose of the test
program to test for this replace it with a proper constant.
2008-02-18 13:34:37 +01:00
Stefan Dösinger 3e7f1388be wined3d: Add some ATI cards to the version database. 2008-02-07 13:05:20 +01:00
Stefan Dösinger 1c1a6f32ae wined3d: Add infrastructure for faking driver versions.
Often the Linux / MacOS graphics driver version is of no use for
finding a proper driver version to report to the D3D app. So this
patch adds some infrastructure for easy hardcoding of card specific
driver versions to report to the application. This helps applications
which make assumptions based on the driver version, like bug
workarounds.
2008-02-07 13:05:04 +01:00
Stefan Dösinger 74db14728e wined3d: Separate OpenGL and driver version. 2008-02-06 12:43:53 +01:00
Stefan Dösinger 3188d9ae30 wined3d: Move the highpart of the driver version to the gl structure.
While 6.14 is a sane default, we might want to override it on a
per-driver basis, if we have really old Windows drivers on some cards.
2008-02-06 12:43:53 +01:00
Stefan Dösinger b813398467 wined3d: Move the float format check to the big switch statement. 2008-02-05 12:42:20 +01:00
Stefan Dösinger bbeedca67e wined3d: Fix dxtn format check.
We can't return WINED3D_OK straight away because we have yet to check
the other flags, like sRGB correction.
2008-02-05 12:42:12 +01:00
Stefan Dösinger 9d9a640127 wined3d: Correct the srgb reading check. 2008-02-05 12:41:59 +01:00
Francois Gouget d0794c4aeb Assorted spelling fixes. 2008-01-23 21:16:22 +01:00
Austin English 3471f841a1 wined3d: Spelling fixes. 2008-01-18 12:53:33 +01:00
Stefan Dösinger 09bf3d5aea wined3d: Keep track of shaders. 2008-01-14 15:20:42 +01:00
Roderick Colenbrander 916b56391d wined3d: Fix glBlendColorEXT for use on RivaTNT. 2008-01-14 13:10:28 +01:00
Stefan Dösinger c290f4c7a3 wined3d: Detect geforce 7300 cards. 2008-01-08 17:04:36 +01:00
Alexander Dorofeyev 1e23602d4b wined3d: Add zero/near zero vertex rhw special case. 2007-12-26 14:03:48 +01:00
Stefan Dösinger b83dc6bbf6 wined3d: Move the GL info structure into the adapter. 2007-12-20 12:10:08 +01:00
Stefan Dösinger 2d90449500 wined3d: Fixed function vertex attribute types are flexible. 2007-12-20 10:49:42 +01:00
Stefan Dösinger df77e28854 wined3d: Implement D3DFMT_G16R16. 2007-12-18 14:08:18 +01:00
Marco Schuster 96504632de wined3d: Fixed a bug that the 8600M GT could not be detected. 2007-12-12 13:45:42 +01:00
Stefan Dösinger 7f10ee453a wined3d: Use the adapter to read the display mode. 2007-12-11 12:14:35 +01:00
Francois Gouget 5f7a9cea38 Assorted spelling fixes. 2007-12-07 16:35:32 +01:00
Stefan Dösinger 54fa712981 wined3d: Initialize output texcoord .w to 1.0 if needed.
The GL_ARB_vertex_program extension does not define a standard value for
output texture coordinates. This makes problems when using vertex
shaders with fixed function fragment processing because fffp divides the
texture coords by its .w component. This means that gl shaders have to
write to the .w component of texture coords. Direct3D shaders however
do not.
2007-12-07 14:54:22 +01:00
Stefan Dösinger 7ba04e6132 wined3d: Detect the Intel GPU in macbooks. 2007-12-03 13:44:31 +01:00
Stefan Dösinger 8804a972d9 wined3d: Unify bpp to format conversion. 2007-12-03 13:44:18 +01:00
Gerald Pfeifer 04cb111efc wined3d: Fix handling of a special case in IWineD3DImpl_FillGLCaps() and adjust type of loop variable. 2007-12-03 13:17:54 +01:00
Marco Schuster 15e1c57141 wined3d: Added a card ID for a 8600 Mobile GT. 2007-11-29 15:31:54 +01:00
Stefan Dösinger 0cfa7f99e6 wined3d: Add GL_ARB_texture_rectangles to our opengl extensions. 2007-11-29 13:36:16 +01:00
Stefan Dösinger 28170c1440 wined3d: Report some more geforce 7 cards as geforce 7. 2007-11-28 13:40:29 +01:00
Stefan Dösinger bf03075b5e wined3d: Do not cap fragment samplers to 8. 2007-11-21 12:06:04 +01:00
Stefan Dösinger 1fc1fe3c6e wined3d: Use standard wine lists for the resource list. 2007-11-20 13:10:46 +01:00
Stefan Dösinger 73d992050f wined3d: Fix ATI video memory detection typo. 2007-11-14 11:59:28 +01:00
Stefan Dösinger 894a705cc7 wined3d: Load GL_EXT_texture3D from gl 1.2 if the extension is not there. 2007-11-12 14:29:52 +01:00
Stefan Dösinger c25a792902 wined3d: Mark extensions supported which are included in the gl core. 2007-11-12 14:29:45 +01:00
Stefan Dösinger 0587060a08 wined3d: Load GL functions from core if needed. 2007-11-12 14:28:21 +01:00
Stefan Dösinger 07bbf1899d wined3d: Extend the gl extension function loading table with ext info. 2007-11-12 14:26:49 +01:00
Stefan Dösinger 1978ef9a75 wined3d: Load extension functions after finding the supported extensions. 2007-11-12 14:26:05 +01:00
Stefan Dösinger 9fb70b99db wined3d: Load GLSL sampler uniforms at shader link time. 2007-11-09 12:32:11 +01:00
Stefan Dösinger cd1812b473 wined3d: Hide NP2 textures support on R500 and earlier cards. 2007-11-09 12:31:44 +01:00
Stefan Dösinger 883915fc72 wined3d: Fix for MacOS'es incomplete glsl uniform truth. 2007-11-09 12:30:30 +01:00
Stefan Dösinger f79ca75d08 wined3d: Implement a detection for the MacOS OpenGL implementation. 2007-11-09 12:29:55 +01:00
Stefan Dösinger 5ffea6e591 wined3d: Honor the driver's min point size. 2007-11-08 12:05:19 +01:00
Stefan Dösinger c7c785861a wined3d: Replace the position fixup mul-add-add with a MAD. 2007-11-08 12:03:39 +01:00
Stefan Dösinger fb0dde7b27 wined3d: Relative addressing offsets are limited to [-64; 63] in arb. 2007-11-08 11:54:43 +01:00
Stefan Dösinger 654571f2fc wined3d: Add a max varyings member to the gl info structure. 2007-11-06 13:34:47 +01:00
Roderick Colenbrander c7683ee4a3 wined3d: Fix glsl detection bug. 2007-11-05 13:24:37 +01:00
Roderick Colenbrander 59eba5cb41 wined3d: Default to GLSL. This is safe because we now have proper ps2.0/vs2.0 detection. 2007-10-29 13:04:58 +01:00
Roderick Colenbrander efc18d79af wined3d: Detect vertex shader 2.0 support using a pixel shader 2.0 limit.
Without this vertex shader 3.0 is reported on non-Nvidia cards that
only support vertex shader 2.0. Reporting 3.0 would result in slow
software rendering as it is much more advanced than 2.0.
2007-10-29 13:04:49 +01:00
Roderick Colenbrander 6760ce83a4 wined3d: Fix the amount of texture memory in the debug traces. 2007-10-29 13:04:30 +01:00
Roderick Colenbrander ac53711902 wined3d: Print the correct pixel/vertex shader version in a debug trace. 2007-10-29 13:04:11 +01:00
Roderick Colenbrander 50ed6f36d2 wined3d: Add proper PS2.0 detection for older cards with GLSL support. 2007-10-29 13:04:04 +01:00
Roderick Colenbrander 465962dae6 wined3d: Use native shader limits instead of the maximum the driver can handle in software.
This should prevent software fallbacks and and second it will allow for ps2.0/ps3.0 detection.
2007-10-29 13:03:54 +01:00
Chris Robinson eaaa2a82f2 wined3d: Don't report filtering for WINED3DFMT_R32F. 2007-10-15 17:50:47 +02:00
Chris Robinson fc96587b3d wined3d: Set D3DCAPS2_CANAUTOGENMIPMAP flag when supported. 2007-10-11 16:24:28 +02:00
Roderick Colenbrander 46f33f4f38 wined3d: CreateFakeGLContxt/ReleaseFakeGLContext doesn't need ENTER_GL/LEAVE_GL and they are making GDI calls.
The removal of ENTER_GL from the fake context code, requires the
addition of ENTER_GL/LEAVE_GL to FillGLCaps which was protected by the
fake context code before.
2007-10-01 12:35:01 +02:00