summaryrefslogtreecommitdiff
path: root/src/i830_exa.c
AgeCommit message (Collapse)Author
2008-04-23Fix warning with i830_exa_pixmap_is_offscreen() for exa minor >=2Zhenyu Wang
2008-04-19Check pitch for EXA operationZhenyu Wang
2D pitch limit applys to all chips. Pre-965 chip has 8KB pitch limit for 3D. 965 supports max pitch by current exa (128KB).
2008-04-18Revert "Set EXA pitch limit for pre-965 chipset"Zhenyu Wang
This reverts commit 602613e397bdf0cf701a6a7748f9343875864466. Pre-965 chipset actually have different pitch limit for 2d and 3d engine. For 2D blit, it's 32KB max. For 3D, it's 8KB max. Don't limit it to minimal which fallback 2D operations (noteable copy slow).
2008-04-17Set EXA pitch limit for pre-965 chipsetZhenyu Wang
2008-03-24Transformed coord computed using floats. Don't move bilinear composite dst.Keith Packard
The homogeneous coordinate computation in the core server cannot be used for many legal matrices as it overflows. Just use floats in the driver; faster and avoids troubles. When compositing with bilinear filter, don't push the dst coordinates around as that makes the output blurry when pixels are aligned.
2008-03-18Handle projective transforms on 9xx for Composite.Keith Packard
Projective transforms require un-normalized texture coordinates and the use of the texldp instruction. The coordinates are passed as x/y/z/w (the z is unused, but there isn't a vertext format for just x/y/w).
2008-03-18Add i830_transform_is_affine and i830_get_transformed_coordinates_3d.Keith Packard
These are needed to deal with projective transforms in the composite operation.
2008-03-14Change OUT_RING and similar calls to OUT_BATCH for batchbuffer mergeEric Anholt
2008-03-14Remove h0h0 UploadToScreen implementation that used pattern blits.Eric Anholt
It never worked and was never that hot of an idea. Most of the motivation is gone with glyph pixmaps anyway.
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.
2007-11-15remove unnecessary i830_reg.h includesZhenyu Wang
i830_reg.h only contains 3d engine cmds for 8XX chips.
2007-09-21Merge branch 'buffer-objects'Eric Anholt
This branch changes i830_memory.c's allocator to use TTM when available to allocate memory, which also allows TTM to control almost the entire aperture. As a result, our front/back/depth buffers are created as real buffer objects, which may be used by the DRI driver instead of the fake buffer type in TTM. The updated DRM with bo_set_pin ioctl is required, to allow us to pin and unpin our buffers as needed.
2007-09-20Merge remote branch 'origin/master' into buffer-objectsEric Anholt
Conflicts: src/i830.h src/i830_driver.c
2007-09-20Fix pixmap offsetHong Liu
Use consistent interface for counting pixmap offset.
2007-08-28Limit TV formats to those supported by current connectionKeith Packard
2007-08-17Replace AA allocator usage with i830_memory.c for RandR rotation.Eric Anholt
This requires EXA 2.2 (server 1.3) for rotated performance with EXA, because the i830_memory.c allocation may not fall within what EXA considers the offscreen area, so the PixmapIsOffscreen hook is needed.
2007-08-16Merge branch 'master' into buffer-objectsEric Anholt
Conflicts: src/i830_dri.c src/i830_memory.c
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-10Tiling fixes for 965Jesse Barnes
This should be close to the last set of tiling fixes for 965 chipsets. Prior to this commit, the 965 composite hook didn't take tiling into account, nor did 965 textured video, which caused display corruption. However, there seems to be at least one last bug to squash--on occasion, a configuration with tiling enabled won't properly display text. This is likely another tiling related problem with the composite hook.
2007-08-07Fix EXA rendering with tiled front buffer on pre-965.Eric Anholt
The 915 and earlier appear to respect the fence registers, while only the 965 requires the per-operation tiling setting and pitch shifting. This will also fix issues with rendering on the 965 involving multiple cliprects, where the pitch would get divided repeatedly. This removes the offset < 4096 fallback, which essentially resulted in no acceleration to tiled buffers, hiding the issues.
2007-08-06Fix accumulated whitespace nits in i830_exa.cEric Anholt
2007-08-06More tiled rendering fixes: - check for tiling, not just offset in ↵Jesse Barnes
PrepareSolid - combine pI830->tiling and frontbuffer checks into new exaPixmapTiled function for readability
2007-08-03Limit Solid & Copy offsets to 4k when rendering to tiled targetsJesse Barnes
2007-08-03Tiled rendering & fbc fixes:Jesse Barnes
- actually enable tiling in DSP(A|B)CNTR if needed - add logic to EXA routines for tiled case (still needs work) - enable/disable fbc on DPMS events (meant moving functions higher in file) - fix fence register pitch programming (use correct pitch instead of kludged value)
2007-07-26Use new drmBOSetPin interface instead of NO_EVICT/NO_MOVE buffers.Eric Anholt
To do this, we have to deal with buffer offsets being set at EnterVT time instead of screen init time. We've wanted to move this direction for a long time, but there are repercussions. The EXA offscreen memory manager has to be disabled, because it can't be moved. That will be replaced by BO-backed pixmaps soon. Also unresolved is whether our moving front/back/depth/texture buffers will break the classic-mode DRI driver. This code doesn't actually work yet.
2007-06-27EXA: don't have to check offscreen sizeWang Zhenyu
DDX will check it for EXA_OFFSCREEN_PIXMAPS flag
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-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-18EXA: add render enter helper functionWang Zhenyu
That notify mesa rendering is smashing the state, and check last 3d operation to do sync after we're swapped in or others.
2007-04-17Fix i852 EXA Composite acceleration setup.Eric Anholt
Reported by JM Ibanez.
2007-04-09Turn off ALWAYS_SYNC in EXA.Eric Anholt
This slipped in as a debugging aid, and never got turned off. The driver appears to work fine without it on an i915 system, and for the non-default EXA option, we'd rather see issues found than continue running with debugging aids and hiding them behind bad performance.
2007-03-09Revert change accidentally included in previous commit.Michel Dänzer
2007-03-09Update SAREA pipe sizes in i830_crtc_dpms instead of i830PipeSetBase.Michel Dänzer
This allows setting the size to 0 when a pipe gets disabled.
2007-03-02Add a WIP UploadToScreen implementation. This almost displays right.Eric Anholt
2007-02-23Rework the video memory allocation.Eric Anholt
The previous allocator worked in multiple passes, with (at least) one of setting up allocations, another to attempt to adjust those for tiling, and then a pass to set up the offsets and fix them in memory. The new allocator is simpler, allocating memory immediately if possible, setting up tiling up front, and choosing offsets immediately. AGP memory is only allocated to back actual memory used, saving some memory that would have been allocated for padding previous. It will also allow dynamic freeing and reallocation of memory, which will be useful for framebuffer resizing.
2007-02-09Fix comments on 965 pitch alignment restrictions.Eric Anholt
2007-02-08EXA: i965 pixmap pitch alignWang Zhenyu
This seems like a typo, which causes screen artifacts.
2007-01-31Naming and formatting cleanup in Render acceleration code.Eric Anholt
2007-01-31Move the render code to non-EXA-specific filenames.Eric Anholt
2007-01-31Add an accelerated path for rotation Render operations in XAA.Eric Anholt
The now-generic (kind of) EXA code will be cleaned up and moved to generic files in a later commit.
2007-01-30Fix accelerated Render transformations.Eric Anholt
Previously, we tried to use 2 points instead of 3 to describe the source rectangles, which mostly just worked for scaling.
2007-01-30Simplify EXA acceleration transform handling.Eric Anholt
2007-01-25Make rotated shadow buffer allocation dynamic.Eric Anholt
For EXA, this requires version 2.1 of EXA to do rotation, as the VT switching issues were too complicated otherwise.
2007-01-11EXA: Use PRIM3D_RECTLIST instead of TRIFAN so we don't get diagonal tearing.Eric Anholt
A side effect is the reduction in vertex dispatch, which is nice.
2007-01-11Correct x/y/pitch limitations in several cases, and detail them in i830_exa.c.Eric Anholt
This reduces max framebuffer width and increases max framebuffer height on 965, reduces max X/Y on pre-965 EXA (could have caused mis-rendering), and increases max X/Y on 965 EXA (would have prevented acceleration).
2007-01-08Move EXA function declarations from source to header.Keith Packard
Several new global functions were not put into the header file leading to potential mismatches between declaration and definition.
2007-01-06Numerous symbol scope issues.Keith Packard
I830EntityIndex is shared between 810 and newer driver. Move most EXA rendering state into I830 structure. Declare shared variables in shared header files rather than .c.
2007-01-06Merge branch 'modesetting-origin' into modesettingWang Zhenyu
2007-01-06[PATCH] EXA state mem for G965Wang Zhenyu
Not split offscreen mem for exa, but alloc a dedicated one for G965 states. Signed-off-by: Keith Packard <keithp@neko.keithp.com>