Henri Verbeet
868f5bfc7c
wined3d: Handle reading the shader header in the frontend.
...
In SM 1-3 this is just the version, in SM4 this also includes the token count.
2009-05-05 11:34:15 +02:00
Henri Verbeet
ef074cdde1
wined3d: Introduce a stubbed SM4 shader frontend.
2009-05-05 11:34:07 +02:00
Henri Verbeet
dddd1f0211
wined3d: Select the frontend based on the version token.
2009-05-04 12:53:16 +02:00
Henri Verbeet
5f96c0083a
wined3d: Add a frontend function to determine if there are any tokens left.
2009-05-04 12:53:12 +02:00
Henri Verbeet
2378108eb9
wined3d: Create a frontend for parsing shaders.
2009-05-04 12:53:08 +02:00
Henri Verbeet
5a7afd9b2a
wined3d: Move SM 1-3 parsing functions to their own file.
2009-05-04 12:53:04 +02:00
Henri Verbeet
6eb43e35c9
wined3d: Get rid of the remaining WINED3DSP_REGNUM_MASK usage.
2009-05-04 12:52:59 +02:00
Henri Verbeet
5e072395b4
wined3d: Avoid using WINED3DSP_REGNUM_MASK in the def/defi/defb handlers.
2009-05-01 13:12:08 +02:00
Henri Verbeet
a605fcd2fd
wined3d: Introduce shader_sm1_read_comment() to read shader comments.
2009-05-01 13:12:04 +02:00
Henri Verbeet
7420a96736
wined3d: Merge wined3d_private_types.h into wined3d_private.h.
2009-05-01 13:11:57 +02:00
Henri Verbeet
59705b9c20
wined3d: Use the shader_sm1_read_*() functions in shader_trace_init().
2009-05-01 13:11:42 +02:00
Henri Verbeet
752d80400d
wined3d: Merge shader_dump_arr_entry() into shader_dump_register().
2009-05-01 13:11:37 +02:00
Henri Verbeet
53169b98d2
wined3d: Define GL_FENCE_APPLE to the correct value.
2009-04-30 12:48:03 +02:00
Henri Verbeet
bf4f7bf34a
wined3d: Split shader_dump_param() in shader_dump_src_param() and shader_dump_dst_param().
2009-04-30 12:47:59 +02:00
Henri Verbeet
54a3054e5a
wined3d: Pass a struct wined3d_shader_semantic to shader_dump_decl_usage().
2009-04-30 12:47:56 +02:00
Henri Verbeet
032b8d4c02
wined3d: Explicitly pass register type, index, etc. to shader_dump_param().
2009-04-30 12:47:52 +02:00
Henri Verbeet
18df05eb34
wined3d: Explicitly pass the register type and index to shader_get_float_offset().
2009-04-30 12:47:44 +02:00
Stefan Dösinger
10ad2e8e03
wined3d: Hardcode local loop control ints into the code in reps.
...
This helps the compiler to unroll the loop and dodges a crash on OSX. It is
similar to what we do in "loop aL, iX" already.
2009-04-29 13:35:54 +02:00
Henri Verbeet
88b6d5eb0b
wined3d: Relative addressing tokens are always source parameters.
...
So the "is_src" argument to shader_dump_arr_entry() is redundant (and wrong).
2009-04-29 13:08:29 +02:00
Henri Verbeet
52644ab053
wined3d: The "input" parameter to shader_dump_param() should be a BOOL.
...
It's used to determine if the token is a source or destination parameter. A
subsequent patch will split shader_dump_param() in two different functions.
2009-04-29 13:08:22 +02:00
Henri Verbeet
42a8041cb8
wined3d: Handle the sampler type shift in the frontend.
2009-04-29 13:08:14 +02:00
Henri Verbeet
65321dd1ce
wined3d: Introduce shader_sm1_read_semantic().
2009-04-29 13:08:08 +02:00
Henri Verbeet
8d4c90496f
wined3d: Store the sampler type in struct shader_reg_maps.
...
Instead of the usage token.
2009-04-29 13:08:01 +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
1fbc6e560d
wined3d: Fix an issue in buffer_get_sysmem.
...
Checking for the doublebuffer flag can cause confusion if no VBO has
been allocated for the buffer. Checking for allocatedMemory is the
more direct approach.
2009-04-28 13:10:03 +02:00
Stefan Dösinger
926fe798c5
wined3d: Activate a thread before mapping a buffer.
...
This fixes a regression in EverQuest 2.
2009-04-28 13:10:02 +02:00
Stefan Dösinger
3dc55010ea
wined3d: Fix a few more direct buffer accesses.
2009-04-28 13:10:02 +02:00
Henri Verbeet
d32d308798
wined3d: Remove some redundant defines.
2009-04-28 13:10:02 +02:00
Henri Verbeet
b8b12d2dc2
wined3d: Mask set bool/int constants with bool/int constants read.
2009-04-28 13:10:02 +02:00
Henri Verbeet
9db67a5971
wined3d: Clear reg_maps in shader_get_registers_used() instead of the callers.
2009-04-28 13:10:02 +02:00
Henri Verbeet
0df4514894
wined3d: Use shader_sm1_read_dst_param() and shader_sm1_read_src_param() in shader_get_registers_used().
2009-04-28 13:10:02 +02:00
Henri Verbeet
e001876163
wined3d: Create a separate function to record register usage.
2009-04-28 13:10:02 +02:00
Henri Verbeet
abc253f52f
wined3d: Add a function to read a destination parameter from SM1-3 bytecode.
2009-04-27 13:25:26 +02:00
Henri Verbeet
4e97e430d9
wined3d: Add a function to read a source parameter from SM1-3 bytecode.
2009-04-27 13:25:21 +02:00
Henri Verbeet
15953b94b6
wined3d: Use shader_sm1_read_opcode() in shader_trace_init().
2009-04-27 13:25:16 +02:00
Henri Verbeet
2b07565d6e
wined3d: Store D3D shader opcode names in a separate table.
2009-04-27 13:25:09 +02:00
Stefan Dösinger
7ab6c22f5a
wined3d: Support the full amount of constants in GLSL.
...
This patch advertises all GL reported float uniforms to the D3D app to
reach the 256 constants required by Shader Model 3.0 on dx9 cards. If
the shader does not use indirect addressing, all 256 constants are
declared. The compiler can then figure out which constants are
actually used. This makes shaders work that use high constant indices,
but don't use all 256 constants.
2009-04-27 13:24:00 +02:00
Stefan Dösinger
9f1731edb6
d3d: Limit d3d8 and d3d9 vshader constants to 256.
...
DX10 cards support 512(ATI) or 1024(Nvidia) vertex shader constants in
GL. The dx9 DXCapsViewer shows that dx10 windows drivers only claim
256 constants on Windows, so we can and should do the same.
2009-04-27 13:23:36 +02:00
Henri Verbeet
19b84ffda1
wined3d: Use shader_sm1_read_opcode() in shader_get_registers_used().
2009-04-24 11:53:18 +02:00
Henri Verbeet
521fcf11db
wined3d: Add a function to read an opcode from SM1-3 bytecode.
2009-04-24 11:53:12 +02:00
Henri Verbeet
e63bd2ce21
wined3d: The first shader token should be the version token.
2009-04-24 11:53:00 +02:00
Henri Verbeet
2dcfdd5b55
wined3d: Use a more reasonable limit for the number of mipmap levels.
...
256 is quite ridiculous, considering the dimensions are only UINTs. Perhaps
these arrays should be dynamically allocated in the first place though.
2009-04-24 11:52:51 +02:00
Henri Verbeet
35499d0c3c
wined3d: Handle the opcode specific control shift in the frontend rather than the backend.
2009-04-24 11:52:28 +02:00
David Adam
33eb939390
wined3d: SetDepthStencilSurface is always called when AutoDepthStencil is enabled.
2009-04-24 11:51:27 +02:00
Francois Gouget
6376941266
wined3d: Avoid using an implicit value to set fogcoord to 0.0.
2009-04-23 18:14:27 +02:00
Henri Verbeet
6f33b97c94
wined3d: Get rid of the shared_handle parameter.
...
I don't expect us to support this in the near future, and right now it's just
dead code.
2009-04-23 14:22:06 +02:00
Henri Verbeet
f88bd17ef6
wined3d: Downgrade an ERR to a WARN.
2009-04-23 14:22:06 +02:00
Henri Verbeet
fba6f871cf
wined3d: Move frontend specfic constants to baseshader.c.
2009-04-23 14:22:06 +02:00
Henri Verbeet
d6494ad00c
wined3d: Move some frontend specfic code to baseshader.c.
2009-04-23 14:22:06 +02:00