Ben Skeggs [Mon, 24 Mar 2008 02:41:40 +0000 (13:41 +1100)]
nv40: respect rasterizer cso bypass_clipping flag
Ben Skeggs [Mon, 24 Mar 2008 02:01:35 +0000 (13:01 +1100)]
nouveau: fix infinite wait on space for userbuf.
A recent commit removed a bug which essentially caused a sync after each
use of a user buffer. In fixing it, the scratch area can now become
fragmented under some circumstances leading to nouveau_bo_tmp() waiting
forever for a large enough block of free space.
This fixes ppracer, gl-117 and probably a heap of other apps.
Ben Skeggs [Sun, 23 Mar 2008 08:08:59 +0000 (19:08 +1100)]
nv40: vp reg changes similar to recent fp changes
Ben Skeggs [Sun, 23 Mar 2008 07:20:04 +0000 (18:20 +1100)]
nv40: fix fp depth write
Ben Skeggs [Sun, 23 Mar 2008 07:11:49 +0000 (18:11 +1100)]
nv40: remove some badness from fp temp/result allocation
Should hopefully be OK now (on the fragprog size) for MRT. The hack from
a commit
01cb2cd93efe7ad94d7fd36aa5a776c2e3ab4c7d is no longer needed.
Ben Skeggs [Sun, 23 Mar 2008 05:31:31 +0000 (16:31 +1100)]
nv40: catch fp extra-const cases where both const and immd have same idx
Ben Skeggs [Sun, 23 Mar 2008 05:26:42 +0000 (16:26 +1100)]
nv40: fp: fix multiple refs to a single const withing an instruction
Ben Skeggs [Sun, 23 Mar 2008 05:11:03 +0000 (16:11 +1100)]
nv40: workaround fp result.data[0] clobberage
Temporary, the fp reg handling will get reworked at some point in the near
future. But before that, there's a few bugs to find.
Ben Skeggs [Sun, 23 Mar 2008 03:29:35 +0000 (14:29 +1100)]
nv40: add dxtn formats (disabled)
Ben Skeggs [Sun, 23 Mar 2008 03:18:06 +0000 (14:18 +1100)]
Merge remote branch 'upstream/gallium-0.1' into nouveau-gallium-0.1
Brian [Sat, 22 Mar 2008 16:29:30 +0000 (10:29 -0600)]
gallium: fix a few more shader-related mem leaks
Brian [Sat, 22 Mar 2008 16:27:55 +0000 (10:27 -0600)]
use ctx->Driver.DeleteProgram() in a few more places
Brian [Sat, 22 Mar 2008 15:42:59 +0000 (09:42 -0600)]
gallium: free samplers, textures in destroy()
Brian [Sat, 22 Mar 2008 15:15:23 +0000 (09:15 -0600)]
gallium: remove temporary _screen suffix from function names
Brian [Sat, 22 Mar 2008 15:12:52 +0000 (09:12 -0600)]
gallium: fix a few mem leaks when deleting programs
Brian [Sat, 22 Mar 2008 15:12:27 +0000 (09:12 -0600)]
gallium: fix mem leak (fee pstipple stage)
Brian [Sat, 22 Mar 2008 15:12:02 +0000 (09:12 -0600)]
delete default programs with ctx->Driver.DeleteProgram()
José Fonseca [Sat, 22 Mar 2008 10:05:55 +0000 (10:05 +0000)]
gallium: Remove pedantic asserts.
Move these to a higher level instead.
Ian Romanick [Fri, 21 Mar 2008 18:20:49 +0000 (11:20 -0700)]
cell: Generate blend / depth test code when state atom is created
Code generation should be performed when the device-specific state
atom is created, not when it is bound.
Ian Romanick [Fri, 21 Mar 2008 18:15:49 +0000 (11:15 -0700)]
cell: Change code-gen for CONST_COLOR blend factor
Previously the constant color blend factor was compiled into the
generated code. This meant that the code had to be regenerated each
time the constant color was changed. This doesn't fit with the model
used in Gallium.
As-is, the code could be better. The constant color is loaded for
every quad processed, even if it is not used. Also, if a lot of (1-x)
blend factors are used, 1.0 will be loaded and reloaded into registers
many times.
Ian Romanick [Fri, 21 Mar 2008 17:25:58 +0000 (10:25 -0700)]
Tabs to spaces
Ian Romanick [Fri, 21 Mar 2008 17:23:52 +0000 (10:23 -0700)]
cell: Remove unnecessary default_blend work-around
I suspect that there was some other bug in the blend code-gen that
made this work-around necessary.
Brian [Fri, 21 Mar 2008 21:54:27 +0000 (15:54 -0600)]
gallium: fix const buffer update bug
If only glUniform is called between two renderings, the const buffers weren't
getting updated. Need to set the _NEW_PROGRAM flag in st_upload_constants()
as that's the dirty flag set by glUniform.
Fixes glean tapi2 test.
Brian [Fri, 21 Mar 2008 20:20:07 +0000 (14:20 -0600)]
Refactor PBO validate/map code.
We always need to do PBO validation, so do that in core Mesa before calling driv
er routine.
cherry-picked from Mesa/master.
Brian Paul [Fri, 21 Mar 2008 19:44:27 +0000 (13:44 -0600)]
gallium: implement PBO operations for glDraw/ReadPixels and glBitmap
At this time there are no optimizations for directly blitting between
buffer objects and surfaces (always go through mappings).
glean pbo test passes now
Brian Paul [Fri, 21 Mar 2008 19:43:07 +0000 (13:43 -0600)]
add a number of PBO validate/map/unmap functions
Helper functions for (some) drivers, including swrast.
cherry-picked from Mesa/master
Brian [Fri, 21 Mar 2008 18:32:48 +0000 (12:32 -0600)]
Fix some PBO breakage.
In _mesa_Bitmap, can't early return if bitmap ptr is NULL, it may be an offset
into a PBO. Similarly for _mesa_GetTexImage.
Brian [Fri, 21 Mar 2008 16:03:23 +0000 (10:03 -0600)]
i915: added to-do note about setting the max_lod register to get proper min/mag filter selection
Brian Paul [Fri, 21 Mar 2008 17:06:08 +0000 (11:06 -0600)]
mesa: minor code re-org
Brian Paul [Fri, 21 Mar 2008 17:05:02 +0000 (11:05 -0600)]
gallium: use is_format_supported(PIPE_FORMAT_DXT5_RGBA) to check if s3tc is supported
The PIPE_CAP_S3TC token will be deprecated.
Brian Paul [Fri, 21 Mar 2008 17:03:53 +0000 (11:03 -0600)]
gallium: added DXT formats (preliminary, will probably change)
Brian Paul [Fri, 21 Mar 2008 16:51:21 +0000 (10:51 -0600)]
gallium: use is_format_supported() to determine if GL_EXT_texture_sRGB is supported
Brian Paul [Fri, 21 Mar 2008 16:50:26 +0000 (10:50 -0600)]
gallium: document is_format_supported()'s type param
Brian Paul [Fri, 21 Mar 2008 16:45:33 +0000 (10:45 -0600)]
gallium: PIPE_FORMAT_TYPE_ comments
Brian Paul [Fri, 21 Mar 2008 16:43:56 +0000 (10:43 -0600)]
gallium: added sRGB formats
Brian Paul [Fri, 21 Mar 2008 16:38:56 +0000 (10:38 -0600)]
gallium: additional comments, fix typos, etc
Ben Skeggs [Fri, 21 Mar 2008 12:24:16 +0000 (23:24 +1100)]
nv40: fix bug in query code
Michel Dänzer [Fri, 21 Mar 2008 12:14:06 +0000 (12:14 +0000)]
gallium: Update scons build for state tracker files added/removed.
Ben Skeggs [Fri, 21 Mar 2008 12:09:01 +0000 (23:09 +1100)]
nv40: add 16-bit SSCALED vb formats
Ben Skeggs [Fri, 21 Mar 2008 12:03:25 +0000 (23:03 +1100)]
nv40: ensure vb relocs don't end up on list for swtnl
Avoids bo code bailing out because of mapped buffers being validated.
Ben Skeggs [Fri, 21 Mar 2008 11:23:19 +0000 (22:23 +1100)]
nv40: call semi-magic 0x1d88 method
Ben Skeggs [Fri, 21 Mar 2008 11:09:29 +0000 (22:09 +1100)]
nv40: swtnl fallback on unsupported array format
Ben Skeggs [Fri, 21 Mar 2008 11:02:49 +0000 (22:02 +1100)]
nv40: oops
Ben Skeggs [Fri, 21 Mar 2008 11:01:22 +0000 (22:01 +1100)]
nv40: s/free/FREE/
Ben Skeggs [Fri, 21 Mar 2008 10:58:17 +0000 (21:58 +1100)]
nv40: align each level to 64 pixels
Ben Skeggs [Fri, 21 Mar 2008 10:17:57 +0000 (21:17 +1100)]
nv40: use num_cbufs
Ben Skeggs [Fri, 21 Mar 2008 07:28:07 +0000 (18:28 +1100)]
nouveau: do a retry if initial buffer alloc fails
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