Commit Graph

6215 Commits

Author SHA1 Message Date
Stefan Dösinger 37c4f3a88c wined3d: Don't clamp texture lookups in the ARB fixed function fragment pipe. 2013-09-05 17:55:11 +02:00
Henri Verbeet ad178a5b55 wined3d: Enforce WINED3DUSAGE_DEPTHSTENCIL format restrictions on resource creation. 2013-09-05 13:18:24 +02:00
Henri Verbeet b28e9f6482 wined3d: Enforce WINED3DUSAGE_RENDERTARGET format restrictions on resource creation. 2013-09-05 13:18:23 +02:00
Henri Verbeet 6325f3ddd8 wined3d: Don't set WINED3DUSAGE_RENDERTARGET on the front buffer.
We never render directly to the front buffer, and in case of e.g. a P8 front
buffer, we would fail surface creation if we were to enforce format
restrictions.
2013-09-04 11:37:01 +02:00
Henri Verbeet 99092c2700 wined3d: Avoid a couple of useless glGetUniformLocationARB() calls. 2013-09-04 11:36:58 +02:00
Henri Verbeet ff6ce4c669 wined3d: Use clamp() instead of max() for calculating the clamped cosine in the ffp lighting calculations.
On typical hardware, the clamp() would be an instruction modifier, while the
max() would need an extra instruction.
2013-09-04 11:36:50 +02:00
Henri Verbeet 0d2d847914 wined3d: Don't clamp texture lookups in the GLSL fixed function fragment pipe. 2013-09-03 16:58:17 +02:00
Henri Verbeet 50e2ee73a4 wined3d: Rename wined3d_fake_gl_ctx to wined3d_caps_gl_ctx.
There's nothing particularly fake about the GL context.
2013-09-03 16:58:16 +02:00
Henri Verbeet 36dcb77f6e wined3d: Get rid of some leftover references to IWineD3D. 2013-09-03 16:58:16 +02:00
Henri Verbeet 0be8e524c6 wined3d: Avoid some forward declarations. 2013-09-02 18:02:42 +02:00
Henri Verbeet b5e0c5d052 wined3d: Get rid of some leftover comments referring to the GL lock. 2013-09-02 18:02:26 +02:00
Henri Verbeet 2d23913186 wined3d: Move the MAXLOCKCOUNT constant to surface.c. 2013-09-02 18:02:23 +02:00
Henri Verbeet f7b84fe755 wined3d: Move the DEFAULT_REFRESH_RATE constant to directx.c. 2013-08-30 11:18:49 +02:00
Henri Verbeet 53f747de1b wined3d: Move the WINED3D_MAX_FBO_ENTRIES constant to context.c. 2013-08-30 11:18:46 +02:00
Henri Verbeet 35a8bf0e1e wined3d: Move the buffer flags to buffer.c. 2013-08-30 11:18:43 +02:00
Henri Verbeet 805fc64198 wined3d: Get rid of the unused WINED3D_BUFFER_OPTIMIZED flag. 2013-08-29 19:56:17 +02:00
Henri Verbeet 43ecaf29c3 wined3d: Get rid of the DDRAW_PITCH_ALIGNMENT and D3D8_PITCH_ALIGNMENT constants. 2013-08-29 19:56:17 +02:00
Henri Verbeet 605136ab04 wined3d: Get rid of the SHADER_PGMSIZE constant. 2013-08-29 19:56:17 +02:00
Henri Verbeet ac54753e7c wined3d: Get rid of RTL_READDRAW.
I don't think we ever want to use glDrawPixels().
2013-08-28 11:17:09 +02:00
Henri Verbeet f5f7a4e457 wined3d: Get rid of GL_EXT_paletted_texture support.
No current drivers support this, and it's probably broken. Also note that
since we removed paletted texture support from wined3d, this would only be
used for WINED3DFMT_P8_UINT blits.
2013-08-28 11:17:09 +02:00
Henri Verbeet 00ffc0c24b wined3d: Get rid of the unused MAX_PALETTES constant. 2013-08-28 11:17:08 +02:00
Henri Verbeet b85c2a74bb wined3d: Replace the "stateBlock" wined3d_device field with a wined3d_state structure. 2013-08-27 11:50:53 +02:00
Henri Verbeet fc5f9d4709 wined3d: Make stateblock_init_default_state() work with a wined3d_state structure instead. 2013-08-27 11:50:53 +02:00
Henri Verbeet cc85c6aff0 wined3d: Introduce a separate function for initializing a wined3d_state structure. 2013-08-27 11:50:53 +02:00
Stefan Dösinger e69670f76b wined3d: Disallow MANAGED or SCRATCH pool dynamic volumes. 2013-08-26 19:02:33 +02:00
Stefan Dösinger 1bd6710b6f wined3d: Check volume formats and sizes in device_update_volume. 2013-08-26 19:02:29 +02:00
Stefan Dösinger 9fbc90b8e3 wined3d: UpdateTexture requires a sysmem source and default destination. 2013-08-26 19:02:23 +02:00
Stefan Dösinger 6bc3cbf1c5 wined3d: Implement sRGB for volumes. 2013-08-26 19:02:16 +02:00
Stefan Dösinger bd866c0294 wined3d: Implement NOOVERWRITE and DISCARD volume maps. 2013-08-26 19:01:53 +02:00
Stefan Dösinger 8c708486c3 wined3d: Use PBOs for dynamic volumes. 2013-08-26 19:01:39 +02:00
Stefan Dösinger 421b7a17ad wined3d: Enforce volume mapping restrictions. 2013-08-26 19:01:23 +02:00
Henri Verbeet aee3c0faeb wined3d: Introduce a separate function for cleaning up a wined3d_state structure. 2013-08-26 10:50:48 +02:00
Henri Verbeet 4e755d263f wined3d: Make stateblock_unbind_resources() work with a wined3d_state structure instead. 2013-08-26 10:50:46 +02:00
Henri Verbeet f02a5f45d4 wined3d: Replace the "updateStateBlock" wined3d_device field with a "update_state" field. 2013-08-26 10:50:43 +02:00
Stefan Dösinger aa3a43f769 wined3d: Don't lock the dst volume in device_update_volume. 2013-08-23 19:26:43 +02:00
Stefan Dösinger 5ff1237563 wined3d: Free volume sysmem after upload. 2013-08-23 19:26:38 +02:00
Stefan Dösinger a89f2e6301 wined3d: Move volume sysmem allocation into a separate function. 2013-08-23 19:26:34 +02:00
Gediminas Jakutis 6ca8b274bb wined3d: Recognize Nvidia GeForce GTX 770. 2013-08-23 18:28:47 +02:00
Henri Verbeet b4d6f90f20 wined3d: Only update the stateblock's "changed" field if we're recording. 2013-08-23 10:41:36 +02:00
Henri Verbeet 8b8e081d5f wined3d: Keep track of contained indices in struct constant_heap itself. 2013-08-23 10:41:32 +02:00
Henri Verbeet 74faebd68d wined3d: Store the current GLSL program per-context. 2013-08-23 10:41:28 +02:00
Stefan Dösinger 52fb1cc245 wined3d: Implement basic volume location management. 2013-08-22 20:16:01 +02:00
Stefan Dösinger bcb651ca80 wined3d: Remove WINED3D_RESOURCE_ACCESS_SCRATCH. 2013-08-22 20:15:45 +02:00
Stefan Dösinger 07079d1109 wined3d: Remove locked and dirty boxes from volumes. 2013-08-22 20:15:39 +02:00
Stefan Dösinger 518ac4c275 wined3d: Move volume data uploading into a separate function. 2013-08-22 20:15:33 +02:00
Stefan Dösinger e08e2b2ade wined3d: Separate volume allocation and loading. 2013-08-22 20:15:27 +02:00
Stefan Dösinger ac871305f8 wined3d: Store the mipmap level in the volume. 2013-08-22 20:15:18 +02:00
Henri Verbeet 6501f2e215 wined3d: Read from stateBlock instead of updateStateBlock in wined3d_device_get_texture_stage_state(). 2013-08-22 10:26:49 +02:00
Henri Verbeet 9b721da9a5 wined3d: Read from stateBlock instead of updateStateBlock in wined3d_device_get_scissor_rect(). 2013-08-22 10:26:46 +02:00
Henri Verbeet 7638e550b9 wined3d: Read from stateBlock instead of updateStateBlock in wined3d_device_get_material(). 2013-08-22 10:26:42 +02:00
Stefan Dösinger 7e7ee52486 wined3d: Move volume booleans into a flags field. 2013-08-21 19:53:38 +02:00
Stefan Dösinger 6e4e1ad392 wined3d: Properly allocate heap memory for volumes. 2013-08-21 19:53:28 +02:00
Stefan Dösinger 4dd4a6913b wined3d: Add a function for allocating aligned resource memory. 2013-08-21 19:53:20 +02:00
Stefan Dösinger 9d75a517c2 wined3d: Improve volume size calculation. 2013-08-21 19:53:15 +02:00
Henri Verbeet a2e1a3d4f1 wined3d: Read from stateBlock instead of updateStateBlock in wined3d_device_get_stream_source_freq(). 2013-08-21 12:13:56 +02:00
Henri Verbeet 69e1100c0c wined3d: Handle NP2 fixup updates in shader_load_constants(). 2013-08-21 12:13:56 +02:00
Henri Verbeet 62859daf0b wined3d: Avoid looking up shaders for shader stages that didn't change. 2013-08-21 12:13:56 +02:00
Henri Verbeet 7e7bd87b2c wined3d: Store the original display mode in the swapchain. 2013-08-20 11:50:28 +02:00
Stefan Dösinger a4f009d847 wined3d: Keep GL_UNPACK_CLIENT_STORAGE_APPLE off by default.
This is cleaner than the other way around and avoids side effects in
code that wasn't written with client storage in mind. Contrary to the
original intention, it also means fewer client storage toggle calls.
2013-08-19 18:07:45 +02:00
Henri Verbeet 390543dd02 wined3d: Use the "adapter" local variable in swapchain_init(). 2013-08-19 12:53:21 +02:00
Henri Verbeet b2721d5f9c wined3d: Store the immediate mode fixed function attribute submission function pointers in struct wined3d_d3d_info. 2013-08-19 12:53:21 +02:00
Henri Verbeet c1a7323fac wined3d: Avoid some redundant state_pscale() calls. 2013-08-19 12:53:21 +02:00
Henri Verbeet ad147d638c wined3d: Just update a range of constants in walk_constant_heap().
The call overhead from separate calls typically ends up being more expensive
than just updating a few more constants.
2013-08-16 11:55:24 +02:00
Henri Verbeet 37d1e8b79c wined3d: Try to avoid redundant constant updates.
This gives a minor performance improvement. For example, in 3DMark03 Game Test
1 this gives about a 4% improvement, in the Counter Strike: Source stress test
it's about 1%. (NVIDIA GF9600M, Intel T9550, 1024x768).
2013-08-16 11:55:24 +02:00
Henri Verbeet c1af405054 wined3d: Only set fragment pipe uniforms if they're needed by the shader.
In principle the GL driver also checks the location, but it turns out to be
slightly faster to do it ourselves.
2013-08-16 11:55:24 +02:00
Henri Verbeet cbaa17d3cf wined3d: Assume the buffer has a buffer object in buffer_add_dirty_area(). 2013-08-15 16:24:09 +02:00
Henri Verbeet 4eb39ec5f4 wined3d: Make buffer_add_dirty_area() never fail. 2013-08-15 16:24:07 +02:00
Henri Verbeet 5e64fd7049 wined3d: Don't bother downloading buffer contents on destruction. 2013-08-15 16:24:04 +02:00
Stefan Dösinger ba61730daa wined3d: Avoid calculating 1 / (fog_end - fog_start) in the shader. 2013-08-01 20:43:42 +02:00
Rico Schüller 55c190d396 wined3d: Fix typo. 2013-07-24 11:12:45 -05:00
Matteo Bruni 42cfbb825c wined3d: Add a missing destroy_dummy_textures() call. 2013-07-24 11:09:39 -05:00
Matteo Bruni e2cf98eb76 wined3d: Implement special fog behavior for orthogonal projection matrices. 2013-07-24 11:09:31 -05:00
Matteo Bruni c9458882a0 wined3d: Fix handling of cnd instruction with coissue flag. 2013-06-26 18:45:37 +02:00
Stefan Dösinger 248f4b7415 wined3d: Fix the TMP_COLOR optimization with custom fog. 2013-06-21 17:35:07 +02:00
Matteo Bruni 5649746b60 wined3d: Fix NP2 surface repacking in surface_download_data. 2013-06-20 22:14:35 +02:00
Stefan Dösinger 22319c7f9e wined3d: Work around broken FFP fog with ARB shaders. 2013-06-19 20:09:53 +02:00
Stefan Dösinger b648b74191 wined3d: Pass fogstart==fogend to GL in fog table mode. 2013-06-19 20:09:53 +02:00
Henri Verbeet 4272d92f93 wined3d: Avoid the position_float4() fixup if the vertex pipe can handle pre-transformed vertices itself. 2013-06-17 13:34:40 +02:00
Karol Herbst 627aebf774 wined3d: Add Nvidia GeForce GTX 770M. 2013-06-14 13:51:37 +02:00
Maxime Lombard 214d6ed0ba wined3d: Add Nvidia GeForce GTX 670MX. 2013-06-14 13:51:35 +02:00
Henri Verbeet ffc9f535eb wined3d: Handle pre-transformed vertices in the GLSL vertex pipe.
This also avoids a fallback to drawStridedSlow().
2013-06-14 11:46:31 +02:00
Henri Verbeet 8a7ddfbb53 wined3d: Don't use state_colormat() with the GLSL vertex pipe.
None of the code in there should be needed for the GLSL vertex pipe, and the
"untracked materials" counter in particular will trigger an unnecessary
fallback to drawStridedSlow().
2013-06-14 11:46:27 +02:00
Henri Verbeet 4de77fa23f wined3d: Allow a custom pitch to be specified in wined3d_surface_set_mem(). 2013-06-14 11:46:20 +02:00
Henri Verbeet e0494afa00 wined3d: Introduce a helper function for printing floats in GLSL shaders. 2013-06-11 11:33:15 +02:00
Henri Verbeet e8905e360f wined3d: Don't modify the texcoord mask for "projected" cube textures in shader_glsl_tex(). 2013-06-07 11:58:22 +02:00
Henri Verbeet f52d4044eb wined3d: Fix a typo in shader_glsl_generate_ffp_fragment_shader(). 2013-06-07 11:58:20 +02:00
Henri Verbeet d6bc4fe71a wined3d: Allow surface flags to be passed to texture creation functions. 2013-06-06 11:47:19 +02:00
Henri Verbeet 91096dd7ad wined3d: Pass a wined3d_resource_desc structure to wined3d_texture_create_3d(). 2013-06-06 11:47:07 +02:00
Francois Gouget 145c417e98 wined3d: Make state_fog_vertexpart() static. 2013-06-06 11:47:02 +02:00
Henri Verbeet b23739316c wined3d: Pass a wined3d_resource_desc structure to wined3d_texture_create_cube(). 2013-06-05 17:31:39 +02:00
Henri Verbeet 9d4cbd6195 wined3d: Pass a wined3d_resource_desc structure to wined3d_texture_create_2d(). 2013-06-05 17:31:39 +02:00
Henri Verbeet 1366e3a5bf wined3d: Pass a wined3d_resource_desc structure to wined3d_texture_init(). 2013-06-05 17:31:39 +02:00
Henri Verbeet 13a38e8d5e wined3d: Pass a wined3d_resource_desc structure to device_parent_create_swapchain_surface(). 2013-06-04 10:14:28 +02:00
Henri Verbeet a4d2660c9b wined3d: Pass a wined3d_resource_desc structure to device_parent_create_texture_surface(). 2013-06-04 10:14:26 +02:00
Henri Verbeet 1276a3db04 wined3d: Properly set resource dimensions in wined3d_texture_init(). 2013-06-04 10:14:24 +02:00
Henri Verbeet a3f59cf618 wined3d: Allow textures as swapchain surfaces. 2013-06-03 11:30:43 +02:00
Henri Verbeet 48d470f60c wined3d: Add base format info for some typeless formats. 2013-06-03 11:30:34 +02:00
Henri Verbeet 51bbfa5ced wined3d: Allow 32 bpc UINT formats in vertex declarations. 2013-06-03 11:30:31 +02:00
Kyle Luna 7f5f166a19 wined3d: Add Mobility Radeon HD 4200. 2013-05-31 18:25:01 +02:00
Henri Verbeet e4f50de336 wined3d: Get rid of the unused "half" GLSL variable in shader_glsl_ffp_vertex_lighting(). 2013-05-31 11:57:40 +02:00
Francois Gouget 49dbf2464f wined3d: Add a trailing '\n' to a shader_addline() call. 2013-05-30 20:19:33 +02:00
Henri Verbeet 8352d45da5 wined3d: Rename "fogmode" to "wined3d_ffp_ps_fog_mode".
This is mostly for consistency with wined3d_ffp_vs_fog_mode.
2013-05-30 10:57:15 +02:00
Henri Verbeet e4816996c3 ddraw: Handle the "DirectDrawRenderer" registry key in wined3d. 2013-05-30 10:57:08 +02:00
Henri Verbeet 74c5a22daa wined3d: Only invalidate the current ffp vertex shader if the light type changed.
As opposed to any time a light parameter changed.
2013-05-29 12:12:33 +02:00
Henri Verbeet bdd97858bf wined3d: Only write gl_ClipVertex if clipping is enabled in shader_glsl_generate_ffp_vertex_shader(). 2013-05-29 12:12:32 +02:00
Henri Verbeet 1c2392ddb0 wined3d: Only write gl_PointSize for point primitives in shader_glsl_generate_ffp_vertex_shader(). 2013-05-29 12:12:32 +02:00
Henri Verbeet 2014141a25 wined3d: Add support for GLSL based fixed function vertex shaders. 2013-05-29 12:12:32 +02:00
Henri Verbeet 50a3864515 wined3d: Just remove the D3DCMP_NOTEQUAL / D3DCMP_EQUAL FIXME in state_zfunc().
As far as I'm aware this just works, I'm not aware of any open issues related
to it.
2013-05-28 14:55:08 +02:00
Henri Verbeet 97b6299eaf wined3d: Expose WINED3DVTXPCAPS_TEXGEN_SPHEREMAP.
Since we already implement it. Tweening will likely never work with fixed
function GL.
2013-05-28 14:55:00 +02:00
Henri Verbeet b5df8bd4f5 wined3d: Use debug_d3dstate() in compile_state_table() as well. 2013-05-28 14:54:54 +02:00
Henri Verbeet 273dcbf564 wined3d: Get rid of the unused "streams" field from struct wined3d_vertex_declaration. 2013-05-27 19:28:57 +02:00
Henri Verbeet b35045ba25 wined3d: Don't create FBOs in context_bind_fbo().
We can just do this in context_create_fbo_entry() now.
2013-05-27 19:28:52 +02:00
Henri Verbeet 7ca6839c94 wined3d: Also clear context->current_fbo in context_apply_blit_state().
The draw buffer handling code depends on this being current. This fixes a bug
exposed by commit 075fa6547c.
2013-05-27 19:28:47 +02:00
Marcus Meissner 589b48e495 wined3d: Remove now useless NULL check (Coverity). 2013-05-27 19:02:43 +02:00
Stefan Dösinger 10929cbe43 wined3d: Correct an ERR/FIXME. 2013-05-21 19:41:12 +02:00
Stefan Dösinger 9287bb80dc d3d: d3d9ex does not do video memory accounting for D3DPOOL_DEFAULT resources. 2013-05-20 19:08:28 +02:00
Stefan Dösinger 6621b11ad1 wined3d: Don't pass the device to atifs_free_ffpshader. 2013-05-15 19:04:19 +02:00
Stefan Dösinger 121bd9d201 wined3d: Initialize the gl_info pointer from the context. 2013-05-15 19:04:16 +02:00
Stefan Dösinger b12ec91c09 wined3d: Don't log the device pointer in shader_arb_select. 2013-05-15 19:04:04 +02:00
Stefan Dösinger 71723ad086 wined3d: Disable the fixed function vertex pipeline when ARB vertex programs are used. 2013-05-14 18:37:13 +02:00
Stefan Dösinger 6fce4d4547 wined3d: Pass the state and private data to shader_select. 2013-05-14 18:37:08 +02:00
Stefan Dösinger 47f385adf0 wined3d: Add a separate function for disabling shaders. 2013-05-14 18:37:04 +02:00
Stefan Dösinger 036a62a245 wined3d: Explicitly pass the state to shader_load_constants. 2013-05-14 18:36:59 +02:00
Stefan Dösinger 5d138799ea wined3d: Don't access the stateblock from shader_arb_load_constants_internal. 2013-05-14 18:36:53 +02:00
Alexandre Julliard 02d56bd3a2 wined3d: Don't bother to unregister classes at process exit. 2013-05-14 11:33:29 +02:00
Stefan Dösinger 260e1cb0b3 wined3d: Pass the pixel shader input signature to shader_arb_generate_vshader. 2013-05-13 19:57:11 +02:00
Stefan Dösinger e25b968499 wined3d: Fix a ~0U assignment. 2013-05-13 19:57:09 +02:00
Austin English c012b1a13c wined3d: Add NVidia GeForce GT 630. 2013-05-08 12:39:55 +02:00
Matteo Bruni 58dc0346d6 wined3d: Remove some, now unnecessary, glReadBuffer(GL_NONE) calls.
This reverts parts of e4efcea223 and
8e12b2e61e.
2013-04-26 16:28:22 +02:00
Matteo Bruni bda63dd4a9 wined3d: Set GL_NONE for glReadBuffer / glDrawBuffer on FBO initialization. 2013-04-26 16:28:19 +02:00
Stefan Dösinger 76941eff00 wined3d: Move gl_info->limits.max_texture_stages to d3d_info. 2013-04-25 20:25:10 +02:00
Stefan Dösinger ac99d53991 wined3d: Move valid_rt_mask to wined3d_d3d_info. 2013-04-25 20:25:10 +02:00
Stefan Dösinger cb01fb27b1 wined3d: Move max_ffp_textures to wined3d_d3d_info. 2013-04-25 20:25:09 +02:00
Stefan Dösinger 768e8c098c wined3d: Move shader limits to wined3d_d3d_info. 2013-04-25 20:25:09 +02:00
Stefan Dösinger f7580726b0 wined3d: Don't pass the device to gen_ffp_frag_op. 2013-04-25 20:25:08 +02:00
Stefan Dösinger 820c12c98f wined3d: Access gl_info and d3d_info from the context in find_arb_*_compile_args. 2013-04-25 20:25:08 +02:00
Stefan Dösinger 16e862ba9d wined3d: Add a new structure for d3d limits and other info. 2013-04-25 20:25:07 +02:00
Henri Verbeet 471991eb9a wined3d: Introduce a wined3d_vertex_pipe_ops structure. 2013-04-25 13:39:56 +02:00
Stefan Dösinger c371af0d5c wined3d: Get rid of device->view_ident. 2013-04-24 18:26:56 +02:00
Henri Verbeet 6fe9e0f033 wined3d: Disable occlusion query support if the implementation has 0 counter bits. 2013-04-23 15:35:08 +02:00
Stefan Dösinger f663683980 wined3d: Remove leftover texture accesses in GLSL shader generation. 2013-04-22 17:56:05 +02:00
Matteo Bruni 197cdcc9ae wined3d: Use ARB_internalformat_query2 for the other texture format caps too. 2013-04-22 17:55:38 +02:00
Matteo Bruni 6fa87980ca wined3d: Use ARB_internalformat_query2 to check for texture format rendering and blending support, where available. 2013-04-22 17:55:36 +02:00
Matteo Bruni 1d17176a0d wined3d: Add ARB_internalformat_query2 GL extension. 2013-04-22 17:55:33 +02:00
Henri Verbeet c756496326 wined3d: Rename the device "strided_streams" field to "stream_info".
The "strided" in there is mostly historic, it hasn't really been accurate for
a while now.
2013-04-22 15:26:11 +02:00
Henri Verbeet 82a06a0a36 wined3d: Get rid of the unused TRACE_STRIDED macro. 2013-04-22 15:26:04 +02:00
Henri Verbeet ee6d17cd54 wined3d: Add support for GL_ARB_debug_output. 2013-04-19 10:43:40 +02:00
Henri Verbeet 5115f55eeb wined3d: Use WGL_ARB_create_context when available. 2013-04-19 10:43:37 +02:00
Henri Verbeet 3004baeb62 wined3d: Simplify wined3d_check_device_format(). 2013-04-18 11:42:57 +02:00
Henri Verbeet ff48c3ba58 wined3d: Properly check if a format has a conversion function in wined3d_check_device_format(). 2013-04-18 11:42:50 +02:00