Kristian Høgsberg [Mon, 10 Mar 2008 01:28:04 +0000 (21:28 -0400)]
DRI2: Make setTexBuffer take a __DRIdrawable instead of a BO handle.
This fixes a problem where texturing from the same Pixmap more than
once per batchbuffer would hang the DRI driver. We just use the region
associated with the front left renderbuffer of the __DRIdrawable for
texturing, which avoids creating different regions for the same BO.
This change also make GLX_EXT_texture_from_pixmap work for direct
rendering, since tracking the __DRIdrawable -> BO handle now uses
the standard DRI2 event buffer. Of course, DRI2 direct rendering
doesn't exist yet.
Finally, this commit bumps the DRI interface version again, accounting
for the change in the DRI_TEX_BUFFER extension and the change in
commit
0bba0e5be7a4a7275dad1edc34bdcc134ea1f424 to pass in the
event buffer head index on drawable creation.
Kristian Høgsberg [Mon, 10 Mar 2008 01:22:49 +0000 (21:22 -0400)]
DRI2: Drop DriverAPI.UpdateBuffer.
__dri2ParseEvents() would determine the kind of event, but then call
UpdateBuffer() in either case, and UpdateBuffer() would then have to
figure that out again to dispatch to HandleBufferAttach() or
HandleDrawableConfig(). Pretty pointless.
Kristian Høgsberg [Mon, 10 Mar 2008 01:19:17 +0000 (21:19 -0400)]
DRI2: Pass the context instead of the screen to __dri2ParseEvents().
Makes a lot more sense, since the screen is always implicit in the
DRI drawable, but it may not be possible to track down a context from
just a drawable.
Kristian Høgsberg [Mon, 10 Mar 2008 01:16:30 +0000 (21:16 -0400)]
DRI2: Add event buffer head as an argument to driCreateNewDrawable().
The DRI driver needs to know where in the buffer to start reading.
Brian [Mon, 10 Mar 2008 00:30:07 +0000 (18:30 -0600)]
fix botched test for clearing color buffers (should fix depth peeling regression)
Markus Amsler [Sun, 9 Mar 2008 23:53:22 +0000 (17:53 -0600)]
Set normalized flag for GLubyte arrays in _mesa_VertexAttribPointerNV()
Markus Amsler [Sun, 9 Mar 2008 23:51:11 +0000 (17:51 -0600)]
init vertex weight attrib to (1,0,0,0)
Brian [Sun, 9 Mar 2008 16:55:01 +0000 (10:55 -0600)]
fix __builtin_expect() definition test for IBM XLC (sf bug
1909832)
Kristian Høgsberg [Sun, 9 Mar 2008 23:02:56 +0000 (19:02 -0400)]
Properly revert the libGL loader path breakage.
Kristian Høgsberg [Sun, 9 Mar 2008 20:21:29 +0000 (16:21 -0400)]
libGL: Fall back to DEFAULT_DRIVER_DIR properly.
After commit
6fd82f6fbd208dc7b1839ea408a5fb28589ee622, we would
overwrite the libPath default value with NULL if libGL was running
non-setuid and none of the env vars were set.
Thanks to Magnus Kessler <Magnus.Kessler@gmx.net> for spotting it.
Brian [Sun, 9 Mar 2008 16:41:50 +0000 (10:41 -0600)]
replace // comment with /* */ (bug 14916)
Brian [Thu, 28 Feb 2008 16:48:26 +0000 (09:48 -0700)]
added info about checking out gallium-0.1 for cell code
Kristian Høgsberg [Sun, 9 Mar 2008 03:28:01 +0000 (22:28 -0500)]
Use _X_HIDDEN to hide a bunch of leaked symbols.
Kristian Høgsberg [Sun, 9 Mar 2008 02:57:29 +0000 (21:57 -0500)]
Move DRI context functions into dri_glx.c.
Also drop isDirect flag; if gc->driContext is non-NULL, it's direct.
Kristian Høgsberg [Sun, 9 Mar 2008 02:02:23 +0000 (21:02 -0500)]
Move DRI drawable creation into dri_glx.c.
Kristian Høgsberg [Sun, 9 Mar 2008 01:34:24 +0000 (20:34 -0500)]
Introduce __GLXDRIscreen so we can start moving function pointers in there.
Temporarily rename the __DRIscreen member to __driScreen. Eventually,
we'll move that into __GLXDRIscreen and only access it in dri_glx.c.
Kristian Høgsberg [Sun, 9 Mar 2008 01:02:22 +0000 (20:02 -0500)]
Move DRI specific parts of CreateContext into dri_glx.c.
Kristian Høgsberg [Sun, 9 Mar 2008 00:15:50 +0000 (19:15 -0500)]
Convert driCreateScreen and driDestroyScreen to function pointers.
We avoid leaking the symbols and will be able to replace them with
DRI2 implementation later on.
Kristian Høgsberg [Sun, 9 Mar 2008 00:02:10 +0000 (19:02 -0500)]
Abstract __DRIdisplayPrivateRec away in dri_glx.c.
This patch moves __DRIdisplayPrivateRec definition into dri_glx.c and
let's dri_glx.c allocate the __DRIdisplay struct pointer to from
__GLXdisplayPrivate.
A small step towards moving more of the dri functionality into dri_glx.c.
Kristian Høgsberg [Sat, 8 Mar 2008 22:38:02 +0000 (17:38 -0500)]
Make __glXCloseDisplay static instead of prototyping it to avoid warning.
Kristian Høgsberg [Sat, 8 Mar 2008 22:19:39 +0000 (17:19 -0500)]
Move libGL install target to the libGL Makefile.
Kristian Høgsberg [Fri, 7 Mar 2008 06:49:33 +0000 (01:49 -0500)]
Simplify LIBGL_DRIVERS_PATH walking.
Kristian Høgsberg [Fri, 7 Mar 2008 06:37:08 +0000 (01:37 -0500)]
Simplify dri loading code by eliminating dlopen "cache".
No need to jump through hoops to track __DRIdrivers and avoid dlopening the
same .so more than twice, dlopen() does this internally. Besides, we
were already bypassing this and dlopening drivers for each screen,
whether or not they were already dlopened.
Kristian Høgsberg [Fri, 7 Mar 2008 05:45:54 +0000 (00:45 -0500)]
libGL: Consolidate DRI initialization in dri_glx.c
Move a lot of code over from glx_ext.c.
Dan Nicholson [Fri, 7 Mar 2008 19:48:09 +0000 (11:48 -0800)]
autoconf: Print GCC include path directly and be more robust using it
Rather than constructing the GCC include path from `-print-search-dirs',
we can get the path directly from `-print-file-name=include'. This is
used in the Linux kernel build, for example. If no output is returned
from the command, then we don't append a -I path the the makedepend
options.
Kristian Høgsberg [Fri, 7 Mar 2008 18:45:09 +0000 (13:45 -0500)]
[intel] Only enable GL_EXT_texture_sRGB on i965.
Fixes #14799.
Zou Nan hai [Fri, 7 Mar 2008 07:11:28 +0000 (15:11 +0800)]
[i965] fix fd.o bug #11471 and #11478
1. Follow EXT_texture_rectangle with YCbCr texture
2. swap UV component for MESA_FORMAT_YCBCR
Xiang, Haihao [Fri, 7 Mar 2008 01:48:11 +0000 (09:48 +0800)]
i965: use RGB565 to render a bitmap if Depth is 16
Xiang, Haihao [Thu, 6 Mar 2008 05:20:57 +0000 (13:20 +0800)]
i965: Fix double free issue to pass glean/maskedClear test
Xiang, Haihao [Thu, 6 Mar 2008 01:41:41 +0000 (09:41 +0800)]
i965:fix segfault issue when clearing the window which
is created with mode GLUT_SINGLE|GLUT_RGB|GLUT_DEPTH.
This issue is introduced by
20b8bff49cba3e8246e29004c5ff38f231d589ff
Eric Anholt [Wed, 5 Mar 2008 22:14:54 +0000 (14:14 -0800)]
[intel] Add a driconf option to cache freed buffer objects for reuse.
This is defaulted off as it has potentially large memory costs for a modest
performance gain. Ideally we will improve DRM performance to the point where
this optimization is not worth the memory cost in any case, or find some
middle ground in caching only limited numbers of certain buffers. For now,
this provides a modest 4% improvement in openarena on GM965 and 10% in openarena
on GM945.
Christoph Brill [Tue, 4 Mar 2008 20:52:49 +0000 (21:52 +0100)]
r300: replace some hard coded mask by define in stencil area
Christoph Brill [Tue, 4 Mar 2008 20:37:56 +0000 (21:37 +0100)]
r300: Fix some issues with masks in stencil buffer area
Kristian Høgsberg [Tue, 4 Mar 2008 00:08:26 +0000 (19:08 -0500)]
[dri2] Add tail pointer to reemitDrawableInfo callback.
When the DRI doesn't parse the event buffer for a while, the X server
may overwrite data that the driver didn't get a chance to look at. The
reemitDrawableInfo callback requests that the X server reemit all info
for the specified drawable. To make use of this, the drive needs to know
the new tail pointer so it know where to start reading from.
Kristian Høgsberg [Tue, 4 Mar 2008 00:04:22 +0000 (19:04 -0500)]
[dri2] Optimize event parsing to skip obsolete events.
This also fixes the problem where the X server does multiple resizes before
the DRI driver gets the events. The obsolete buffer attach events then
reference already destroyed buffer objects.
Kristian Høgsberg [Tue, 4 Mar 2008 00:07:49 +0000 (19:07 -0500)]
[intel] Silence unused variable warning when compiling for i965.
Patrice Mandin [Sun, 2 Mar 2008 11:16:23 +0000 (12:16 +0100)]
nouveau: compilation fixes
Roland Scheidegger [Sat, 1 Mar 2008 01:56:08 +0000 (02:56 +0100)]
state.depth.range alpha value should be 1, not 0 (bug #14733)
Kristian Høgsberg [Fri, 29 Feb 2008 21:42:29 +0000 (16:42 -0500)]
Update libGL DRI loader to latest DRI interface changes.
Kristian Høgsberg [Fri, 29 Feb 2008 20:33:40 +0000 (15:33 -0500)]
glxgears: oops, remove accidental commit of glFinish() hack.
Kristian Høgsberg [Thu, 28 Feb 2008 15:32:28 +0000 (10:32 -0500)]
Use __DRIextension mechanism providing loader functionality to the driver.
Instead of passing in a fixed struct, the loader now passes in a list
of __DRIextension structs, to advertise the functionality it can provide
to the driver. Each extension is individually versioned and can be
extended or phased out as the interface develops.
Kristian Høgsberg [Tue, 26 Feb 2008 04:37:23 +0000 (23:37 -0500)]
Reduce the versioning madness required to create a DRI2 screen.
Right now the DRI2 screen constructor takes 3 different versions:
DRI, DDX and DRM. This is mostly useless, though:
DRI: The DRI driver doesn't actually care about the DRI protocol,
it only talks to the loader, which in turn speaks DRI protocol. Thus,
the DRI protocol version is of not interest to the DRI driver, but it
needs to know what functionality the loader provides. At this point
that's reflected in the __DRIinterfaceMethods struct and the
internal_version integer.
DDX: The DDX version number is essentially used to track extensions
to the SAREA. With DRI2 the SAREA consists of a number of versioned,
self-describing blocks, so the DDX version is no longer interesting.
DRM: We have the fd, lets just ask the kernel ourselves.
Kristian Høgsberg [Fri, 29 Feb 2008 20:04:26 +0000 (15:04 -0500)]
intel: Set the lock flag early to avoid deadlock.
Another regression from the intel_context.c merge.
Xiang, Haihao [Fri, 29 Feb 2008 03:15:02 +0000 (11:15 +0800)]
i965: use _Current pointer instead of Current pointer.
fix double free issue(bug#14710). It also corrects glsl/bitmap demo behavior.
Eric Anholt [Fri, 29 Feb 2008 00:04:54 +0000 (16:04 -0800)]
[965] Fix conditional sequencing to allow the frame_buffer_texobj case.
Previously the frame_buffer_texobj case would have been bound as a normal
texture, at best resulting in no surface data being associated with it.
Eric Anholt [Thu, 28 Feb 2008 23:45:46 +0000 (15:45 -0800)]
[intel] Bug #14575: Unmap buffers when deleting/dataing as required.
Otherwise, we would assertion error when doing the final unreference of the
buffer with an outstanding map (catching the memory leak).
Christoph Brill [Thu, 28 Feb 2008 21:33:46 +0000 (22:33 +0100)]
r300: R5xx and R3xx use different registers for RS_IP and RS_INST
These changes are taken from the xf86-video-ati driver. They update the header
file accordingly and also remove some UNKOWN variables.
Eric Anholt [Thu, 28 Feb 2008 21:18:12 +0000 (13:18 -0800)]
[965] Bug #9151: make fragment.position return window coords not screen coords.
Eric Anholt [Wed, 27 Feb 2008 19:01:28 +0000 (11:01 -0800)]
[965] Fix serious copy'n'paste failure in brw state dumping.
Brian [Thu, 28 Feb 2008 15:03:04 +0000 (08:03 -0700)]
added git on Windows section
Brian [Thu, 28 Feb 2008 01:13:21 +0000 (18:13 -0700)]
a few words about how the cell driver works.
Xiang, Haihao [Thu, 28 Feb 2008 13:27:16 +0000 (21:27 +0800)]
mesa: separate shader program object from shader object.
Currently a callback delete_shader_cb is used for deleting shader
and shader program objects. Mesa detaches all attached shaders in
_mesa_free_shader_program_data when deleting shader program objects. However
it is likely that these shaders have been freed in _mesa_free_shader,
which will result in unexpected behaviour. This fix uses a single callback for
shader program objects and deletes shader program objects before shader objects.
Zou Nan hai [Thu, 28 Feb 2008 08:49:38 +0000 (16:49 +0800)]
[intel] fix compressed image height
José Fonseca [Thu, 28 Feb 2008 07:34:32 +0000 (16:34 +0900)]
Convert crlf->lf line endings.
Windows/DOS users should enable core.autocrlf from now on:
git config --global core.autocrlf true
Jose Fonseca [Thu, 28 Feb 2008 03:34:01 +0000 (12:34 +0900)]
Disable autocrlf for Visual Studio project files.
Brian [Thu, 28 Feb 2008 01:01:37 +0000 (18:01 -0700)]
document cell -DSPU_MAIN_PARAM_LONG_LONG flag
Christoph Brill [Wed, 27 Feb 2008 21:06:38 +0000 (22:06 +0100)]
r300: properly handle GL_POINT in glPolygonMode
Until now the polygon mode was completely turned of when you used
GL_POINT. For me it looked buggy to completely disable the polygon
mode for FrontMode and BackMode if any of these was GL_POINT.
Kristian Høgsberg [Wed, 27 Feb 2008 16:19:29 +0000 (11:19 -0500)]
intel: Always use intelInitExtensions() for initializing extensions.
Markus Amsler [Wed, 27 Feb 2008 01:06:17 +0000 (02:06 +0100)]
r300: add artificial output to match fragment program input
Markus Amsler [Wed, 27 Feb 2008 01:04:06 +0000 (02:04 +0100)]
mesa: set input read only on success
Kristian Høgsberg [Tue, 26 Feb 2008 22:57:41 +0000 (17:57 -0500)]
i965: Setup framebuffer texture in meta_draw_region.
With DRI2 we there is no screen region until a drawable is bound to
the context. Set up the framebuffer texture in meta_draw_region instead
which should also handle the case where the draw region changes as a
result of resizing a redirected window or resizing the screen.
Eric Anholt [Tue, 26 Feb 2008 21:28:51 +0000 (13:28 -0800)]
[965] Don't segfault on INTEL_DEBUG=batch when a surface buffer is NULL.
Eric Anholt [Thu, 21 Feb 2008 18:42:07 +0000 (10:42 -0800)]
[965] remove dead brw_parameter_list_state_flags.
This was replaced by Mesa core code.
Christoph Brill [Tue, 26 Feb 2008 21:10:54 +0000 (22:10 +0100)]
[r300] fix wow-pinkness regression. Fixed by Markus Amsler
Christoph Brill [Tue, 26 Feb 2008 20:40:55 +0000 (21:40 +0100)]
[r300] Document based on chapter 10.4 and 10.5
This commit adds most of the graphics backend registers and of the rasterizer
registers. Again, some minor bugs were found and marked with TODO or even
fixed.
Zou Nan hai [Tue, 26 Feb 2008 09:20:12 +0000 (17:20 +0800)]
[i915] fix texture size exceed limit case when running celestia
Thomas Hellstrom [Tue, 26 Feb 2008 08:19:27 +0000 (09:19 +0100)]
[intel] Handle -EAGAINs correctly in execbuffer.
Dont stop on fence creation errors.
Kristian Høgsberg [Tue, 26 Feb 2008 03:24:09 +0000 (22:24 -0500)]
A few more fixes to the dlsym() fix.
Argh, seriously, I did test that, I just forgot to amend the commit
before pushing.
Dave Airlie [Tue, 26 Feb 2008 02:28:45 +0000 (12:28 +1000)]
dri2: dlsym requires some quotes..
Kristian Høgsberg [Tue, 26 Feb 2008 01:02:25 +0000 (20:02 -0500)]
Use dlsym() to avoid referencing __dri2DriverInitScreen.
Sort-of a stop-gap workaround. There are a couple of nicer ways to
do this that doesn't require dlfcn.h, but they're more invasive.
Kristian Høgsberg [Mon, 25 Feb 2008 23:50:26 +0000 (18:50 -0500)]
autoconf: Add gcc search patch to MKDEP_OPTIONS to eliminate warnings.
Also, use -include to avoid error message when make initially fails to
include the non-existent depend file.
Kristian Høgsberg [Mon, 25 Feb 2008 22:34:24 +0000 (17:34 -0500)]
intel: Add missing include file to silence last couple of warnings.
Kristian Høgsberg [Mon, 25 Feb 2008 22:28:09 +0000 (17:28 -0500)]
intel: Initialize color and spec arrays in LOCAL_VARS macro.
Avoids spamming compilation output with tons of warnings about
use of possibly uninitialized variables.
Kristian Høgsberg [Mon, 25 Feb 2008 21:52:35 +0000 (16:52 -0500)]
Change GetCompressedTexImage in dd_function_table to not take const pointers.
They're changed by the intel driver implementation and thus not const.
Fixes compilation warning.
Kristian Høgsberg [Mon, 25 Feb 2008 21:14:37 +0000 (16:14 -0500)]
Remove GetMSC DriverAPI function.
The DriverAPI is internal to the DRI drivers and GetDrawableMSC
obsoletes GetMSC. Also, since the DRI driver interface has not yet
been released, just drop the getMSC function from the DRI interface
instead using the ABI preserving version mechanism.
Finally, using void pointer privates in the DRI interface is not allowed,
always pass the actual types around (__DRIdrawable in this case) to
enhance type safety and readability of the code.
Kristian Høgsberg [Mon, 25 Feb 2008 20:36:42 +0000 (15:36 -0500)]
Remove now unused setTexOffset from __DriverAPIRec.
Oliver McFadden [Mon, 25 Feb 2008 23:18:15 +0000 (23:18 +0000)]
r300: Corrected a cache flush bug in r300EmitCacheFlush.
Corrects commit
74ae5a875d6b3f1ffea2ac09c6ef0062d4980f15.
Oliver McFadden [Mon, 25 Feb 2008 22:48:26 +0000 (22:48 +0000)]
r300: Moved the state code into separate functions.
Christoph Brill [Mon, 25 Feb 2008 22:20:23 +0000 (23:20 +0100)]
[r300] revert complete stupid changes
Christoph Brill [Mon, 25 Feb 2008 22:08:02 +0000 (23:08 +0100)]
[r300] Document registers completed 10.1 to 10.3
Christoph Brill [Mon, 25 Feb 2008 22:04:17 +0000 (23:04 +0100)]
[r300] Add more register from the AMD spec
Christoph Brill [Mon, 25 Feb 2008 21:55:13 +0000 (22:55 +0100)]
[r300] Document POLY_MODE and add some TODOs that might have triggered some bugs
Christoph Brill [Mon, 25 Feb 2008 21:45:36 +0000 (22:45 +0100)]
[r300] Document some registers in the POINT area
Christoph Brill [Mon, 25 Feb 2008 21:36:16 +0000 (22:36 +0100)]
[r300] Further document and add register definitions (found bugs in LINE handling)
Christoph Brill [Mon, 25 Feb 2008 20:48:25 +0000 (21:48 +0100)]
[r300] Sync fog color register names
Christoph Brill [Mon, 25 Feb 2008 20:44:11 +0000 (21:44 +0100)]
[r300] Sync fog register names to the AMD spec
Christoph Brill [Mon, 25 Feb 2008 20:35:13 +0000 (21:35 +0100)]
[r300] Further document FG_ALPHA_FUNC (renamed from R300_PP_ALPHA_TEST) and finally add some information to R300_RB3D_DSTCACHE_CTLSTAT
Christoph Brill [Mon, 25 Feb 2008 20:04:23 +0000 (21:04 +0100)]
[r300] Document R300_RB3D_COLORMASK properly and rename it to RB3D_COLOR_CHANNEL_MASK
Christoph Brill [Mon, 25 Feb 2008 19:54:23 +0000 (20:54 +0100)]
[r300] Add register definitions based on AMD spec starting with chapter 10
Christoph Brill [Mon, 25 Feb 2008 19:30:40 +0000 (20:30 +0100)]
[r300] Add some more register from the AMD spec in the area of AARESOLVE
Christoph Brill [Mon, 25 Feb 2008 19:24:00 +0000 (20:24 +0100)]
[r300] Sync the names for Z-Buffer registers with the AMD spec
This patch tries to get the Z-Buffer register names in sync with the AMD spec
so that talking to AMD engineers is much simpler.
Christoph Brill [Mon, 25 Feb 2008 19:20:59 +0000 (20:20 +0100)]
[r300] Add more struct names for r300_hw_state
Christoph Brill [Mon, 25 Feb 2008 19:18:10 +0000 (20:18 +0100)]
[r300] rename all unkown structs r300_hw_state to readable names
Christoph Brill [Mon, 25 Feb 2008 19:15:20 +0000 (20:15 +0100)]
[r300] Add RB3D_DISCARD_SRC_PIXEL_LTE_THRESHOLD and some HyperZ defintions
Christoph Brill [Mon, 25 Feb 2008 19:11:46 +0000 (20:11 +0100)]
[r300] Replace more magic number by register definitions from AMD
Christoph Brill [Mon, 25 Feb 2008 19:08:33 +0000 (20:08 +0100)]
[r300] clean some more magic registers based on AMD spec
Christoph Brill [Mon, 25 Feb 2008 19:03:35 +0000 (20:03 +0100)]
[r300] Update some magic registers to real names
Christoph Brill [Mon, 25 Feb 2008 19:01:27 +0000 (20:01 +0100)]
[r300] Document Z-buffer related register ZB_BW_CNTL
Christoph Brill [Mon, 25 Feb 2008 18:50:05 +0000 (19:50 +0100)]
[r300] document VAP_CNTL based on AMD spec
Christoph Brill [Mon, 25 Feb 2008 18:39:16 +0000 (19:39 +0100)]
[r300] Document some of the wild guesses in VAP_OUTPUT_VTX_FMT based on AMD spec