Stefan Dösinger
9281bdb478
wined3d: SetLOD is ignored on D3DPOOL_DEFAULT textures.
...
I am not testing SYSTEMMEM and SCRATCH textures. SCRATCH textures
cannot be created, SYSTEMMEM ones cannot be used for texturing on
Windows.
2009-08-31 12:18:56 +02:00
Stefan Dösinger
edf1c50b54
wined3d: Handle per-texture max LOD level.
...
GL_TEXTURE_BASE_LEVEL matches the basetexture::SetLOD functionality.
D3DSAMP_MAXMIPLEVEL essentially does the same as SetLOD. The test included in
this patch shows that the smallest mipmap level is used.
2009-08-31 12:18:41 +02:00
Stefan Dösinger
eafc00e173
wined3d: Add a comment about D3DSAMP_MAXMIPLEVEL.
2009-08-31 12:18:10 +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
Rico Schüller
d0b7a70b38
wined3d: Add WINED3D_SM4_OP_MIN.
2009-08-28 11:54:49 +02:00
Rico Schüller
3717e9e162
wined3d: Add WINED3D_SM4_OP_MAX.
2009-08-28 11:54:49 +02:00
Henri Verbeet
560d63548d
wined3d: Remove trailing spaces.
2009-08-27 11:45:37 +02:00
Henri Verbeet
afc06ce748
wined3d: Get rid of a redundant memset() in device_stream_info_from_declaration().
2009-08-27 11:45:37 +02:00
Henri Verbeet
c514323442
wined3d: Properly check if an attribute is used in drawStridedInstanced().
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
d4e167dfbc
wined3d: Properly check if an attribute is used in remove_vbos().
2009-08-26 12:10:45 +02:00
Henri Verbeet
59c017c8bd
wined3d: Properly check if an attribute is used in state_normalize().
2009-08-26 12:10:42 +02:00
Henri Verbeet
6ef17134d2
wined3d: Properly check if an attribute is used in transform_texture().
2009-08-26 12:10:38 +02:00
Henri Verbeet
f9c791f9ca
d3d8: Use a wined3d cs for wined3d locking.
...
We will need this for d3d10, where both dxgi and d3d10core are making wined3d
calls. Right now d3d8/d3d9 also use this to protect their own data, but
eventually we should push this down into wined3d itself and use something a
bit more fine-grained. There's no good reason that doing e.g. a vertex buffer
upload in some thread should block all of wined3d.
2009-08-25 11:12:17 +02:00
Henri Verbeet
839658848c
wined3d: Properly check if an attribute is used in find_conversion_shift().
2009-08-25 11:09:45 +02:00
Henri Verbeet
bda89180e1
wined3d: Properly check if an attribute is used in streamsrc().
2009-08-25 11:09:40 +02:00
Henri Verbeet
c9f270a5d9
wined3d: Properly check if an attribute is used in drawStridedSlow().
2009-08-25 11:09:34 +02:00
Henri Verbeet
7823679e20
wined3d: Properly check if an attribute is used in state_colormat().
2009-08-24 15:17:33 +02:00
Henri Verbeet
c1c58f85ca
wined3d: Properly check if an attribute is used in drawStridedSlowVs().
2009-08-24 15:17:33 +02:00
Henri Verbeet
16b0c6a0fd
wined3d: Properly check if an attribute is used in buffer_check_attribute().
2009-08-24 15:17:33 +02:00
Henri Verbeet
850232810d
wined3d: Properly check if an attribute is used in loadTexCoords().
2009-08-24 15:17:33 +02:00
Henri Verbeet
e48350a471
wined3d: Properly check if an attribute is used in loadVertexData().
2009-08-24 15:17:32 +02:00
Henri Verbeet
0c4201d5fd
wined3d: Properly check if an attribute is used in TRACE_STRIDED.
2009-08-21 11:12:01 +02:00
Henri Verbeet
458afd64bd
wined3d: Properly check if an attribute is used in IWineD3DDeviceImpl_ProcessVertices().
2009-08-21 11:10:26 +02:00
Henri Verbeet
4ec2b09d8f
wined3d: Don't check for a "representative" in the MarkStateDirty() functions.
...
States without representative should never be called. Arguably they shouldn't
exist in the first place, but allowing them simplifies the state table.
2009-08-21 11:10:21 +02:00
Henri Verbeet
b2e543b22f
wined3d: Add a state handler for WINED3DRS_DEBUGMONITORTOKEN.
2009-08-21 11:10:15 +02:00
Henri Verbeet
a36e30b541
wined3d: Mark the correct state dirty.
2009-08-21 11:10:07 +02:00
Stefan Dösinger
3cd91a451d
wined3d: Use 50 chars for register names in texm3x3* functions.
2009-08-19 17:28:08 +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
5a24a02ad5
wined3d: Pass the context's gl_info to state handlers.
2009-08-19 14:45:34 +02:00
Henri Verbeet
dc8b1bdc0f
wined3d: Rename some GLSL instruction handlers.
...
The pshader_glsl_* names are a leftover from when we had separate code for
vertex and fragment shaders.
2009-08-19 14:45:23 +02:00
Henri Verbeet
ffb38da024
wined3d: Try to force a top-left filling convention.
2009-08-19 14:45:09 +02:00
Henri Verbeet
92b66ac82c
wined3d: Make use_vs() safe to call from IWineD3DDeviceImpl_FindTexUnitMap().
2009-08-19 14:45:02 +02:00
Rico Schüller
d9784c1a2f
wined3d: Fix some checkGLcalls.
2009-08-19 14:41:49 +02:00
Jörg Höhle
7763da811b
wined3d: Check GL_SUPPORT prior to an ARB occlusion call.
2009-08-17 19:36:41 +02:00
Henri Verbeet
d900491310
wined3d: Replace find_clip_texcoord() with a generic function for finding a free input register.
2009-08-17 13:57:50 +02:00
Henri Verbeet
8d0ad2cf36
wined3d: Remove a redundant IWineD3DDeviceImpl_MarkStateDirty() call.
...
We should now correctly track the relevant state per-context. The
IWineD3DDeviceImpl_SetViewport() call isn't quite correct for d3d8 and d3d9,
Stefan still has a patch for that.
2009-08-17 13:57:50 +02:00
Henri Verbeet
b8078fc747
wined3d: Use WINED3D_UNMAPPED_STAGE in some more places.
2009-08-17 13:57:50 +02:00
Henri Verbeet
7a0670392c
wined3d: Check the correct vertex sampler in device_unit_free_for_vs().
2009-08-17 13:57:50 +02:00
Henri Verbeet
8cf7aa2bdd
wined3d: Don't use a start index higher than MAX_COMBINED_SAMPLERS - 1 in device_map_vsamplers().
2009-08-17 13:57:50 +02:00
Henri Verbeet
ecd2dc7603
wined3d: Make RTL_READTEX the default rendertarget locking method.
...
For most cards this should make more sense than RTL_READDRAW, even if e.g.
surface_upload_data() has some room for improvement.
2009-08-14 13:59:09 +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
f7918b978f
wined3d: Make the "luminanceparams" shader_reg_maps member a bitmap.
2009-08-12 13:22:50 +02:00
Henri Verbeet
95bb4c0486
wined3d: Make the "bumpmat" shader_reg_maps member a bitmap.
2009-08-12 13:22:44 +02:00
Henri Verbeet
3d718d6414
wined3d: Make the "labels" shader_reg_maps member a bitmap.
2009-08-12 13:22:37 +02:00
Henri Verbeet
270f57e755
wined3d: Make the "address" shader_reg_maps member a bitmap.
2009-08-12 13:22:30 +02:00
Henri Verbeet
3ec639e38c
wined3d: Fix swapchain draw buffer cleanup.
...
Destroying the first back buffer before the other ones might cause an already
freed surface to be used as target in FindContext().
2009-08-12 13:22:25 +02:00
Henri Verbeet
6fa9fa15da
wined3d: Make the "temporary" shader_reg_maps member a bitmap.
2009-08-11 12:36:20 +02:00
Henri Verbeet
50853e295b
wined3d: Make the "texcoord" shader_reg_maps member a bitmap.
2009-08-11 12:36:16 +02:00
Henri Verbeet
a282380f08
wined3d: Fix the type of the shader_reg_maps bitfields.
2009-08-11 12:36:12 +02:00
Henri Verbeet
b2ace3b1ab
wined3d: Correctly check for luminance bumpmap parameters in shader_generate_glsl_declarations().
2009-08-11 12:35:49 +02:00
Henri Verbeet
76fdf2c1a5
wined3d: Handle GetData() on event queries that aren't started yet.
...
This fixes a regression introduced by fb77678e9f
.
2009-08-11 12:35:43 +02:00
Francois Gouget
e74efb5487
Assorted spelling fixes.
2009-08-11 12:35:38 +02:00
Henri Verbeet
cbd555bbc9
wined3d: Get rid of the unused vbo_mode setting.
2009-08-10 13:53:11 +02:00
Henri Verbeet
6794a57073
wined3d: Return ~0U for wined3d_log2i(0).
2009-08-10 13:53:05 +02:00
Henri Verbeet
3b06fc92f4
wined3d: Use EXT_provoking_vertex to match Direct3D's provoking vertex convention.
2009-08-10 13:52:50 +02:00
Henri Verbeet
ac64bf6406
wined3d: Detect EXT_provoking_vertex.
2009-08-10 13:52:43 +02:00
Henri Verbeet
8d746c31ba
wined3d: Properly handle negative loop step in shader_glsl_loop().
2009-08-10 13:52:37 +02:00
Roderick Colenbrander
5a00c8053e
wined3d: Get rid of two dead render target lock mode options.
2009-08-10 13:10:49 +02:00
Stefan Dösinger
4f9f8fef0b
wined3d: Dirtify the correct state.
2009-08-07 14:57:09 +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
Stefan Dösinger
14eedc5be7
wined3d: Watch out about higher constants when clamping ps 1.x consts.
...
ps 1.x supports only 8 constants, so the shader load code dirtifies the
first 8 on a shader switch. However, the constant load code reloaded all dirty
consts with clamping. That potentially left constants > 8 clamped.
2009-08-07 14:56:33 +02:00
Henri Verbeet
35826e9761
wined3d: Fix a condition in record_lights().
2009-08-07 12:11:35 +02:00
Henri Verbeet
41729ca919
wined3d: Check the return value of wglDeleteContext() in context_destroy_gl_resources().
2009-08-07 12:11:27 +02:00
Henri Verbeet
7ed116da2e
wined3d: Merge the context->current_rt check for rendertarget readback with the code above.
...
Also update the comments.
2009-08-07 12:11:17 +02:00
Henri Verbeet
0479fb13b5
wined3d: Explicitly pass the context to drawStridedSlow().
2009-08-07 12:11:10 +02:00
Henri Verbeet
3bf0ad4528
wined3d: Explicitly pass the context to the shader_select() handler.
2009-08-07 12:11:06 +02:00
Stefan Dösinger
c6d3e75482
wined3d: Not all cards support float16 filtering.
2009-08-06 17:26:31 +02:00
Henri Verbeet
4c1b3de936
wined3d: Call the shader_load_np2fixup_constants() handler directly from inside the shader backend.
2009-08-06 17:26:30 +02:00
Henri Verbeet
03686cb6bd
wined3d: Explicitly pass the context to the shader_load_constants() handlers.
2009-08-06 17:26:30 +02:00
Henri Verbeet
a7251f0f4e
wined3d: Track render_offscreen in the context.
...
This makes sure the relevant states in FindContext() are actually marked dirty
when needed.
2009-08-06 17:26:30 +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
7165bd19c1
wined3d: WINED3DTEXF_NONE only makes sense as a mip filter.
2009-08-05 11:20:43 +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
Henri Verbeet
62ac872b36
wined3d: Remove a redundant check from basetexture_get_autogen_filter_type().
...
This is already initialized to an appropriate value in basetexture_init().
Also fix the indentation while we're at it.
2009-08-05 11:20:24 +02:00
Henri Verbeet
a86f31658b
wined3d: Move texture filter lookup table initialization to basetexture_init().
2009-08-05 11:20:19 +02:00
Henri Verbeet
351d6de818
wined3d: Add functions to lookup texture filters.
2009-08-05 11:20:09 +02:00
Henri Verbeet
0f161dc10f
wined3d: Remove some unused code.
2009-08-05 11:19:59 +02:00
Stefan Dösinger
2858f67a2a
wined3d: Enable WINED3DFMT_R16G16B16A16_UNORM.
2009-08-05 11:19:46 +02:00
Stefan Dösinger
f3b39d9085
wined3d: Preload the correct texture location.
2009-08-05 11:19:35 +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
Stefan Dösinger
2e9362d0fb
wined3d: ARB clipplane init needs the helper constant.
2009-08-05 11:19:14 +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
efb78aca64
wined3d: Update the WINED3DSAMP_MAGFILTER state even if we didn't recognize the value.
...
It's a bit pointless to keep printing FIXMEs after the first time.
2009-08-04 13:03:44 +02:00
Henri Verbeet
10906e6b8e
wined3d: Set the initial value of WINED3DTEXSTA_MAXANISOTROPY to 1.
2009-08-04 13:03:40 +02:00
Henri Verbeet
2f3e993e7e
wined3d: Properly calculate GL_TEXTURE_MAX_ANISOTROPY_EXT.
2009-08-04 13:03:34 +02:00
Henri Verbeet
b7812932bc
wined3d: Don't respecify compressed textures in surface_upload_data().
...
Passing NULL to glCompressedTexImage2DARB() doesn't work particularly well
when both client storage and PBOs are enabled. Also, two years is long enough
to give driver developers a chance to fix the bug this was supposed to work
around.
2009-08-03 15:01:55 +02:00
Henri Verbeet
da1e5573da
wined3d: Rename WineD3DContext to struct wined3d_context.
2009-08-03 15:01:48 +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
43bfb240ad
wined3d: Use the context's current render target the get the swapchain drawable size.
...
"surface" might point to the frontbuffer while we're rendering to the
backbuffer, etc.
2009-08-03 15:01:25 +02:00
Henri Verbeet
0047c55e86
wined3d: Handle destruction of a context's current render target.
2009-08-03 15:01:18 +02:00
Henri Verbeet
9baf7864c5
wined3d: Return proper NULLs from CreateContext().
2009-07-24 13:11:01 +02:00
Henri Verbeet
be536ebe2f
wined3d: Get rid of activeContext.
2009-07-24 13:10:57 +02:00
Henri Verbeet
c8fe24d29e
wined3d: Explicitly pass the context to surface_load_ds_location().
2009-07-24 13:10:47 +02:00
Henri Verbeet
2c71b85334
wined3d: Explicitly pass the context to get_drawable_size().
2009-07-24 13:10:37 +02:00
Henri Verbeet
fb77678e9f
wined3d: Manage event queries in the context.
2009-07-24 13:10:28 +02:00
Henri Verbeet
4ab7af6575
wined3d: Manage occlusion queries in the context.
2009-07-24 13:10:19 +02:00
Leonid Lobachev
f6cc091d75
wined3d: Add missing calling convention specifiers.
2009-07-23 13:20:29 +02:00
Henri Verbeet
357ea123d9
wined3d: get_drawable_size() needs a context.
2009-07-23 11:22:25 +02:00
Henri Verbeet
ea2caa9ba1
wined3d: Return the activated context from ActivateContext().
2009-07-23 11:22:22 +02:00
Henri Verbeet
85e2c05e4f
wined3d: Explicitly pass the wined3d context to context_apply_draw_buffer().
2009-07-23 11:22:18 +02:00
Henri Verbeet
9253bbcb05
wined3d: Get rid of last_device.
2009-07-23 11:22:13 +02:00
Henri Verbeet
401e99b0c0
wined3d: Remove some unnecessary code.
...
Now that we don't depend on activeContext and lastActiveRenderTarget to be
non-NULL this code can go.
2009-07-23 11:22:08 +02:00
Henri Verbeet
57ccdb7e36
wined3d: Don't reuse contexts marked for destruction.
2009-07-23 11:22:03 +02:00
Henri Verbeet
e5d621c081
wined3d: Try to reuse the thread's current context in FindContext().
2009-07-22 14:42:51 +02:00
Henri Verbeet
9ceda3a6fd
wined3d: Move some context selection code from ActivateContext() to FindContext().
2009-07-22 14:42:51 +02:00
Henri Verbeet
219d3abdd1
wined3d: Simplify FindContext() a bit.
2009-07-22 14:42:51 +02:00
Henri Verbeet
ce436a76e2
wined3d: Get rid of getActiveContext().
2009-07-22 14:42:50 +02:00
Henri Verbeet
377cda97e7
wined3d: Avoid destroying contexts that are current in another thread.
2009-07-22 14:42:50 +02:00
Henri Verbeet
1a43030664
wined3d: Keep track of a thread's wined3d context.
2009-07-22 14:42:50 +02:00
Henri Verbeet
c114b04016
wined3d: Remove the useless lastThread field from IWineD3DDeviceImpl.
2009-07-21 14:23:06 +02:00
Henri Verbeet
2d7500600b
wined3d: Get rid of lastActiveRenderTarget.
2009-07-21 14:23:02 +02:00
Henri Verbeet
223b9d5c01
wined3d: Get rid of lastActiveRenderTarget in FindContext().
2009-07-21 14:22:58 +02:00
Henri Verbeet
8402519c7a
wined3d: Call ModifyLocation on "target" in IWineD3DDeviceImpl_ClearSurface().
...
This is the same pointer, but lastActiveRenderTarget will go away.
2009-07-21 14:22:53 +02:00
Henri Verbeet
6c0c1671b2
wined3d: Keep track of a context's current render target.
2009-07-21 14:22:49 +02:00
Henri Verbeet
ee4d18cc83
wined3d: Pass NULL to ActivateContext() when we don't need a specific target.
...
Once we keep track of the wined3d context for each thread,
lastActiveRenderTarget won't do what we want here.
2009-07-21 14:22:44 +02:00
Henri Verbeet
e6f55c2650
wined3d: Remove an unused struct member.
2009-07-20 13:35:15 +02:00
Henri Verbeet
3a63552fd1
wined3d: Skip some unnecessary FBO binds.
2009-07-20 13:35:11 +02:00
Henri Verbeet
dedd62c0e2
wined3d: Recognize the SM4 log opcode.
2009-07-20 13:35:07 +02:00
Stefan Dösinger
e06997359f
wined3d: Set the highest dirty marker after marking shader constants dirty.
2009-07-20 12:23:14 +02:00
Stefan Dösinger
cd7f43b00d
wined3d: Don't activate a context unless we need one.
2009-07-20 12:23:07 +02:00
Henri Verbeet
a80247f58b
wined3d: Avoid redundant FBO binds.
...
Apparently this is an expensive operation for certain drivers, even if the
binding doesn't actually change.
2009-07-17 11:22:07 +02:00
Henri Verbeet
710f6f8456
wined3d: Always use context_bind_fbo() to change the framebuffer binding.
2009-07-17 11:22:07 +02:00
Henri Verbeet
7485173849
wined3d: Pass the context instead of the device to the various context functions.
2009-07-17 11:22:07 +02:00
Henri Verbeet
a01616a6c3
wined3d: Store a pointer to wined3d_gl_info in struct WineD3DContext.
2009-07-17 11:22:07 +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
50f5abcad9
wined3d: Recognize the SM4 dp4 opcode.
2009-07-16 16:03:40 +02:00
Henri Verbeet
03acf9d207
wined3d: Recognize the SM4 dp3 opcode.
2009-07-16 16:03:36 +02:00
Henri Verbeet
7539cd5c85
wined3d: Recognize the SM4 rsq opcode.
2009-07-16 16:03:32 +02:00
Henri Verbeet
d6ffe00cd2
wined3d: Recognize the SM4 constant buffer register type.
2009-07-16 16:03:28 +02:00
Henri Verbeet
c4f8845bc9
wined3d: Recognize SM4 arrays.
...
This is for SM4 constant buffers, which look like cb<x>[<y>]. At some later
point we should probably translate pre-SM4 constants to constant buffers.
2009-07-16 16:03:23 +02:00
Stefan Dösinger
9d14dcab68
wined3d: Use the unmodified source in MOVA.
...
The code removed by this patch was a leftover from the time when we tried to
emulate MOVA with a plain ARL, which only supports one source in plain ARB.
This breaks the more sophisticated MOVA and 4 component ADDR register we have
now however.
2009-07-16 11:15:45 +02:00
Stefan Dösinger
6a04c2d5cc
wined3d: Don't call glGetError if nobody is listening.
2009-07-16 11:15:40 +02:00
Henri Verbeet
ae8e8ac73f
wined3d: Check the return values for some wgl calls.
2009-07-15 13:24:24 +02:00
Henri Verbeet
476c83522b
wined3d: Remove the remains of an ATI_fragment_shader hack.
...
This was originally added as a workaround for a Mesa bug by commit
ddf52dda15
. The other half of the hack has since
been removed. This code causes problems when wglDeleteContext() from a
different thread causes our current context to be destroyed, since
wglGetCurrentContext() will return a destroyed context in that case. That is a
flaw in our wgl implementation, since wglDeleteContext() shouldn't allow a
context that's current in a different thread to be destroyed, but this hack is
a bad idea regardless.
2009-07-15 13:24:19 +02:00
Stefan Dösinger
3c2fa6aea4
wined3d: Set the depth blit helper texture address mode to clamp.
...
On ATI cards we use the driver's GL_ARB_texture_non_power_of_two emulation to
support conditional NP2 textures without having to deal with the denormalized
coordinates. The default GL_TEXTURE_2D address mode is incompatible with
GL_ARB_texture_rectangle however.
2009-07-15 13:17:12 +02:00
Stefan Dösinger
387d337a70
wined3d: EXP and EXPP are scalar operations.
2009-07-15 13:17:02 +02:00
Stefan Dösinger
2bfdff198c
wined3d: Check the correct constant limit.
2009-07-10 13:07:33 +02:00
Stefan Dösinger
17769497eb
wined3d: Drop the color0 mov optimization if the src is overwritten.
2009-07-10 13:07:33 +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
Henri Verbeet
38cb9d02b1
wined3d: Take geometry shaders into account in shader_glsl_load_constantsB().
2009-07-10 12:13:29 +02:00
Henri Verbeet
69b7612265
wined3d: Get rid of struct glDescriptor.
...
In general it might not be a bad idea to group GL specific data into a
separate struct, but IWineD3DSurfaceImpl is currently the only thing that
bothers. It doesn't get it quite right either, since e.g. the PBO isn't in
glDescriptor either.
2009-07-10 12:13:24 +02:00
Henri Verbeet
038d939941
wined3d: Remove GetGlDesc() from the public IWineD3DSurface interface.
2009-07-10 12:13:09 +02:00
Henri Verbeet
60e0997c79
wined3d: Simplify the GLSL sRGB write code.
2009-07-10 12:13:03 +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
Stefan Dösinger
37b73478f1
wined3d: An indirect address op can adjust min and max at the same time.
2009-07-09 12:47:24 +02:00
Henri Verbeet
9cf7888002
wined3d: Fix some cast-qual warnings.
2009-07-09 11:38:07 +02:00
Henri Verbeet
95d9b1271f
wined3d: Get rid of the useless "fragcolor" variable in shader_glsl_generate_pshader().
2009-07-09 11:38:05 +02:00
Henri Verbeet
483d552e21
wined3d: Allow shader_buffer_init() to fail.
2009-07-09 11:38:02 +02:00
Henri Verbeet
40b411958b
wined3d: Rename "SHADER_BUFFER" to something sane.
2009-07-09 11:37:58 +02:00
Henri Verbeet
bddc4d3f0d
wined3d: Reuse the shader buffer between shaders.
2009-07-09 11:37:53 +02:00
Henri Verbeet
6211643bf5
wined3d: Fix a sign compare warning in shader_vaddline().
2009-07-08 20:14:44 +02:00
Henri Verbeet
e41831990d
wined3d: Fix a sign compare warning in glsl_shader.c.
2009-07-08 20:14:35 +02:00
Henri Verbeet
949cd089d5
wined3d: Trace the D3D shader in find_glsl_vshader() / find_glsl_pshader().
...
It's quite useful to know to which D3D shader a GLSL shader corresponds.
2009-07-08 20:14:32 +02:00
Henri Verbeet
6d8e1e52c8
wined3d: Avoid destroying the currently active context for non-implicit swapchains.
2009-07-08 20:14:25 +02:00
Henri Verbeet
7089128d2a
wined3d: Implement a A8R8G8B8 to X8R8G8B8 surface format converter.
2009-07-08 20:14:21 +02:00
Erik Inge Bolsø
48995f3354
wined3d: Fix Nvidia GTX series misdetection.
2009-07-08 20:13:25 +02:00
Henri Verbeet
3484d46a36
wined3d: Replace some shader_is_pshader_version() calls with plain type checks.
2009-07-07 11:50:35 +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
Alexandre Julliard
56af92b073
makefiles: Regenerate the source lists using make_makefiles.
2009-07-03 13:26:38 +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
532b99078e
wined3d: Don't abuse blending to disable color writes in surface_depth_blt().
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
Henri Verbeet
670d9ad90b
wined3d: Check if formats support blending when attached to an FBO.
...
Remove the post-pixelshader blending flag if the format doesn't. Note that the
patch doesn't enforce this restriction yet, it only adjusts the reported
format capabilities.
2009-07-02 12:00:38 +02:00
Henri Verbeet
6feb7c62ca
wined3d: Make sure the rtInternal format is supported.
2009-07-02 12:00:31 +02:00
Tobias Jakobi
05c4d0a8b0
wined3d: Fix comments about NP2 fixup.
2009-07-02 11:57:01 +02:00
Tobias Jakobi
0caebe5f51
wined3d: Force NP2 constant reload in shader_arb_select.
2009-07-02 11:56:57 +02:00
Tobias Jakobi
ef280280c2
wined3d: Implement shader_arb_load_np2fixup_constants.
2009-07-02 11:56:51 +02:00
Tobias Jakobi
e29babbf6d
wined3d: Add NP2 fixup code to shader_hw_sample (ARB).
2009-07-02 11:56:45 +02:00
Tobias Jakobi
034fa4268c
wined3d: Add NP2 fixup code to shader_arb_generate_pshader.
2009-07-02 11:56:39 +02:00
Tobias Jakobi
ec30e9a85e
wined3d: Add arb_ps_np2fixup_info structure and improve structure packing for arb_ps_compiled_shader.
2009-07-02 11:56:33 +02:00
Tobias Jakobi
2d532a1597
wined3d: Add ps_arb_max_local_constants.
2009-07-02 11:56:27 +02:00
Stefan Dösinger
c82da7d975
wined3d: Don't dirtify too many shader constants.
...
If we have start = 4, count = 3, the highest dirty constant is the one with index 6. start + count gives 7,
so it already includes the zero-based array correction. Don't add an additional 1.
Additionally to the inefficiency of looking at one extra constant, this causes problems if the driver
rejects loading 257 constants on the initial load. In this case no constant is loaded if
GL_EXT_gpu_program_parameters is used.
2009-07-01 13:14:34 +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
50419daa11
wined3d: Try to activate the original context for queries.
2009-07-01 11:41:33 +02:00
Henri Verbeet
ca69ec0e85
wined3d: Recognize geometry shaders in shader_trace_init().
2009-07-01 11:41:27 +02:00
Henri Verbeet
5df58b7f89
wined3d: Replace "pshader" checks with explicit type checks in shader_get_registers_used().
2009-07-01 11:41:21 +02:00
Henri Verbeet
1911adcea5
wined3d: Consolidate "color0_mov" handling a bit.
2009-06-30 12:55:45 +02:00
Henri Verbeet
02a0614aa1
wined3d: Use dst_param.reg.idx to index reg_maps->texcoord_mask.
2009-06-30 12:55:40 +02:00
Henri Verbeet
03702e1de3
wined3d: Remove some redundant pshader checks.
2009-06-30 12:55:24 +02:00
Henri Verbeet
592361be38
wined3d: Pass the shader type to shader_record_register_usage().
2009-06-30 12:55:19 +02:00
Henri Verbeet
5b6877ee62
wined3d: Remove shader_is_version_token().
2009-06-30 12:55:11 +02:00
Henri Verbeet
4075e45d81
wined3d: Add a WARN to IWineD3DDeviceImpl_SetFrontBackBuffers() about potentially being called without a GL context.
2009-06-29 12:30:37 +02:00
Henri Verbeet
f57967c983
wined3d: Always check the result of wglMakeCurrent().
2009-06-29 12:30:28 +02:00
Henri Verbeet
40565211fb
wined3d: Prevent GL calls from DestroyContext() if we failed to make the GL context current.
...
This can happen if the window is destroyed before the device is released.
2009-06-29 12:30:24 +02:00
Henri Verbeet
6df3f23bca
wined3d: Add some missing GL locking to init_format_fbo_compat_info().
2009-06-29 12:30:18 +02:00
Stefan Dösinger
d5e2c14225
wined3d: Add a NOP ret handler to GLSL.
2009-06-29 12:28:49 +02:00
Stefan Dösinger
d4312ebb16
wined3d: Add the vertex shader footer in the main function.
2009-06-29 12:28:40 +02:00
Stefan Dösinger
5befed21f6
wined3d: Write the vshader footer in a separate function.
2009-06-29 12:28:31 +02:00
Stefan Dösinger
5859d87754
wined3d: Implement function calls with NV exts.
2009-06-29 12:28:21 +02:00
Stefan Dösinger
031401a070
wined3d: ARB*p is already on after a depth blit.
2009-06-29 12:28:13 +02:00
Stefan Dösinger
9d63585352
wined3d: Don't disable ARBfp if the replacement pipeline is used.
...
If the replacement pipeline is used, ARBfp is always on. Disabling it
can break shaders or the replacement pipeline, because the shader and
ffp code assumes the extension is on.
2009-06-29 12:28:06 +02:00
Stefan Dösinger
1f8761219b
wined3d: Only update the screen when the frontbuffer was changed.
...
There is no need to copy the frontbuffer to the screen when the backbuffer was
modified...
2009-06-29 12:27:55 +02:00
Francois Gouget
5aac7fe783
wined3d: Add a trailing '\n' to a FIXME() trace.
2009-06-26 14:40:21 +02:00
Henri Verbeet
7363b6e2e3
wined3d: Document GL context dependencies.
2009-06-26 12:05:07 +02:00
Henri Verbeet
626baad817
wined3d: Make sure we have an active GL context before calling d3dfmt_p8_upload_palette().
2009-06-26 12:05:00 +02:00
Henri Verbeet
1b306c25e2
wined3d: Make sure we have an active GL context before calling surface_remove_pbo().
2009-06-26 12:04:57 +02:00
Henri Verbeet
db5b126da6
wined3d: Make sure we have an active GL context in IWineD3DSurfaceImpl_UnLoad().
2009-06-26 12:04:53 +02:00
Henri Verbeet
181442a6a2
wined3d: Make sure queries have an active GL context.
2009-06-26 12:04:48 +02:00
Stefan Dösinger
d1cd08b7b3
wined3d: Honor WINED3DSPSM_NOT in ARB.
2009-06-26 12:02:29 +02:00
Stefan Dösinger
8fb1e2acfb
wined3d: Jump to the else branch if cond is false, not endif.
2009-06-26 12:02:18 +02:00
Stefan Dösinger
a07b50c94c
wined3d: Support writemasks on texkill in ARB.
2009-06-26 12:02:12 +02:00
Stefan Dösinger
3a327908de
wined3d: Initialize the used clip planes even if no clip emulation is used.
2009-06-26 12:02:07 +02:00
Stefan Dösinger
4d86eac60a
wined3d: Unclamp vertex colors for 3.0 shaders in ARB if needed.
2009-06-26 12:02:01 +02:00
Stefan Dösinger
f69fb5c011
wined3d: POW and LOG operate on the absolute value.
2009-06-26 12:01:54 +02:00
Stefan Dösinger
bd14b6e2b4
wined3d: IFC requires GL_NV_fragment_program2.
2009-06-26 12:01:44 +02:00
Stefan Dösinger
d4854b636c
wined3d: Beware of double negations.
2009-06-26 12:01:36 +02:00
Tobias Jakobi
a9f912466b
wined3d: Force NP2 fixup constant reloading in shader_glsl_select.
2009-06-25 14:34:13 +02:00
Tobias Jakobi
ef7f769be6
wined3d: Enable constant packing for NP2 texcoord fixup.
...
Previously every texture that was flagged for NP2 fixup used a vec2
uniform in the shader to store texture dimensions. Turns out that the
GLSL compilers just maps vec2 to vec4, so essentially wasting 2
floats. The new code only uses vec4 uniforms but packs dimensions info
of 2 textures into a single uniform.
2009-06-25 14:34:13 +02:00
Tobias Jakobi
7906774339
wined3d: Add ps_np2fixup_info structure.
2009-06-25 14:34:13 +02:00
Henri Verbeet
4a137815db
wined3d: Make sure we have an active GL context in IWineD3DDeviceImpl_SetCursorProperties().
2009-06-25 11:47:34 +02:00
Henri Verbeet
5dcbc40581
wined3d: Make sure we have an active GL context in context_resource_released().
2009-06-25 11:47:28 +02:00
Henri Verbeet
94cd8656ea
wined3d: Make context_resource_released() responsible for activating a different GL context.
...
In case lastActiveRenderTarget is destroyed.
2009-06-25 11:47:24 +02:00
Henri Verbeet
964f4b0157
wined3d: Make sure we have an active GL context in buffer_PreLoad().
2009-06-25 11:47:16 +02:00
Henri Verbeet
11fd358cc6
wined3d: Make sure we have an active GL context in delete_opengl_contexts().
2009-06-25 11:47:09 +02:00
Henri Verbeet
f98c6e3cff
wined3d: Allow the existence of other shader types in get_loop_control_const().
2009-06-24 11:28:50 +02:00
Henri Verbeet
943ed4e1e9
wined3d: Eliminate a redundant local variable in get_loop_control_const().
2009-06-24 11:28:45 +02:00
Henri Verbeet
aec6d319fa
wined3d: Avoid a redundant copy.
2009-06-24 11:28:38 +02:00
Henri Verbeet
fd8ebebe56
wined3d: Use a proper structure for "loop_control".
2009-06-24 11:28:33 +02:00
Henri Verbeet
4caf43ddb7
wined3d: Add some missing GL locking documentation to arb_program_shader.c.
2009-06-24 11:28:27 +02:00
Austin English
a4f2d3d18e
wined3d: Fix a compiler warning.
2009-06-24 11:25:09 +02:00