summaryrefslogtreecommitdiff
path: root/src/mesa/drivers/dri/unichrome/via_ioctl.c
AgeCommit message (Collapse)Author
2008-09-18mesa: added "main/" prefix to includes, remove some -I paths from ↵Brian Paul
Makefile.template
2008-02-29Use __DRIextension mechanism providing loader functionality to the driver.Kristian Høgsberg
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.
2007-10-30More vblank cleanups.Michel Dänzer
* Fix crash at context creation in most drivers supporting vblank. * Don't pass vblank sequence or flags to functions that get passed the drawable private already. * Attempt to initialize vblank related drawable private fields just once per drawable. May need more work in some drivers.
2007-10-29Refactor and fix core vblank supportJesse Barnes
Consolidate support for synchronizing to and retrieving vblank counters. Also fix the core vblank code to return monotonic MSC counters, which are required by some GLX extensions. Adding support for multiple pipes to a low level driver is fairly easy, the Intel 965 driver provides simple example code (see intel_buffers.c:intelWindowMoved()). The new code bumps the media stream counter extension version to 2 and adds a new getDrawableMSC callback. This callback takes a drawablePrivate pointer, which is used to calculate the MSC value seen by clients based on the actual vblank counter(s) returned from the kernel. The new drawable private fields are as follows: - vblSeq - used for tracking vblank counts for buffer swapping - vblFlags - flags (e.g. current pipe), updated by low level driver - msc_base - MSC counter from the last time the current pipe changed - vblank_base - kernel DRM vblank counter from the last time the pipe changed Using the above variables, the core vblank code (in vblank.c) can calculate a monotonic MSC value. The low level DRI drivers are responsible for updating the current pipe (by setting VBLANK_FLAG_SECONDARY for example in vblFlags) along with msc_base and vblank_base whenever the pipe associated with a given drawable changes (again, see intelWindowMoved for an example of this). Drivers should fill in the GetDrawableMSC DriverAPIRec field to point to driDrawableGetMSC32 and add code for pipe switching as outlined above to fully support the new scheme.
2007-03-18screen offset changes, bug 9965Miguel Marte
2006-11-10Implement GLX_SGI_make_current_readIan Romanick
Discontinue use of the old GetBuffeSize interface. Track both the current read-drawable and the current draw-drawable. After moving some context state to via_rednerbuffer, GLX_SGI_make_current_read can be enabled. The extension works, but the wincopy test prodcues a black window for the destination window. After messing around with the window and looking at the code, I believe the problem is in the handling of buffer swap requests on a drawable that isn't the current draw-drawable.
2006-11-01Remove x/y/width/height parameters from Clear functions.Brian Paul
2006-10-18Want to stop passing x/y/width/height to Clear() function.Brian Paul
The coordinates need to be computed after we've got the hw lock. Code updated to: 1. Ignore all/x/y/width/height/ params passed to Clear func. 2. Pass 0,0,0,0,0 to _swrast_Clear() until they're totally removed.
2006-05-08updates to dri drivers for recent stencil changesKeith Whitwell
2005-11-16Bring in last minute 6_4 branch changes to the unichrome driverThomas Hellström
to the trunk.
2005-09-03SetBuffer, renderbuffer changesBrian Paul
2005-07-26Fixes the glXGetProcAddress portion of the interface. Most of the functionsIan Romanick
that are currently obtained via glXGetProcAddress and all of the XF86DRI functions are replaced with a funciton table. This table will be passed to __driCreateNewScreen. One of the functions in the table is getProcAddress. This allows some loaders to expose functionality not in all loaders. This will be immediatly used for glxEnableExtension (formerly known to drivers as __glXScrEnableExtension). libGL (and in the future libglx) expose this function so that drivers can enable GLX extensions. libEGL should exposed eglEnableExtension to enable EGL extensions. The same function cannot be used for both because the extensions have different names and (possibly) different semantics. Drivers can optionally use one, both, or neither. The key parts are in the __DRIinterfaceMethodsRec structure in dri_interface.h. A pointer to one of these structures is passed into __driCreateNewScreen. Because of this, the version of the API is bumped to 20050725. Since the previous version(s) were never in a release, their existance is erased. I was actually a little surprised by how much code this cuts from the drivers. A lot of glXGetProcAddress calls disappear, and a lot of version checks go with them. Nice. The one thing I'm not sure of is removing __glXInitialize. For some reason that function was in the glXGetProcAddress table, but *nothing* in the Mesa tree used it. Did something with DRI conf. use this function? It seems odd...
2005-05-04Major check-in of changes for GL_EXT_framebuffer_object extension.Brian Paul
Main driver impacts: - new code for creating the Mesa GLframebuffer - new span/pixel read/write code Some drivers not yet updated/tested.
2005-03-22merge unichrome changes from branchKeith Whitwell
2005-01-14Get PolygonStipple working.. (or seemingly too). It seems to do the rightAlan Hourihane
things now given the demos I've used and passes glean's paths test.
2005-01-1416bpp doesn't support masked clears, so fallback when they're enabled.Alan Hourihane
2005-01-13Fix glean scissor testAlan Hourihane
2005-01-12Don't emit HC_SubA_HSPXYOS on CLE266.Keith Whitwell
2005-01-11Add a big nasty fallback for AlphaTest -- seems to always be wrongKeith Whitwell
on CLE266 because Z values are written even for fragments which fail the test.
2005-01-06Small Unichrome fixes:Thomas Hellström
1. Unlock hardware before aborting and dumping DMA buffers. Otherwise display system may deadlock. 2. Fix DMA init IOCTL call that got mixed up in one of the previous commits. 3. Fix AGP command alignment
2005-01-05make alloc-dma functions inline, rearrange some debugKeith Whitwell
2005-01-05Bring VIA driver up-to-date with regard to drm_*_t changes and removeAlan Hourihane
the xf86drmVIA.[ch] files. Bring in the IRQ handler and Ring buffer code, but ring buffer is disabled as it is with the Xserver. It certainly locks up the CLE266.
2005-01-04Change to use the t_vertex.c mechanisms for building vertices,Keith Whitwell
including Felix's ptex code. Re-enable some assembly for performance.
2004-12-30Get scissor test working again. Passes glean scissor test.Keith Whitwell
2004-12-30Simplify viaBlit a bit more.Keith Whitwell
Implement masked clears.
2004-12-29Fix some wrapping bugs in the last commit. Probably there are moreKeith Whitwell
remaining.
2004-12-29Simplfy clear() and swapbuffers() code.Keith Whitwell
Fix various mishandling of cliprects. Allow multiple primitives to be emitted to a single dma buffer, which was largely impossible previously. Re-enable the fast unclipped render stage.
2004-12-29Don't pingpong cliprects through sarea on CopyBuffer().Keith Whitwell
2004-12-29Large updateKeith Whitwell
- Remove via duplicates of shared template files - Update driver to work with current versions of the above - Rework dma accounting - Rework emitting to dma to use a consistent set of macros The handling of cliprects in the driver is still pretty questionable.
2004-12-23Chop out more dead code.Keith Whitwell
Get the drawXoff adjustment working a bit better. Seems to pass the glean orthoPos tests.
2004-12-22Fix merge error.Keith Whitwell
2004-12-22Remove dead code.Keith Whitwell
Fix 24/8 depth/stencil visuals.
2004-12-21Remove debug code which referenced an old global variable.Keith Whitwell
2004-12-21Push a number of global variables into the viaContext struct.Keith Whitwell
Remove the bogus 'current_vmesa' pointer.
2004-12-21Add missing swap-control calculations.Keith Whitwell
Remove debug printf.
2004-12-21Add vsync swapbuffers. This waits on the irq so gears run in this modeKeith Whitwell
will have a very low cpu utilization (and also a very low framerate). Fix up the pageflipping code. This works now but is totally oblivious to the X server (ie. it works but it's broken). Turned off by a #define.
2004-12-20Remove #ifdef DEBUG's in code, but still allow compiler to remove debugKeith Whitwell
code if DEBUG not defined.
2004-12-15Unichrome DRI:Thomas Hellström
Updated the driver to the new VIA security mechanisms in DRM. All command submissions now passes through DRM ioctls. If the DRM AGP ring-buffer is not enabled, it will use a DRM mechanism for submitting commands to the hardware via a PCI bus mechanism. Removed all direct write accesses to the hardware. Among other things the VQ was previously turned off for the PCI path, apparently for Tuxracer. That seemed unneeded and was removed. No visible impact on Tuxracer. Abstracted all buffer blit operations in via_ioctl.c. The blitter context is now reprogrammed before each blitting operation. Updated driver date and drm version requirement. (Bugzilla Bug #1950, Thomas Hellström)
2004-10-08Massively cleaned up the code that calculates front/back/depth bufferIan Romanick
pitch and size. Cut out a bunch of dead code. This fixes bugzilla #1555.
2004-10-02added support for GL_ARB_draw_buffersBrian Paul
2004-05-08Don't mix variable definitions and other statements (fixed build on oldEric Anholt
compiler).
2004-03-11Adjustments to make everything use IOCTL/sarea defines in DRM insteadJon Smirl
of glx/mini. removes glx/mini/drm.h glx/mini/sarea.h
2004-02-23updates from Erdi ChenBrian Paul
2004-01-30Via Unichrome/cle266 driver (Erdi Chen)Brian Paul