summaryrefslogtreecommitdiff
path: root/src/i830_dri.c
AgeCommit message (Collapse)Author
2008-10-19Remove accidental 'return;' left at the top of I830DRIInitBuffersKeith Packard
I was testing the behaviour of the XAA-based DRI buffer drawing code for tiled buffers and accidentally left I830DRIInitBuffers disabled. Signed-off-by: Keith Packard <keithp@keithp.com> (cherry picked from commit c25437a69490b09acff335a81a38aa540f0822f5)
2008-10-18Handle differently tiled front/back/depth/third in DRI window managementKeith Packard
When moving or clearing the extra buffer contents associated with DRI windows, the XAA code needs to see which buffer is being manipulated in the Setup functions to program the tiling values correctly. Calling I830SelectBuffer and not then calling I830Setup... would result in mis-tiled rendering. Signed-off-by: Keith Packard <keithp@keithp.com> Signed-off-by: Eric Anholt <eric@anholt.net> (cherry picked from commit 7ddea0447c8972104d43cd7966f5ce89b4cca20c)
2008-03-30Fix obviously wrong verification of DRI_SUPPORTS_CLIP_NOTIFY.Matthias Hopf
(cherry picked from commit 3414313ac9d0faa95797ee18cc33afa231ec7581)
2008-03-18Compile warning fixes.Paulo Cesar Pereira de Andrade
Move some declarations and don't declare an extra variable with the same name, to fix warnings about mixed declarations and code.
2008-03-14Change OUT_RING and similar calls to OUT_BATCH for batchbuffer mergeEric Anholt
2008-03-11Remove i830+ driver's use of CARD*/INT* types for great justice.Eric Anholt
Several uses are actually left, which are determined by the X Server interfaces we're implementing.
2008-01-30hardware status page initialization reworkZhenyu Wang
Order hardware status page setup more reasonable after all memory bound, in case new chipset requires non-stolen page and that could be bound then. Also clean up drm irq handler install function, and put first install in starting stage later than status page setup, so we won't make device cry for uninitialized status page.
2008-01-30Wrap up chipsets which needs graphics address for status pageZhenyu Wang
Also add support on new chipset.
2007-11-28Replace ALLOCATE_LOCAL/DEALLOCATE_LOCAL with xalloc/xfreeZhenyu Wang
2007-11-14Don't stop ring before restoring hw stateJesse Barnes
Some of the hw state restoration callbacks may want to use the ring for various things like stopping video playback, so leave the ring enabled until we get back from RestoreHWState. Also rename the functions so that their purpose is clearer and remove a couple of redundant lines.
2007-11-13Remove harmless error messageJesse Barnes
This really isn't an error in general. If vblank pipe setup really fails for some reason, it'll be obvious enough when the user tries to use vblank events for something. Patch from Hong Liu.
2007-10-11Delay SAREA and mapping setup until EnterVT when using the memory manager.Eric Anholt
Otherwise, we would use uninitialized offsets in the early setup.
2007-10-11Rework DRI buffer mappings and sarea setup to allow for moving buffers.Eric Anholt
While this has been a desired feature for some time, to allow for reallocation of the front buffer, it was made more necessary by the desire to avoid requiring a NO_MOVE buffer type in TTM because buffer objects may not be left pinned over VT switch. This is a step towards making those buffers movable and resizable.
2007-09-28Go back to using old drm_i915_flip_t field nameJesse Barnes
This field shouldn't have been renamed in the first place. Go back to using the old name so that the tree is backward and forward compatible again.
2007-09-24Remove logic for supporting i915tex_dri.so vs. i915_dri.so.Eric Anholt
There can be only one.
2007-09-20Merge remote branch 'origin/master' into buffer-objectsEric Anholt
Conflicts: src/i830.h src/i830_driver.c
2007-09-10Only swap planes and pipes if DRM supports itJesse Barnes
We want to associate plane A with pipe B on pre-965 mobile chips, since that's the only way to get framebuffer compression on the builtin LVDS on those platforms. However, if we do this swapping and DRM isn't aware of it, we may end up requesting vblank events for the wrong pipe, or setting up SAREA buffer swap state incorrectly. This mod checks whether DRM supports the new plane->pipe swapping behavior, and only enables the swapping if so. This should fix the bugs Lukas found and debugged. Reviewed by Michel Danzer.
2007-08-26Change DRI interface to fill in PCI data from new libpciaccess structure.Keith Packard
The DRI interface requires bus identification for each DRI object; pull that data from the libpciaccess structures as necessary.
2007-08-16Merge branch 'master' into buffer-objectsEric Anholt
Conflicts: src/i830_dri.c src/i830_memory.c
2007-08-15intel: don't setup texOffsetStart unless using EXADave Airlie
2007-08-10Attempt to fix several front buffer tiling failure cases.Eric Anholt
Front buffer tiling is now disabled with G965 and XAA. Some of the acceleration that i830_xaa.c does can't be supported on tiled buffers. Adds a tiling field to struct i830_memory, and uses it instead of separate variables for each potential tiled buffer.
2007-08-02Mark DRI buffers as shareable, and pass their buffer handles through the SAREA.Eric Anholt
2007-07-27Use the dontMapFramebuffer option available with DRIINFO 5.4.Eric Anholt
If not available, AIGLX init will fail. While here, simplify DRIINFO tests since we refuse to init with a version queried less than the version we compiled against, anyway.
2007-07-25When TTM is available, use it instead of manual AGP allocations when possible.Eric Anholt
This is a step towards being able to expose buffer objects through the screen private to DRI clients, instead of having them have to use the fake buffer object type. This fails in two ways. First, the kernel memory manager is not currently suitable for doing the physical allocations we need, so we still use AGP for those. Additionally, the DRI lock can't be initialized early enough for us, so these buffer object allocations fail. This will be fixed by improving the DRM interface.
2007-06-13Revert "Replace failure-prone configure test for fresh libdrm with a simple ↵Eric Anholt
ifndef." This reverts commit c2b130354aecffbeb2a2d23c7371461feaf5766a. Sadly, a non-working DRM_IOCTL_I915_FLIP already existed.
2007-06-12Fix context switching between DRI and X.Eric Anholt
Now, all 3D pipeline consumers in the driver just call IntelEmitInvariantState(), which handles basic state setup, the caching of that state setup, and notifying DRI clients. This also removes a mistaken idle wait in the Render code which was papering over the brokenness in the context switching.
2007-06-12Replace failure-prone configure test for fresh libdrm with a simple ifndef.Eric Anholt
2007-06-05Add support for the G33, Q33, and Q35 chipsets.Wang Zhenyu
These chipsets require that the hardware status page be referenced by an offset in the GTT rather than a physical memory address, so the X Server allocates it rather than the DRM.
2007-05-22i830: Provide new DRI texOffsetStart hook when available with EXA.Michel Dänzer
2007-05-03Disable vblank interrupts when no DRI clients are running.Eric Anholt
(cherry picked from commit 6621dd71ada839f4c1742e9e5b272e924cee21d9)
2007-04-02make warning info only so ppl don't go reporting stupid bugsDave Airlie
2007-03-19Fix build when DAMAGE is not defined.Michel Dänzer
2007-03-17Elide I830DRIClipNotify for older DRI versions.Keith Packard
I830DRIClipNotify is passed to newer versions of DRI; don't include it in the server when building against older versions.
2007-03-14Make sure the legacy texture area is there when needed.Michel Dänzer
This currently only matters when the DRM memory manager is not available and Option "Legacy3D" "off" is specified, but that hasn't always been the case and might change again in the future.
2007-03-12Fix build against released libdrm.Michel Dänzer
2007-03-12Defer flipping pages back to normal until the end of the DRI block handler.Michel Dänzer
Doing it earlier can result in the wrong page being visible, giving the appearance of a frozen X server.
2007-03-12Disable page flipping if the DRM is older than 1.9.Michel Dänzer
Older versions don't support the functionality we need.
2007-03-12Fix attempt to flip pages back to normal when the last 3D window disappears.Michel Dänzer
When this succeeds, 2D rendering does not have to be synchronized to back buffers until the next 3D window appears.
2007-03-12Remove unused have3DWindows from pI830.Michel Dänzer
2007-03-11fixup brace alignment for older X.orgDave Airlie
2007-03-09Merge remote branch 'origin/master' into i830-pageflipMichel Dänzer
Conflicts: src/i830_dri.c
2007-03-06Remove usage of 'shadow' module. Use xf86CrtcScreenInit.Keith Packard
With the new mode setting code, rotation is handled outside of the driver, so the old usage of the 'shadow' module is no longer needed. Code to initialize the crtc structures has been moved out of the driver and into the modes code.
2007-03-06Fix build failure.Michel Dänzer
Not sure how I missed this before... Thanks to Todd Merrill for reporting.
2007-03-06Fix some conditionals related to triple buffering.Michel Dänzer
Guard code that dereferences pI830->third_buffer with tests for that instead of pI830->TripleBuffer. It could happen that we want to enable triple buffering but (temporarily) can't because the third buffer couldn't be allocated.
2007-03-05Merge remote branch 'origin/master' into i830-pageflipMichel Dänzer
Conflicts: src/i830.h src/i830_dri.c src/i830_dri.h src/i830_driver.c src/i830_memory.c src/i830_xaa.c
2007-03-05Be more verbose when page flipping can't be enabled for various reasons.Michel Dänzer
2007-02-28I830DRIClipNotify: Fix initialization of crtcBox[1].[xy]2.Michel Dänzer
2007-02-26Bug #9604: Align the sizes of allocations to page increments as well.Eric Anholt
Without this, the 965 DRI driver fell over when pitch * height wasn't page-size aligned. Since the allocator only allocates at page-aligned offsets anyway this shouldn't hurt us at all.
2007-02-26Fix some texture memory allocation issues.Eric Anholt
2007-02-23Move memory allocation to ScreenInit rather than PreInit.Eric Anholt
This lets us do memory allocation just once rather than having several passes (as long as things succeed), avoids trouble with zaphod mode, and will let us do better automatic sizing of allocations soon.