Henri Verbeet
d369136a96
wined3d: Recognize the SM4 imul opcode.
2010-10-08 15:26:33 +02:00
Henri Verbeet
512e6cec2c
wined3d: Recognize the SM4 movc opcode.
2010-10-07 15:58:10 +02:00
Henri Verbeet
1330f844f8
wined3d: Recognize the SM4 and opcode.
2010-10-07 15:58:09 +02:00
Matteo Bruni
20010235ad
wined3d: Keep track of texture transformation states in compiled pixel shaders.
2010-10-04 15:00:08 +02:00
Henri Verbeet
e12f5ff08a
wined3d: Pass a wined3d_state structure to find_ps_compile_args().
2010-09-29 12:22:39 +02:00
Henri Verbeet
8d5a25bbec
wined3d: Pass a wined3d_state structure to find_vs_compile_args().
2010-09-29 12:22:36 +02:00
Henri Verbeet
9224751a13
wined3d: Pass a wined3d_state structure to use_vs().
2010-09-28 17:33:17 +02:00
Henri Verbeet
b37ce45d6c
wined3d: Move pixel shader constants to wined3d_state.
2010-09-20 13:48:13 +02:00
Henri Verbeet
33dfb9539c
wined3d: Move the pixel shader to wined3d_state.
2010-09-20 13:48:13 +02:00
Henri Verbeet
8a148cc7c5
wined3d: Move vertex shader constants to wined3d_state.
2010-09-20 13:48:12 +02:00
Henri Verbeet
dd4aea36c9
wined3d: Move the vertex shader to wined3d_state.
2010-09-20 13:48:12 +02:00
Henri Verbeet
d728d5f0ec
wined3d: Move texture bindings to wined3d_state.
2010-09-18 13:05:49 +02:00
Henri Verbeet
5a3a4ac77a
wined3d: Remove IWineD3DBaseTexture::GetTextureDimensions() from the public wined3d interface.
2010-09-18 13:05:44 +02:00
Henri Verbeet
5b3c1a2082
wined3d: Move texture states to wined3d_state.
2010-09-16 10:12:17 -05:00
Henri Verbeet
b68d257710
wined3d: Get rid of redundant comparisons against NULL / 0.
2010-09-14 09:43:33 -05:00
Henri Verbeet
2af746b96e
wined3d: Check the GLSL info log for all shaders.
2010-08-25 11:57:24 +02:00
Stefan Dösinger
79666d2b6d
wined3d: Don't return a value from a void function.
2010-08-23 13:37:03 +02:00
Henri Verbeet
37c8632811
wined3d: Make some lookup tables const.
2010-08-04 13:24:24 +02:00
Henri Verbeet
4936e71828
wined3d: Clamp vertex shader outputs.
...
To avoid having to interpolate infinities over fragments.
2010-07-29 17:33:35 +02:00
Henri Verbeet
2114a36936
wined3d: Unify vertex shader output handling between shader models.
2010-07-29 17:33:35 +02:00
Henri Verbeet
ea2bb2a904
wined3d: Invalid NP2 fixup info is an internal error.
2010-07-28 12:22:52 +02:00
Henri Verbeet
0d25da0c0d
wined3d: Properly take both input and output masks into account in handle_ps3_input().
2010-07-28 12:22:50 +02:00
Henri Verbeet
ce39714228
wined3d: Check for unread registers in a more logical way in handle_ps3_input().
...
~0U always >= (in_count + 2).
2010-07-28 12:22:40 +02:00
Francois Gouget
620087c545
wined3d: Remove spaces after '\n's.
2010-06-24 10:33:46 +02:00
Rico Schüller
c223e73bbb
wined3d: Improve fglrx glsl spam filter.
2010-06-15 19:58:30 +02:00
Henri Verbeet
6f57aabc0a
wined3d: Handle a zero source value for WINED3DSIH_POW.
2010-05-27 14:46:43 +02:00
Henri Verbeet
e8ac9bbd7f
wined3d: Get rid of GLINFO_LOCATION.
2010-05-25 13:29:00 +02:00
Henri Verbeet
79145e215b
wined3d: Add support for shadow samplers.
2010-05-17 13:19:53 +02:00
Henri Verbeet
49e076eabd
wined3d: Separate context acquisition and state application.
2010-05-04 13:14:59 +02:00
Henri Verbeet
f09b8e454d
wined3d: Avoid some needless depth buffer copies.
...
If an application switches between render targets of a different size, but
with the same depth/stencil surface it'll typically clear the depth/stencil
surface before drawing. However, in case of the smaller render target that
wouldn't be a full clear, so we'd have to do a depth copy if we also switched
between onscreen and offscreen rendering. Keeping track of which part of the
depth/stencil surface is current for onscreen/offscreen allows us to avoid
most of these kinds of copies. The current scheme requires the current/dirty
rectangle to have an origin at (0,0). This could be extended to an arbitrary
rectangle, but the bookkeeping becomes somewhat more complex in that case, and
it's not clear that there would be much of a benefit at this point.
2010-04-29 10:19:39 -05:00
Alexandre Julliard
fdfabd53f1
wined3d: Avoid a compiler warning on old gcc.
2010-04-26 07:18:18 -05:00
Henri Verbeet
1c403e44b5
wined3d: Store the current render target as an IWineD3DSurfaceImpl pointer in the context.
2010-04-22 11:28:12 +02:00
Henri Verbeet
c7a1848656
wined3d: Store render targets as IWineD3DSurfaceImpl pointers in the device.
2010-04-20 11:14:30 +02:00
Henri Verbeet
4cd69b8a09
wined3d: Simplify the generated GLSL for NRM.
2010-03-19 14:31:40 +01:00
Henri Verbeet
18ec2525a4
wined3d: Store the swapchain instead of the surface in the context.
2010-03-16 11:44:44 +01:00
Roderick Colenbrander
922ad80f42
wined3d: Rename yuv to complex in order to prepare for 8-bit palette fixups using the same code.
2010-03-03 12:53:41 +01:00
Henri Verbeet
576ea95803
wined3d: Remove the unused device type parameter from the shader backend's get_caps() function.
2010-02-04 13:39:27 +01:00
Henri Verbeet
c43c2a2845
wined3d: Use the absolute source value in shader_glsl_rsq().
2010-02-01 14:16:26 +01:00
Henri Verbeet
adf4ca2e23
wined3d: Handle a zero source value for WINED3DSIH_RSQ.
2010-02-01 14:16:22 +01:00
Henri Verbeet
ef82681d59
wined3d: Handle a zero source value for WINED3DSIH_RCP.
2010-02-01 14:16:18 +01:00
Henri Verbeet
4a8f93bade
wined3d: Handle a zero source value for WINED3DSIH_LOG.
2010-02-01 14:16:15 +01:00
Henri Verbeet
bef792f5ff
wined3d: Handle zero-length vectors for WINED3DSIH_NRM.
...
Unfortunately there's no reliable way to generate infinity in GLSL, but a
sufficiently large value will probably do. The important part of the patch is
that we don't generate NaN, because that will keep propagating through the
entire shader.
2010-02-01 14:16:11 +01:00
Henri Verbeet
9f21f2c2f2
wined3d: Dump the GLSL shader source on link failure.
...
Mostly to help Mesa developers diagnose bug reports involving GLSL compile
failures, but it's convenient in general to have the source all in one place.
2010-01-29 13:30:06 +01:00
Henri Verbeet
705f96fa39
wined3d: Get rid of some unnecessary casts to specific shader types.
2010-01-26 12:08:13 +01:00
Henri Verbeet
3d112b6525
wined3d: Add support for EXT_gpu_shader4 provided sampling functions with explicit derivatives.
2010-01-25 12:58:59 +01:00
Henri Verbeet
f71e84d89c
wined3d: Store a pointer to the GL info in the shader context.
2010-01-25 12:58:52 +01:00
Henri Verbeet
c78cce8845
wined3d: Use the correct GLSL functions for sampling Rect textures with explicit derivatives.
...
Also kill the obsolete comment.
2010-01-25 12:58:48 +01:00
Henri Verbeet
5f4ff65fb4
wined3d: Use the GLSL round() function when available.
2010-01-25 12:58:43 +01:00
Henri Verbeet
46cefd312c
wined3d: Recognize the SM4 cut opcode.
2010-01-07 09:26:54 +01:00
Henri Verbeet
3687677427
wined3d: Recognize the SM4 lt opcode.
2010-01-07 09:26:30 +01:00
Henri Verbeet
6d5aca61f3
wined3d: Recognize the SM4 iadd opcode.
2010-01-07 09:26:25 +01:00
Henri Verbeet
22939f9d29
wined3d: Recognize the SM4 emit opcode.
2010-01-07 09:26:20 +01:00
Henri Verbeet
c57c76b78e
wined3d: Recognize the SM4 ige opcode.
2010-01-07 09:26:08 +01:00
Henri Verbeet
b548e387ae
wined3d: Move shader input/output signatures to IWineD3DBaseShaderClass.
2009-12-31 12:12:16 +01:00
Henri Verbeet
b3defd4c80
wined3d: Rename "wineD3DDevice" to "device".
2009-12-10 11:54:47 +01:00
Stefan Dösinger
0e77a381ea
wined3d: Create clip coords only if they are used.
...
If GL vertex shader clipping is supported (GLSL or NVvp), we currently
always calculate clipping results in the shader. They're gracefully
discarded by opengl, but we need 6 constants / uniforms to calculate
unused values.
2009-11-12 15:18:00 +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
eeb54b9922
wined3d: Keep better track of where we're using wined3d contexts.
...
The idea here is that we can restore the thread's current GL context on
context_release() if it doesn't correspond to the current wined3d context on
context_acquire().
2009-10-28 11:15:19 +01:00
Henri Verbeet
6be41fd59a
wined3d: Get rid of GL_LIMITS.
2009-10-22 10:46:05 +02:00
Henri Verbeet
55047f811a
wined3d: Fix some GLINFO_LOCATION abuse.
2009-10-22 10:45:57 +02:00
Henri Verbeet
fa548414f9
wined3d: Free the shader buffer in shader_glsl_free() (Valgrind).
2009-10-21 16:05:57 +02:00
Stefan Dösinger
435646550b
wined3d: Use GLSL constant limits in GLSL.
2009-10-20 14:46:13 +02:00
Stefan Dösinger
2d802af4d9
wined3d: Make shader specific constants accessible via GL_LIMITS.
2009-10-20 14:46:08 +02:00
Stefan Dösinger
dc45657f2c
wined3d: Fix vs_2_0 sgn.
...
vs_2_0's sgn has two extra parameters - temporary registers for the
instruction. This patch fixes the crash of the d3d9:visual test on windows and
properly handles the vs_2_0 version of sgn.
2009-10-02 12:36:59 +02:00
Henri Verbeet
f88c6e5ce5
wined3d: Move common shader fields to IWineD3DBaseShaderClass.
2009-09-25 15:14:35 +02:00
Rico Schüller
8a890d399a
wined3d: Fix shader spam.
2009-09-18 10:47:17 -05:00
Henri Verbeet
ab8523931a
wined3d: Only warn about using Lod sample functions in fragment shaders is ARB_shader_texture_lod isn't supported.
2009-09-01 14:05:51 +02:00
Henri Verbeet
560d63548d
wined3d: Remove trailing spaces.
2009-08-27 11:45:37 +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
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
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
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
b2ace3b1ab
wined3d: Correctly check for luminance bumpmap parameters in shader_generate_glsl_declarations().
2009-08-11 12:35:49 +02:00
Francois Gouget
e74efb5487
Assorted spelling fixes.
2009-08-11 12:35:38 +02:00
Henri Verbeet
8d746c31ba
wined3d: Properly handle negative loop step in shader_glsl_loop().
2009-08-10 13:52:37 +02:00
Henri Verbeet
3bf0ad4528
wined3d: Explicitly pass the context to the shader_select() handler.
2009-08-07 12:11:06 +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
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
Stefan Dösinger
cd7f43b00d
wined3d: Don't activate a context unless we need one.
2009-07-20 12:23: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
38cb9d02b1
wined3d: Take geometry shaders into account in shader_glsl_load_constantsB().
2009-07-10 12:13:29 +02:00
Henri Verbeet
60e0997c79
wined3d: Simplify the GLSL sRGB write code.
2009-07-10 12:13:03 +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
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
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
40bc47901c
wined3d: Use flags for driver quirks.
2009-07-01 11:41:44 +02:00
Stefan Dösinger
d5e2c14225
wined3d: Add a NOP ret handler to GLSL.
2009-06-29 12:28:49 +02:00