mesa.git
16 years agogallium: in clear_with_quad() check fb orientation, invert Y if needed
Brian [Thu, 20 Mar 2008 20:17:06 +0000 (14:17 -0600)]
gallium: in clear_with_quad() check fb orientation, invert Y if needed

16 years agogallium: Give some chance for the table to actually grow.
José Fonseca [Thu, 20 Mar 2008 20:34:46 +0000 (20:34 +0000)]
gallium: Give some chance for the table to actually grow.

16 years agogallium: Fix build on Windows.
Michal Krol [Thu, 20 Mar 2008 19:34:03 +0000 (20:34 +0100)]
gallium: Fix build on Windows.

16 years agogallium: Fix build on Windows.
Michal Krol [Thu, 20 Mar 2008 19:25:40 +0000 (20:25 +0100)]
gallium: Fix build on Windows.

16 years agogallium: remove unused local var
Keith Whitwell [Thu, 20 Mar 2008 19:25:44 +0000 (19:25 +0000)]
gallium: remove unused local var

16 years agogallium: create one vertex buffer and re-use, also enable bypass_clipping
Brian [Thu, 20 Mar 2008 16:46:44 +0000 (10:46 -0600)]
gallium: create one vertex buffer and re-use, also enable bypass_clipping

Quad clears should be a little more efficient now.

16 years agogallium: create vertex buffer once and re-use.
Brian [Thu, 20 Mar 2008 16:44:51 +0000 (10:44 -0600)]
gallium: create vertex buffer once and re-use.

16 years agogallium: added util_draw_vertex_buffer()
Brian [Thu, 20 Mar 2008 16:44:27 +0000 (10:44 -0600)]
gallium: added util_draw_vertex_buffer()

16 years agogallium: temporarily disable the memcmp() in cso_set_framebuffer()
Brian [Thu, 20 Mar 2008 15:15:24 +0000 (09:15 -0600)]
gallium: temporarily disable the memcmp() in cso_set_framebuffer()

The memcmp() fails to detect buffer size changes...

16 years agogallium: use the utility pasthrough shaders
Brian [Thu, 20 Mar 2008 15:13:51 +0000 (09:13 -0600)]
gallium: use the utility pasthrough shaders

This avoids the Mesa->TGSI translation step.

16 years agogallium: added util_make_fragment_passthrough_shader()
Brian [Thu, 20 Mar 2008 15:11:27 +0000 (09:11 -0600)]
gallium: added util_make_fragment_passthrough_shader()

16 years agogallium: add debug facility to dump random blobs as hex
Keith Whitwell [Thu, 20 Mar 2008 13:10:32 +0000 (13:10 +0000)]
gallium: add debug facility to dump random blobs as hex

16 years agogallium: added fb_width/height fields to softpipe context
Brian Paul [Thu, 20 Mar 2008 00:10:09 +0000 (18:10 -0600)]
gallium: added fb_width/height fields to softpipe context

These are convenience fields.  Otherwise, we have to check cbuf[0] or zsbuf
in various places.

16 years agobetter text labels
Brian Paul [Wed, 19 Mar 2008 23:14:49 +0000 (17:14 -0600)]
better text labels

16 years agogallium: add face, dirtyLevels params to pipe->texture_update()
Brian Paul [Wed, 19 Mar 2008 23:08:16 +0000 (17:08 -0600)]
gallium: add face, dirtyLevels params to pipe->texture_update()

This provides better information about which images in texture object have changed.
Also, call texture_update() from more places previously missed.

16 years agogallium: need to set/save framebuffer state in st_context since we use it elsewhere
Brian Paul [Wed, 19 Mar 2008 23:04:49 +0000 (17:04 -0600)]
gallium: need to set/save framebuffer state in st_context since we use it elsewhere

16 years agogallium: fix bug in cso_single_sampler_done() in computation of nr_samplers
Brian Paul [Wed, 19 Mar 2008 22:41:54 +0000 (16:41 -0600)]
gallium: fix bug in cso_single_sampler_done() in computation of nr_samplers

Need to find highest used sampler so search from end toward beginning.

16 years agogallium: Fix broken logic.
José Fonseca [Wed, 19 Mar 2008 20:46:08 +0000 (20:46 +0000)]
gallium: Fix broken logic.

16 years agogallium: explict float casts
Keith Whitwell [Wed, 19 Mar 2008 17:35:42 +0000 (17:35 +0000)]
gallium: explict float casts

16 years agogallium: implement CSO save/restore functions for use by meta operations (blit, gen...
Brian [Wed, 19 Mar 2008 17:12:48 +0000 (11:12 -0600)]
gallium: implement CSO save/restore functions for use by meta operations (blit, gen-mipmaps, quad-clear, etc)

Also, additional cso_set_*() functions for viewport, framebuffer, blend color,
etc. state.

16 years agogallium: remove old commented-out code
Brian [Wed, 19 Mar 2008 16:43:35 +0000 (10:43 -0600)]
gallium: remove old commented-out code

16 years agogallium: set tc->surface_map = NULL after unmapping
Brian [Wed, 19 Mar 2008 14:53:02 +0000 (08:53 -0600)]
gallium: set tc->surface_map = NULL after unmapping

16 years agogallium: Add generic enum and flags dumping utility functions.
José Fonseca [Wed, 19 Mar 2008 16:41:07 +0000 (16:41 +0000)]
gallium: Add generic enum and flags dumping utility functions.

16 years agoset outputs_safe to 0 as it's possible for the code generation
Alan Hourihane [Wed, 19 Mar 2008 00:18:07 +0000 (00:18 +0000)]
set outputs_safe to 0 as it's possible for the code generation
to slip over the allocated memory for the vb.

16 years agoremove redundant init
Alan Hourihane [Wed, 19 Mar 2008 00:16:16 +0000 (00:16 +0000)]
remove redundant init

16 years agogallium: added braces to silence warning
Brian [Tue, 18 Mar 2008 23:19:57 +0000 (17:19 -0600)]
gallium: added braces to silence warning

16 years agogallium: plug in and init GL_EXT_framebuffer_blit function/extension
Brian [Tue, 18 Mar 2008 23:16:23 +0000 (17:16 -0600)]
gallium: plug in and init GL_EXT_framebuffer_blit function/extension

16 years agogallium: added st_cb_blit.c
Brian [Tue, 18 Mar 2008 23:16:12 +0000 (17:16 -0600)]
gallium: added st_cb_blit.c

16 years agogallium: s/copy_pixels_state/blit_state
Brian [Tue, 18 Mar 2008 23:15:25 +0000 (17:15 -0600)]
gallium: s/copy_pixels_state/blit_state

16 years agogallium: added cso_unset_*() functions
Brian [Tue, 18 Mar 2008 23:14:05 +0000 (17:14 -0600)]
gallium: added cso_unset_*() functions

If we go behind the CSO context's back and set pipe state directly we
need to invalidate the CSO's 'current' pointers.
This will be revisited...

16 years agogallium: glFramebufferBlitEXT() implementation
Brian [Tue, 18 Mar 2008 23:13:14 +0000 (17:13 -0600)]
gallium: glFramebufferBlitEXT() implementation

16 years agogallium: fix typos
Brian [Tue, 18 Mar 2008 23:12:51 +0000 (17:12 -0600)]
gallium: fix typos

16 years agogallium: new pixel blit code
Brian [Tue, 18 Mar 2008 23:04:59 +0000 (17:04 -0600)]
gallium: new pixel blit code

Copy rectangular region from one surface to another w/ scaling.
Disables most fragment operations.

16 years agogallium: protect against multi-#include
Brian [Tue, 18 Mar 2008 22:59:46 +0000 (16:59 -0600)]
gallium: protect against multi-#include

16 years agoadded u_simple_shaders.c
Brian [Tue, 18 Mar 2008 22:59:15 +0000 (16:59 -0600)]
added u_simple_shaders.c

16 years agogallium: make the gen_mipmap_state struct private
Brian [Tue, 18 Mar 2008 22:58:15 +0000 (16:58 -0600)]
gallium: make the gen_mipmap_state struct private

16 years agogallium: use new simple shader utility routines
Brian [Tue, 18 Mar 2008 22:57:23 +0000 (16:57 -0600)]
gallium: use new simple shader utility routines

16 years agogallium: utilities for creating simple vertex/fragment shaders
Brian [Tue, 18 Mar 2008 22:56:55 +0000 (16:56 -0600)]
gallium: utilities for creating simple vertex/fragment shaders

16 years agogallium: restore additional state after clearing with quad
Brian [Tue, 18 Mar 2008 21:15:02 +0000 (15:15 -0600)]
gallium: restore additional state after clearing with quad

16 years agocell: Fix various stencil test code-gen bugs
Ian Romanick [Tue, 18 Mar 2008 22:59:33 +0000 (15:59 -0700)]
cell: Fix various stencil test code-gen bugs

16 years agocell: Correctly load stencil for PIPE_FORMAT_S8Z24_UNORM
Ian Romanick [Tue, 18 Mar 2008 22:59:06 +0000 (15:59 -0700)]
cell: Correctly load stencil for PIPE_FORMAT_S8Z24_UNORM

16 years agogallium: make REALLOC a bit more like realloc
Keith Whitwell [Tue, 18 Mar 2008 13:10:51 +0000 (13:10 +0000)]
gallium: make REALLOC a bit more like realloc

16 years agocell: Fix depth read / write for s8z24.
Ian Romanick [Tue, 18 Mar 2008 18:47:37 +0000 (11:47 -0700)]
cell: Fix depth read / write for s8z24.

Stencil is still broken.

16 years agocell: Fix added whitespace errors.
Ian Romanick [Tue, 18 Mar 2008 17:29:14 +0000 (10:29 -0700)]
cell: Fix added whitespace errors.

16 years agocell: Minor changes to make stencil not crash
Ian Romanick [Tue, 18 Mar 2008 17:26:45 +0000 (10:26 -0700)]
cell: Minor changes to make stencil not crash

I'm not sure these are quite correct.  The reflect demo doesn't assert
anymore, but it doesn't produce correct results either.  SPE-based
vertex shader code needs to be disabled for relfect to run.

16 years agocell: Move and (conditionally) silence debug code
Ian Romanick [Tue, 18 Mar 2008 17:23:39 +0000 (10:23 -0700)]
cell: Move and (conditionally) silence debug code

16 years agod3d: Allow to iterate over the handle table.
José Fonseca [Tue, 18 Mar 2008 12:46:24 +0000 (12:46 +0000)]
d3d: Allow to iterate over the handle table.

16 years agod3d: Add function to walk through all items in the hash table.
José Fonseca [Tue, 18 Mar 2008 12:01:14 +0000 (12:01 +0000)]
d3d: Add function to walk through all items in the hash table.

16 years agogallium: Don't be pedantic about removing non exiting items from the table.
José Fonseca [Tue, 18 Mar 2008 11:49:29 +0000 (11:49 +0000)]
gallium: Don't be pedantic about removing non exiting items from the table.

16 years agogallium: Convenience debug_warning function.
José Fonseca [Tue, 18 Mar 2008 11:49:02 +0000 (11:49 +0000)]
gallium: Convenience debug_warning function.

16 years agogallium: fix a mix-up in the uint[1] do_row() case
Brian [Tue, 18 Mar 2008 15:28:04 +0000 (09:28 -0600)]
gallium: fix a mix-up in the uint[1] do_row() case

16 years agogallium: use new color packing utility functions
Brian [Tue, 18 Mar 2008 15:23:35 +0000 (09:23 -0600)]
gallium: use new color packing utility functions

16 years agogallium: utility for packing color, z values according to pipe_format
Brian [Tue, 18 Mar 2008 15:22:41 +0000 (09:22 -0600)]
gallium: utility for packing color, z values according to pipe_format

16 years agogallium: Silencium warnings on Windows.
Michal Krol [Tue, 18 Mar 2008 14:59:55 +0000 (15:59 +0100)]
gallium: Silencium warnings on Windows.

16 years agogallium: initial gen mipmap s/w fallback code
Brian [Mon, 17 Mar 2008 23:45:00 +0000 (17:45 -0600)]
gallium: initial gen mipmap s/w fallback code

16 years agocell: Don't segfault when unbinding alpha / stencil / depth test state
Ian Romanick [Mon, 17 Mar 2008 23:09:28 +0000 (16:09 -0700)]
cell: Don't segfault when unbinding alpha / stencil / depth test state

16 years agocell: Don't free NULL code pointers
Ian Romanick [Mon, 17 Mar 2008 23:07:54 +0000 (16:07 -0700)]
cell: Don't free NULL code pointers

16 years agocell: Initial code-gen for alpha / stencil / depth testing
Ian Romanick [Mon, 17 Mar 2008 22:45:52 +0000 (15:45 -0700)]
cell: Initial code-gen for alpha / stencil / depth testing

Alpha test is currently broken because all per-fragment testing occurs
before alpha is calculated.

Stencil test is currently broken because the Z-clear code asserts if
there is a stencil buffer.

16 years agocell: Fix simple register allocator
Ian Romanick [Mon, 17 Mar 2008 22:37:09 +0000 (15:37 -0700)]
cell: Fix simple register allocator

THere are 64-bits in a uint64_t, not 128.  Duh.

16 years agomesa: new mipmap generation, lod bias demo
Brian Paul [Mon, 17 Mar 2008 22:03:06 +0000 (16:03 -0600)]
mesa: new mipmap generation, lod bias demo

Show each of the mipmap levels side-by-side.
Press 's' to toggle quad scaling to see mipmap level at actual size.

16 years agogallium: use new gallium utility code for generating mipmaps
Brian [Mon, 17 Mar 2008 21:48:13 +0000 (15:48 -0600)]
gallium: use new gallium utility code for generating mipmaps

16 years agogallium: added new u_draw_quad.c and u_gen_mipmap.c files.
Brian [Mon, 17 Mar 2008 21:39:19 +0000 (15:39 -0600)]
gallium: added new u_draw_quad.c and u_gen_mipmap.c files.

16 years agogallium: new mipmap generation code
Brian [Mon, 17 Mar 2008 21:38:14 +0000 (15:38 -0600)]
gallium: new mipmap generation code

Based on code from Mesa's state tracker.
Still need to implement fallbacks for those texture formats which can't
generally be rendered to.

16 years agogallium: new util_draw_texquad() function.
Brian [Mon, 17 Mar 2008 21:37:42 +0000 (15:37 -0600)]
gallium: new util_draw_texquad() function.

16 years agogallium: set min_mip_filter = PIPE_TEX_MIPFILTER_NEAREST
Brian Paul [Mon, 17 Mar 2008 18:38:24 +0000 (12:38 -0600)]
gallium: set min_mip_filter = PIPE_TEX_MIPFILTER_NEAREST

Plus, comments, clean-ups.

16 years agogallium: in gen_mipmap, also set sampler lod_bias and do a flush() after rendering...
Brian Paul [Mon, 17 Mar 2008 15:42:08 +0000 (09:42 -0600)]
gallium: in gen_mipmap, also set sampler lod_bias and do a flush() after rendering each level

16 years agoonly set InputsRead bit if input is really used
Markus Amsler [Mon, 17 Mar 2008 14:35:37 +0000 (08:35 -0600)]
only set InputsRead bit if input is really used

16 years agogallium: improvements, or extensions at least, to the passthrough path
Keith Whitwell [Mon, 17 Mar 2008 10:10:45 +0000 (10:10 +0000)]
gallium: improvements, or extensions at least, to the passthrough path

Passthrough is actually more tricky than you'd think...

16 years agogallium: finish remaining prim types for sp_vbuf_draw_arrays()
Brian [Sun, 16 Mar 2008 16:33:59 +0000 (10:33 -0600)]
gallium: finish remaining prim types for sp_vbuf_draw_arrays()

Not totally tested, but easily fixed if glitches are found.

16 years agogallium: Ensure we don't add null objects to the table, as they mark empty handles.
José Fonseca [Sat, 15 Mar 2008 00:55:28 +0000 (00:55 +0000)]
gallium: Ensure we don't add null objects to the table, as they mark empty handles.

16 years agomesa: clamp point size in vertex program when computing attenuated size
Brian Paul [Fri, 14 Mar 2008 23:47:11 +0000 (17:47 -0600)]
mesa: clamp point size in vertex program when computing attenuated size

16 years agogallium: if point size not computed per vertex, apply size clamp immediately.
Brian Paul [Fri, 14 Mar 2008 23:45:27 +0000 (17:45 -0600)]
gallium: if point size not computed per vertex, apply size clamp immediately.

Fixes glean pointAtten failure.

16 years agogallium: add explicit control for point sprites (convert points to textured quads)
Brian [Fri, 14 Mar 2008 22:13:35 +0000 (16:13 -0600)]
gallium: add explicit control for point sprites (convert points to textured quads)

New draw_enable_point_sprites() function.
Fixes spriteblast.c demo

16 years agogallium: remove DOS carriage returns
Brian [Fri, 14 Mar 2008 22:00:15 +0000 (16:00 -0600)]
gallium: remove DOS carriage returns

16 years agogallium: remove DOS carriage returns
Brian [Fri, 14 Mar 2008 21:54:02 +0000 (15:54 -0600)]
gallium: remove DOS carriage returns

16 years agotgsi: Use debug_printf().
Michal Krol [Fri, 14 Mar 2008 20:44:06 +0000 (21:44 +0100)]
tgsi: Use debug_printf().

16 years agoscons: Remove second occurence of draw_passthrough.c.
Michal Krol [Fri, 14 Mar 2008 20:40:02 +0000 (21:40 +0100)]
scons: Remove second occurence of draw_passthrough.c.

16 years agomesa: init tmpNode to zeros
Brian Paul [Fri, 14 Mar 2008 20:14:13 +0000 (14:14 -0600)]
mesa: init tmpNode to zeros

16 years agomesa: fix emit_clamp() so that we don't use an output register as temporary
Brian Paul [Fri, 14 Mar 2008 19:50:01 +0000 (13:50 -0600)]
mesa: fix emit_clamp() so that we don't use an output register as temporary

IR_CLAMP is decomposed into OPCODE_MIN+OPCODE_MAX.  Allocate a temporary
register for the intermediate value so we don't inadvertantly use an output
register (which are write-only on some GPUs).

16 years agomesa: call glColorMask(1,1,1,1) before glClear()
Brian Paul [Fri, 14 Mar 2008 17:35:57 +0000 (11:35 -0600)]
mesa: call glColorMask(1,1,1,1) before glClear()

Without this, second and subsequent redraws rendered incorrectly.
Plus comments.

16 years agogallium: print warning rather than assert(0) for LOG/EXP opcodes
Brian Paul [Fri, 14 Mar 2008 17:24:28 +0000 (11:24 -0600)]
gallium: print warning rather than assert(0) for LOG/EXP opcodes

Glean vertProg1 runs all the way through, rather than aborting.

16 years agogallium: added some debug code (disabled)
Brian [Fri, 14 Mar 2008 16:23:39 +0000 (10:23 -0600)]
gallium: added some debug code (disabled)

16 years agoi915: check for NULL const buffer ptr
Brian [Fri, 14 Mar 2008 16:23:11 +0000 (10:23 -0600)]
i915: check for NULL const buffer ptr

16 years agogallium: added dummy install target
Brian [Fri, 14 Mar 2008 16:22:53 +0000 (10:22 -0600)]
gallium: added dummy install target

16 years agomesa: revert fast-track glColor and similar calls when not immediate mode rendering
Brian [Fri, 14 Mar 2008 16:20:29 +0000 (10:20 -0600)]
mesa: revert fast-track glColor and similar calls when not immediate mode rendering

Revert commit d08cd68d3f5456b69ad504ede2b090c0bb6474db

This change caused some glean tests to fail.  The alpha value of colors was
always 1.0 instead of the value from glColor4fv().  The mesa color array
found in st_draw() has size=3 instead of size=4.

16 years agogallium: in st_program_string_notify() free shader tokens.
Brian [Fri, 14 Mar 2008 16:19:19 +0000 (10:19 -0600)]
gallium: in st_program_string_notify() free shader tokens.

When the shader instructions change, free the TGSI tokens.  This signals the
state tracker to recompile the shader.  Fixes a regression caused by recent
shader/state-tracker changes.

16 years agogallium: fix some compiler warnings
Keith Whitwell [Fri, 14 Mar 2008 08:42:45 +0000 (08:42 +0000)]
gallium: fix some compiler warnings

16 years agotgsi: add debug_printf version of tgsi_dump
Keith Whitwell [Fri, 14 Mar 2008 08:42:08 +0000 (08:42 +0000)]
tgsi: add debug_printf version of tgsi_dump

16 years agogallium: need to all draw_flush() in softpipe_unmap_constant_buffers()
Brian [Fri, 14 Mar 2008 00:19:47 +0000 (18:19 -0600)]
gallium: need to all draw_flush() in softpipe_unmap_constant_buffers()

Otherwise, we won't have our constants when we run the fragment shader.
Fixes crash in glsl tests when SP_VBUF=1.

16 years agogallium: fix EMIT_HEADER case in draw_vf_set_vertex_info()
Brian [Thu, 13 Mar 2008 23:39:30 +0000 (17:39 -0600)]
gallium: fix EMIT_HEADER case in draw_vf_set_vertex_info()

16 years agogallium: plug in vertex passthrough code
Brian [Thu, 13 Mar 2008 23:10:28 +0000 (17:10 -0600)]
gallium: plug in vertex passthrough code

Based on a patch from Zack.
Basically, implement a new draw_arrays function that copies the incoming
user-vertices to the hardware vertex buffer, doing format/type conversion
as needed.
The vertex fetch/store code is totally temporary for now.

16 years agogallium: for TEST_DRAW_PASSTHROUGH, pass inClipCoords=FALSE to st_draw_vertices()
Brian [Thu, 13 Mar 2008 23:06:13 +0000 (17:06 -0600)]
gallium: for TEST_DRAW_PASSTHROUGH, pass inClipCoords=FALSE to st_draw_vertices()

When pass-through mode is fully supported we'll clean this up more.

16 years agogallium: fix bug in draw_num_vs_outputs()
Brian [Thu, 13 Mar 2008 23:04:56 +0000 (17:04 -0600)]
gallium: fix bug in draw_num_vs_outputs()

16 years agogallium: added EMIT_HEADER case
Brian [Thu, 13 Mar 2008 23:04:04 +0000 (17:04 -0600)]
gallium: added EMIT_HEADER case

16 years agogallium: in softpipe_get_vertex_info() generate a vbuf vertex_info with real attribs
Brian [Thu, 13 Mar 2008 22:57:57 +0000 (16:57 -0600)]
gallium: in softpipe_get_vertex_info() generate a vbuf vertex_info with real attribs

Can't use the EMIT_ALL shortcut/optimization anymore because of passthrough mode.

16 years agogallium: added EMIT_HEADER case in emit_vertex()
Brian [Thu, 13 Mar 2008 22:57:37 +0000 (16:57 -0600)]
gallium: added EMIT_HEADER case in emit_vertex()

16 years agogallium: added new EMIT_HEADER token
Brian [Thu, 13 Mar 2008 22:55:48 +0000 (16:55 -0600)]
gallium: added new EMIT_HEADER token

Used to emit the struct vertex_header info for softpipe.
Before we were using the EMIT_ALL token but that's insufficient for the
draw pass-through mode.  EMIT_ALL might get removed soon...

16 years agogallium: plug in new sp_vbuf_draw_arrays() function
Brian [Thu, 13 Mar 2008 22:53:44 +0000 (16:53 -0600)]
gallium: plug in new sp_vbuf_draw_arrays() function

Will be used for pass-through mode.
Also, call draw_set_render() to register the vbuf stage.  Should probably
rename that function to something like draw_set_vbuf_stage().

16 years agogallium: add some temporary code for testing draw module vertex passthrough
Brian [Thu, 13 Mar 2008 21:07:14 +0000 (15:07 -0600)]
gallium: add some temporary code for testing draw module vertex passthrough

Set TEST_DRAW_PASSTHROUGH=1, run progs/trivial/clear-scissor

16 years agogallium: set surface status to CLEAR or DEFINED in clearing/drawing code.
Brian [Thu, 13 Mar 2008 20:57:19 +0000 (14:57 -0600)]
gallium: set surface status to CLEAR or DEFINED in clearing/drawing code.

Otherwise, we were never setting these flags.  This confused the state tracker.
Fixes progs/demos/texenv.c, probably others.