Commit Graph

593 Commits

Author SHA1 Message Date
Henri Verbeet 32fd8f2130 wined3d: checkGLcall() doesn't need a \n. 2009-07-07 11:50:22 +02:00
Henri Verbeet 2ac34bf231 wined3d: Add some missing float suffixes.
The compiler should be smart enough to fix most of these, but it looks sloppy.
2009-07-07 11:50:05 +02:00
Henri Verbeet 7ec911adeb wined3d: Avoid an unnecessary strcpy(). 2009-07-07 11:49:54 +02:00
Henri Verbeet c9257aed85 wined3d: Avoid a forward declaration. 2009-07-06 14:35:27 +02:00
Henri Verbeet 4571455fea wined3d: Remove the gl_renderer field from WineD3D_GL_Info. 2009-07-06 14:35:27 +02:00
Henri Verbeet b2331ec79b wined3d: Get rid of the unused gl_version and glx_version fields. 2009-07-06 14:35:27 +02:00
Henri Verbeet 966f8f452d winedd3d: Get rid of a useless trace.
gl_card isn't initialized yet here, and GL_RENDERER is already printed
earlier.
2009-07-06 14:35:27 +02:00
Henri Verbeet ad0ef46a39 wined3d: Get rid of the redundant "return_value" variable. 2009-07-06 14:35:27 +02:00
Henri Verbeet 17688365ed wined3d: Don't accept NULL as a valid result from glGetString(). 2009-07-03 13:05:52 +02:00
Henri Verbeet 23ce9d72b8 wined3d: Get rid of wined3d_fake_gl_context_cs. 2009-07-03 13:05:52 +02:00
Henri Verbeet 4cacf2e08f wined3d: Use a proper structure for storing initial GL context information. 2009-07-03 13:05:51 +02:00
Henri Verbeet db6ea72201 wined3d: Get rid of the silly refcount for the "fake" GL context. 2009-07-02 12:01:02 +02:00
Henri Verbeet b5da7f49d3 wined3d: Don't reuse random GL contexts during initialization.
Obviously there's no guarantee about the state of such a context. The specific
problem is that it might have GL_UNPACK_CLIENT_STORAGE_APPLE enabled, causing
some glTexImage2D() calls to fail, but it's a bad idea in general.
2009-07-02 12:00:50 +02:00
Henri Verbeet 50e9ad66e2 wined3d: Clear the last device in WineD3D_CreateFakeGLContext(). 2009-07-02 12:00:44 +02:00
Tobias Jakobi 2d532a1597 wined3d: Add ps_arb_max_local_constants. 2009-07-02 11:56:27 +02:00
Henri Verbeet 40bc47901c wined3d: Use flags for driver quirks. 2009-07-01 11:41:44 +02:00
Henri Verbeet c475789bb6 wined3d: Move the driver_quirk structure to directx.c. 2009-07-01 11:41:38 +02:00
Henri Verbeet f57967c983 wined3d: Always check the result of wglMakeCurrent(). 2009-06-29 12:30:28 +02:00
Henri Verbeet 7363b6e2e3 wined3d: Document GL context dependencies. 2009-06-26 12:05:07 +02:00
Henri Verbeet 404f4f7321 wined3d: Get rid of some asserts. 2009-06-22 12:59:16 +02:00
Henri Verbeet 7598ab2c84 wined3d: Get rid of DEBUG_SINGLE_MODE. 2009-06-22 12:59:04 +02:00
Henri Verbeet 37491bb5d1 wined3d: Simplify the transformed position fixup a bit. 2009-06-22 12:58:54 +02:00
Robert Key 89b08bc6e2 wined3d: Add missing HD 3400 renderer string. 2009-06-19 14:54:58 +02:00
Yann Droneaud a203876cc7 wined3d: Improved ATI Radeon HD 4xxx detection. 2009-06-17 12:43:20 +02:00
Henri Verbeet fccb3d82fd wined3d: Fall back to backbuffer offscreen rendering if FBOs are unavailable.
Backbuffer appears to be a better choice than PBuffer at the moment, since
PBuffer appears to be somewhat broken.
2009-06-17 12:13:07 +02:00
Gerald Pfeifer 6d1a76fb10 wined3d: Fix (and simplify) the ATI case in IWineD3DImpl_FillGLCaps. 2009-06-08 14:29:01 +02:00
Henri Verbeet d3bc045f26 wined3d: Add support for the ARB_depth_buffer_float extension. 2009-06-08 12:44:08 +02:00
Henri Verbeet d08f4fb5f5 wined3d: Add support for EXT_packed_depth_stencil. 2009-06-05 15:19:56 +02:00
Henri Verbeet a2440aed7e wined3d: Add extension detection for ARB_depth_texture. 2009-06-05 14:43:25 +02:00
Henri Verbeet a44f84fdf7 wined3d: Add a proper enum value for "no extension".
This would allow an extension check for ARB_COLOR_BUFFER_FLOAT to work.
2009-06-04 12:19:02 +02:00
Louis Lenders 06936f04c0 wined3d: Fix CheckDeviceMultiSampleType when queried with D3DMULTISAMPLE_NONE. 2009-05-28 15:02:08 +02:00
Louis Lenders f55522ab6b wined3d: Match device name string to windows one. 2009-05-25 14:21:56 +02:00
Chris Robinson 1d757fd6da wined3d: Prevent erroneous FIXMEs on newer cards.
Cards that have 12 or more combined samplers can trigger a fixme if they have
the same amount of vertex samplers, even though it's plenty enough.
2009-05-25 11:22:13 +02:00
Stefan Dösinger 01ec5068e2 wined3d: Add NV asm extension support to the ARB backend. 2009-05-21 16:17:51 +02:00
Stefan Dösinger 2cb8f42168 wined3d: Support clipplanes with GLSL.
This is the Nth attemt to make clipping work with GLSL shaders. The patch now
uses the GLSL quirk table to handle cards that need a custom varying for
gl_ClipPos, and the code is adapted to the changed state table and shader
backend system.
2009-05-18 13:59:16 +02:00
Robert Key 0cea80708f wined3d: Remove HD 4800 "2048MB for X2 versions" comment. 2009-05-18 13:36:23 +02:00
Robert Key cce62569df wined3d: Fix ATI HD4800 being reported as ATI 9500. 2009-05-15 11:55:20 +02:00
Henri Verbeet b35e469d9d wined3d: Document functions that depend on the caller to do GL locking. 2009-05-15 10:25:41 +02:00
Henri Verbeet 318fb7036b wined3d: Add missing GL locking to test_pbo_functionality(). 2009-05-14 11:12:57 +02:00
Rico Schüller 2ef751883d wined3d: Add UnregisterClass() on DLL_PROCESS_DETACH. 2009-05-12 12:33:57 +02:00
Stefan Dösinger 668328a697 wined3d: Work around a bad crash in fglrx. 2009-05-08 12:16:50 +02:00
Stefan Dösinger d2e12a19ca wined3d: Make use of GL_ARB_half_float_vertex.
This extension is a subset of GL_NV_half_float that defines support
for the stream format(same constant), but doesn't define texture
formats or immediate mode entrypoints.
2009-05-05 14:13:02 +02:00
Stefan Dösinger f5e24f7a85 wined3d: Implement texldd.
GL_ARB_shader_texture is supported on dx9 ATI cards(and probably dx10
ones too). For Nvidia cards I included a fallback to normal texld.
GL_EXT_gpu_shader4 supports similar texture*Grad GLSL functions, just
with an EXT prefix instead of ARB. For dx9 NV cards we'd have to use
GL_NV_fragment_program2, which supports a texldd equivalent on those
cards.
2009-05-05 14:12:52 +02:00
Stefan Dösinger 25a59fe71b wined3d: Set the max mipmap level in the pbo test.
fglrx refuses to use PBOs on not mipmap complete textures. The texture code
already takes care of this, do the same in the test.
2009-04-28 13:10:03 +02:00
Stefan Dösinger 8513f64a01 wined3d: Emulate R16G16F and R32G32F if GL_ARB_texture_rg is not supported.
Nvidia doesn't offer it on geforce 7 and earlier cards, but some games need
it. This is surprising because the extension was made specifically for
compatibility purposes for older cards.
2009-04-28 13:10:03 +02:00
Stefan Dösinger de4f3dc8e8 wined3d: Merge match_apple and implementation_is_apple. 2009-04-20 16:39:55 +02:00
Stefan Dösinger 39877a2ad2 wined3d: Reserve additional GLSL constants on some drivers.
Some drivers apparently need private constants, or don't have an efficient
immval packing. For example, MacOS seems to need 1 float for each different
relative addressing offset. fglrx has the same issue, although it is more
efficient in general

Previously this worked on most drivers because the 16 + 4 reserved int and
bool constants kept the problem hidden. Now that we are more aggressive with
uniforms we have to keep free room for some drivers.
2009-04-20 16:38:39 +02:00
Stefan Dösinger 78d26a659d wined3d: Move the remaining quirks into the quirk table. 2009-04-20 16:38:07 +02:00
Stefan Dösinger 50e91f8d84 wined3d: Move the generic mac glsl uniform fixup to the quirk table. 2009-04-20 16:37:46 +02:00
Stefan Dösinger 7b7f027221 wined3d: Add a more formal framework for driver quirks.
This allows better defining of driver desc fixups without adding extra if
lines for each card.

For starters, there's a fixup for the advertised GLSL constants in ATI cards.
fglrx advertises 512 GLSL uniforms instead of the supported 1024(means 128
instead of 256 vec4's). This bug was confirmed by ATI.
2009-04-20 16:37:31 +02:00
Roderick Colenbrander f2e2e3e499 wined3d: Report the driver description as reported by the Windows drivers when a device string is entered in our device table. 2009-04-13 17:35:44 -05:00
Roderick Colenbrander c238541656 wined3d: Update Nvidia driver version information. 2009-04-13 17:35:25 -05:00
Stefan Dösinger 754b5cf2ad wined3d: Deal with reserved shader constants in the backend.
This moves the GLSL and ARB specific reserved constants out of directx.c into
the get_caps methods of the shader backends. That way the number of reserved
constants remains in the backend.

GL_LIMITS({v/p}shader_constantsF) now contains the real number of constants as
advertised by GL instead of some mixture of GL info and backend implementation
specifics. This makes it easier for backends to decide how many constants to
use.
2009-04-10 11:22:55 +02:00
Stefan Dösinger bc07ad0579 d3d8, d3d9: Don't rely on the wined3d buffer type. 2009-04-08 11:35:29 +02:00
Roderick Colenbrander a932fdcb2f wined3d: Update NVidia pci ids. 2009-04-06 11:16:24 +02:00
Roderick Colenbrander 5d08f3b705 wined3d: Check for the presence of wglGetExtensionsStringARB. 2009-03-30 15:10:00 +02:00
Henri Verbeet 4434d00f84 wined3d: Unify vertex and texture formats.
Some fields should be redundant now, eg. gl_vtx_type and glType. I'll leave
that for a different patch to fix though.
2009-03-27 15:51:25 +01:00
Henri Verbeet dd1f0d9c48 wined3d: Pass format_desc to getColorBits() and getDepthStencilBits(). 2009-03-24 12:57:38 +01:00
Henri Verbeet a02d801888 wined3d: Pass format_desc to the Check*Capability() function.
Rather than looking it up all the time.
2009-03-24 12:57:31 +01:00
Roderick Colenbrander 4544efc972 wined3d: Add a classic WGL pixel format backend as not all OpenGL implementations support WGL_ARB_pixel_format.
This should help for instance VirtualBox.
2009-03-23 13:25:50 +01:00
Roderick Colenbrander 9181ddcd16 wined3d: Add WGL_ARB_pixel_format detection.
Right now we assume that the extension is there but this isn't always
the case. The next patch in this series will add a
non-WGL_ARB_pixel_format codepath to help VirtualBox and others.
2009-03-23 13:25:17 +01:00
Henri Verbeet a56e3a102b wined3d: Only return a pointer to struct GlPixelFormatDesc from getFormatDescEntry(). 2009-03-13 11:29:10 +01:00
Henri Verbeet 53bf5c2658 wined3d: Add fields from StaticPixelFormatDesc to struct GlPixelFormatDesc.
The idea here is that we should lookup format information in struct
GlPixelFormatDesc, while StaticPixelFormatDesc and GlPixelFormatDescTemplate
will only be used to build the table.
2009-03-13 11:29:01 +01:00
Henri Verbeet 81075d2db3 wined3d: Remove a redundant check.
This is redundant now, InitAdapters() will only be called once for each
IWineD3DImpl object, as pointed out by Allan Tong.
2009-03-12 13:09:55 +01:00
Henri Verbeet 40d4f9b7ec wined3d: Don't leak WineD3DAdapter.cfgs. 2009-03-11 13:03:32 +01:00
Henri Verbeet ddae14169b wined3d: Get rid of the PUSH1 macro. 2009-03-11 13:03:32 +01:00
Henri Verbeet 2cc43393f0 wined3d: The adapters array should be owned by IWineD3DImpl. 2009-03-11 13:03:32 +01:00
Henri Verbeet 3f9e0d9320 wined3d: Add support for ARB_geometry_shader4. 2009-03-05 16:16:24 +01:00
Henri Verbeet 0048a0373b d3d10core: Keep a reference to the wined3d device in the d3d10 device. 2009-02-23 12:20:29 +01:00
Henri Verbeet 8cefc47d81 wined3d: Add DXGI formats to WINED3DFORMAT. 2009-02-20 11:10:37 +01:00
Paul Chitescu 540febecf9 wined3d: Detect Radeon Xpress Series, report PCI ID of Radeon Xpress 200M. 2009-01-21 10:24:44 +01:00
Henri Verbeet a966293f59 wined3d: Add an IWineD3DDeviceParent interface.
Other than being a bit nicer than passing function pointers all over the
place, this helps dxgi/d3d10. While the swapchain itself is created in dxgi,
its surfaces are constructed in d3d10core, which makes it impractical for dxgi
to pass the appropriate function pointers.
2009-01-16 13:29:32 +01:00
Stefan Dösinger 365e1f3b07 wined3d: Avoid hooking non-fog glEnable/glDisable calls.
This prevents fallout from the GL_EXT_fog_coord emulation. glEnable
and glDisable calls other than those that change GL_FOG are not
hooked. The glEnableWINE and glDisableWINE functions can be used to
add other hooks too if ever needed.
2009-01-12 13:03:47 +01:00
Allan Tong 29dd286d79 wined3d: Add code to cleanup device multistate_funcs. 2009-01-10 17:43:11 +01:00
Henri Verbeet 9d8c6326c0 wined3d: Remove stray tabs. 2009-01-09 14:06:14 +01:00
Henri Verbeet e028e3f7bd wined3d: Use GL_ALIASED_POINT_SIZE_RANGE to retrieve the max point size. 2009-01-09 14:06:13 +01:00
Henri Verbeet b1812c690c wined3d: Add support for EXT_vertex_array_bgra.
This allows us to skip BGRA->RGBA color conversion for vertex attributes if
this extension is present.
2009-01-08 13:21:51 +01:00
Vincent Pelletier 143bd931b6 wined3d: Detect intel 945 GM. 2008-12-29 11:35:36 +01:00
Rico Schüller b061f64228 wined3d: Fix compilation for Windows build. 2008-12-22 10:29:14 +01:00
Roderick Colenbrander 086d949877 wined3d: Add GL_RG16F / GL_RG32F support using ARB_texture_rg. 2008-12-19 17:49:20 +01:00
Roderick Colenbrander 7238bce79d wined3d: Add GL_ARB_texture_rg / GL_EXT_texture_swizzle support. These extensions are needed for more efficient R32F/RG32F support. 2008-12-19 17:48:55 +01:00
Henri Verbeet d099dde7a9 wined3d: Track shader constants in the shader backend. 2008-12-18 13:17:02 +01:00
Stefan Dösinger 2aa7a7fe16 wined3d: Avoid loading opengl32.dll.
This confuses applications like Steam, which hook d3d9 and opengl
functions. It sees that the application uses opengl32, but it doesn't
realize that d3d9 is wrapped to opengl. Thus it starts messing around
with wined3d's wgl context. It usually tries to draw geometry with the
context, but cannot deal with some of the obscure extensions we have
activated.
2008-12-16 14:36:17 +01:00
Stefan Dösinger 4bc5e760b6 wined3d: Initialize max_combined_samplers properly.
Otherwise it will be 0 if GL_ARB_multitexture is not available.
2008-12-16 14:36:02 +01:00
Stefan Dösinger 199a3468bf wined3d: Fake GL_ARB_multitexture. 2008-12-16 14:31:25 +01:00
Henri Verbeet 89139b7589 wined3d: Make shader texture format fixups more generic.
Based on a patch by Stefan Dösinger. This is more flexible, and allows
the shader backend implementation to be simpler, since it doesn't have
to know about specific formats. The next patch makes use of this.
2008-12-04 11:59:58 +01:00
Henri Verbeet b451048eb7 wined3d: Move GlPixelFormatDesc to wined3d_private.h where it belongs.
Also remove the silly typedef.
2008-12-04 11:59:06 +01:00
Alexandre Julliard 9c306e9871 wined3d: Make some functions and variables static. 2008-12-02 15:31:17 +01:00
Henri Verbeet 50ebf26894 wined3d: Const correctness fixes for directx.c. 2008-12-01 12:45:10 +01:00
Henri Verbeet 942f82100a wined3d: Remove some superfluous casts. 2008-12-01 12:45:01 +01:00
Andrew Talbot f40afa87c6 wined3d: Sign-compare warnings fix. 2008-11-28 12:57:25 +01:00
Henri Verbeet c7880e8916 wined3d: Make minMipLookup_noFilter and magLookup_noFilter const.
Note that minMipLookup and magLookup aren't particularly safe to use,
they're global arrays initialized from IWineD3DImpl_FillGLCaps(). The same
goes for the other global dynamic lookup tables.
2008-11-28 12:53:57 +01:00
Roderick Colenbrander 273357264a wined3d: Add registry key for overriding the pci vendor id. 2008-11-24 14:52:32 +01:00
Roderick Colenbrander 52d59718c7 wined3d: Add registry key for overriding pci device id. 2008-11-24 14:52:25 +01:00
Vincent Pelletier f442bafb8a wined3d: Add detection for NVIDIA's GTX 280. 2008-11-24 14:41:58 +01:00
Roderick Colenbrander f571ecd23c wined3d: Add two missing D3D8/D3D9 capabilities. 2008-11-10 12:57:30 +01:00
Stefan Dösinger 620a423b22 wined3d: Kill the GL_ATI_envmap_bumpmap code.
GL_ATI_envmap_bumpmap provides two things: Signed V8U8 pixel formats,
and bump mapping. The extension is only supported on fglrx, and this
driver also supports GL_ARB_fragment_program.  Thus the bump mapping
code is never used on any driver out there.  Furthermore, if it is
used, it tends to crash the driver

The signed pixel format is used, as it can be used by pixel shaders or
the ARBfp replacement. However, the format is broken in fglrx, and
negative values are clamped to 0.0. This results in test
failures. WineD3D has an alternative codepath using scale+bias to
enable V8U8 using a standard signed RGB which works correctly on
fglrx.
2008-11-04 11:41:14 +01:00
Henri Verbeet 2188aa87d6 wined3d: Add support for EXT_framebuffer_multisample. 2008-10-20 12:23:16 +02:00
Alexandre Julliard 6cfef95ce7 wined3d: Convert source files to utf-8. 2008-10-18 19:21:20 +02:00
Henri Verbeet 937ceda47f wined3d: Remove a redundant initialization of cfgs in CheckDepthStencilCapability (LLVM/Clang). 2008-10-09 12:13:53 +02:00