Brian [Sat, 20 Jan 2007 16:22:13 +0000 (09:22 -0700)]
Reimplement && and || to do short-circuit evaluation.
Improved shader error handling.
Brian [Sat, 20 Jan 2007 14:56:00 +0000 (07:56 -0700)]
rewrite more __postIncr functions
Brian [Fri, 19 Jan 2007 20:13:15 +0000 (13:13 -0700)]
Implement do/while loops. Replace IR_CJUMP with IR_CJUMP0 and IR_CJUMP1 so
we can either jump on zero, or non-zero predicate.
Brian [Fri, 19 Jan 2007 19:19:38 +0000 (12:19 -0700)]
Rewrite normalize(vec3/vec4) to use one less register.
Brian [Fri, 19 Jan 2007 19:02:31 +0000 (12:02 -0700)]
report error message when something fails
Brian [Fri, 19 Jan 2007 19:02:06 +0000 (12:02 -0700)]
print error msg when there's a problem
Brian [Fri, 19 Jan 2007 17:31:52 +0000 (10:31 -0700)]
remove stray tab
Brian [Fri, 19 Jan 2007 17:15:34 +0000 (10:15 -0700)]
Implement fragment discard/kill.
Brian [Fri, 19 Jan 2007 17:02:58 +0000 (10:02 -0700)]
change while-loop to create new scope for loop body, per spec
Brian [Fri, 19 Jan 2007 00:29:23 +0000 (17:29 -0700)]
Implement constant sharing so that 4 float constants can share a single
float[4] register slot.
Brian [Fri, 19 Jan 2007 00:23:48 +0000 (17:23 -0700)]
_mesa_add_unnamed_constant() now tries to re-use constants already in
the parameter list.
Brian [Thu, 18 Jan 2007 22:35:44 +0000 (15:35 -0700)]
Reimplement code for swizzling so that expressions like (p+q).x for vectors p and q works correctly.
Brian [Thu, 18 Jan 2007 22:33:13 +0000 (15:33 -0700)]
rewrite a bunch of assignment operators (like +=)
Brian [Thu, 18 Jan 2007 22:23:45 +0000 (15:23 -0700)]
remove debug code
Brian [Thu, 18 Jan 2007 16:22:44 +0000 (09:22 -0700)]
remove swizzle param from new_var()
Brian [Thu, 18 Jan 2007 01:37:20 +0000 (18:37 -0700)]
rewrite additional matrix-related functions to reduce register needs
Brian [Thu, 18 Jan 2007 01:30:53 +0000 (18:30 -0700)]
rewrite mat4 * mat4 operator to use fewer temps
Brian [Thu, 18 Jan 2007 01:21:00 +0000 (18:21 -0700)]
do bounds check in _slang_push_var_table(), added comment
Brian [Thu, 18 Jan 2007 01:06:40 +0000 (18:06 -0700)]
rewrite matrix constructors
Brian [Thu, 18 Jan 2007 01:02:44 +0000 (18:02 -0700)]
handle var size > 4 in _slang_pop_var_table()
Brian [Wed, 17 Jan 2007 23:30:11 +0000 (16:30 -0700)]
minor fprintf() change
Brian [Wed, 17 Jan 2007 23:29:51 +0000 (16:29 -0700)]
Rewrite a bunch of constructors. It's now important that the first
constructor for any given type be the one that takes the most parameters
as this is the constructor that'll be used when there's no perfect match
to the caller's arguments.
See the _slang_adapt_call() function for details.
Brian [Wed, 17 Jan 2007 23:14:03 +0000 (16:14 -0700)]
_slang_gen_function_call_name() now tries to adapt function calls (expand
vectors, insert casts) when a perfect match isn't found.
Brian [Wed, 17 Jan 2007 23:11:50 +0000 (16:11 -0700)]
New _slang_adapt_call() function.
This is used to modify function calls (when possible) to make the arguments
map to the function parameters. This includes "unrolling" vector types
and doing casts.
Example:
vec2 v2 = vec2(1.2, 3.4)
ivec3 iv = ivec3(false, v2);
Is converted into:
ivec3 iv = ivec3(int(false), int(v2[0]), int(v2[1]))
Brian [Wed, 17 Jan 2007 23:05:03 +0000 (16:05 -0700)]
code clean-up, re-org. Added IR_F_TO_I support.
Brian [Wed, 17 Jan 2007 22:58:24 +0000 (15:58 -0700)]
added IR_F_TO_I, update comments
Brian [Wed, 17 Jan 2007 22:54:14 +0000 (15:54 -0700)]
Added OPCODE_INT to convert 4 floats to 4 ints.
Brian [Wed, 17 Jan 2007 17:25:44 +0000 (10:25 -0700)]
add texturing, other options
Brian [Wed, 17 Jan 2007 16:54:31 +0000 (09:54 -0700)]
Fix/clean-up a number of things related to variable/temporary allocation.
Brian [Wed, 17 Jan 2007 00:38:39 +0000 (17:38 -0700)]
Implement codegen for the selection operator ( b ? x : y )
Brian [Tue, 16 Jan 2007 23:53:41 +0000 (16:53 -0700)]
fix typo
Brian [Tue, 16 Jan 2007 22:27:11 +0000 (15:27 -0700)]
draw a box, press 'a' to animate
Brian [Tue, 16 Jan 2007 21:57:12 +0000 (14:57 -0700)]
added some VerteAttrib funcs
Brian [Tue, 16 Jan 2007 21:55:43 +0000 (14:55 -0700)]
Added toyball and bumpmap tests using shaders from the OpenGL Shading Language (orange) book.
Brian [Tue, 16 Jan 2007 21:52:22 +0000 (14:52 -0700)]
when automatically binding vertex attributes, start with attrib 1, not 0
Brian [Tue, 16 Jan 2007 21:19:37 +0000 (14:19 -0700)]
remove dead code
Brian [Tue, 16 Jan 2007 21:17:57 +0000 (14:17 -0700)]
comments
Brian [Tue, 16 Jan 2007 21:15:05 +0000 (14:15 -0700)]
implement logical or, xor, not
Brian [Tue, 16 Jan 2007 21:10:30 +0000 (14:10 -0700)]
some additional vector constructors
Brian [Tue, 16 Jan 2007 17:45:34 +0000 (10:45 -0700)]
fix _slang_gen_subscript() for the case when a simple vector is accessed as an array: convert index to a swizzle/writemask
Brian [Tue, 16 Jan 2007 00:48:19 +0000 (17:48 -0700)]
Use arrow keys to pan and z/Z to zoom in/out to explore the fractal.
Brian [Tue, 16 Jan 2007 00:27:24 +0000 (17:27 -0700)]
Added new directory of GL shading language demos: glsl
Brian [Mon, 15 Jan 2007 23:54:38 +0000 (16:54 -0700)]
Reimplement the post-increment/decrement functions.
Instead of defining functions with an extra dummy parameter to distinguish
from the pre-incr/decr functions, just use new function names: __postIncr
and __postDecr.
Brian [Mon, 15 Jan 2007 23:38:12 +0000 (16:38 -0700)]
Implement the ++var and --var operators, improve some constructors.
Brian [Mon, 15 Jan 2007 23:34:33 +0000 (16:34 -0700)]
added vec3 constructor code
Brian [Mon, 15 Jan 2007 23:33:54 +0000 (16:33 -0700)]
added IR_ELEMENT
Brian [Mon, 15 Jan 2007 22:51:49 +0000 (15:51 -0700)]
checkpoint: ++, -- and && operators
Brian [Mon, 15 Jan 2007 20:58:45 +0000 (13:58 -0700)]
Redo the way array indexes are handled. Resolve storage location at code emit time, not codegen time.
Brian [Mon, 15 Jan 2007 18:10:11 +0000 (11:10 -0700)]
remove old globals
Brian [Mon, 15 Jan 2007 18:08:10 +0000 (11:08 -0700)]
comments
Brian [Mon, 15 Jan 2007 17:44:11 +0000 (10:44 -0700)]
Move some global vars into slang_assemble_ctx.
Brian [Mon, 15 Jan 2007 17:35:59 +0000 (10:35 -0700)]
fix the subassig, mulassign and divassign cases
Brian [Mon, 15 Jan 2007 17:35:03 +0000 (10:35 -0700)]
clean-up slang_allocate_storage()
Brian [Sat, 13 Jan 2007 21:51:02 +0000 (14:51 -0700)]
added glUniform1fv_func, glUniform2fv_func
Brian [Sat, 13 Jan 2007 21:49:52 +0000 (14:49 -0700)]
Rework code related to temp register allocation, both for user variables
and expression temporarires. Much better register utilization now.
Lots of other fixes.
The OpenGL GLSL "orange book" brick shader demo works now.
Brian [Sat, 13 Jan 2007 21:47:48 +0000 (14:47 -0700)]
slang_variable_scope now stores array of pointers to slang_variables.
Brian [Sat, 13 Jan 2007 21:46:12 +0000 (14:46 -0700)]
added another vec4 constructor, updated += operator
Brian [Thu, 11 Jan 2007 18:22:26 +0000 (11:22 -0700)]
Fix a problem with inlined "return" statements. Make some attempt to free temporaries.
Brian [Thu, 11 Jan 2007 18:21:38 +0000 (11:21 -0700)]
disable some code that'll eventually go away
Brian [Thu, 11 Jan 2007 18:20:23 +0000 (11:20 -0700)]
new vec3 constructor, replace float_add w/ vec4_add
Brian [Thu, 11 Jan 2007 18:19:11 +0000 (11:19 -0700)]
tweak output
Brian [Wed, 10 Jan 2007 20:51:48 +0000 (13:51 -0700)]
checkpoint: codegen for global vars/constants now working
Brian [Wed, 10 Jan 2007 20:33:38 +0000 (13:33 -0700)]
checkpoint: codegen for global vars w/ initializers
Brian [Wed, 10 Jan 2007 19:18:50 +0000 (12:18 -0700)]
assorted code clean-ups
Brian [Wed, 10 Jan 2007 19:18:33 +0000 (12:18 -0700)]
fix size bug in _mesa_add_attribute()
Brian [Wed, 10 Jan 2007 15:37:59 +0000 (08:37 -0700)]
simplify _mesa_add_state_reference()
Brian [Wed, 10 Jan 2007 15:15:35 +0000 (08:15 -0700)]
Update _save_VertexAttrib() functions for non-aliasing behaviour.
Brian [Wed, 10 Jan 2007 02:26:22 +0000 (19:26 -0700)]
get rid of STATE_USER_ATTRIB/STATE_AUTO_ATTRIB
Brian [Wed, 10 Jan 2007 02:17:17 +0000 (19:17 -0700)]
clean up a bunch of program parameter stuff
Brian [Wed, 10 Jan 2007 00:49:53 +0000 (17:49 -0700)]
added a few more 2.0 functions
Brian [Wed, 10 Jan 2007 00:49:24 +0000 (17:49 -0700)]
Implement vertex attribute binding.
Users can set explicit binding with glBindAttribLocation(), otherwise the
linker will allocate generic attribute slots.
Brian [Wed, 10 Jan 2007 00:47:13 +0000 (17:47 -0700)]
more debug code (disabled)
Brian [Wed, 10 Jan 2007 00:46:45 +0000 (17:46 -0700)]
add code for generic attributes 16..31
Brian [Tue, 9 Jan 2007 18:00:47 +0000 (11:00 -0700)]
added _mesa_count_texture_indirections(), _mesa_count_texture_instructions()
Brian [Tue, 9 Jan 2007 18:00:21 +0000 (11:00 -0700)]
Moved NumTexInstructions, NumTexIndirections, etc. into gl_program since
they can now apply to vertex programs.
Brian [Tue, 9 Jan 2007 17:10:59 +0000 (10:10 -0700)]
remove old comment
Brian [Tue, 9 Jan 2007 16:31:30 +0000 (09:31 -0700)]
Vertex program texture samplers done, but untested (need to add TEX/TXB to
the T&L vertex program interpreter).
Brian [Tue, 9 Jan 2007 16:14:32 +0000 (09:14 -0700)]
Implement shadow samplers and dFdx(), dFdy() code generation.
Brian [Mon, 8 Jan 2007 23:56:52 +0000 (16:56 -0700)]
implement biased texture functions
Brian [Mon, 8 Jan 2007 23:49:43 +0000 (16:49 -0700)]
check if _Current == NULL for TXB
Brian [Mon, 8 Jan 2007 23:10:55 +0000 (16:10 -0700)]
added 1D texture functions
Brian [Mon, 8 Jan 2007 23:10:34 +0000 (16:10 -0700)]
Remove if (tObj) conditional so that texture units without a texture image
return black (0,0,0,1) when sampled.
Brian [Mon, 8 Jan 2007 23:02:40 +0000 (16:02 -0700)]
update texture1D functions
Brian [Mon, 8 Jan 2007 22:58:14 +0000 (15:58 -0700)]
Implement projective texture sampling, 3D textures. Disable some debug output.
Brian [Mon, 8 Jan 2007 21:11:54 +0000 (14:11 -0700)]
Move some code around, add some comments.
Brian [Mon, 8 Jan 2007 21:06:00 +0000 (14:06 -0700)]
Move storage allocation functions from slang_emit.c to slang_codegen.c
Brian [Mon, 8 Jan 2007 20:36:53 +0000 (13:36 -0700)]
checkpoint: more work on variable/storage allocation
Brian [Mon, 8 Jan 2007 20:09:47 +0000 (13:09 -0700)]
Checkpoint: re-org of (global) variable allocation code. More to come...
Brian [Fri, 5 Jan 2007 23:02:45 +0000 (16:02 -0700)]
Checkpoint glsl compiler work: sampler uniforms now implemented, linked properly.
Brian [Fri, 5 Jan 2007 23:01:43 +0000 (16:01 -0700)]
added PROGRAM_SAMPLER
Brian [Fri, 5 Jan 2007 23:01:26 +0000 (16:01 -0700)]
added Sampler field to prog_instruction struct
Brian [Fri, 5 Jan 2007 23:01:11 +0000 (16:01 -0700)]
added PROGRAM_SAMPLER
Brian [Fri, 5 Jan 2007 23:00:57 +0000 (16:00 -0700)]
added _mesa_add_sampler()
Brian [Fri, 5 Jan 2007 00:44:04 +0000 (17:44 -0700)]
update TexturesUsed[] in slang_update_inputs_outputs()
Brian [Fri, 5 Jan 2007 00:43:53 +0000 (17:43 -0700)]
update TexturesUsed[] in slang_update_inputs_outputs()
Brian [Fri, 5 Jan 2007 00:30:30 +0000 (17:30 -0700)]
compute InputsRead/OutputsWritten with slang_update_inputs_outputs()
Brian [Fri, 5 Jan 2007 00:22:19 +0000 (17:22 -0700)]
move TexturesUsed[] into gl_program since vertex programs/shaders can use textures nowadays
Brian [Thu, 4 Jan 2007 23:19:54 +0000 (16:19 -0700)]
simplify update_texture_state() a bit, compute _EnabledCoordUnits for shaders
Brian [Thu, 4 Jan 2007 22:25:29 +0000 (15:25 -0700)]
minor formatting fix
Brian [Thu, 4 Jan 2007 22:06:50 +0000 (15:06 -0700)]
added texture attribs in slang_find_input()