Eric Anholt [Tue, 3 Jun 2008 21:43:48 +0000 (14:43 -0700)]
[intel] Convert drivers to using libdrm bufmgr code.
Eric Anholt [Fri, 30 May 2008 22:12:15 +0000 (15:12 -0700)]
[intel-gem] Remember last offset of reused BOs to avoid more kernel relocs.
This is good for about 5% on ipers on 965, and should help any cpu-bound app.
Keith Packard [Tue, 27 May 2008 00:51:38 +0000 (17:51 -0700)]
[intel-gem] Once mapped, leave buffers mapped.
Mapping and unmapping buffers is expensive, and having the map around isn't
harmful (other than consuming address space). So, once mapped, just leave
buffers mapped in case they get re-used.
Keith Packard [Mon, 26 May 2008 07:19:20 +0000 (00:19 -0700)]
[intel] all flushing in intelEmitCopyBlit
Add both MI_FLUSH and intel_batchbuffer_flush to intelEmitCopyBlit.
This ensures that the data are flushed *and* the gem kernel driver sees the
various memory domain transitions.
Keith Packard [Mon, 26 May 2008 03:49:53 +0000 (20:49 -0700)]
[intel] Enable buffer re-use for gem
Use the new DRM_IOCTL_I915_GEM_BUSY ioctl to detect
idle buffers for re-use.
Eric Anholt [Fri, 23 May 2008 19:43:05 +0000 (12:43 -0700)]
Remove stale comment about glFlush().
We don't need an MI_FLUSH there, because everything that's been flushed in the
batch will eventually hit the hardware.
Eric Anholt [Fri, 23 May 2008 19:18:50 +0000 (12:18 -0700)]
Emit a flush after the swapbuffers blit, so contents end up on the screen.
Otherwise, since the MI_FLUSH at the end of every batch had been removed,
non-automatic-flushing chips (965) wouldn't get flushed and apps with static
rendering would get partial screen contents until the server's blockhandler
flush kicked in.
Eric Anholt [Mon, 19 May 2008 22:42:00 +0000 (15:42 -0700)]
Add back a mostly-correct glFinish for GEM and fake.
The right solution would probably be keeping a list of regions which have been
rendered to.
Keith Packard [Thu, 22 May 2008 17:44:47 +0000 (10:44 -0700)]
[intel-gem] Make sure set_domain is called often enough.
The write_domain needs to be set after any batch buffer uses an object,
track when that happens in the new 'cpu_domain_set' field.
Keith Packard [Sun, 18 May 2008 06:34:47 +0000 (23:34 -0700)]
[intel-gem] Don't calloc reloc buffers
Only a few relocations are typically used, so don't clear the
whole thing.
Eric Anholt [Tue, 13 May 2008 18:30:18 +0000 (11:30 -0700)]
[GEM] Actually include the presumed offset in initial relocations.
This avoids kernel relocations for most batchbuffer relocs.
Keith Packard [Sun, 11 May 2008 07:16:25 +0000 (00:16 -0700)]
[intel] update GEM api. Add bo_subdata and bo_get_subdata driver hooks.
Track DRM GEM name changes.
Add driver hooks for bo_subdata and bo_get_subdata so that GEM can use pread
and pwrite.
Keith Packard [Thu, 8 May 2008 17:38:55 +0000 (10:38 -0700)]
[intel-gem] move domains to relocations. add set_domain to bo_map.
Fix the kernel API to place the read/write domain information in the
relocation instead of the buffer.
Keith Packard [Thu, 8 May 2008 17:37:23 +0000 (10:37 -0700)]
[intel] intel_batchbuffer_flush using uninit 'used' to check for buffer empty
Make sure 'used' tracks the right value through the whole function.
Also, use GLint for intel_batchbuffer_space in case we do bad things
in the future.
Keith Packard [Thu, 8 May 2008 03:20:26 +0000 (20:20 -0700)]
Merge commit 'anholt/drm-gem' into drm-gem
Eric Anholt [Wed, 7 May 2008 21:01:03 +0000 (14:01 -0700)]
GEM: Remove already-disabled PIPE_CONTROL command.
This existed to get the icache flushed. However, GEM handles this for us
now for sure, and we had disabled it prematurely anyway.
Eric Anholt [Wed, 7 May 2008 20:51:29 +0000 (13:51 -0700)]
GEM: Make dri_emit_reloc take GEM domain flags instead of TTM flags.
The GEM flags are much more descriptive for what we need. Since this makes
bufmgr_fake rather device-specific, move it to the intel common directory.
We've wanted to do device-specific stuff to it before.
Eric Anholt [Wed, 7 May 2008 17:01:14 +0000 (10:01 -0700)]
GEM: Don't emit an extra MI_FLUSH in the batch since GEM handles it.
Keith Packard [Wed, 7 May 2008 05:07:58 +0000 (22:07 -0700)]
Merge commit 'anholt/drm-gem' into drm-gem
Keith Packard [Wed, 7 May 2008 05:06:41 +0000 (22:06 -0700)]
[intel-GEM] partial support for memory domains.
Doesn't deal with local modifications yet (need new kernel set_domain ioctl
for that to work). Also, guesses what domains are affected based on the
read/write bits set in the flags. Works for 915, probably not so much for
965.
Eric Anholt [Tue, 6 May 2008 22:25:51 +0000 (15:25 -0700)]
GEM: Fix previous commit to avoid asserting when we run into reserved space.
These are the dwords that the reserved space is for.
Eric Anholt [Tue, 6 May 2008 20:57:08 +0000 (13:57 -0700)]
GEM: Don't emit an extra MI_FLUSH in the batch since GEM handles it.
Keith Packard [Tue, 6 May 2008 17:51:08 +0000 (10:51 -0700)]
[intel-GEM] Add tiling support to swrast.
Accessing tiled surfaces without using the fence registers requires that
software deal with the address swizzling itself.
Keith Packard [Tue, 6 May 2008 05:08:05 +0000 (22:08 -0700)]
Dump buffer tiled status from intelPrintSAREA
Eric Anholt [Mon, 5 May 2008 22:45:15 +0000 (15:45 -0700)]
GEM: Allocate the right number of relocs, avoiding heap smashing.
Eric Anholt [Mon, 5 May 2008 22:44:49 +0000 (15:44 -0700)]
GEM: Include target buffer handle in relocation debug.
Eric Anholt [Mon, 5 May 2008 21:20:18 +0000 (14:20 -0700)]
GEM: Set validate index to keep the same buffer from being duped on the list.
Eric Anholt [Mon, 5 May 2008 21:15:40 +0000 (14:15 -0700)]
Print GEM handles instead of BO pointers in debugging.
small integers are much prettier, and let me correlate to DRM debug output.
Eric Anholt [Mon, 5 May 2008 20:45:03 +0000 (13:45 -0700)]
Initialize bufmgr_gem->validate_array[i].offset.
This is just cosmetic, to produce less scary values when the ioctl fails and
doesn't return values there.
Eric Anholt [Mon, 5 May 2008 20:40:50 +0000 (13:40 -0700)]
Make intel_{batch,exec}_ioctl return an error code so we can recover better.
Keith Packard [Mon, 5 May 2008 17:46:27 +0000 (10:46 -0700)]
Add intel_bufmgr_gem.c to i915
Keith Packard [Mon, 5 May 2008 17:45:30 +0000 (10:45 -0700)]
Temporarily disable intel pixel ops on i915 for GEM
Instead of attempting to fix these for GEM, just disable until GEM is
working.
Eric Anholt [Sat, 3 May 2008 01:25:00 +0000 (18:25 -0700)]
Don't forget to set handle of shared buffers.
(And fix a nearby whitespace nit)
Eric Anholt [Sat, 3 May 2008 01:24:13 +0000 (18:24 -0700)]
Fix GEM execbuf ioctl argument.
Eric Anholt [Sat, 3 May 2008 00:13:45 +0000 (17:13 -0700)]
Fix to use GEM execbuf instead of TTM.
Eric Anholt [Sat, 3 May 2008 00:00:47 +0000 (17:00 -0700)]
Minor fixups to get GEM to the point of execbuf ioctl.
Eric Anholt [Fri, 2 May 2008 21:11:19 +0000 (14:11 -0700)]
[intel] Fix build for GEM. TTM is now disabled, and fencing is gone.
Fencing was used in two places: ensuring that we didn't get too many frames
ahead of ourselves, and glFinish. glFinish will be satisfied by waiting on
buffers like we would do for CPU access on them. The "don't get too far ahead"
is now the responsibility of the execution manager (kernel).
Eric Anholt [Fri, 2 May 2008 18:52:52 +0000 (11:52 -0700)]
Add intel_bufmgr_gem for new graphics execution manager.
Eric Anholt [Fri, 2 May 2008 19:25:48 +0000 (12:25 -0700)]
[intel] Warnings fixes.
Eric Anholt [Fri, 2 May 2008 19:25:12 +0000 (12:25 -0700)]
[intel] Merge intel_ioctl.h. Not sure how this slipped by in the .c merge.
Brian Paul [Thu, 1 May 2008 20:59:34 +0000 (14:59 -0600)]
fix conversion of GLfloat display list IDs
Use floor() to convert to int (per Mark Kildard and the SI).
Also, change translate_id() to return a signed integer since we may be
offsetting from GL_LIST_BASE.
Brian Paul [Wed, 30 Apr 2008 22:05:01 +0000 (16:05 -0600)]
Add support for GL_REPLACE_EXT texture env mode.
GL_REPLACE_EXT comes from the ancient GL_EXT_texture extension. Found an old demo that
actually uses it.
The values of the GL_REPLACE and GL_REPLACE_EXT tokens is different, unfortunately.
Dan Nicholson [Wed, 30 Apr 2008 20:53:37 +0000 (13:53 -0700)]
autoconf: Fail from autoconf if the pkg-config macros aren't defined
Instead of postponing the error from missing pkg-config macros to when
configure is run, make autoconf exit by using m4 macros.
Brian Paul [Wed, 30 Apr 2008 20:43:28 +0000 (14:43 -0600)]
added xdemos/sharedtex.c test
Test that modifications to a texture object in one rendering context are seen
in a second rendering context.
Press 't' to change the texture's image/colors.
Dan Nicholson [Wed, 30 Apr 2008 20:28:03 +0000 (13:28 -0700)]
autoconf: Don't substitute MESA_MAJOR and friends
Since the autoconf config inherits from default, we don't need to
duplicate and substitute the MESA_* version numbers in configure.ac.
The version number is only needed in configure for the help text.
Xiang, Haihao [Wed, 30 Apr 2008 08:27:52 +0000 (16:27 +0800)]
intel: test cpp to ensure mipmap tree matches texture image.
Brian Paul [Tue, 29 Apr 2008 21:02:46 +0000 (15:02 -0600)]
disable GL_TEXTURE_1D at end of frame to fix failed assertion
Brian Paul [Fri, 25 Apr 2008 15:46:43 +0000 (09:46 -0600)]
mesa: adjust glBitmap coords by a small epsilon
Fixes problem with bitmaps jumping around by one pixel depending on window
size. The rasterpos is often X.9999 instead of X+1.
Run progs/redbook/drawf and resize window to check.
Cherry picked from gallium-0.1 branch
Ove Kaaven [Tue, 29 Apr 2008 20:14:05 +0000 (22:14 +0200)]
r200: fix state submission issue causing bogus textures (bug 15730)
Michel Dänzer [Tue, 29 Apr 2008 16:43:28 +0000 (18:43 +0200)]
Change default of driconf "allow_large_textures" to announce hardware limits.
The previous default these days served mostly to cause artifical problems with
GLX compositing managers like compiz (see e.g.
http://bugs.freedesktop.org/show_bug.cgi?id=10501).
Alan Hourihane [Mon, 28 Apr 2008 21:41:42 +0000 (22:41 +0100)]
build fix for xorg driver
Keith Packard [Fri, 25 Apr 2008 23:07:12 +0000 (16:07 -0700)]
[i965] short immediate values must be replicated to both halves of the dword
The 32-bit immediate value in the i965 instruction word must contain two
copies of any 16-bit constants. brw_imm_uw and brw_imm_w just needed to
copy the value into both halves of the immediate value instruction field.
Dan Nicholson [Fri, 25 Apr 2008 18:35:00 +0000 (11:35 -0700)]
glcore: Respect DESTDIR
George Sapountzis [Fri, 25 Apr 2008 08:18:09 +0000 (11:18 +0300)]
fix make tarballs
Alan Hourihane [Fri, 25 Apr 2008 09:39:52 +0000 (10:39 +0100)]
silence warning
Pierre Beyssac [Thu, 24 Apr 2008 22:29:34 +0000 (16:29 -0600)]
enable GL_EXT_multi_draw_arrays (see bug 15670)
Alan Hourihane [Wed, 23 Apr 2008 14:59:23 +0000 (15:59 +0100)]
include <X11/Xlib.h>
George Sapountzis [Wed, 4 Apr 2007 09:31:40 +0000 (12:31 +0300)]
drop stray includes of glapi
George Sapountzis [Fri, 18 Apr 2008 14:28:53 +0000 (17:28 +0300)]
glx: nitpick renames
George Sapountzis [Fri, 18 Apr 2008 14:28:34 +0000 (17:28 +0300)]
glx: split out current context code
also clean header inclusion after code movement
George Sapountzis [Fri, 18 Apr 2008 14:35:00 +0000 (17:35 +0300)]
glcore: drop outdated sources files intented for xorg
George Sapountzis [Fri, 18 Apr 2008 14:34:45 +0000 (17:34 +0300)]
glcore: tree sharing for DRI and XMesa
George Sapountzis [Fri, 18 Apr 2008 14:34:24 +0000 (17:34 +0300)]
glcore: build from mesa
Alan Hourihane [Tue, 22 Apr 2008 22:05:11 +0000 (23:05 +0100)]
revert part of the previous cleanup - it only applies
to the 7.0 branch
Alan Hourihane [Tue, 22 Apr 2008 19:28:35 +0000 (20:28 +0100)]
Fix error string
Alan Hourihane [Tue, 22 Apr 2008 19:29:00 +0000 (20:29 +0100)]
correct the return value
Alan Hourihane [Tue, 22 Apr 2008 19:29:42 +0000 (20:29 +0100)]
small cleanups
Xiang, Haihao [Tue, 22 Apr 2008 08:25:23 +0000 (16:25 +0800)]
i965: fix DEPTH_TEXTURE_MODE (bug #14220)
Zou Nan hai [Tue, 22 Apr 2008 07:50:40 +0000 (15:50 +0800)]
[i965] This is to fix random crash in some maps of Ut2004 demo.
e.g. bridge of fate.
If vs output is big, driver may fall back to use 8 urb entries for vs,
unfortunally, for some unknown reason, if vs is working at 4x2 mode,
8 entries is not enough, may lead to gpu hang.
Xiang, Haihao [Tue, 22 Apr 2008 03:11:42 +0000 (11:11 +0800)]
i965: save the offset of target buffer after last execution, not relocatee buffer.
Xiang, Haihao [Mon, 21 Apr 2008 09:34:00 +0000 (17:34 +0800)]
intel: fix an assertion failure. fix bug #15575
Xiang, Haihao [Mon, 21 Apr 2008 06:02:50 +0000 (14:02 +0800)]
i965: clear the PRESUMED_OFFSET flag from bo_req.hint, not bo_req.flags. fix #15574
Eric Anholt [Fri, 18 Apr 2008 22:03:01 +0000 (15:03 -0700)]
autoconf: Default the build to DRI on OS+CPU combos where it's expected.
Dave Airlie [Fri, 18 Apr 2008 05:37:54 +0000 (15:37 +1000)]
i965: fixup depth buffer check
Dave Airlie [Fri, 18 Apr 2008 05:14:48 +0000 (15:14 +1000)]
i965: fix vb aperture space check
Dave Airlie [Fri, 18 Apr 2008 05:09:11 +0000 (15:09 +1000)]
965: fix vb upload size check
Dave Airlie [Fri, 18 Apr 2008 05:05:35 +0000 (15:05 +1000)]
i965: fix gs_prog aperture check
Dave Airlie [Fri, 18 Apr 2008 02:12:53 +0000 (12:12 +1000)]
i915: check for depth region before accounting its buffer size
fd.o bz #15573
Dave Airlie [Thu, 17 Apr 2008 07:17:23 +0000 (17:17 +1000)]
i965: initial attempt at fixing the aperture overflow
Makes state emission into a 2 phase, prepare sets things up and accounts
the size of all referenced buffer objects. The emit stage then actually
does the batchbuffer touching for emitting the objects.
There is an assert in dri_emit_reloc if a reloc occurs for a buffer
that hasn't been accounted yet.
Xiang, Haihao [Thu, 17 Apr 2008 08:30:17 +0000 (16:30 +0800)]
Revert "[i965] renable regative rhw test"
This reverts commit
3158e981f5f37768e9b04765704b9eaece8b899b.
rhw issue has gone away on IGD.
Andrew Randrianasulu [Thu, 17 Apr 2008 00:51:02 +0000 (02:51 +0200)]
r200: accept PROGRAM_CONSTANT inputs due to mesa changes
Dave Airlie [Wed, 16 Apr 2008 06:49:32 +0000 (16:49 +1000)]
bufmgr_fake: disable debugging again
Dave Airlie [Wed, 16 Apr 2008 06:37:13 +0000 (16:37 +1000)]
intel: fix _mesa_error ctx I introduced at lsat minute
Dave Airlie [Wed, 16 Apr 2008 06:22:05 +0000 (16:22 +1000)]
intel/fake_bufmgr: Attempt to restrict references to objects in a batchbuffer > aperture size.
So with compiz on Intel hw with fake bufmgr, opening 4 firefox windows at 1680x1050 and hitting alt-tab, could cause the batchbuffer to try and reference more than the 32MB of RAM allocated.
Fix 1:
Fix 1 is to pre-verify the list of buffers against the current batchbuffer and if it can't possibly fit in the aperture to flush the batchbuffer to the hardware
and try again. If the buffers still can't fit well then you are hosed as I'm not sure there is a nice way to tell anyone.
Fix 2:
Next problem was that even with a simple check for total < aperture, we ran
into fragmentation issues, this meant that half way down a set of buffers,
we would fail as no blocks were available. Fix this by nuking the memory
manager from orbit and letting it start again and relayout the blocks in a
manner that fits.
Fix 3:
Finally the initial problem we were seeing was a memcpy to a NULL backing store.
We seem to end up with a texture at some point that never gets mapped but ends up with data in it. compiz al-tab icons have this property. So I created a card dirty bit that memcpy's any buffer that is !static and is written to back to memory. This probably is wrong but it makes compiz work for now.
Caveats:
965 support is still fail.
Brian [Tue, 15 Apr 2008 02:54:13 +0000 (20:54 -0600)]
fix multi-draw buffer regression
Brian Paul [Mon, 14 Apr 2008 20:10:32 +0000 (14:10 -0600)]
only use __x86_64__, not __amd64__ (bug 15503)
Brian Paul [Mon, 14 Apr 2008 19:43:24 +0000 (13:43 -0600)]
fix GL_ARB_texture_rectangle breakage
Brian Paul [Mon, 14 Apr 2008 19:40:43 +0000 (13:40 -0600)]
check for _WIN32 and __WIN32__
David Flynn [Mon, 14 Apr 2008 18:55:12 +0000 (12:55 -0600)]
define #extension GL_ARB_texture_rectangle
Roland Scheidegger [Sat, 12 Apr 2008 00:40:27 +0000 (02:40 +0200)]
r200: fix XPD vertex program instruction when using temps as inputs
due to the two read ports limit into temp memory may need the MAD_2 instruction
for the second instruction of the decomposed XPD.
While here, also try to avoid MAD_2 for MAD if all 3 inputs are temps but the
temps aren't actually distinct.
Brian Paul [Fri, 11 Apr 2008 15:35:18 +0000 (09:35 -0600)]
fix failed assertion (parameter can be a PROGRAM_CONSTANT)
Brian Paul [Fri, 11 Apr 2008 14:59:05 +0000 (08:59 -0600)]
add missing glViewport calls
Brian Paul [Fri, 11 Apr 2008 14:08:22 +0000 (08:08 -0600)]
comments
Michel Dänzer [Thu, 10 Apr 2008 19:45:52 +0000 (15:45 -0400)]
Get the default GLXPixmap texture target from the server when appropriate.
Fixes compiz with direct rendering when both GLX_TEXTURE_2D_EXT and
GLX_TEXTURE_RECTANGLE_EXT are supported for a GLXPixmap and the
application didn't specify the texture target as a GLX drawable attribute
when creating the GLX drawable.
Brian [Thu, 10 Apr 2008 04:30:14 +0000 (22:30 -0600)]
more make clean items
Brian [Thu, 10 Apr 2008 04:29:33 +0000 (22:29 -0600)]
use InitUniforms()
Brian [Thu, 10 Apr 2008 04:28:23 +0000 (22:28 -0600)]
Replace duplicated code with new shaderutil.c functions
Brian [Thu, 10 Apr 2008 04:27:36 +0000 (22:27 -0600)]
shader utility functions
Hasso Tepper [Wed, 9 Apr 2008 18:03:05 +0000 (11:03 -0700)]
Add support for dfbsd to mklib script.
Hasso Tepper [Wed, 9 Apr 2008 17:56:12 +0000 (10:56 -0700)]
Add $(X11_INCLUDES) to shut makedepend up.