summaryrefslogtreecommitdiff
path: root/src/mesa/drivers/dri/intel/intel_context.h
AgeCommit message (Collapse)Author
2010-02-17intel: Implement the DRI2 invalidate function properlyKristian Høgsberg
This uses a stamp mechanisms to mark the DRI drawable as invalid. Instead of immediately updating the buffers we just bump the drawable stamp and call out to DRI2GetBuffers "later". "Later" used to be at LOCK_HARDWARE time, and this patch brings back callouts at the points where we used to call LOCK_HARDWARE. A new function, intel_prepare_render(), is called where we used to call LOCK_HARDWARE, and if the buffers are invalid, we call out to DRI2GetBuffers there. This lets us invalidate buffers only when notified instead of on every glViewport() call. If the loader calls the DRI invalidate entrypoint, we disable viewport triggered buffer invalidation. Additionally, we can clean up the old viewport mechanism a bit, since we can just invalidate the buffers and not worry about reentrancy and whatnot.
2010-02-11i915: Drop intelScreenPrivate typedef and just call it struct intel_screenKristian Høgsberg
2010-01-28intel: Remove long-disabled meta readpixels, and associated meta support.Eric Anholt
2010-01-26intel: Remove the remaining cliprects code from DRI1.Eric Anholt
2010-01-25intel: Don't do client-side frame throttling with DRI2 SwapBuffers.Eric Anholt
The server side does the throttling on our behalf now by putting the client to sleep, so we don't need our previous hacks for limiting the number of outstanding frames. Same effect as 7d4e674b212c9dc6408c13913a399bd4a2b9a1e3.
2010-01-19intel: Remove dead note_fence vtbl hook.Eric Anholt
2010-01-11Merge branch 'master' of ssh://people.freedesktop.org/~jbarnes/mesaJesse Barnes
Conflicts due to DRI1 removal: src/mesa/drivers/dri/intel/intel_context.c src/mesa/drivers/dri/intel/intel_screen.c
2010-01-08intel/DRI2: add DRI2flushExtension support with invalidate hookKristian Høgsberg
Needed to support the SwapBuffers code properly. Signed-off-by: Kristian Høgsberg <krh@bitplanet.net>
2010-01-04intel: Drop more cliprect bookkeepingKristian Høgsberg
2010-01-04intel: Remove client-side vblank codeKristian Høgsberg
2010-01-04intel: Drop DRI1 static regionsKristian Høgsberg
2010-01-04intel: Drop LOCK/UNLOCK_HARDWARE()Kristian Høgsberg
2010-01-04Remove leftover __DRI{screen,drawable,context}Private referencesKristian Høgsberg
As part of the DRI driver interface rewrite I merged __DRIscreenPrivate and __DRIscreen, and likewise for __DRIdrawablePrivate and __DRIcontextPrivate. I left typedefs in place though, to avoid renaming all the *Private use internal to the driver. That was probably a mistake, and it turns out a one-line find+sed combo can do the mass rename. Better late than never.
2009-12-31Merge branch 'mesa_7_7_branch'Brian Paul
Conflicts: configs/darwin src/gallium/auxiliary/util/u_clear.h src/gallium/state_trackers/xorg/xorg_exa_tgsi.c src/mesa/drivers/dri/i965/brw_draw_upload.c
2009-12-28intel: Silence compiler warnings.Vinson Lee
2009-12-22intel: Replace some gen3 IS_* checks with context structure usage.Eric Anholt
Shaves 400 bytes or so from i915_dri.so.
2009-12-22intel: Replace IS_G4X() across the driver with context structure usage.Eric Anholt
Saves ~2KB of code.
2009-12-22intel: Replace IS_IGDNG checks with intel->is_ironlake or needs_ff_sync.Eric Anholt
Saves ~480 bytes of code.
2009-11-19intel: Remove non-GEM support.Eric Anholt
This really isn't supported at this point. GEM's been in the kernel for a year, and the fake bufmgr never really worked.
2009-11-19intel: Remove dead intel_context members and move some packing around.Eric Anholt
2009-11-19intel: Remove our special color packing macros and just use colormac.h.Eric Anholt
2009-11-19intel: Pack colors for blit at blit time, rather than at ClearColor.Eric Anholt
2009-11-19i915: Remove dead meta_draw_quad code.Eric Anholt
2009-11-13intel: Remove some dead context structure fields.Eric Anholt
2009-11-13i965: Use bo_map instead of subdata to upload the bits of constant buffer.Eric Anholt
Saves CPU time, resulting in a 2.5% FPS win on ETQW.
2009-11-06intel: Use PIPE_CONTROL on gen4 hardware for doing pipeline flushing.Eric Anholt
This should do all the things that MI_FLUSH did, but it can be pipelined so that further rendering isn't blocked on the flush completion unless necessary.
2009-11-06Make a convenient int for what chipset generation we're on.Eric Anholt
gen2/3/4 are easier to say than "8xx, 915-945/g33/pineview, 965/g45/misc", and compares on generation are often easier than stringing together a bunch of chipset checks.
2009-10-29i915: Implement min/max LOD clamping with the hardware.Eric Anholt
This gets us expected behavior for clamping between mipmap levels, and avoids relayout of textures for doing clamping. Fixes piglit lodclamp-between.
2009-10-22Merge branch 'mesa_7_6_branch'Brian Paul
2009-10-22intel: define INTEL_FALLBACK_DRIVER for driversBrian Paul
2009-10-22intel: Fallback field is a bitmask, use GLbitfieldBrian Paul
2009-10-01i915: Add optional support for ARB_fragment_shader under a driconf option.Eric Anholt
Other vendors have enabled ARB_fragment_shader as part of OpenGL 2.0 enablement even on hardware like the 915 with no dynamic branching or dFdx/dFdy support. But for now we'll leave it disabled because we don't do any flattening of ifs or loops, which is rather restrictive. This support is not complete, and may be unstable depending on your shaders. It passes 10/15 of the piglit glsl tests, but hangs on glean glsl1.
2009-09-28intel: Remove some dead metaops code.Eric Anholt
2009-09-03intel: Add support for ARB_sync.Eric Anholt
We currently weasel out of supporting the timeout parameter, but otherwise this extension looks ready, and should make the common case happy.
2009-08-14intel: in intel_context struct use typedef for sarea structTobias Doerffel
Using drm_i915_sarea_t instead of struct drm_i915_sarea seems to be a common standard now, therefore fix it also in intel_context structure. Additionally this silences a compiler warning: intel_swapbuffers.c: In function `intelFixupVblank': intel_swapbuffers.c:48: warning: initialization from incompatible pointer type Signed-off-by: Tobias Doerffel <tobias.doerffel@gmail.com>
2009-08-07intel: minor context commentsBrian Paul
2009-08-03intel: Wait on the last swapbuffers to complete before queuing a new one.Eric Anholt
This fixes jerkiness in doom3 and other apps since the kernel change to throttle less absurdly, which led to a thundering herd of frames. Because this is a rather minimal fix, there is at least one downside: If the whole scene completes in one batchbuffer, we'll end up stalling the GPU. Thanks to Michel Dänzer for suggesting using glFlush to signal frame end instead of going to all the effort of adding a new DRI2 extension.
2009-07-15intel/radeon: add common metaops code.Dave Airlie
Move all the metaops to a dri_metaops file and port radeon/intel to use the new common meta ops code.
2009-06-29intel: Move note_unlock() implementation to the one place it's needed.Eric Anholt
2009-06-19intel: Also get the DRI2 front buffer when doing front buffer reading.Eric Anholt
2009-06-09i915: Add an option for testing the effect of early Z in classic mode.Eric Anholt
The early Z stuff is supposed to be unsafe without some more work in the enable/disable path (in particular, how do we want to get it disabled on the way out to the X Server?), but at the moment is 6% in OA.
2009-06-04intel: Add support for tiled textures.Eric Anholt
This is about a 30% performance win in OA with high settings on my GM45, and experiments with 915GM indicate that it'll be around a 20% win there. Currently, 915-class hardware is seriously hurt by the fact that we use fence regs to control the tiling even for 3D instructions that could live without them, so we spend a bunch of time waiting on previous rendering in order to pull fences off. Thus, the texture_tiling driconf option defaults off there for now.
2009-06-04i915: Don't rely on fence regs when we don't have to.Eric Anholt
We're on the way to telling the kernel about when we need fence regs on our objects or not, and this will cut the number of places needing them.
2009-05-26i915: Fall back on NPOT textured metaops on 830-class.Eric Anholt
2009-05-13Merge branch 'mesa_7_5_branch'Brian Paul
Conflicts: src/mesa/main/arrayobj.c src/mesa/main/arrayobj.h src/mesa/main/context.c
2009-05-13intel: create a private gl_array_object for intel_clear_tris(), fix bug 21638Brian Paul
gl_array_object encapsulates a set of vertex arrays (see the GL_APPLE_vertex_array_object extension). Create a private gl_array_object for drawing the quad for intel_clear_tris() so we don't have to worry about the user's vertex array state. This fixes the no-op glClear bug #21638 and removes the need to call _mesa_PushClientAttrib() and _mesa_PopClientAttrib().
2009-05-08intel: Add a metaops version of glGenerateMipmapEXT/SGIS_generate_mipmaps.Eric Anholt
In addition to being HW accelerated, it avoids the incorrect (black) rendering of the mipmaps that SW was doing in fbo-generatemipmap. Improves the performance of the mipmap generation and drawing in fbo-generatemipmap by 30%.
2009-05-08intel: Put the constant texcoords used in metaops into a vbo.Eric Anholt
Make this be its own function for setup/teardown of the binding of these texcoords. No performance difference in the engine demo (I just felt dirty not using a VBO for this), and I think it should be more resilient to interference from current GL state.
2009-04-16intel: Add support for argb1555, argb4444 FBOs and fix rgb565 fbo readpixels.Eric Anholt
Also enable them all regardless of screen bpp, as 32 bpp what I've been testing against, and haven't been able to detect any screen bpp-specific troubles with them.
2009-04-09intel / DRI2: Track and flush front-buffer renderingIan Romanick
Track two flags: whether or not front-buffer rendering is currently enabled and whether or not front-buffer rendering has been enabled since the last glFlush. If the second flag is set, the front-buffer is flushed via a loader call back. If the first flag is cleared, the second flag is cleared at this time. Signed-off-by: Ian Romanick <ian.d.romanick@intel.com> Reviewed-by: Kristian Høgsberg <krh@redhat.com>