summaryrefslogtreecommitdiff
AgeCommit message (Collapse)Author
2007-12-16[965] Enable ARB_pixel_buffer_object, and disable broken imaging extension.Eric Anholt
While I haven't tested the imaging extension, this matches what 915 does.
2007-12-16[965] Move to using shared texture management code.Eric Anholt
This removes the delayed texture upload optimization from 965, in exchange for bringing us closer to PBO support. It also disables SGIS_generate_mipmap, which didn't seem to be working before anyway, according to the lodbias demo.
2007-12-15[intel] Whitespace and comment changes to bring intel_mipmap_tree.c closer.Eric Anholt
2007-12-15[intel] Merge intel_buffer_objects to shared.Eric Anholt
965 gains fixed TTM typing of the buffer object buffers and unused PBO functions, and 915 gains buffer size == 0 fixes from 965.
2007-12-15[965] Use shared intel_regions.c.Eric Anholt
This adds (so far) unused PBO functions, and holding the lock while writing to regions (which may be shared static screen regions).
2007-12-14[intel] Fix uninitialized data in screen-region buffer objects.Eric Anholt
2007-12-14[intel] Remove excessive validation debugging.Eric Anholt
2007-12-14[intel] Initialize debug flag for dri_bufmgrsEric Anholt
2007-12-14[intel] Remove useless intel_region_idle.Eric Anholt
The idling it was trying to ensure was covered by the intel_miptree_image_map()->intel_region_map() that immediately followed it.
2007-12-14[intel] warnings cleanupEric Anholt
2007-12-14fix polygon cull regressionBrian
2007-12-14Build rain demo (Gonzo <andreas.wendleder@gmail.com>)Brian
2007-12-14[intel] Remove the relocation buffer lists and just cache one per buffer.Eric Anholt
Each buffer object now has a relocation buffer pointer, which contains the relocations for the buffer if there are any. At the point where we have to create a new type of relocation entry, we can change the code over to allowing multiple relocation lists, but trying to anticipate what that'll look like now just increases complexity. This is a 30% performance improvement on 965.
2007-12-14[965] Replace the state cache suballocator with direct dri_bufmgr use.Eric Anholt
The user-space suballocator that was used avoided relocation computations by using the general and surface state base registers and allocating those types of buffers out of pools built on top of single buffer objects. It also avoided calls into the buffer manager for these small state allocations, since only one buffer object was being used. However, the buffer allocation cost appears to be low, and with relocation caching, computing relocations for buffers is essentially free. Additionally, implementing the suballocator required a don't-fence-subdata flag to disable waiting on buffer maps so that writing new data didn't block on rendering using old data, and careful handling when mapping to update old data (which we need to do for unavoidable relocations with FBOs). More importantly, when the suballocator filled, it had no replacement algorithm and just threw out all of the contents and forced them to be recomputed, which is a significant cost. This is the first step, which just changes the buffer type, but doesn't yet improve the hash table to not result in full recompute on overflow. Because the buffers are all allocated out of the general buffer allocator, we can no longer use the general/surface state bases to avoid relocations, and they are set to 0 instead.
2007-12-13[intel] Remove broken mutex protection from dri_bufmgrs.Eric Anholt
Now that the dri_bufmgr is stored in the context rather than the screen, all access to one is single-threaded anyway.
2007-12-13[intel] Enable INTEL_DEBUG=bufmgr output in TTM mode as well as classic.Eric Anholt
2007-12-13[intel] assert that buffers are not mapped at last unreference.Eric Anholt
bufmgr_fake doesn't care about it, but with ttm we would end up with the buffer remaining referenced until application exit.
2007-12-12Merge branch 'master' into autoconf2Dan Nicholson
2007-12-12autoconf: Improve help text for demos and DRI driversDan Nicholson
Changed the text for the default demos to be "auto" instead of "yes" since that didn't make much sense in this context. Added an example value for the --with-dri-drivers option as suggested by Brian.
2007-12-12autoconf: Update bug address and fix some autoconf warningsDan Nicholson
Point bug reports to Bugzilla like bugs.html. Also, a warning from autoconf w.r.t. AC_OUTPUT was cleaned up.
2007-12-12autoconf: Consistently use xlib for the driver nameDan Nicholson
Brian suggested that there should be more consistency using xlib vs. x11 in the configure script. Changed the options and variables to suit.
2007-12-12autoconf: Optional assembly usage with --disable-asmDan Nicholson
Allow the user to disable use of assembly code through the --disable-asm option. This is only relevant on the platforms where assembly is normally enabled such as Linux and FreeBSD.
2007-12-12[intel] Assert against conflicting relocation emits in bufmgr_fake.cEric Anholt
2007-12-12[965] Bug #13600: Fix assertion failure with SRGB textures.Eric Anholt
I broke this with cherry-pick resolving on 93c98a466947570e0589b662df49095b2f4bc43c.
2007-12-12[intel] Move bufmgr back to context instead of screen, fixing glthreads.Eric Anholt
Putting the bufmgr in the screen is not thread-safe since the emit_reloc changes. It also led to a significant performance hit from pthread usage for the attempted thread-safety (up to 12% of a cpu spent on refcounting protection in single-threaded 965). The motivation had been to allow multi-context bufmgr sharing in classic mode, but it wasn't worth the cost.
2007-12-12autoconf: Report the compiler options in the summaryDan Nicholson
Report the compiler flags and macros that will be used in the build. This just provides a quick way to see what configure has silently been doing.
2007-12-12autoconf: Optional debug build with --enable-debugDan Nicholson
Allow the user to set the compiler debug flags and macros through the option --enable-debug. This addes -DDEBUG to the macros and -g to the CFLAGS and CXXFLAGS if gcc and g++ are in use.
2007-12-12autoconf: More informative errors when pkg-config macros undefinedDan Nicholson
Added a check that PKG_PROG_PKG_CONFIG is defined before calling it so the user can see a proper error. Without it, the generated configure script will just pass on to the next statement and bomb with a strange shell syntax error.
2007-12-11Block in kernel waiting for fenceKeith Packard
2007-12-11Use previous buffer offsets to compute proposed relocationsKeith Packard
This takes advantage of the DRM_BO_HINT_PRESUMED_OFFSET change and allows the kernel to avoid mapping and re-writing buffers when relocations occur.
2007-12-11autoconf: Replace configs/current symlink from configureDan Nicholson
Rather than having the user run `make autoconf' and have the Makefile setup the configs/current -> autoconf symlink, we can just do that in configure. This allows the user to just run `make' to build.
2007-12-11autoconf: Replace install-sh with symlink to minstallDan Nicholson
Since install-sh is only used to satisfy an autoconf requirement, we don't need the actual script. Instead, it's now just a symlink to minstall, which provides a similar install wrapper script.
2007-12-11autoconf: Clearer help text for the enable/disable optionsDan Nicholson
Make it clearer what the defaults for the AC_ARG_ENABLE options are and how to change them.
2007-12-11autoconf: Since default DRI drivers to build with masterDan Nicholson
Sync the default DRI_DIRS with the configs in master. Added some of the comments from there, too.
2007-12-11autoconf: glut doesn't need XtDan Nicholson
Don't link glut with libXt since it's not needed. (see commit ce98779571eee3f51d9f571fecf8deb83dd60f78)
2007-12-11add simple test for two-sided stencil functionalityRoland Scheidegger
2007-12-11make sure state token values are fully initializedRoland Scheidegger
2007-12-10[965] Hook up DEBUG_BUFMGR output for bufmgr_fake.Eric Anholt
2007-12-07[965] Convert the driver to dri_bufmgr interface and enable TTM.Eric Anholt
This is currently believed to work but be a significant performance loss. Performance recovery should be soon to follow. The dri_bo_fake_disable_backing_store() call was added to allow backing store disable like bufmgr_fake.c did, which is a significant performance win (though it's missing the no-fence-subdata part). This commit is a squash merge of the 965-ttm branch, which had some history I wanted to avoid pulling due to noisiness and brokenness at many points for git-bisecting.
2007-12-07[965] Remove dead code in upload_wm_surfaces.Eric Anholt
2007-12-07[965] Move brw_surface_state stack allocation into the function using it.Eric Anholt
2007-12-07autoconf: Output summary information from configureDan Nicholson
Report some of the common settings back to the user after configure has completed.
2007-12-07autoconf: Configurable DRI driversDan Nicholson
The user can request specific DRI drivers to build rather than the default of "all that build on this platform". This allows the list of drivers to be easily slimmed down. This is controlled through the option --with-dri-drivers. For example: ./configure --with-driver=dri --with-dri-drivers="i965,nouveau" Unfortunately, using this setting means the DRI drivers aren't filtered by platform anymore and you might try to build something that doesn't work.
2007-12-07autoconf: Allow static library buildsDan Nicholson
Allow the user to specify that they want static libraries through the --{enable,disable}-{static,shared} switches like libtool. The mesa build only allows for one at a time, so static will be chosen if someone has passed --enable-static or --disable-shared. This also allows the mklib options to be set at build time. This allows -static to be set for mklib, but any platform specific settings are allowed by setting MKLIB_OPTIONS for configure. Handling of the program libraries through the APP_LIB_DEPS variable is pretty ugly, but it seems to work.
2007-12-07autoconf: Configurable demos directoriesDan Nicholson
The user can request specific demos directories to build in. For example: ./configure --with-demos="demos,xdemos" The drawback is that we don't check for the necessary libararies in that case, only that the directory in progs/ exists.
2007-12-07autoconf: Configure the osmesa channel size for OSMesa16 and OSMesa32Dan Nicholson
Allow the user to specify channel bits of 16 or 32 to enable OSMesa16 or OSMesa32 instead of the default OSMesa. This option is controlled through the option --with-osmesa-bits=BITS and is only honored when the driver is osmesa. The osdemos are not enabled in the 16 or 32 bit case because the Makefile is currently hardcoded to link to -lOSMesa.
2007-12-07autoconf: Add support for osmesa-only buildsDan Nicholson
Added autoconf support for using OSMesa as the driver instead linking it to libGL. This is enabled through --with-driver=osmesa. To differentiate these cases, another option --enable-x11-osmesa is used to enable or disable building OSMesa when the driver is x11.
2007-12-07autoconf: Add support for shared DRI build on linux and freebsdDan Nicholson
Added autoconf bits to allow using DRI as the driver through the option --with-dri-driver=DRIVER. The options are x11 (default) and dri. Three DRI specific options for controlling the driver directory, direct rendering and TLS are also added. The DRI will probably not work for platforms besides linux and freebsd.
2007-12-07autoconf: Include necessary files for the tarballsDan Nicholson
Add targets to the top Makefile so that configure and the necessary scripts are added to the tarball for distribution. Variables are used for autoconf and aclocal in case anyone needs to use a specific version or pass any extra flags.
2007-12-07autoconf: Initial support for an autoconf configurationDan Nicholson
This adds the initial support for using autoconf configuration. Support is available for shared Xlib driver builds. Later this will be extended to dri and osmesa-only builds and possibly targetting non-X backends. Support for static library builds will also be added. The configure script fills in the autoconf config. This is then used by running `make autoconf' after ./configure. Testing has been done on Linux/GNU. The configure script tries to faithfully reproduce the current configs/linux* and configs/freebsd*. Other platforms can be handled later by adding similar statements and feature tests. Pkg-config is used to search for packages when possible. This makes the build much more flexible and robust to the user's configuration. This requires that the pkg-config autoconf macros pkg.m4 are included in aclocal.m4. This requires autoconf and aclocal from autoconf and automake, respectively.