mesa.git
16 years agonouveau: use saved fence pointer, not head of unsignalled list
Ben Skeggs [Fri, 21 Mar 2008 07:15:58 +0000 (18:15 +1100)]
nouveau: use saved fence pointer, not head of unsignalled list

It's possible for the unsignalled list head to change during fence_flush.
Fixes valgrind complaint exposed by a previous commit.

16 years agonouveau: potentially delay buffer destruction
Ben Skeggs [Fri, 21 Mar 2008 06:40:01 +0000 (17:40 +1100)]
nouveau: potentially delay buffer destruction

Rather than spinning waiting for the GPU to finish with the buffer,
add a callback on the buffer's fence object instead.  Gives a sizable
performance increase in OA.

16 years agonouveau: try combining prev and next resources on free
Ben Skeggs [Fri, 21 Mar 2008 06:38:24 +0000 (17:38 +1100)]
nouveau: try combining prev and next resources on free

Fixes some cases where we end up with a list of many unused chunks that are
too small to be useful.

16 years agonv40: use new pipe_framebuffer width/height fields
Ben Skeggs [Fri, 21 Mar 2008 01:57:05 +0000 (12:57 +1100)]
nv40: use new pipe_framebuffer width/height fields

16 years agoMerge remote branch 'upstream/gallium-0.1' into nouveau-gallium-0.1
Ben Skeggs [Fri, 21 Mar 2008 01:54:34 +0000 (12:54 +1100)]
Merge remote branch 'upstream/gallium-0.1' into nouveau-gallium-0.1

16 years agocell: Fix several bugs in blend code-gen
Ian Romanick [Fri, 21 Mar 2008 01:17:48 +0000 (18:17 -0700)]
cell: Fix several bugs in blend code-gen

- Alpha factor set to a _COLOR mode was mishandled
- Cases when either dst factor or src factor was ZERO were mishandled
- MIN and MAX cases were backwards
- Case when blend was disabled was mishandled
- Incorrect comments about number of instructions generated

The tests blendminmax and blendsquare run correctly.

16 years agocell: Call the correct function to generate blending code
Ian Romanick [Fri, 21 Mar 2008 00:36:31 +0000 (17:36 -0700)]
cell: Call the correct function to generate blending code

Cut-and-paste for the lose. :(

16 years agocell: Fix bus error when there is no depth buffer
Ian Romanick [Fri, 21 Mar 2008 00:36:05 +0000 (17:36 -0700)]
cell: Fix bus error when there is no depth buffer

16 years agocell: Use code-gen for alpha blend
Ian Romanick [Thu, 20 Mar 2008 00:29:39 +0000 (17:29 -0700)]
cell: Use code-gen for alpha blend

So far this is only tested when GL_BLEND is disabled.

16 years agogallium: catch some out of memory conditions in the texture image code.
Brian Paul [Thu, 20 Mar 2008 23:08:07 +0000 (17:08 -0600)]
gallium: catch some out of memory conditions in the texture image code.

st_finalize_texture()'s return code now indicates success/fail instead of
presence of texture border (which we discard earlier).

16 years agogallium: set fb.width/height
Brian [Thu, 20 Mar 2008 21:22:20 +0000 (15:22 -0600)]
gallium: set fb.width/height

16 years agogallium: enable vp input semantic info
Brian [Thu, 20 Mar 2008 21:21:55 +0000 (15:21 -0600)]
gallium: enable vp input semantic info

16 years agogallium: use new framebuffer width, height fields
Brian [Thu, 20 Mar 2008 21:03:43 +0000 (15:03 -0600)]
gallium: use new framebuffer width, height fields

16 years agocell: use pipe_framebuffer_state.width, height
Brian [Thu, 20 Mar 2008 21:02:59 +0000 (15:02 -0600)]
cell: use pipe_framebuffer_state.width, height

16 years agogallium: assign framebuffer width, height
Brian [Thu, 20 Mar 2008 21:02:32 +0000 (15:02 -0600)]
gallium: assign framebuffer width, height

16 years agogallium: unused var silence warning
Brian [Thu, 20 Mar 2008 21:02:10 +0000 (15:02 -0600)]
gallium: unused var silence warning

16 years agogallium: added width, height to pipe_framebuffer_state
Brian [Thu, 20 Mar 2008 21:01:44 +0000 (15:01 -0600)]
gallium: added width, height to pipe_framebuffer_state

16 years agogallium: glBitmap code now separe from glDraw/CopyPixels code
Brian [Thu, 20 Mar 2008 20:50:17 +0000 (14:50 -0600)]
gallium: glBitmap code now separe from glDraw/CopyPixels code

Also, glBitmap now re-uses the vertex buffer to avoid frequent allocations/
deallocations.  And, use u_simple_shaders utility code.

16 years agogallium: glBitmap code now separated from glDraw/CopyPixels code
Brian [Thu, 20 Mar 2008 20:49:56 +0000 (14:49 -0600)]
gallium: glBitmap code now separated from glDraw/CopyPixels code

16 years agogallium: create one vertex buffer and re-use
Brian [Thu, 20 Mar 2008 20:27:14 +0000 (14:27 -0600)]
gallium: create one vertex buffer and re-use

16 years agogallium: use sizeof(vertex buffer)
Brian [Thu, 20 Mar 2008 20:26:51 +0000 (14:26 -0600)]
gallium: use sizeof(vertex buffer)

16 years agogallium: Y-invert blit depending on framebuffer orientation
Brian [Thu, 20 Mar 2008 20:20:25 +0000 (14:20 -0600)]
gallium: Y-invert blit depending on framebuffer orientation

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 agonouveau: match gallium API changes
Ben Skeggs [Thu, 20 Mar 2008 13:18:18 +0000 (00:18 +1100)]
nouveau: match gallium API changes

16 years agoMerge remote branch 'upstream/gallium-0.1' into nouveau-gallium-0.1
Ben Skeggs [Thu, 20 Mar 2008 13:11:25 +0000 (00:11 +1100)]
Merge remote branch 'upstream/gallium-0.1' into nouveau-gallium-0.1

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 agoMerge remote branch 'upstream/gallium-0.1' into nouveau-gallium-0.1
Ben Skeggs [Wed, 19 Mar 2008 11:51:17 +0000 (22:51 +1100)]
Merge remote branch 'upstream/gallium-0.1' into nouveau-gallium-0.1

16 years agonv40: "implement" noise opcodes in fragprog
Ben Skeggs [Wed, 19 Mar 2008 10:52:19 +0000 (21:52 +1100)]
nv40: "implement" noise opcodes in fragprog

For the moment, we do what NVIDIA does and return 0 unconditionally.  This
isn't correct, but it's an implementation at least.

16 years agonouveau: pass nvws to nvws->push_* functions, rather than nouveau_channel*
Ben Skeggs [Tue, 18 Mar 2008 13:06:15 +0000 (00:06 +1100)]
nouveau: pass nvws to nvws->push_* functions, rather than nouveau_channel*

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 agonv30: disable emit texture image in state_emit, already done in fragtex
Patrice Mandin [Tue, 18 Mar 2008 20:50:01 +0000 (21:50 +0100)]
nv30: disable emit texture image in state_emit, already done in fragtex

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 agonv30: hmm, no buffer for texture
Patrice Mandin [Tue, 18 Mar 2008 12:34:26 +0000 (13:34 +0100)]
nv30: hmm, no buffer for texture

16 years agonv30: update miptree stuff for texturing
Patrice Mandin [Tue, 18 Mar 2008 12:20:59 +0000 (13:20 +0100)]
nv30: update miptree stuff for texturing

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 agonv30: another 2 rt, and set viewport tx origin, so we render at the proper place \o/
Patrice Mandin [Mon, 17 Mar 2008 18:03:38 +0000 (19:03 +0100)]
nv30: another 2 rt, and set viewport tx origin, so we render at the proper place \o/

16 years agonv30: only 2 render targets
Patrice Mandin [Mon, 17 Mar 2008 17:13:18 +0000 (18:13 +0100)]
nv30: only 2 render targets

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 agonv40: a few more fp opcodes
Ben Skeggs [Mon, 17 Mar 2008 12:05:46 +0000 (23:05 +1100)]
nv40: a few more fp opcodes