Commit Graph

28 Commits

Author SHA1 Message Date
Jason Green ca70d13af4 wined3d: Unified float constant register mapping between ARB pixel and vertex shaders.
- Got rid of the separate constant maps.
- Side effect of this is that the map is a bit larger for pixel shaders than it needs to be
2006-06-09 14:36:50 +02:00
Jason Green 0c59ca6448 wined3d: Add the bulk of the GLSL string generation functions.
- Add a new file glsl_shader.c which contains almost every GLSL specific function we'll need
- Move print_glsl_info() into glsl_shader.c
- Move the shader_reg_maps struct info into the private header, and make it part of SHADER_OPCODE_ARG.
- Create a new shared ps/vs register map for float constants (future patch will make ARB programs use this, too)
2006-06-09 13:47:55 +02:00
Ivan Gyurdiev 83a9666f9c wined3d: Fix NULL dereference in generator function. 2006-06-07 15:23:17 +02:00
Ivan Gyurdiev aec2e3e46d wined3d: Trace improvements. 2006-06-06 11:49:03 +02:00
Jason Green 473ce80fa2 wined3d: Add ability to generate GLSL shader objects for vertex and pixel shaders. 2006-05-27 11:01:05 +02:00
Jason Green d204540d1f wined3d: Replaced USING_GLSL define with a new wined3d_settings option based on the registry. 2006-05-24 10:40:35 +02:00
Jason Green a67488a26e wined3d: Add function to print the infolog of a GLSL shader on errors.
With assistance from H. Verbeet.
2006-05-24 10:37:33 +02:00
Jonathan Ernst 360a3f9142 Update the address of the Free Software Foundation. 2006-05-23 14:11:13 +02:00
Ivan Gyurdiev cb973648ab wined3d: Clean up register use maps. 2006-05-22 11:40:38 +02:00
Jason Green 4a1375bdd6 wined3d: Simplify generate_base_shader() when checking for USING_GLSL usage. 2006-05-20 17:38:09 +02:00
Jason Green 683e5bfc55 wined3d: Move PARAM C[] program.env[] into baseshader and out of vertex shaders. 2006-05-20 17:37:48 +02:00
Ivan Gyurdiev 42b89791ff wined3d: Take predication tokens into account.
Each instruction can have a predication token. Account for it in the
trace pass, register count pass, and store it in the SHADER_OPCODE_ARG
structure for generation. MSDN claims the token is at the end of the
instruction, but that's not true - testing a demo, which lets me
manipulate the shader shows the predication token is the first source
token immediately following the destination token.
2006-05-18 10:32:54 +02:00
Ivan Gyurdiev fa62d9d3b4 wined3d: Parameter trace corrections. 2006-05-18 10:32:22 +02:00
Ivan Gyurdiev 746d1b1cd3 wined3d: Modify shader_dump_param() to take into account address token.
Currently we hardcode a0.x, which I think is correct for shaders 1.0.
However, for shaders 2.0, we must look into the address token, and
print the register there. Handle both cases to correct the trace.
2006-05-17 10:55:11 +02:00
Ivan Gyurdiev 03b67e3030 wined3d: Use shader_get_param() in trace pass, reg. count pass, generation pass.
Change the trace pass, the register counting pass, and the hw
generator pass to take into account the new get_params() function. For
hw generation, store the address tokens into the SHADER_OPCODE_ARG
structure, so they're available to generator functions.
2006-05-17 10:54:23 +02:00
Ivan Gyurdiev 404eff792f wined3d: Add shader_get_param() fn, which processes address tokens.
Add a new function to process parameters.
On shaders 1.0, processing parameters amounts to *pToken++.
On shaders 2.0+, we have a relative addressing token to account for.
This function should be used, instead of relying on num_params everywhere.
2006-05-17 10:53:18 +02:00
Ivan Gyurdiev 53d240a3e0 wined3d: Do not rely on num_params to skip unhandled tokens in shaders 2.0. 2006-05-17 10:52:37 +02:00
Ivan Gyurdiev d4dd9869b8 wined3d: Allow multiple output modifiers. 2006-05-17 10:51:47 +02:00
Ivan Gyurdiev 8b7401c39a wined3d: Shaders: share dump_param function, version functions. 2006-05-15 16:07:31 +02:00
Francois Gouget f7c24f37ad Various trace fixes.
Add trailing '\n's to trace calls.
Remove spaces before '\n'.
2006-05-15 15:05:09 +02:00
Ivan Gyurdiev c61af3af8d wined3d: Share shader_dump_ins_modifiers().
Share shader_dump_ins_modifiers(), and make vertex shaders use it.
The saturate modifer (_sat) is valid on vs_3_0+, and it isn't being
shown in the trace.
2006-05-11 12:10:59 +02:00
Jason Green e9927d6ffd wined3d: Further split GLSL & ARB_v/f_program generation and allow GLSL functions to be called. 2006-05-10 12:20:39 +02:00
Jason Green d982954808 wined3d: Created generate_base_shader which will be shared by pixel & vertex shaders. 2006-05-10 12:17:18 +02:00
Jason Green cc2ea9e08c wined3d: Place # of textures, addresses, & temps used inside the baseShader struct to prepare for GenerateShader merge. 2006-05-10 12:16:22 +02:00
Jason Green 5308e026d1 wined3d: Move program_dump_decl_usage into baseshader. 2006-05-10 12:14:39 +02:00
Ivan Gyurdiev 320e33dcb3 wined3d: Merge register counting pass. 2006-05-10 11:26:01 +02:00
Ivan Gyurdiev 1d0c672393 wined3d: Share get_opcode. 2006-05-09 20:45:10 +02:00
Ivan Gyurdiev 5f10560762 wined3d: Addline cleanup. 2006-05-09 11:55:45 +02:00