Chris Wilson [Fri, 11 Feb 2011 19:40:08 +0000 (19:40 +0000)]
intel: combine short memcpy using a temporary allocated buffer
Using a temporary buffer for large discontiguous uploads into the common
buffer and a single buffered upload is faster than performing the
discontiguous copies through a mapping into the GTT.
Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
Chris Wilson [Fri, 11 Feb 2011 14:14:18 +0000 (14:14 +0000)]
i965: upload normal arrays as interleaved
Upload the non-vbo arrays into a single interleaved buffer object, and
so need to just emit a single vertex buffer relocation.
Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
Chris Wilson [Fri, 11 Feb 2011 14:45:19 +0000 (14:45 +0000)]
i965: interleaved vbo
If the user passed in several arrays interleaved in the same vbo, only
emit a single vertex buffer and relocation.
Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
Chris Wilson [Fri, 11 Feb 2011 14:45:10 +0000 (14:45 +0000)]
i965: emit one vb packet per vbo
Track reuse of the vertex buffer objects and so minimise the number of
vertex buffers used by the hardware (and their relocations).
Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
Chris Wilson [Fri, 11 Feb 2011 00:18:21 +0000 (00:18 +0000)]
i965: upload transient indices into the same discontiguous buffer
As we now pack the indices into a common upload buffer, we can reuse a
single CMD_INDEX_BUFFER packet and translate each invocation with a
start vertex offset.
Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
Chris Wilson [Sun, 20 Feb 2011 13:37:00 +0000 (13:37 +0000)]
i965: suppress repeat-emission of identical vertex elements
Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
Chris Wilson [Sun, 20 Feb 2011 13:23:47 +0000 (13:23 +0000)]
i965: Move repeat-instruction-suppression to batchbuffer core
Move the tracking of the last emitted instructions into the core
batchbuffer routines and take advantage of the shadow batch copy to
avoid extra memory allocations and copies.
Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
Chris Wilson [Thu, 10 Feb 2011 20:25:51 +0000 (20:25 +0000)]
intel: use pwrite for batch
It's faster. Not only is the memcpy more efficiently performed in the
kernel (making up for the system call overhead), but by not using mmap
we remove the greater overhead of tracking the vma of every batch.
And it means we can read back from the batch buffer without incurring
the cost of a uncached read through the GTT.
Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
Chris Wilson [Thu, 10 Feb 2011 18:31:13 +0000 (18:31 +0000)]
i965: drop state_bo references to batch_bo
As we use state relocations and we know that all the state belongs to
the same bo, we can drop the multiple references to the same bo.
Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
Chris Wilson [Thu, 10 Feb 2011 18:14:40 +0000 (18:14 +0000)]
i965: directly write wm state to batch
As we write directly into the batch in system memory, we do not need to
write first to the stack (as was to avoid read back through the GTT)
Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
Chris Wilson [Thu, 10 Feb 2011 18:11:58 +0000 (18:11 +0000)]
i965: write cc straight to batch
As we write directly into the batch in system memory, we do not need to
write first to the stack (as was to avoid read back through the GTT)
Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
Chris Wilson [Thu, 10 Feb 2011 18:10:06 +0000 (18:10 +0000)]
i965: switch gen6 to use its own cc state bo
In preparation for a greater change, use the color_calc_state_bo already
provisioned for this purpose.
Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
Chris Wilson [Thu, 10 Feb 2011 00:25:17 +0000 (00:25 +0000)]
intel: Buffered upload
Rather than performing lots of little writes to update the common bo
upon each update, write those into a static buffer and flush that when
full (or at the end of the batch). Doing so gives a dramatic performance
improvement over and above using mmaped access.
Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
Chris Wilson [Wed, 9 Feb 2011 10:00:09 +0000 (10:00 +0000)]
intel: Replace the bo for a complete update
Rather than performing a blit to completely overwrite a busy bo, simply
discard it and create a new one with the fresh data.
Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
Chris Wilson [Tue, 8 Feb 2011 22:22:36 +0000 (22:22 +0000)]
i965: Combine vb upload buffer with the general upload buffer
Reuse the new common upload buffer for uploading temporary indices and
rebuilt vertex arrays.
Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
Chris Wilson [Tue, 8 Feb 2011 20:01:10 +0000 (20:01 +0000)]
intel: Pack dynamic draws together
Dynamic arrays have the tendency to be small and so allocating a bo for
each one is overkill and we can exploit many efficiency gains by packing
them together.
Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
Chris Wilson [Tue, 8 Feb 2011 16:57:26 +0000 (16:57 +0000)]
intel: Use system memory for DYNAMIC_DRAW source objects
Dynamic draw buffers are used by clients for temporary arrays and for
uploading normal vertex arrays. By keeping the data in memory, we can
avoid reusing active buffer objects and reallocate them as they are
changed. This is important for Sandybridge which can not issue blits
within a batch and so ends up flushing the batch upon every update, that
is each batch only contains a single draw operation (if using dynamic
arrays or regular arrays from system memory).
Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
Chris Wilson [Sat, 29 Jan 2011 14:01:50 +0000 (14:01 +0000)]
i965: Trim the trailing NOOP from 3DSTATE_INDEX_BUFFER
Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
Chris Wilson [Fri, 18 Feb 2011 17:51:10 +0000 (17:51 +0000)]
i965: Fallback on encountering a NULL render buffer
Following a GPU hang, or other error, the render target is not likely to
have an allocated BO and so we must fallback to avoid using it.
Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=32534
Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
Vinson Lee [Mon, 21 Feb 2011 05:23:26 +0000 (21:23 -0800)]
i915g: s/__func__/__FUNCTION__/
Daniel Vetter [Sun, 5 Dec 2010 12:23:40 +0000 (13:23 +0100)]
i915g: kill remnants of mmapped batchbuffer support
We're using bo_subdata.
Signed-off-by: Daniel Vetter <daniel.vetter@ffwll.ch>
Jakob Bornecrantz [Sun, 20 Feb 2011 10:49:33 +0000 (11:49 +0100)]
i915g: Add winsys/i915/sw to scons build
Jakob Bornecrantz [Sun, 20 Feb 2011 10:46:50 +0000 (11:46 +0100)]
i915g: Fix void ptr arith
Jakob Bornecrantz [Sun, 20 Feb 2011 10:46:17 +0000 (11:46 +0100)]
i915g: Add dummy flush_frontbuffer
Jon TURNEY [Wed, 16 Feb 2011 13:37:57 +0000 (13:37 +0000)]
Fix --enable-shared-glapi configure option
Fix a typo which meant that --enable-shared-glapi didn't actually cause a shared glapi to be built
Signed-off-by: Jon TURNEY <jon.turney@dronecode.org.uk>
Chia-I Wu [Sun, 20 Feb 2011 19:23:54 +0000 (12:23 -0700)]
egl_dri2: Return NULL when xcb_get_geometry_reply fails.
This should fix bug #33946.
José Fonseca [Sat, 19 Feb 2011 10:29:59 +0000 (10:29 +0000)]
scons: Add aliases for the llvmpipe unit tests.
Now one can simply do
scons lp_test_format
José Fonseca [Sat, 19 Feb 2011 10:25:43 +0000 (10:25 +0000)]
gallivm: Use simple scaling plus casting in more unorm->float cases.
Kenneth Graunke [Sat, 19 Feb 2011 08:06:00 +0000 (00:06 -0800)]
glsl: Remove $(PWD) from Makefile in favor of .
Hopefully should fix bug #34468.
Marek Olšák [Fri, 18 Feb 2011 23:16:44 +0000 (00:16 +0100)]
r300g: fix a possible race when counting contexts
Atomics aren't sufficient here.
Marek Olšák [Fri, 18 Feb 2011 23:06:52 +0000 (00:06 +0100)]
r300g: fix invalid dereference in winsys
radeon_bo_unref may destroy the buffer, so call it after p_atomic_dec, not before.
José Fonseca [Fri, 18 Feb 2011 19:03:08 +0000 (19:03 +0000)]
svga: Fix NULL dereference.
Probably introduced with the surface view move from screen to context.
Brian Paul [Fri, 18 Feb 2011 17:34:06 +0000 (10:34 -0700)]
vbo: add debug code to verify that buffers are unmapped before drawing
Brian Paul [Fri, 18 Feb 2011 16:53:29 +0000 (09:53 -0700)]
mesa: MESA_VERBOSE logging for glRead/Draw/CopyPixels, glBlitFramebuffer
Brian Paul [Fri, 18 Feb 2011 17:28:27 +0000 (10:28 -0700)]
st/mesa: set renderbuffer _BaseFormat in a few places
NOTE: This is a candidate for the 7.9 and 7.10 branches
Brian Paul [Fri, 18 Feb 2011 17:18:34 +0000 (10:18 -0700)]
st/mesa: check buffer orientation in blit_copy_pixels()
Can't invert the region if copying between surfaces with different
orientations.
José Fonseca [Fri, 18 Feb 2011 14:33:55 +0000 (14:33 +0000)]
svga: Ensure pending drawing commands other surface operations are emitted before DMAs.
This behavior was last when moving the transfers to the contexts.
This fixes several piglit failures, which were reading the color renderbuffer
before the draw operations were emitted.
José Fonseca [Fri, 18 Feb 2011 15:07:50 +0000 (15:07 +0000)]
svga: Cannot use negate or abs on source to dsx/dsy instructions.
José Fonseca [Fri, 18 Feb 2011 14:29:48 +0000 (14:29 +0000)]
svga: Ensure SWTNL is created after HWTNL.
Matches the internal driver layering, and prevents null svga->hwtnl
dereferencing from inside the swtnl.
José Fonseca [Fri, 18 Feb 2011 13:53:45 +0000 (13:53 +0000)]
svga: Ensure LRP's restrictions are observed in all uses.
The dst reg must be a temporary, and not be the same as src0 or src2.
José Fonseca [Fri, 18 Feb 2011 13:24:12 +0000 (13:24 +0000)]
svga: Preserve src swizzles in submit_op2/3/4.
Several opcodes require scalar swizzle, and this requirement was
being was not being observed when creating temporaries for other reasons.
Marek Olšák [Fri, 18 Feb 2011 14:29:00 +0000 (15:29 +0100)]
r300g: remove tracking whether vertex buffers need to be validated
This was getting hard to maintain and didn't really bring any real benefits.
Instead, validate buffers when the vertex array state is dirty.
Marek Olšák [Thu, 17 Feb 2011 15:17:34 +0000 (16:17 +0100)]
st/mesa: fix geometry corruption by always re-binding vertex arrays
This is a temporary workaround. It fixes sauerbrauten with shaders enabled.
I guess we might be changing vertex attribs somewhere and not updating
the appropriate dirty flags, therefore we can't rely on them for now.
Or maybe we need to make this state dependent on some other flags too.
More info:
https://bugs.freedesktop.org/show_bug.cgi?id=34378
Jakob Bornecrantz [Thu, 17 Feb 2011 17:16:14 +0000 (17:16 +0000)]
svga: Disable surface cache for textures
Signed-off-by: Jakob Bornecrantz <jakob@vmware.com>
Jakob Bornecrantz [Thu, 17 Feb 2011 14:58:55 +0000 (14:58 +0000)]
svga: Describe svga_sampler_views for refcnt debugging
Signed-off-by: Jakob Bornecrantz <jakob@vmware.com>
Jakob Bornecrantz [Thu, 17 Feb 2011 17:14:44 +0000 (17:14 +0000)]
svga: Make sure that refcnt debugger gets the correct backtrace for create
Signed-off-by: Jakob Bornecrantz <jakob@vmware.com>
Jakob Bornecrantz [Thu, 17 Feb 2011 11:18:02 +0000 (11:18 +0000)]
util: Make refcnt and symbol debuggers work on windows
Signed-off-by: Jakob Bornecrantz <jakob@vmware.com>
Cyril Brulebois [Fri, 18 Feb 2011 08:10:28 +0000 (00:10 -0800)]
Point to bugs.freedesktop.org rather than bugzilla.freedesktop.org
Suggested by a freedesktop.org admin.
Signed-off-by: Cyril Brulebois <kibi@debian.org>
Marek Olšák [Fri, 18 Feb 2011 12:45:29 +0000 (13:45 +0100)]
u_vbuf_mgr: initialize flag indicating that buffers have been updated
This fixes r300g errors:
r300: Cannot get a relocation in radeon_drm_cs_write_reloc.
Thomas Hellstrom [Fri, 18 Feb 2011 10:36:34 +0000 (11:36 +0100)]
gallium/svga: Fix unnecessary swtnl fallbacks
When we drop the in_swtnl_draw flag, we must force a rerun of
update_need_swtnl to reset the need_swtnl flag to its correct value outside
of a swtnl vbo draw.
Signed-off-by: Thomas Hellstrom <thellstrom@vmware.com>
Dave Airlie [Fri, 18 Feb 2011 05:59:58 +0000 (15:59 +1000)]
r600g: reorganise rgtc pieces.
when the cs checker fixes go upstream a lot of this can disappear
into a drm version check.
Signed-off-by: Dave Airlie <airlied@redhat.com>
Brian Paul [Fri, 18 Feb 2011 02:10:13 +0000 (19:10 -0700)]
st/mesa: implement blit-based path for glCopyPixels
If doing a simple non-overlapping glCopyPixels with no per-fragment ops
we can use pipe_context::resource_copy_region().
Brian Paul [Fri, 18 Feb 2011 01:12:25 +0000 (18:12 -0700)]
mesa: fix comments for _mesa_clip_readpixels()
Brian Paul [Thu, 17 Feb 2011 16:44:44 +0000 (09:44 -0700)]
st/mesa: indentation fix
Fabian Bieler [Wed, 16 Feb 2011 09:02:47 +0000 (10:02 +0100)]
r600g: Start a new TEX clause if the texture lookup address was fetched in the current clause
Signed-off-by: Dave Airlie <airlied@redhat.com>
Fabian Bieler [Tue, 15 Feb 2011 12:00:49 +0000 (13:00 +0100)]
r600g: Add support to dump vertex- and texture-fetch clauses
Signed-off-by: Dave Airlie <airlied@redhat.com>
Dave Airlie [Thu, 17 Feb 2011 23:34:53 +0000 (09:34 +1000)]
r600g: add BC4/5 to RGTC conversion
this doesn't do anything much since the rest of mesa doesn't
support RGTC yet.
José Fonseca [Thu, 17 Feb 2011 17:13:51 +0000 (17:13 +0000)]
util: Fix typo in last commit.
Brian Paul [Thu, 17 Feb 2011 17:09:37 +0000 (10:09 -0700)]
st/mesa: fix incorrect glCopyPixels position on fallback path
If we hit the pipe_get/put_tile() path for setting up the glCopyPixels
texture we were passing the wrong x/y position to pipe_get_tile().
The x/y position was already accounted for in the pipe_get_transfer()
call so we were effectively reading from 2*readX, 2*readY.
NOTE: This is a candidate for the 7.9 and 7.10 branches.
Brian Paul [Thu, 17 Feb 2011 16:21:24 +0000 (09:21 -0700)]
draw: update comments, rename vars in pstipple code
José Fonseca [Thu, 17 Feb 2011 10:09:06 +0000 (10:09 +0000)]
svga: Don't use more than one constant per IFC instruction.
José Fonseca [Thu, 17 Feb 2011 09:48:17 +0000 (09:48 +0000)]
mesa: Do copy propagation across if-else-endif.
Addresses excessive TEMP allocation in vertex shaders where all CONSTs are
stored into TEMPS at the start, but copy propagation was failing due to
the presence of IFs.
We could do something about loops, but ifs are easy enough.
José Fonseca [Thu, 17 Feb 2011 15:26:15 +0000 (15:26 +0000)]
util: Cleanup symbol name resolution on Windows.
- Support symbol name resolution on MinGW.
- Use dbghelp.dll (which should allow 64bit support), but untested yet.
- Cleanup.
Brian Paul [Thu, 17 Feb 2011 14:29:20 +0000 (07:29 -0700)]
docs: updated environment variable list
Brian Paul [Thu, 17 Feb 2011 14:28:51 +0000 (07:28 -0700)]
st/mesa: remove unused screen variables
Brian Paul [Thu, 17 Feb 2011 14:27:17 +0000 (07:27 -0700)]
mesa: remove the MESA_NO_DITHER env var
This was sometimes useful back when 16-bit framebuffers were prominent.
Brian Paul [Thu, 17 Feb 2011 14:23:40 +0000 (07:23 -0700)]
softpipe: rename env vars to be consistent
Haitao Feng [Thu, 17 Feb 2011 04:05:15 +0000 (23:05 -0500)]
egl_dri2: add swrast
This enables the egl_dri2 driver to load swrast driver
for software rendering. It could be used when hardware
dri2 drivers are not available, such as in VM.
Signed-off-by: Haitao Feng <haitao.feng@intel.com>
Dave Airlie [Thu, 17 Feb 2011 00:25:57 +0000 (10:25 +1000)]
r600g: get s3tc working on cards with crappy 64/128 bit types.
Some cards don't appear to work correctly with the UNORM type,
so switch to the integer type, however since gallium has no
integer types yet from what I can see we need to do a hack to
workaround it for the blitter.
Signed-off-by: Dave Airlie <airlied@redhat.com>
Dave Airlie [Thu, 17 Feb 2011 00:24:15 +0000 (10:24 +1000)]
r600g: add missing type to color buffer swap.
Brian Paul [Thu, 17 Feb 2011 00:10:35 +0000 (17:10 -0700)]
gallium/util: init key with memset()
To silence missing initializers warning.
Brian Paul [Wed, 16 Feb 2011 21:20:14 +0000 (14:20 -0700)]
svga: flush when transitioning between HW and SW rendering paths
To avoid mixing HW and SW rendering with the same vertex buffer.
Brian Paul [Wed, 16 Feb 2011 21:17:41 +0000 (14:17 -0700)]
rtasm: add dummy return statement to silence MSVC warning
And use assert(0) instead of abort() to be consistent with rest
of Gallium.
Brian Paul [Tue, 15 Feb 2011 21:06:21 +0000 (14:06 -0700)]
svga: use TRUE/FALSE instead of 0/1
Some fields are booleans, others are bitmasks. Use TRUE/FALSE to
clarify what's what.
Brian Paul [Tue, 15 Feb 2011 20:24:41 +0000 (13:24 -0700)]
svga: fix incorrect comment
Brian Paul [Tue, 15 Feb 2011 20:24:21 +0000 (13:24 -0700)]
svga: dimension the dirty[] array with SVGA_STATE_MAX
Brian Paul [Tue, 15 Feb 2011 17:26:56 +0000 (10:26 -0700)]
mesa: make _mesa_write_renderbuffer_image() non-static
Brian Paul [Fri, 11 Feb 2011 21:30:31 +0000 (14:30 -0700)]
svga: disable a debug_printf() call
Sam Hocevar [Thu, 17 Feb 2011 00:04:20 +0000 (17:04 -0700)]
docs: add glsl info
Sam Hocevar [Thu, 17 Feb 2011 00:04:03 +0000 (17:04 -0700)]
docs: fix glsl_compiler name
Brian Paul [Wed, 16 Feb 2011 17:35:21 +0000 (10:35 -0700)]
mesa: 80-column wrap
José Fonseca [Wed, 16 Feb 2011 21:52:49 +0000 (21:52 +0000)]
svga: Proper redefine_user_buffer implementation.
Unfortunately still not enough to make GoogleEarth happy.
Marek Olšák [Wed, 16 Feb 2011 21:23:23 +0000 (22:23 +0100)]
r300g: fix a race between CS and SET_TILING ioctls
Marek Olšák [Wed, 16 Feb 2011 19:09:06 +0000 (20:09 +0100)]
r300g: fix blitting NPOT compressed textures
Marek Olšák [Wed, 16 Feb 2011 19:37:28 +0000 (20:37 +0100)]
mesa: fix texture3D mipmap generation for UNSIGNED_BYTE_3_3_2 and 4_4
Oops, I copy-pasted a typo from 3_3_2.
The 3_3_2 part is a candidate for 7.9 and 7.10.
The 4_4 part isn't, because AL44 is in neither branches.
Marek Olšák [Wed, 16 Feb 2011 09:07:05 +0000 (10:07 +0100)]
mesa: fix mipmap generation for MESA_FORMAT_AL44
This was missed when implementing AL44.
José Fonseca [Tue, 15 Feb 2011 17:31:31 +0000 (17:31 +0000)]
scons: Recognize 'AMD64' processor as well.
José Fonseca [Tue, 15 Feb 2011 17:01:20 +0000 (17:01 +0000)]
scons: Don't get fooled by 32bit python on a 64bit windows.
José Fonseca [Tue, 15 Feb 2011 15:31:19 +0000 (15:31 +0000)]
scons: Avoid depending on scons 2.0 in general.
José Fonseca [Tue, 21 Sep 2010 10:47:19 +0000 (11:47 +0100)]
mesa: Remove the DXT compression via blit path.
No longer used.
José Fonseca [Tue, 21 Sep 2010 10:46:20 +0000 (11:46 +0100)]
svga: Don't fake DXT compression ability.
Christoph Bumiller [Wed, 16 Feb 2011 14:41:32 +0000 (15:41 +0100)]
nvc0: fix blend factor mapping
Christoph Bumiller [Wed, 16 Feb 2011 10:57:00 +0000 (11:57 +0100)]
nvc0: fix emit_dfdx,dfdy
Christoph Bumiller [Wed, 16 Feb 2011 10:42:28 +0000 (11:42 +0100)]
nvc0: don't swap sources if either value is not in a GPR
The memory / immediate source should already be in the only valid
position.
Christoph Bumiller [Tue, 15 Feb 2011 20:36:57 +0000 (21:36 +0100)]
nvc0: add missing break statements in constant_operand
Christoph Bumiller [Tue, 15 Feb 2011 13:41:20 +0000 (14:41 +0100)]
nvc0: fix clipping and use VIEWPORT instead of SCISSOR
Christoph Bumiller [Mon, 14 Feb 2011 13:10:41 +0000 (14:10 +0100)]
nvc0: demagic the clear flags and fix region clears
The CLIP_RECTs always affect dedicated clears, and it's nicer than
having to mark the viewport or scissor state dirty after it.
Christoph Bumiller [Mon, 14 Feb 2011 01:04:58 +0000 (02:04 +0100)]
nvc0: front stencil mask and func mask methods are swapped
Christoph Bumiller [Sat, 12 Feb 2011 23:17:43 +0000 (00:17 +0100)]
nvc0: clone memory values with multiple refs before modifying them
Christoph Bumiller [Sat, 12 Feb 2011 21:02:26 +0000 (22:02 +0100)]
nvc0: disable early fragment tests if KIL is used
Early-Z pass raises the occlusion counter.