Commit graph

13455 commits

Author SHA1 Message Date
Brian
aec1f8e4f8 More work on flow control for CAL/RET. 2007-10-09 14:40:11 -06:00
Brian
31bd01f93b New ATTRIB interpolation type for vertex program inputs/declarations. 2007-10-09 14:36:14 -06:00
Brian
47ff9428ee Don't emit semantic info for vertex program inputs. 2007-10-09 14:31:45 -06:00
Brian
94490f63c8 Use linked fragment shader inputs (if present) to determine which outputs are needed. 2007-10-09 14:12:26 -06:00
Brian
1a69db9d2d use different temps in exec_tex() for bias 2007-10-03 16:34:04 -06:00
Brian
68c4254d75 updated comments 2007-10-03 16:18:44 -06:00
Brian
635c4c41bd Add outputs_written bitfield to pipe_shader_state, use it to determine if fragment shader writes Z. 2007-10-03 14:43:57 -06:00
Brian
65996f27f4 Move XSTDCALL definition to p_compiler.h 2007-10-03 13:50:12 -06:00
Brian
5356ba250c handle frag progs that write Z 2007-10-03 13:50:11 -06:00
Brian
a9f0330061 basic support for reading GL_DEPTH_COMPONENT 2007-10-03 13:50:11 -06:00
Brian
e6f4af6b23 added s8z24_get_tile() 2007-10-03 13:50:11 -06:00
Brian
76e61556e7 fix eq/neq bugs 2007-10-03 13:50:11 -06:00
Brian
df235f33a6 fix f/u mix-up in micro_trunc() 2007-10-03 13:50:11 -06:00
Brian
1a18ebc6b3 move TEX code into exec_tex() 2007-10-03 13:50:11 -06:00
Michel Dänzer
e9df20c2fa Some minor cleanups. 2007-10-03 20:37:59 +02:00
Michel Dänzer
86a03e43ce Double amount of memory allocated for generated shader code.
The code generated for the glxgears vertex shader didn't fit, causing a crash.
2007-10-03 20:35:19 +02:00
Michel Dänzer
344464bf2e Track fragment and vertex shader code generation via pipe shader state objects.
Unfortunately, the generated fragment shader code is effectively unusable until
it handles quad->mask.
2007-10-03 20:33:23 +02:00
Michel Dänzer
ce765a7fb7 intel_winsys: Adapt to DRM changes (again).
It was decided after all to stick to 'pipes' here, even though the actual
meaning is now 'planes'.
2007-10-03 18:39:39 +02:00
Zack Rusin
07cd46d111 In vertex shaders also expect the template to be stack allocated
structure so allocate a private copy of it.
2007-10-03 12:01:18 -04:00
Zack Rusin
b46926c4be Unify the definitions of the 4 component dot product into one
location.
2007-10-03 10:33:38 -04:00
Zack Rusin
cdd38d487a Unify handling of userplanes and regular planes to simplify
the clipping code.
(really done by Keith)
2007-10-03 10:33:38 -04:00
Zack Rusin
a7e997cfc5 Get rid of ST_NEW_SHADER flag and the dependency on _NEW_PROGRAM
which is being hit all the time. Done by Keith really.
2007-10-03 10:33:38 -04:00
Zack Rusin
5e4309ee92 Explain a little better what we're doing here. 2007-10-03 08:50:27 -04:00
Zack Rusin
51345cb3c4 Make softpipe behave more like a real driver by always allocating something
in the state functions.
2007-10-03 08:47:36 -04:00
Brian
4b6cc36b2b clean-ups 2007-10-02 19:44:55 -06:00
Brian
355f8f7eed Implement/use fragment kill results 2007-10-02 19:16:57 -06:00
Brian
ff9949d05c Implement TGSI_OPCODE_SNE with micro_ne() 2007-10-02 17:13:06 -06:00
Brian
066ccec494 Separate TGSI_OPCODE_KIL and TGSI_OPCODE_KILP (predicated).
These correspond to the NV and ARB-style fragment program KIL instructions.
The former is really supposed to examine the NV condition codes but Mesa's
GLSL compiler always emits unconditional KIL instructions.
2007-10-02 17:07:30 -06:00
Brian
ca34912bf7 assert that program length > 1 (some code, plus END) 2007-10-02 16:57:19 -06:00
Brian
ae28d19bbf added MESA_FORMAT_Z16 in st_mesa_format_to_pipe_format(), for Glean 2007-10-02 16:56:02 -06:00
Brian
d781cdc8fa Generate a texenv fragment program if there's a GLSL vertex shader but no GLSL fragment shader.
This allows Glean glsl1 test to get pretty far.
2007-10-02 16:55:21 -06:00
Brian
c9dceb17c0 Push mask stacks upon CAL, pop upon RET.
Still need to handle conditional RET statements...
2007-10-02 16:24:40 -06:00
Brian
4d155a32d2 added license and interpreter comments 2007-10-02 16:17:34 -06:00
Brian
53a6a55c7c Implement CONT statement. 2007-10-02 16:05:07 -06:00
Brian
fe1d15acc7 added micro_trunc(), re-order some code 2007-10-02 15:17:37 -06:00
Brian
8955bc3458 Minor optimization: no-op CAL when ExecMask==0x0. 2007-10-02 14:25:43 -06:00
Brian
6aab3e3d26 Added TGSI_FILE_OUTPUT case in fetch_src_file_channel().
GLSL output variables (such as vertex varyings) can be read (they're not
write-only).
2007-10-02 14:17:47 -06:00
Brian
4ad80ad5cf Implement CAL/RET and a call stack for subroutines.
The glsl/brick.c shader demo runs now.
2007-10-02 14:05:21 -06:00
Brian
5e49ec339d Added TGSI_OPCODE_END
Halt program execution when we get to END instruction.  The GLSL compiler
puts subroutines after the end instruction so we have to stop before then.
2007-10-02 13:49:38 -06:00
Brian
4726489248 Fold expand_program() into tgsi_exec_prepare() 2007-10-02 13:41:56 -06:00
Brian
e2009d0871 no more need for tgsi_exec_machine_run2(), remove dead code 2007-10-02 11:49:43 -06:00
Brian
9ac03856f5 remove dead code 2007-10-02 11:47:21 -06:00
Brian
0d13ade0cd Move tgsi machine state init/allocations so they're done less frequently.
This, plus expanding all instructions ahead of time, seems to have improved
the performance of program execution by 8x or so.
2007-10-02 11:46:11 -06:00
Brian
57d3770f35 checkpoint: unpack all instructions before interpretation. Actual looping works. 2007-10-02 10:38:56 -06:00
Brian
cdf99a9fad comments/code for min/max_lod - revisit someday 2007-10-01 18:10:53 -06:00
Brian
4c19f95a39 use i915_miptree_layout when using an i915 2007-10-01 15:39:15 -06:00
Brian
f8b2148a2b avoid updating vertex format when it doesn't really change 2007-10-01 14:46:19 -06:00
Brian
a24031d50c don't crash in RasterPos if feedback not implemented yet 2007-10-01 13:55:16 -06:00
Brian
3c41589420 disable debug printf 2007-10-01 13:54:37 -06:00
Brian
726060680b don't crash when fog enabled, still not rendered correctly though 2007-10-01 13:54:24 -06:00