summaryrefslogtreecommitdiff
path: root/src/mesa/drivers/dri/intel
AgeCommit message (Collapse)Author
2009-05-08i965: improve debug loggingRobert Ellison
Looking for memory leaks that were causing crashes in my environment in a situation where valgrind would not work, I ended up improving the i965 debug traces so I could better see where the memory was being allocated and where it was going, in the regions and miptrees code, and in the state caches. These traces were specific enough that external scripts could determine what elements were not being released, and where the memory leaks were. I also ended up creating my own backtrace code in intel_regions.c, to determine exactly where regions were being allocated and for what, since valgrind wasn't working. Because it was useful, I left it in, but disabled and compiled out. It can be activated by changing a flag at the top of the file.
2009-05-08i965: fix memory leak in context/renderbuffer region managementRobert Ellison
A temporary change to the intelMakeCurrent() function to make it work with frame buffer objects causes the static regions associated with the context (the front_region, back_region, and depth_region) to take on an additional reference, with no corresponding release. This causes a memory leak if a program repeatedly creates and destroys contexts. The fix is the corresponding hack, to unreference these regions when the context is deleted, but only if the framebuffer objects are still present and the same regions are still referenced within. Both sets of code have comment blocks referring to each other.
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-05-06intel: Unmap buffers if needed at DeleteBuffer time.Eric Anholt
This fixes a crash in glean's pbo test, which tripped over the assert when a context was destroyed while a buffer was still mapped (Mesa doesn't call UnmapBuffer in that case). Regression in c6bde8873fbda6d8467600b7491d8543c75b0509
2009-05-01mesa: in glReadBufer() set _NEW_BUFFERS, not _NEW_PIXELBrian Paul
Since GL_READ_BUFFER is historically part of the gl_pixel_attrib group it made sense to signal changes with _NEW_PIXEL. But now with FBOs it's also part of the framebuffer state. Now _NEW_PIXEL strictly indicates pixels transfer state changes. This change avoids framebuffer state validation when any random bit of pixel-transfer state is set. DRI drivers updated too: don't check _NEW_COLOR when updating framebuffer state. I think that was just copied from the Xlib driver because we care about dither enable/disable state there.
2009-05-01Test either GL_FRONT_LEFT or GL_FRONT for front-buffer renderingIan Romanick
For non-stereo visuals, which is all we support, we treat GL_FRONT_LEFT as GL_FRONT. However, they are technically different, and they have different enum values. Test for either one to determine if we're in front-buffer rendering mode. This fix was suggested by Pierre Willenbrock. Signed-off-by: Ian Romanick <ian.d.romanick@intel.com>
2009-04-28i965: avoid segfault in intel_update_renderbuffers() if using DRI1Brian Paul
2009-04-24intel: Fix more issues with the combined depth-stencil attachmentIan Romanick
2009-04-24intel: Initialize region ptr to prevent assertion in intel_region_referenceIan Romanick
2009-04-24intel / DRI2: When available, use DRI2GetBuffersWithFormatIan Romanick
This interface gives the driver two important features. First, it can allocate the (fake) front-buffer only when needed. Second, it can tell the buffer allocator the format of buffers being allocated. This enables support for back-buffer and depth-buffer with different bits per pixel. Signed-off-by: Ian Romanick <ian.d.romanick@intel.com> Reviewed-by: Kristian Høgsberg <krh@redhat.com>
2009-04-23intel: Take advantage of GL_READ_ONLY_ARB to map to GEM bo_map write flag.Eric Anholt
This is a CPU win in general, but in particular reduces the pain of Mesa's calculation of min/max indices in DrawElements (wtf?).
2009-04-22intel: fix max anisotropy supportedRoland Scheidegger
i915 actually supports up to 4 (according to header file - not tested), i965 up to 16 (code already handled this but slightly broken), so don't use 2 for all chips, even though angular dependency is very high.
2009-04-18intel: #include polygon.h to silence warningBrian Paul
2009-04-18intel: Handle ARB_vertex_buffer_object state in intel_clear_tris().Michel Dänzer
Fixes gearsvbo app by Michael Clark.
2009-04-17intel: make sure polygon mode is set properly in intel_clear_tris()Brian Paul
Fixes progs/glsl/skinning.c demo.
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-16intel: fix small compressed texture uploadRoland Scheidegger
need to round up height for _mesa_copy_rect otherwise textures with height smaller than 4 won't get copied to the miptree at all Also fix up the confusing debug output (don't output unitialized values, and output if data is present and the compressed flag)
2009-04-15i915: Add decode of dest buffer variables (destination format)Eric Anholt
2009-04-15intel: Fix segfault when doing SW mipmap generation with a PBO texture upload.Eric Anholt
Triggered in test-fbo from clutter since 37fb2d9b23eab5dbbb43a212c3475cb8016837d8.
2009-04-14DRI2: Don't fault on NULL DrawBufferIan Romanick
It is possible for ctx->DrawBuffer to be NULL, so don't fault when that happens. This change is not being committed to master because it doesn't appear to be necessary there. Signed-off-by: Ian Romanick <ian.d.romanick@intel.com> Cherry picked from mesa_7_4_branch, commit 49e0c74ddd91900fc4effb6d305d56e0563b456d
2009-04-10intel: added screen->dri2.loader null pointer check in intel_flush()Brian Paul
Fixes segfaults when rendering to front buffer.
2009-04-09intel / DRI2: Accept fake front-buffer from loaderIan Romanick
Handle the loader returning a fake front-buffer. Since the driver never specifically requests a fake front-buffer, the driver assumes that it will never receive both a fake and a real front-buffer. Signed-off-by: Ian Romanick <ian.d.romanick@intel.com> Reviewed-by: Kristian Høgsberg <krh@redhat.com>
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>
2009-04-06intel: Avoid dri2 GetBuffers round-trips for internal Viewport calls.Eric Anholt
This gets us the savings for driver-internal viewport calls that dd1c68f15123a889a3ce9d2afe724e272d163e32 was attempting, without relying on Xlib internals or clients handling X events.
2009-04-06i965: Use GTT maps when available to upload vertex arrays and system VBOs.Eric Anholt
This speeds up OA on my GM45 by 21% (more than the original CPU cost of the upload path). We might still be able to squeeze a few more percent out by avoiding repeatedly mapping/unmapping buffers as we upload elements into them.
2009-04-06intel: Clean up some a leftover from sedding of bufmgr context->screen move.Eric Anholt
2009-04-03intel: #include texgetimage.hBrian Paul
2009-03-30intel: Avoid mapping the texture image for CopyTex{,Sub}ImageAdam Jackson
We don't upload the pixels with the CPU in that case, so the map will only serve as a way of triggering cache flushes over a bunch of data we don't touch.
2009-03-28i965: srgb texture fixesRoland Scheidegger
i965 can either do SRGBA8_REV format or SARGB8 format, but not SRGBA8. Could add SRGBA8_REV support to mesa, but simply use SARGB8 for now. While here, also add true srgb luminance / luminance_alpha support - unfortunately the published docs fail to mention which asics support this, tested on g43 so assume this works on any g4x.
2009-03-28i965: add support for signed rgba texture formatRoland Scheidegger
2009-03-28fix various small intel blitter issuesRoland Scheidegger
use color format constants instead of magic numbers remove handling of cpp 0 or 3 (neither is possible) in various places don't misconfigure 8 bit surface blits as rgb565
2009-03-23i965: Fix trailing "d" in debug output for 3DSTATE_VERTEX_ELEMENTS.Eric Anholt
2009-03-20Fix DRI2 accelerated EXT_texture_from_pixmap with GL_RGB format.Eric Anholt
This requires upgrading the interface so that the argument to glXBindTexImageEXT isn't just dropped on the floor. Note that this only fixes the accelerated path on Intel, as Mesa's texture format support is missing x8r8g8b8 support (right now, GL_RGB textures get uploaded as a8r8gb8, but in this case we're not doing the upload so we can't really work around it that way). Fixes bugs with compositors trying to use shaders that use alpha channels, on windows without a valid alpha channel. Bug #19910 and likely others as well. Reviewed-by: Ian Romanick <ian.d.romanick@intel.com>
2009-03-12i965: add support for ATI_envmap_bumpmapRoland Scheidegger
2009-03-11intel: include main/viewport.hBrian Paul
2009-03-07mesa: remove last of _mesa_unreference_framebuffer() callsBrian Paul
2009-03-05intel: Fix bpp setting of blits to 8bpp targets.Eric Anholt
This was causing hangs in cairogears, as we would blit to the 8bpp target (A8 texture) as 16bpp, and stomp over state objects.
2009-03-05i965: fix 3DPRIMITIVE batch decode of the vertex count field.Eric Anholt
2009-03-05intel: Add always_flush_batch driconf option for making small batchbuffers.Eric Anholt
This can improve debugging with INTEL_DEBUG=batch,sync by giving smaller batchbuffers.
2009-03-05intel: Add always_flush_cache driconf option for debugging cache flush failure.Eric Anholt
I keep wanting to hack this knob in as a one-time thing, so it seemed useful to have all the time.
2009-03-05i965: Add a note about why the _NEW_STENCIL is required in draw_buffers.Eric Anholt
2009-03-05intel: Remove a gratuitous MI_FLUSH after clearing with a blit.Eric Anholt
The 3D destination shares the same cache so we don't have any trouble with the later commands needing the writes flushed inside of the same batchbuffer.
2009-03-05i965: Remove dead flushing code.Eric Anholt
2009-03-05i965: fix screen depth test in intel_validate_framebuffer)_Brian Paul
front_region may be null.
2009-03-04i965: add software fallback for conformant 3D textures and GL_CLAMPRobert Ellison
The i965 hardware cannot do GL_CLAMP behavior on textures; an earlier commit forced a software fallback if strict conformance was required (i.e. the INTEL_STRICT_CONFORMANCE environment variable was set) and 2D textures were used, but it was somewhat flawed - it could trigger the software fallback even if 2D textures weren't enabled, as long as one texture unit was enabled. This fixes that, and adds software fallback for GL_CLAMP behavior with 1D and 3D textures. It also adds support for a particular setting of the INTEL_STRICT_CONFORMANCE environment variable, which forces software fallbacks to be taken *all* the time. This is helpful with debugging. The value is: export INTEL_STRICT_CONFORMANCE=2
2009-03-02mesa: use Stencil._Enabled field instead of Stencil.EnabledBrian Paul
2009-03-02mesa: remove unused AUX buffersBrian Paul
Remove all references to aux buffers 1..3. Keep AUX0 around for now just in case, but it'll probably go too someday. I don't know of any OpenGL drivers since the IRIX days that support aux color buffers.
2009-02-27intel: remove some unneeded buffer unmap callsBrian Paul
Core mesa now unmaps the buffers if needed in these cases.
2009-02-27i915: Add support for a new G33-like chipset.Shaohua Li
Signed-off-by: Shaohua Li <shaohua.li@intel.com> Signed-off-by: Eric Anholt <eric@anholt.net>