Henri Verbeet
e4d8a3f309
wined3d: Move the various backend selection utility functions to utils.c.
2009-11-18 11:16:43 +01:00
Henri Verbeet
5487009624
wined3d: Report a driver version appropriate for the reported OS.
2009-11-12 13:14:39 +01:00
Henri Verbeet
bf10dbe8a6
wined3d: Map D3DFMT_D24S8 to WINED3DFMT_D24_UNORM_S8_UINT.
...
The internal order of the depth and stencil bits is unspecified since the
format isn't lockable.
2009-10-30 11:28:52 +01:00
Henri Verbeet
111307dfba
wined3d: Get rid of the GL_SUPPORT macro.
2009-10-29 13:09:33 +01:00
Henri Verbeet
48e03bc189
wined3d: Introduce a separate structure for various OpenGL implementation limits.
2009-10-29 13:09:27 +01:00
Henri Verbeet
30d2660d99
wined3d: Restore the thread's previous GL context in WineD3D_ReleaseFakeGLContext().
2009-10-27 10:55:35 +01:00
Henri Verbeet
13c4fe72ad
wined3d: Set a driver name appropriate for the vendor in init_driver_info().
2009-10-27 10:55:09 +01:00
Henri Verbeet
26ba212407
wined3d: Apply PCI ID overrides in init_driver_info() instead of IWineD3DImpl_GetAdapterIdentifier().
2009-10-27 10:54:57 +01:00
Henri Verbeet
2447c8bc3e
wined3d: Store PCI IDs in wined3d_driver_info instead of wined3d_gl_info.
2009-10-27 10:54:50 +01:00
Stefan Dösinger
641d6681d4
wined3d: Use the ARB native constant limit in the GLSL-ARB constants quirk.
...
Geforce 8 and Geforce 9 cards support 256 env and 1024 native
constants. 1024 is the hardware limit we want to use if we overwrite
the GLSL reported value with the ARB value on Mac OS (because Mac OS
reports more constants than supported by HW on some cards).
2009-10-26 11:42:10 +01:00
Stefan Dösinger
f9c4d442a9
wined3d: Get rid of the general shader constant limit.
2009-10-26 11:41:51 +01:00
Henri Verbeet
5fbe5ee027
wined3d: Add a separate structure for driver info.
2009-10-26 11:20:33 +01:00
Henri Verbeet
342a71b281
wined3d: Replace the "stateLookup" tables with a single "wrap_lookup" table.
2009-10-23 12:03:15 +02:00
Henri Verbeet
6be41fd59a
wined3d: Get rid of GL_LIMITS.
2009-10-22 10:46:05 +02:00
Henri Verbeet
42eb516d96
wined3d: Free the adapter's format info in IWineD3DImpl_Release() (Valgrind).
2009-10-21 16:05:57 +02:00
Henri Verbeet
f2aaca2f67
wined3d: Rename WineD3DAdapter to wined3d_adapter.
2009-10-21 16:05:57 +02:00
Stefan Dösinger
2d802af4d9
wined3d: Make shader specific constants accessible via GL_LIMITS.
2009-10-20 14:46:08 +02:00
Henri Verbeet
2be38232ea
wined3d: Remove some unused code.
2009-10-06 12:02:59 +02:00
Stefan Dösinger
c749debec6
wined3d: Fix an error string.
2009-10-01 12:10:35 +02:00
Stefan Dösinger
404aecb8da
wined3d: Test if result.clip[] works correctly.
...
The Mac Nvidia driver doesn't implement the result.clip part of
GL_NV_vertex_program2_option correctly. It complains about a syntax
error if "result.clip[0]" is used. "result.clip" compiles correctly, but
supports only one clipplane, and running the shader results in severe
rendering bugs.
2009-09-28 17:33:07 +02:00
Stefan Dösinger
77a83aee79
wined3d: Don't use GL_NV_texture_shader on OSX.
2009-09-28 17:32:54 +02:00
Henri Verbeet
47c84f4f7f
wined3d: Use the DXGI naming convention for all formats.
2009-09-25 15:15:44 +02:00
Austin English
5d15da6df5
wined3d: Recognize DRI R300 drivers as Mesa.
2009-09-25 13:15:48 +02:00
Henri Verbeet
eca28c942d
wined3d: Add support for ARB_provoking_vertex.
...
This is just EXT_provoking_vertex promoted to ARB.
2009-09-23 12:37:18 +02:00
Henri Verbeet
ec97383f6f
wined3d: Add support for ARB_framebuffer_object.
2009-09-23 12:37:00 +02:00
Henri Verbeet
c4c86215ed
wined3d: Detect ARB_framebuffer_object.
2009-09-23 12:36:48 +02:00
Henri Verbeet
4aaf47f277
wined3d: Get rid of the unused DeviceType parameter to select_shader_mode().
2009-09-17 10:09:57 -05:00
Henri Verbeet
a5214c306f
wined3d: Don't free D3D surfaces until the wined3d surface is destroyed.
...
This prevents for example a d3d9 depth stencil from being destroyed when it
has no external references but is still in use by the device/stateblock. A
nice side effect is that it simplifies handling of "implicit" surfaces like
the frontbuffer and backbuffers, as well as the forwarding of reference counts
for surfaces that are part of a texture.
2009-09-16 13:04:32 -05:00
Henri Verbeet
9880cd7504
wined3d: Make some variables static.
2009-09-15 14:32:36 -05:00
Jaime Rave
4700038fdf
wined3d: Fix vendor detection when using an Intel X4500HD.
2009-09-09 12:07:31 +02:00
Henri Verbeet
c951f6925c
wined3d: Release the GL lock on IWineD3DImpl_FillGLCaps() error paths.
2009-09-02 11:25:57 +02:00
Henri Verbeet
078273afa6
wined3d: Add support for ARB_depth_clamp.
2009-09-01 14:05:45 +02:00
Stefan Dösinger
531ec2267b
wined3d: Allow filtering on RECT textures.
...
There is no reason to disable linear filtering, we just cannot use mipmapping.
2009-08-31 12:18:01 +02:00
Stefan Dösinger
52d2865521
wined3d: Remove redundant TRACEs.
...
These made sense before we had the quirk table. Nowadys the quirk
table contains quirk description strings that print out whether or not
any apple specific quirks are applied. The traces in match_apple just
spam the log because this code is run multiple times for many quirks.
2009-08-31 12:17:41 +02:00
Henri Verbeet
560d63548d
wined3d: Remove trailing spaces.
2009-08-27 11:45:37 +02:00
Jörg Höhle
b9d955b86d
wined3d: Delete meaningless UNIX GL driver version parsing.
2009-08-27 11:00:59 +02:00
Stefan Dösinger
52731a80c8
wined3d: Make it clear that glFlush and glFinish are WGL functions.
2009-08-26 14:35:41 +02:00
Stefan Dösinger
21f4e42a98
wined3d: Don't use WINED3DADAPTER_DEFAULT as refresh rate.
2009-08-26 14:35:33 +02:00
Stefan Dösinger
3f6909c1f2
wined3d: Initialize ps_arb_max_local_constants.
2009-08-26 14:35:27 +02:00
Henri Verbeet
c70f3816ab
wined3d: Hide WINED3DFMT_R16G16B16A16_UNORM again.
...
This format is broken on some cards. Hide it until we figure out a reliable
way to deal with it.
2009-08-19 14:45:39 +02:00
Henri Verbeet
779ad6b9f1
wined3d: Add a separate function for guessing the card.
2009-08-14 13:59:08 +02:00
Henri Verbeet
93218c6602
wined3d: Add a separate function for guessing the driver version.
...
Note that I don't necessarily think the ATI path for example will work
correctly. This patch is just for moving it out of IWineD3DImpl_FillGLCaps().
2009-08-14 13:59:08 +02:00
Henri Verbeet
b94e89dae9
wined3d: Add a separate function for parsing the GL version.
2009-08-14 13:59:08 +02:00
Henri Verbeet
a1402e0677
wined3d: Add a separate function for guessing the vendor.
2009-08-14 13:59:08 +02:00
Henri Verbeet
c573d0a4c9
wined3d: Escape GL strings with debugstr_a() in IWineD3DImpl_FillGLCaps().
2009-08-14 13:59:08 +02:00
Henri Verbeet
914a21740c
wined3d: Recognize GL_VENDOR "Tungsten Graphics, Inc." as VENDOR_MESA.
2009-08-13 11:45:42 +02:00
Henri Verbeet
e205973915
wined3d: Remove the redundant vs_nv_version and ps_nv_version fields from struct wined3d_gl_info.
2009-08-13 11:45:36 +02:00
Henri Verbeet
fbc3cf89e2
wined3d: Remove some unused fields from struct wined3d_gl_info.
2009-08-13 11:45:24 +02:00
Henri Verbeet
42c2d06bc0
wined3d: Don't make wgl calls from under the GL lock.
2009-08-13 11:45:17 +02:00
Henri Verbeet
ac64bf6406
wined3d: Detect EXT_provoking_vertex.
2009-08-10 13:52:43 +02:00
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
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
Henri Verbeet
3a7fcec4d7
wined3d: Handle texture coordinates the same way we handle other vertex attributes.
2008-09-25 11:53:10 +02:00
Allan Tong
43f2ec33bf
wined3d: Fix Geforce9 detection.
2008-09-19 12:09:57 +02:00
Stefan Dösinger
d5f05c59c7
ddraw: Beware of the surface type when checking for format support.
2008-09-02 14:56:26 +02:00
Francois Gouget
4823b2c7bf
Assorted spelling fixes.
2008-09-02 13:58:21 +02:00
Stefan Dösinger
ec4955630e
wined3d: Silence some format spam.
2008-08-28 11:24:49 +02:00
Stefan Dösinger
462ddaa254
wined3d: Make the texture stage mapping nvrc independent.
2008-08-27 13:21:24 +02:00
Stefan Dösinger
97b57931d0
wined3d: Advertise a few line caps.
2008-08-27 13:21:24 +02:00
Stefan Dösinger
6bbcc5050b
wined3d: Disable D3DFMT_R3G3B2.
2008-08-27 13:21:23 +02:00
Stefan Dösinger
9a6bc683e1
wined3d: Use the correct texture limit.
...
We have to use the texture limit of the fragment pipeline in use here,
not the fixed function GL texture limit.
2008-08-26 12:07:41 +02:00
Stefan Dösinger
61a900fdfc
wined3d: Fix the drawStridedSlow callback function calling convention.
...
Since some of those function pointers are direct GL functions the function
prototype needs the WINE_GLAPI calling convention. This makes prevents
drawStridedSlow from crashing with USE_WIN32_OPENGL.
2008-08-25 12:26:17 +02:00
Stefan Dösinger
ec633bf789
wined3d: Disable D3DFMT_A2W10V10U10.
2008-08-25 12:25:33 +02:00
Stefan Dösinger
1043a04673
wined3d: Disable D3DFMT_A4L4.
2008-08-25 12:25:23 +02:00
Henri Verbeet
6fbbcd19e7
wined3d: Move a TRACE up a few lines.
2008-08-25 11:39:16 +02:00
Chris Robinson
eca8577d53
wined3d: Use 8 bits-per-component for the PBO test internal format.
...
GL_RGBA doesn't gaurantee an internal storage depth, which can cause the test
to fail if it's stored with less than 8 bits of precision. Some nVidia
drivers would actually store with 4 bits of precision.
2008-08-25 11:29:38 +02:00
Alexander Dorofeyev
03ae71dad9
wined3d: Set D3DPTEXTURECAPS_TRANSPARENCY.
...
It indicates support of colorkey transparency on textures, so set it because
wined3d supports it. Fixes transparency problems in Forsaken.
2008-08-21 13:35:30 +02:00
Stefan Dösinger
1f4cf3513d
wined3d: Implement YUV emulation with GL_ARB_fragment_program.
2008-08-20 12:26:14 +02:00
Stefan Dösinger
bfe7067973
wined3d: Ask the ffp/shader/blit implementation about format support.
...
If a format is not supported natively by opengl, a shader may be able
to convert it. Up to now, CheckDeviceFormat had magic knowldge which
GL extensions lead to which supported format. This patch adds
functions that allow CheckDeviceFormat to ask the actual
implementation for its capabilities.
2008-08-20 12:26:02 +02:00
Stefan Dösinger
438b6bd4c3
wined3d: Test formats for surface support.
2008-08-20 12:25:46 +02:00
Stefan Dösinger
fc6b977486
wined3d: Start a framework for color conversion shaders in blits.
2008-08-20 12:25:26 +02:00
Stefan Dösinger
6a24b28b75
wined3d: Support YUV formats with GL_APPLE_ycbcr_422.
2008-08-20 12:25:00 +02:00
Tobias Jakobi
2583975ec7
wined3d: Remove arb_tex_npot for NV FX series in fixup_extensions.
2008-08-04 14:05:01 +02:00
Stefan Dösinger
e9827cc916
wined3d: Always load glFinish and glFlush from opengl32.dll.
2008-08-04 13:12:10 +02:00
Stefan Dösinger
399825cd8e
wined3d: Report the pitch alignment to ddraw.
2008-08-04 13:10:37 +02:00
Stefan Dösinger
8ee4159e4f
wined3d: Only set D3D caps when GL was loaded successfully.
2008-08-04 13:10:20 +02:00
Stefan Dösinger
a47e7badb9
ddraw: Set ddraw caps in wined3d.
...
Currently the ddraw capabilities were almost static, except of D3D
support. When overlay support is added, the caps depend on certain
settings in WineD3D or capabilities available from OpenGL and Xv. So
set those caps in wined3d as well.
2008-08-04 13:10:11 +02:00
Stefan Dösinger
14b24058d6
wined3d: GL_ARB_fragment_program ffp implementation.
2008-07-31 13:02:04 +02:00
Stefan Dösinger
726d9d47af
wined3d: ATI2N support using GL_EXT_texture_compression_rgtc.
2008-07-24 11:56:42 +02:00
Stefan Dösinger
dc25a86cc5
wined3d: Support ATI's D3DFMT_ATI2N format.
...
This is an ATI specific format designed for compressed normal maps,
and quite a few games check for its existence. While it is an
ATI-specific "extension" in d3d9, it is a core part of
D3D10(DXGI_FORMAT_BC5), and supported on Geforce 8 cards.
2008-07-24 11:56:24 +02:00
Stefan Dösinger
bfd1ac26e2
wined3d: Set WINED3DDEVCAPS2_VERTEXELEMENTSCANSHARESTREAMOFFSET.
2008-07-22 13:01:15 +02:00
Stefan Dösinger
c088edeae7
wined3d: Use GL_ARB_texture_non_power_of_two emulation.
...
ATI cards prior to the radeon HD series did not have unconditional non
power of two support. So far we've used texture_rectangle for that, or
created a bigger power of two texture with padding. This had the
disadvantage that we had to correct the coordinates, which causes
extreme problems with shaders(doesn't work, pretty much).
Both the MacOS and the fglrx driver have support for
GL_ARB_texture_non_power_of_two, and run it on the hardware as long as
we stay within the texture_rectangle limitations. This allows us to
have conditional non power of two textures with normalized
coordinates. This patch adds an internal extension, and the code
creates a regular GL_TEXTURE_2D texture with NP2 size, but refuses
mipmapping, filtering and texture_rectangle incompatible
operations. This makes np2 textures work with shaders on fglrx and
macos.
2008-07-18 11:41:09 +02:00
Stefan Dösinger
e5f42f91b6
wined3d: Remove GL_EXT_vertex_weighting stubs.
2008-07-18 11:40:00 +02:00