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.
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.
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.
Ben Skeggs [Fri, 21 Mar 2008 01:57:05 +0000 (12:57 +1100)]
nv40: use new pipe_framebuffer width/height fields
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
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.
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. :(
Ian Romanick [Fri, 21 Mar 2008 00:36:05 +0000 (17:36 -0700)]
cell: Fix bus error when there is no depth buffer
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.
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).
Brian [Thu, 20 Mar 2008 21:22:20 +0000 (15:22 -0600)]
gallium: set fb.width/height
Brian [Thu, 20 Mar 2008 21:21:55 +0000 (15:21 -0600)]
gallium: enable vp input semantic info
Brian [Thu, 20 Mar 2008 21:03:43 +0000 (15:03 -0600)]
gallium: use new framebuffer width, height fields
Brian [Thu, 20 Mar 2008 21:02:59 +0000 (15:02 -0600)]
cell: use pipe_framebuffer_state.width, height
Brian [Thu, 20 Mar 2008 21:02:32 +0000 (15:02 -0600)]
gallium: assign framebuffer width, height
Brian [Thu, 20 Mar 2008 21:02:10 +0000 (15:02 -0600)]
gallium: unused var silence warning
Brian [Thu, 20 Mar 2008 21:01:44 +0000 (15:01 -0600)]
gallium: added width, height to pipe_framebuffer_state
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.
Brian [Thu, 20 Mar 2008 20:49:56 +0000 (14:49 -0600)]
gallium: glBitmap code now separated from glDraw/CopyPixels code
Brian [Thu, 20 Mar 2008 20:27:14 +0000 (14:27 -0600)]
gallium: create one vertex buffer and re-use
Brian [Thu, 20 Mar 2008 20:26:51 +0000 (14:26 -0600)]
gallium: use sizeof(vertex buffer)
Brian [Thu, 20 Mar 2008 20:20:25 +0000 (14:20 -0600)]
gallium: Y-invert blit depending on framebuffer orientation
Brian [Thu, 20 Mar 2008 20:17:06 +0000 (14:17 -0600)]
gallium: in clear_with_quad() check fb orientation, invert Y if needed
José Fonseca [Thu, 20 Mar 2008 20:34:46 +0000 (20:34 +0000)]
gallium: Give some chance for the table to actually grow.
Michal Krol [Thu, 20 Mar 2008 19:34:03 +0000 (20:34 +0100)]
gallium: Fix build on Windows.
Michal Krol [Thu, 20 Mar 2008 19:25:40 +0000 (20:25 +0100)]
gallium: Fix build on Windows.
Keith Whitwell [Thu, 20 Mar 2008 19:25:44 +0000 (19:25 +0000)]
gallium: remove unused local var
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.
Brian [Thu, 20 Mar 2008 16:44:51 +0000 (10:44 -0600)]
gallium: create vertex buffer once and re-use.
Brian [Thu, 20 Mar 2008 16:44:27 +0000 (10:44 -0600)]
gallium: added util_draw_vertex_buffer()
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...
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.
Brian [Thu, 20 Mar 2008 15:11:27 +0000 (09:11 -0600)]
gallium: added util_make_fragment_passthrough_shader()
Ben Skeggs [Thu, 20 Mar 2008 13:18:18 +0000 (00:18 +1100)]
nouveau: match gallium API changes
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
Keith Whitwell [Thu, 20 Mar 2008 13:10:32 +0000 (13:10 +0000)]
gallium: add debug facility to dump random blobs as hex
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.
Brian Paul [Wed, 19 Mar 2008 23:14:49 +0000 (17:14 -0600)]
better text labels
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.
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
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.
José Fonseca [Wed, 19 Mar 2008 20:46:08 +0000 (20:46 +0000)]
gallium: Fix broken logic.
Keith Whitwell [Wed, 19 Mar 2008 17:35:42 +0000 (17:35 +0000)]
gallium: explict float casts
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.
Brian [Wed, 19 Mar 2008 16:43:35 +0000 (10:43 -0600)]
gallium: remove old commented-out code
Brian [Wed, 19 Mar 2008 14:53:02 +0000 (08:53 -0600)]
gallium: set tc->surface_map = NULL after unmapping
José Fonseca [Wed, 19 Mar 2008 16:41:07 +0000 (16:41 +0000)]
gallium: Add generic enum and flags dumping utility functions.
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
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.
Ben Skeggs [Tue, 18 Mar 2008 13:06:15 +0000 (00:06 +1100)]
nouveau: pass nvws to nvws->push_* functions, rather than nouveau_channel*
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.
Alan Hourihane [Wed, 19 Mar 2008 00:16:16 +0000 (00:16 +0000)]
remove redundant init
Brian [Tue, 18 Mar 2008 23:19:57 +0000 (17:19 -0600)]
gallium: added braces to silence warning
Brian [Tue, 18 Mar 2008 23:16:23 +0000 (17:16 -0600)]
gallium: plug in and init GL_EXT_framebuffer_blit function/extension
Brian [Tue, 18 Mar 2008 23:16:12 +0000 (17:16 -0600)]
gallium: added st_cb_blit.c
Brian [Tue, 18 Mar 2008 23:15:25 +0000 (17:15 -0600)]
gallium: s/copy_pixels_state/blit_state
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...
Brian [Tue, 18 Mar 2008 23:13:14 +0000 (17:13 -0600)]
gallium: glFramebufferBlitEXT() implementation
Brian [Tue, 18 Mar 2008 23:12:51 +0000 (17:12 -0600)]
gallium: fix typos
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.
Brian [Tue, 18 Mar 2008 22:59:46 +0000 (16:59 -0600)]
gallium: protect against multi-#include
Brian [Tue, 18 Mar 2008 22:59:15 +0000 (16:59 -0600)]
added u_simple_shaders.c
Brian [Tue, 18 Mar 2008 22:58:15 +0000 (16:58 -0600)]
gallium: make the gen_mipmap_state struct private
Brian [Tue, 18 Mar 2008 22:57:23 +0000 (16:57 -0600)]
gallium: use new simple shader utility routines
Brian [Tue, 18 Mar 2008 22:56:55 +0000 (16:56 -0600)]
gallium: utilities for creating simple vertex/fragment shaders
Brian [Tue, 18 Mar 2008 21:15:02 +0000 (15:15 -0600)]
gallium: restore additional state after clearing with quad
Ian Romanick [Tue, 18 Mar 2008 22:59:33 +0000 (15:59 -0700)]
cell: Fix various stencil test code-gen bugs
Ian Romanick [Tue, 18 Mar 2008 22:59:06 +0000 (15:59 -0700)]
cell: Correctly load stencil for PIPE_FORMAT_S8Z24_UNORM
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
Keith Whitwell [Tue, 18 Mar 2008 13:10:51 +0000 (13:10 +0000)]
gallium: make REALLOC a bit more like realloc
Ian Romanick [Tue, 18 Mar 2008 18:47:37 +0000 (11:47 -0700)]
cell: Fix depth read / write for s8z24.
Stencil is still broken.
Ian Romanick [Tue, 18 Mar 2008 17:29:14 +0000 (10:29 -0700)]
cell: Fix added whitespace errors.
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.
Ian Romanick [Tue, 18 Mar 2008 17:23:39 +0000 (10:23 -0700)]
cell: Move and (conditionally) silence debug code
José Fonseca [Tue, 18 Mar 2008 12:46:24 +0000 (12:46 +0000)]
d3d: Allow to iterate over the handle 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.
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.
José Fonseca [Tue, 18 Mar 2008 11:49:02 +0000 (11:49 +0000)]
gallium: Convenience debug_warning function.
Brian [Tue, 18 Mar 2008 15:28:04 +0000 (09:28 -0600)]
gallium: fix a mix-up in the uint[1] do_row() case
Brian [Tue, 18 Mar 2008 15:23:35 +0000 (09:23 -0600)]
gallium: use new color packing utility functions
Brian [Tue, 18 Mar 2008 15:22:41 +0000 (09:22 -0600)]
gallium: utility for packing color, z values according to pipe_format
Michal Krol [Tue, 18 Mar 2008 14:59:55 +0000 (15:59 +0100)]
gallium: Silencium warnings on Windows.
Patrice Mandin [Tue, 18 Mar 2008 12:34:26 +0000 (13:34 +0100)]
nv30: hmm, no buffer for texture
Patrice Mandin [Tue, 18 Mar 2008 12:20:59 +0000 (13:20 +0100)]
nv30: update miptree stuff for texturing
Brian [Mon, 17 Mar 2008 23:45:00 +0000 (17:45 -0600)]
gallium: initial gen mipmap s/w fallback code
Ian Romanick [Mon, 17 Mar 2008 23:09:28 +0000 (16:09 -0700)]
cell: Don't segfault when unbinding alpha / stencil / depth test state
Ian Romanick [Mon, 17 Mar 2008 23:07:54 +0000 (16:07 -0700)]
cell: Don't free NULL code pointers
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.
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.
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.
Brian [Mon, 17 Mar 2008 21:48:13 +0000 (15:48 -0600)]
gallium: use new gallium utility code for generating mipmaps
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.
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.
Brian [Mon, 17 Mar 2008 21:37:42 +0000 (15:37 -0600)]
gallium: new util_draw_texquad() function.
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.
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/
Patrice Mandin [Mon, 17 Mar 2008 17:13:18 +0000 (18:13 +0100)]
nv30: only 2 render targets
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
Markus Amsler [Mon, 17 Mar 2008 14:35:37 +0000 (08:35 -0600)]
only set InputsRead bit if input is really used
Ben Skeggs [Mon, 17 Mar 2008 12:05:46 +0000 (23:05 +1100)]
nv40: a few more fp opcodes