Commit Graph

612 Commits

Author SHA1 Message Date
Stefan Dösinger 6f5a1d9a15 wined3d: Filter WINED3DSTENCILCAPS_TWOSIDED in d3d8. 2009-08-07 14:56:48 +02:00
Stefan Dösinger 296573caae d3d: Filter R8G8B8 in d3d8 and d3d9. 2009-08-07 14:56:40 +02:00
Henri Verbeet b04e992a65 wined3d: Set the WINED3DTEXF_NONE entry in the minification lookup table to GL_NEAREST.
Although WINED3DTEXF_NONE is not a valid minification filter, having it in the
tables simplifies the lookup. GL_NEAREST is more appropriate than GL_LINEAR
though.
2009-08-06 17:26:29 +02:00
Henri Verbeet 9e8f7898c9 wined3d: Get rid of the ANISOTROPIC entry from the filter lookup tables.
Anisotropy and texture filters are orthogonal in GL. In D3D
D3DTEXF_ANISOTROPIC just selects the best (linear) filter type and enables
anisotropy.
2009-08-05 11:20:36 +02:00
Stefan Dösinger 2858f67a2a wined3d: Enable WINED3DFMT_R16G16B16A16_UNORM. 2009-08-05 11:19:46 +02:00
Stefan Dösinger f53451ddac wined3d: Only use WINE_normalized_texrect if ARB_texture_np2 is supported. 2009-08-05 11:19:26 +02:00
Henri Verbeet d4159adbc8 wined3d: Statically initialize the filter lookup tables.
Also add some comments.
2009-08-04 13:04:23 +02:00
Henri Verbeet b30a31e09a wined3d: Set a more appropriate value for the ANISOTROPIC/NONE min/mip filter. 2009-08-04 13:04:11 +02:00
Henri Verbeet 25fe98e02b wined3d: Don't disable mipmapping if we lack EXT_texture_filter_anisotropic.
These don't have a whole lot to do with each other.
2009-08-04 13:04:05 +02:00
Henri Verbeet 1d647283d5 wined3d: Don't use the GL texture flags to determine if a format is a depth stencil in CheckDepthStencilCapability().
The OpenGL implementation might not support ARB_depth_texture, but that
doesn't mean we can't use the format for the depth buffer.
2009-08-03 15:01:34 +02:00
Henri Verbeet 9253bbcb05 wined3d: Get rid of last_device. 2009-07-23 11:22:13 +02:00
Henri Verbeet 1a43030664 wined3d: Keep track of a thread's wined3d context. 2009-07-22 14:42:50 +02:00
Henri Verbeet 43e6686a78 wined3d: Rename _WineD3D_GL_Info to struct wined3d_gl_info. 2009-07-17 11:22:07 +02:00
Henri Verbeet ae8e8ac73f wined3d: Check the return values for some wgl calls. 2009-07-15 13:24:24 +02:00
Stefan Dösinger 8a6553da14 wined3d: Only use 4 component specular colors if GL allows it. 2009-07-10 13:07:33 +02:00
Stefan Dösinger c0e5c8f481 wined3d: Update Nvidia driver versions. 2009-07-09 12:47:39 +02:00
Stefan Dösinger cfd0652980 wined3d: Add Intel GMA X3100 to our card DB. 2009-07-09 12:47:33 +02:00
Erik Inge Bolsø 48995f3354 wined3d: Fix Nvidia GTX series misdetection. 2009-07-08 20:13:25 +02:00
Henri Verbeet 699f68cdee wined3d: Get rid of some pointers in WINED3DADAPTER_IDENTIFIER.
This also avoids some unchecked strcpy() calls.
2009-07-07 11:50:30 +02:00
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