Commit Graph

2854 Commits

Author SHA1 Message Date
Henri Verbeet ab275ab487 wined3d: Make calling a query from the wrong context a FIXME.
We want to know if this happens a lot. If the query is always called
from a different context than the one that created it, occlusion
culling would effectively be disabled, which could have a significant
performance impact, depending on the type of objects being culled.
2009-01-07 12:21:49 +01:00
Henri Verbeet 691894d1ab wined3d: Also apply the last sampler state.
In practice we don't implement WINED3DSAMP_DMAPOFFSET anyway, so this
is unlikely to make much of a difference.
2009-01-07 12:21:37 +01:00
Henri Verbeet bddf5e76ea wined3d: Convert textureState to a bitmap in struct SAVEDSTATES. 2009-01-06 12:45:52 +01:00
Henri Verbeet a8697d90e4 wined3d: Renumber WINED3DTEXTURESTAGESTATETYPE enum elements.
Saves some space by not having unused entries is the arrays tracking these
states.
2009-01-06 12:45:43 +01:00
Henri Verbeet e8ba733706 wined3d: Remove unused enum elements from WINED3DTEXTURESTAGESTATETYPE. 2009-01-05 12:41:31 +01:00
Henri Verbeet fd33f0f97f wined3d: Convert samplerState to a bitmap in struct SAVEDSTATES. 2009-01-05 12:41:17 +01:00
Henri Verbeet c33b38117e wined3d: Convert renderState to a bitmap in struct SAVEDSTATES. 2009-01-05 12:41:08 +01:00
Henri Verbeet fc39831e4c wined3d: Convert transform to a bitmap in struct SAVEDSTATES. 2009-01-05 12:40:57 +01:00
Stefan Dösinger 616ea53226 ddraw: Add a test for IDirectDrawSurface::GetDC. 2009-01-03 15:14:38 +01:00
Vincent Pelletier 23dcf61e61 wined3d: Make WARN about oversized texture output surface and texture sizes. 2009-01-03 14:55:31 +01:00
Henri Verbeet 9a889f6b0b wined3d: Convert textures to a bitmap in struct SAVEDSTATES. 2009-01-03 14:55:31 +01:00
Henri Verbeet 39909f2a06 wined3d: Handle WINED3DFVF_XYZW in get_flexible_vertex_size().
Spotted by Chris Robinson.
2009-01-03 14:55:31 +01:00
Henri Verbeet 3c14b3936f wined3d: Don't bother with the GLSL info log if nobody's looking. 2009-01-03 14:55:30 +01:00
Henri Verbeet 2e0212e998 wined3d: Fix the line number for some fglrx spam.
We added a #version line a while ago, so the line number for the
warning changed.
2009-01-03 14:55:30 +01:00
Allan Tong fdd512deeb wined3d: Add mapping for MOV instructions in shader_hw_map2gl. 2009-01-02 11:53:35 +01:00
Henri Verbeet 3b5c75d991 wined3d: Convert clipplane to a bitmap in struct SAVEDSTATES. 2009-01-02 11:53:04 +01:00
Henri Verbeet 52a900d4e8 wined3d: Convert streamSource and streamFreq to bitmaps in struct SAVEDSTATES. 2009-01-02 11:52:34 +01:00
Henri Verbeet 457037f4de wined3d: Fix the value of HIGHEST_TRANSFORMSTATE.
The highest transform state should be 511.
2009-01-02 11:52:02 +01:00
Henri Verbeet 73e042496c wined3d: Fix a few format specifiers in IWineD3DStateBlockImpl_Capture(). 2009-01-02 11:51:54 +01:00
Henri Verbeet 0657e8d87a wined3d: Use slightly nicer loops in device_map_fixed_function_samplers(). 2009-01-02 11:51:46 +01:00
Henri Verbeet 3920d42f71 wined3d: Convert some BOOLs to bitfields in struct SAVEDSTATES. 2008-12-31 12:26:57 +01:00
Henri Verbeet 29a0d06518 wined3d: Convert some BOOLs to bitfields in struct IWineD3DDeviceImpl.
Also fills a 3 byte hole.
2008-12-31 12:26:33 +01:00
Henri Verbeet 3f12f59aa4 wined3d: Convert some BOOLs to bitfields in struct WineD3DContext.
Also happens to fill two 3 byte holes.
2008-12-31 12:26:23 +01:00
Henri Verbeet 813c7ed202 wined3d: Remove an unused field from the device. 2008-12-31 12:26:02 +01:00
Henri Verbeet 2b926db50d wined3d: Make use_vs() and use_ps() work on a stateblock instead of a device.
Most callers work on a stateblock rather than a device, and the main fields
we check (vertexShader and pixelShader) are part of the stateblock as well.
2008-12-31 12:25:56 +01:00
Henri Verbeet f197e8b1ca wined3d: Handle D3DFVF_XYZW in ConvertFvfToDeclaration().
This is similar to 0bdab5f80c.
2008-12-30 11:36:57 +01:00
Henri Verbeet 007c648c20 d3d: Correct some debug levels. 2008-12-30 11:36:50 +01:00
Henri Verbeet 6f5af4047f wined3d: Get rid of the glname field in struct SHADER_OPCODE.
It's only used for shader_hw_map2gl() and vshader_hw_rsq_rcp(), and we
can handle those the same way we handle the GLSL equivalents.
2008-12-30 11:36:35 +01:00
Henri Verbeet 29b826b39e wined3d: D3DRS_POINTSIZE_MIN is initially 0.0f for d3d8. 2008-12-29 12:16:52 +01:00
Henri Verbeet de494ffe3c wined3d: The initial value for D3DRS_POINTSIZE_MAX depends on the pointsize limit. 2008-12-29 12:16:42 +01:00
Francois Gouget 2166afceb7 Assorted spelling fixes. 2008-12-29 11:36:49 +01:00
Vincent Pelletier 143bd931b6 wined3d: Detect intel 945 GM. 2008-12-29 11:35:36 +01:00
Nick Burns 9dea6f7de5 wined3d: Fix glReadPixels call from read_from_framebuffer. 2008-12-26 13:42:17 +01:00
Andrew Talbot f9762d6082 wined3d: Remove superfluous semicolons. 2008-12-24 19:59:14 +01:00
Maarten Lankhorst 4eca43e702 winex11.drv/wined3d: Fix tsx11 calling convention. 2008-12-23 12:51:44 +01:00
Nick Burns c52fd346ef wined3d: Fix a couple of typos in wined3d_gl.h 2008-12-22 14:14:52 +01:00
Rico Schüller b061f64228 wined3d: Fix compilation for Windows build. 2008-12-22 10:29:14 +01:00
Henri Verbeet 02e4c33611 wined3d: Consistently use .xyzw for vector components. 2008-12-20 11:11:55 +01:00
Henri Verbeet 33f344882c wined3d: Remove a useless FIXME. 2008-12-20 11:11:49 +01:00
Henri Verbeet 4a19d893e5 wined3d: Only apply shader constants that changed.
This improves performance a bit for applications that use a lot of
shaders with a lot of constants.
2008-12-20 11:11:45 +01:00
Henri Verbeet 684017c071 wined3d: Properly reset the stateblock. 2008-12-20 11:11:39 +01:00
Henri Verbeet ef7365a4cd wined3d: Set the initial viewport in InitStartupStateBlock().
>From 8aa3fb7ceb6fb93abf71520c852403284a9f8c76 Mon Sep 17 00:00:00 2001
From: Henri Verbeet <hverbeet@codeweavers.com>
Date: Fri, 19 Dec 2008 19:21:55 +0100
Subject: wined3d: Set the initial viewport in InitStartupStateBlock().
2008-12-20 11:11:34 +01:00
Henri Verbeet a52edd7810 wined3d: Don't call allocate_shader_constants() from Init3D().
CreateStateBlock() should take care of that.
2008-12-19 18:05:02 +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 331fe08b54 wined3d: Add R32F using ARB_texture_rg. 2008-12-19 17:49:08 +01:00
Roderick Colenbrander 8cb84458d3 wined3d: Add R16F using ARB_texture_rg. 2008-12-19 17:49:02 +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
Stefan Dösinger 690cbe76ac wined3d: Make pixelshaders disable fog properly.
This is a first step towards cleaning up the fog mess. The fog
parameter is added to the pixelshader compile args structure. That way
multiple pshaders are compiled for different fog settings, and the
pixel shader can remove the fog line if fog is not enabled. That way
we don't need special fog start and end settings, and this allows us
to implement EXP and EXP2 fog in the future too.
2008-12-19 17:17:16 +01:00
Stefan Dösinger 7d92b54a97 wined3d: Use the ps_compile_args struct in glsl. 2008-12-19 17:17:04 +01:00
Stefan Dösinger 20189eb4f8 wined3d: Make use of ps_compile_args in arb shader. 2008-12-19 17:16:56 +01:00
Stefan Dösinger 30d542c3dd wined3d: Make use of the ps_compile_args structure in glsl_shader.
Only a first step, many more occasions need fixing. This is an easy
one though.
2008-12-19 17:16:50 +01:00
Stefan Dösinger 61e581abb4 wined3d: Pass the ps_compile_args structures to the shader generation code. 2008-12-19 17:16:39 +01:00
Henri Verbeet d099dde7a9 wined3d: Track shader constants in the shader backend. 2008-12-18 13:17:02 +01:00
Henri Verbeet a14dab4937 wined3d: Don't mark shader constants dirty when we're recording a stateblock. 2008-12-18 13:16:52 +01:00
Henri Verbeet 0968cb9b6c wined3d: Fix constant setting for the ARB backend. 2008-12-18 13:16:46 +01:00
Francois Gouget cf7c8a2425 wined3d: Fix double const. 2008-12-17 15:28:39 +01:00
Henri Verbeet 73823ef5f6 wined3d: Remove the shader_cleanup() method from the shader backend. 2008-12-17 14:02:24 +01:00
Henri Verbeet 78ad5de8da wined3d: Record floating point pixel shader constants in EndStateBlock() as well. 2008-12-17 14:02:09 +01:00
Henri Verbeet 4adb342327 wined3d: Remove GetFVF() and SetFVF() from IWineD3DDevice. 2008-12-17 14:02:03 +01:00
Stefan Dösinger 704f9ea5d1 wined3d: Get rid of IWineD3DPixelShaderImpl_GenerateShader. 2008-12-16 14:36:25 +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 5315b7992d wined3d: Correct a stage number. 2008-12-16 14:34:20 +01:00
Stefan Dösinger 31da3c0578 wined3d: Emulate GL_EXT_fog_coord. 2008-12-16 14:34:11 +01:00
Stefan Dösinger d707f018df wined3d: Remove some needless initializations.
They're not needed, they are handled by the state management anyway.
2008-12-16 14:32:43 +01:00
Stefan Dösinger 4b268c79d7 wined3d: Some GL_EXT_fog_coord prototype fixes. 2008-12-16 14:32:29 +01:00
Stefan Dösinger 0dc0444c14 wined3d: Reinstall the G16R16F format surface load fixup.
We cannot remove this because we still have to load the surface as
RGB. The shader may take care of setting the blue channel to 1.0 now,
but we still get the red and green channels loaded incorrectly if we
don't insert a blue channel before loading.
2008-12-16 14:32:11 +01:00
Stefan Dösinger 6ec741e766 wined3d: Set up the shaders when delaying fixed func applying. 2008-12-16 14:31:39 +01:00
Stefan Dösinger 199a3468bf wined3d: Fake GL_ARB_multitexture. 2008-12-16 14:31:25 +01:00
Henri Verbeet 143fb431e0 wined3d: Fix use_vs() usage in vertexdeclaration(). 2008-12-16 12:52:10 +01:00
Henri Verbeet f3743fb402 wined3d: Shaders will never have a NULL function. 2008-12-16 12:52:04 +01:00
Henri Verbeet 46572f682c wined3d: Refuse to create shaders with a NULL function. 2008-12-16 12:51:49 +01:00
Henri Verbeet 9011452243 wined3d: Simplify shader_generate_main() a bit. 2008-12-15 14:00:29 +01:00
Henri Verbeet 8553665cb1 wined3d: Move the shader version to reg_maps. 2008-12-15 14:00:26 +01:00
Henri Verbeet dd094fe69d wined3d: Explicitly pass the shader version to some more functions. 2008-12-15 14:00:21 +01:00
Stefan Dösinger c0a715977d wined3d: Remove a blank line in state.c. 2008-12-15 12:24:52 +01:00
Stefan Dösinger c937278262 wined3d: Give ATIFS a pixel shader handler. 2008-12-15 12:24:38 +01:00
Henri Verbeet 3e035ddf05 wined3d: Don't leak memory on failure in allocate_shader_constants(). 2008-12-12 11:40:44 +01:00
Henri Verbeet 7d29aecd6f wined3d: Use a simpler way to calculate the number of texture levels.
It's probably slightly faster too.
2008-12-12 11:40:39 +01:00
Henri Verbeet 70ed814b95 wined3d: Get rid of the textureDimensions field in the state block. 2008-12-12 11:40:32 +01:00
Henri Verbeet f36c377d0e wined3d: We only care is a sampler is sampled at all in device_map_vsamplers(), not the specific type. 2008-12-12 11:40:26 +01:00
Henri Verbeet fb475c7c29 wined3d: Don't reparse the entire shader just to update the sampler types. 2008-12-12 11:40:20 +01:00
Stefan Dösinger f2f90b6965 wined3d: Fix ARG_UNUSED and use it properly.
That bug was uncovered by Henri's change of the bitfield sizes.
2008-12-11 14:07:31 +01:00
Stefan Dösinger fef73782ce WineD3D: Abstract some ATIfs op debug TRACEs.
It makes the code more readable and will help us to merge the ALPHAOP
and COLOROP code.
2008-12-11 14:07:21 +01:00
Stefan Dösinger 4916cd5478 wined3d: Don't load INT and BOOL constants needlessly. 2008-12-11 14:06:04 +01:00
Henri Verbeet 441f515d08 wined3d: Don't trace the shader if nobody's looking. 2008-12-11 12:14:55 +01:00
Henri Verbeet 8124f5e14a wined3d: shader_trace_init() shouldn't have side effects.
This moves setting baseShader.hex_version and baseShader.functionLength to
shader_get_registers_used(), where it's more appropriate.
2008-12-11 12:14:50 +01:00
Henri Verbeet 9541c346b3 wined3d: Remove some more unused code. 2008-12-11 12:14:40 +01:00
Henri Verbeet 15d497cb26 wined3d: baseShader.functionLength should be 0 when a NULL pFunction is passed. 2008-12-11 12:14:36 +01:00
Henri Verbeet a2f259afff wined3d: Get rid of the "len" variable in shader_trace_init(). 2008-12-11 12:14:30 +01:00
Henri Verbeet b409061337 wined3d: Make some constant arrays also static.
As pointed out by Dan Kegel.
2008-12-10 10:50:37 +01:00
Henri Verbeet bcf0b4b128 wined3d: Compare & copy with the correct clipplane size in IWineD3DStateBlockImpl_Capture(). 2008-12-10 10:50:30 +01:00
Henri Verbeet 4aa00e8a21 wined3d: Rename texture_stage_op.color_correction to texture_stage_op.color_fixup.
This is consistent with other uses of struct color_fixup_desc.
2008-12-10 10:50:24 +01:00
Henri Verbeet 4aeaba0d29 wined3d: Use the actual fixup for the stage in gen_ati_shader().
This fixes a regression introduced by commit
89139b7589.
2008-12-10 10:50:18 +01:00
Henri Verbeet ce4d03318b wined3d: Fix some spelling errors. 2008-12-09 11:27:51 +01:00
Henri Verbeet 50a87e23e7 wined3d: Fix the IWineD3DVertexShader and IWineD3DPixelShader IUnknown methods.
IWineD3DVertexShader isn't supposed to implement IWineD3DPixelShader.
2008-12-09 11:27:32 +01:00
Henri Verbeet 4997bee1bf wined3d: Add functions to initialize and free shader buffers. 2008-12-09 11:27:13 +01:00
Henri Verbeet acbdd807b6 wined3d: Don't leak memory in IWineD3DPixelShaderImpl_GenerateShader().
This fixes a regression introduced by commit
0bf32b12f5.
2008-12-09 11:27:02 +01:00
Henri Verbeet f1f62fb5ce wined3d: Remove some unused code. 2008-12-09 11:26:49 +01:00
Andrew Talbot c3cdc671a4 wined3d: Remove unneeded address-of operators from array names. 2008-12-08 22:03:06 +01:00