History log of /external/mesa3d/src/mesa/drivers/dri/intel/intel_fbo.c
Revision Date Author Comments (<<< Hide modified files) (Show modified files >>>)
9d4ab9a663d4088ec553edaae0eeafb746d2490d 11-Feb-2013 Brian Paul <brianp@vmware.com> mesa: pass context parameter to gl_renderbuffer::Delete()

We sometimes need a rendering context when deleting renderbuffers.
Pass it explicitly instead of trying to grab a current context
(which might be NULL). The next patch will make use of this.

Note: this is a candidate for the stable branches.

Reviewed-by: Jose Fonseca <jfonseca@vmware.com>
(cherry picked from commit c73245882c7ff1277b190b97f093f7b423a22f10)

Conflicts:

src/mesa/swrast/s_renderbuffer.c
/external/mesa3d/src/mesa/drivers/dri/intel/intel_fbo.c
dca04373c2efb177dbb7dca3ad2b57cb36b2ebe6 30-Aug-2012 Brian Paul <brianp@vmware.com> mesa: fix-up and use _mesa_delete_renderbuffer()

_mesa_delete_renderbuffer() should free the mutex (though that may be a
no-op) and then free the renderbuffer object itself. Subclasses of
gl_renderbuffer can use this function too.

Reviewed-by: José Fonseca <jfonseca@vmware.com>
(cherry picked from commit 8472bb4508515cf0f717344ef5cc863b6e97e56a)
/external/mesa3d/src/mesa/drivers/dri/intel/intel_fbo.c
68da5dfc2c2e9c0aca47431076be0cd43406d4aa 30-Aug-2012 Paul Berry <stereotype441@gmail.com> intel: Add map_stencil_as_y_tiled to intel_region_get_aligned_offset.

This patch modifies intel_region_get_aligned_offset() to make the
appropriate calculation when the blorp engine sets up a W-tiled
stencil buffer using a Y-tiled SURFACE_STATE.

Acked-by: Eric Anholt <eric@anholt.net>
(cherry picked from commit b760c9913dcff848a2aa0e60abeb48e596ae8fee)
/external/mesa3d/src/mesa/drivers/dri/intel/intel_fbo.c
96fd94ba9421c7c3072988f999ee869534f2bc2a 30-Aug-2012 Paul Berry <stereotype441@gmail.com> intel: Add map_stencil_as_y_tiled to intel_region_get_tile_masks.

When the blorp engine is performing a blit from one stencil buffer to
another, it sets up the surface state for these buffers as Y-tiled, so
it needs to be able to force intel_region_get_tile_masks() to return
the appropriate masks for a Y-tiled region.

Acked-by: Eric Anholt <eric@anholt.net>
(cherry picked from commit 50dec7fc2d5ba813aaa822596d124098a22db301)
/external/mesa3d/src/mesa/drivers/dri/intel/intel_fbo.c
d47a6ada9ca9670c60fc141fabadf40c63031c08 24-Aug-2012 Brian Paul <brianp@vmware.com> mesa: add texture target field to ChooseTextureFormat() driver hook

This will let us choose the actual hardware format depending on the
type of texture.

v2: fixup radeon, nouveau, intel and swrast drivers too

Reviewed-by: Eric Anholt <eric@anholt.net>
/external/mesa3d/src/mesa/drivers/dri/intel/intel_fbo.c
6b56140b4bafcef8bea5ca67cb31023a533c3bd4 27-Jul-2012 Chad Versace <chad.versace@linux.intel.com> i965: Mark needed downsamples for msaa winsys buffers

Add function intel_renderbuffer_set_needs_downsample. It is a no-op
except on multisample winsys buffers shared with DRI2.

Mark the needed downsamples with the new function at two locations:
- Immediately after drawing is complete.
- After blitting.

Reviewed-by: Eric Anholt <eric@anholt.net>
Reviewed-by: Paul Berry <stereotype441@gmail.com>
Signed-off-by: Chad Versace <chad.versace@linux.intel.com>
/external/mesa3d/src/mesa/drivers/dri/intel/intel_fbo.c
4eba67285fb6b5d2dd4927e8dc4b3e2945435309 20-Jul-2012 Chad Versace <chad.versace@linux.intel.com> intel: Refactor creation of hiz and mcs miptrees

Move the logic for creating the ancillary hiz and mcs miptress for winsys
and non-texture renderbuffers from intel_alloc_renderbuffer_storage to
intel_miptree_create_for_renderbuffer. Let's try to isolate complex
miptree logic to intel_mipmap_tree.c.

Without this refactor, code duplication would be required along the
intel_process_dri2_buffer codepath in order to create the mcs miptree.

Reviewed-by: Eric Anholt <eric@anholt.net>
Reviewed-by: Paul Berry <stereotype441@gmail.com>
Signed-off-by: Chad Versace <chad.versace@linux.intel.com>
/external/mesa3d/src/mesa/drivers/dri/intel/intel_fbo.c
e2f2376e884225705e2369caee4a8c4e90e938f3 12-Jul-2012 Chad Versace <chad.versace@linux.intel.com> intel: Set num samples for winsys renderbuffers

Add a new param, num_samples, to intel_create_renderbuffer and
intel_create_private_renderbuffer.

No multisample GL config is yet advertised, so the value of num_samples is
currently 0. For server-owned winsys buffers, gl_renderbuffer::NumSamples
is not yet used.

Reviewed-by: Eric Anholt <eric@anholt.net>
Reviewed-by: Kenneth Graunke <kenneth@whitecape.org>
Reviewed-by: Paul Berry <stereotype441@gmail.com> (v1)
Signed-off-by: Chad Versace <chad.versace@linux.intel.com>
/external/mesa3d/src/mesa/drivers/dri/intel/intel_fbo.c
53fa28f7b1f21251a3807abf1f234f52beff0256 11-Jul-2012 Chad Versace <chad.versace@linux.intel.com> intel: Refactor quantize_num_samples

Rename quantize_num_samples to intel_quantize_num_samples and change the
first param from struct intel_context* to struct intel_screen*. The
function will later be used by intelCreateBuffer, which is not bound to
any context but is bound to a screen.

Reviewed-by: Eric Anholt <eric@anholt.net>
Reviewed-by: Paul Berry <stereotype441@gmail.com> (v1)
Signed-off-by: Chad Versace <chad.versace@linux.intel.com>
/external/mesa3d/src/mesa/drivers/dri/intel/intel_fbo.c
c18806cebf107d03751b11cc8866062c3822a56f 27-Jul-2012 Paul Berry <stereotype441@gmail.com> i965/msaa: Allow GL_SAMPLES to be set to 1 prior to Gen6.

This patch allows GL_SAMPLES to be set to either 0 or 1 on i965
platforms that don't support MSAA (those prior to Gen6). Setting
GL_SAMPLES=1 has the same effect as setting it to 0 on these platforms
(because MSAA is unsupported), but is distinguishable via the GL API.

Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=50165

Reviewed-by: Jordan Justen <jordan.l.justen@intel.com>
Reviewed-by: Ian Romanick <ian.d.romanick@intel.com>
/external/mesa3d/src/mesa/drivers/dri/intel/intel_fbo.c
c738ea1191cd1b5a0dc60b0e6d05fd918083e961 18-Jul-2012 Paul Berry <stereotype441@gmail.com> intel: Make more consistent use of _mesa_is_{user,winsys}_fbo()

A lot of code was still differentiating between between winsys and
user fbos by testing the fbo's name against zero. This converts
everything in the i915 and 965 drivers over to use _mesa_is_user_fbo()
and _mesa_is_winsys_fbo().

Reviewed-by: Brian Paul <brianp@vmware.com>
Reviewed-by: Kenneth Graunke <kenneth@whitecape.org>
/external/mesa3d/src/mesa/drivers/dri/intel/intel_fbo.c
497bf5dd2b36c7d0c8ae23d2bf039c91b97140fc 18-Jul-2012 Paul Berry <stereotype441@gmail.com> i965/msaa: Switch on 8x MSAA for Gen7.

Reviewed-by: Kenneth Graunke <kenneth@whitecape.org>
/external/mesa3d/src/mesa/drivers/dri/intel/intel_fbo.c
9bbf7c139bb02fe9fc3822bf2ca9ac5963d0d5af 04-Jul-2012 Eric Anholt <eric@anholt.net> intel: Remove dead intel_framebuffer_has_hiz().

Reviewed-by: Chad Versace <chad.versace@linux.intel.com>
Reviewed-by: Kenneth Graunke <kenneth@whitecape.org>
/external/mesa3d/src/mesa/drivers/dri/intel/intel_fbo.c
433ff3e16e8e090fd3a1bf427e61f3e5971a5740 04-Jul-2012 Eric Anholt <eric@anholt.net> intel: Add a function for creating a private window system buffer.

Reviewed-by: Chad Versace <chad.versace@linux.intel.com>
Reviewed-by: Kenneth Graunke <kenneth@whitecape.org>
/external/mesa3d/src/mesa/drivers/dri/intel/intel_fbo.c
ccae1b1cd7b89102a9d9bfc29eb1e7e48aad8969 03-Jul-2012 Paul Berry <stereotype441@gmail.com> i965/msaa: Allocate MCS buffer when CMS MSAA is in use.

To implement Gen7's CMS MSAA layout, we need an extra buffer, the MCS
(Multisample Control Surface) buffer. This patch introduces code for
allocating and deallocating the buffer, and storing a pointer to it in
the intel_mipmap_tree struct.

No functional change, since the CMS layout is not enabled yet.

Reviewed-by: Chad Versace <chad.versace@linux.intel.com>
/external/mesa3d/src/mesa/drivers/dri/intel/intel_fbo.c
ab014adaed14a9ca213447dc913d0dce7906be56 10-May-2012 Paul Berry <stereotype441@gmail.com> i965/msaa: Enable 4x MSAA on Gen7.

Basic 4x MSAA support now works on Gen7. This patch enables it.

As with Gen6, MSAA support is still fairly preliminary. In
particular, the following are not yet supported:
- 8x oversampling (Gen7 has hardware support for this, but we do not
yet expose it).
- Fully general blits between MSAA and non-MSAA buffers.
- Formats other than RGBA8, DEPTH24, and STENCIL8.
- Centrold interpolation.
- Coverage parameters (glSampleCoverage, GL_SAMPLE_ALPHA_TO_COVERAGE,
GL_SAMPLE_ALPHA_TO_ONE, GL_SAMPLE_COVERAGE, GL_SAMPLE_COVERAGE_VALUE,
GL_SAMPLE_COVERAGE_INVERT).

Reviewed-by: Ian Romanick <ian.d.romanick@intel.com>
Reviewed-by: Kenneth Graunke <kenneth@whitecape.org>
/external/mesa3d/src/mesa/drivers/dri/intel/intel_fbo.c
19e9b24626c2b9d7abef054d57bb2a52106c545b 30-Apr-2012 Paul Berry <stereotype441@gmail.com> i965/gen6: Initial implementation of MSAA.

This patch enables MSAA for Gen6, by modifying intel_mipmap_tree to
understand multisampled buffers, adapting the rendering pipeline setup
to enable multisampled rendering, and adding multisample resolve
operations to brw_blorp_blit.cpp. Some preparation work is also
included for Gen7, but it is not yet enabled.

MSAA support is still fairly preliminary. In particular, the
following are not yet supported:
- Fully general blits between MSAA and non-MSAA buffers.
- Formats other than RGBA8, DEPTH24, and STENCIL8.
- Centroid interpolation.
- Coverage parameters (glSampleCoverage, GL_SAMPLE_ALPHA_TO_COVERAGE,
GL_SAMPLE_ALPHA_TO_ONE, GL_SAMPLE_COVERAGE, GL_SAMPLE_COVERAGE_VALUE,
GL_SAMPLE_COVERAGE_INVERT).

Fixes piglit tests "EXT_framebuffer_multisample/accuracy" on
i965/Gen6.

v2:
- In intel_alloc_renderbuffer_storage(), quantize the requested number
of samples to the next higher sample count supported by the
hardware. This ensures that a query of GL_SAMPLES will return the
correct value. It also ensures that MSAA is fully disabled on Gen7
for now (since Gen7 MSAA support doesn't work yet).
- When reading from a non-MSAA surface, ensure that s_is_zero is true
so that we won't try to read from a nonexistent sample.
/external/mesa3d/src/mesa/drivers/dri/intel/intel_fbo.c
506d70be21cd3469118de89297cba0c0f709c1ae 30-Apr-2012 Paul Berry <stereotype441@gmail.com> i965/gen6+: Add code to perform blits on the render path ("blorp").

This patch expands the "blorp" component to be able to perform blits
as well as HiZ resolves. The new blitting code is located in
brw_blorp_blit.cpp. This includes the necessary fragment shader code
to look up pixels in the source buffer (which is configured as a
texture) and output them to the destination buffer (which is
configured as the render target).

Most of the time the fragment shader code is simple and
straightforward, since it merely has to apply a coordinate offset,
read from the texture, and write to the render target. However, in
the case of blitting stencil buffers, things are more complicated,
since the GPU stores stencil data using W tiling, and W tiling is not
supported for textures or render targets. So, we set up the stencil
buffers as Y tiled, and emit fragment shader code that adjusts the
coordinates to account for the difference between W and Y tiling.
Furthermore, since a rectangular region in W tiling does not
necessarily correspond to a rectangular region in Y tiling, we widen
the rectangle primitive to the nearest tile boundary and have the
fragment shader "kill" any pixels that don't fall inside the actual
desired destination rectangle.

All of this is a necessary prerequisite for implementing MSAA, since
we'll need to be able to blit between multisample color, depth, and
stencil buffers and their non-multisampled counterparts, and none of
the existing blitting mechanisms support multisampling.

In addition, the new blitting code should speed up operations where we
previously fell back to software rasterization, such as blitting of
stencil buffers. The current fallback sequence is: first we try to do
a blit using the hardware blitting engine. If that fails we try to do
a blit using the render path. If that also fails then we do the blit
using a meta-op (which may or may not fall back to software
rasterization).

Note that blitting using the render path has some limitations at the
moment: it only supports a few formats, and it doesn't support
clipping or scissoring. These limitations will be addressed in future
patch series.

v2:
- Add the code that configures the WM program to
gen{6,7}_emit_wm_config() and gen7_emit_ps_config() rather than
creating separate ...enable() functions.
- Call intel_prepare_render before determining which miptrees we are
blitting from/to, because it may cause miptrees to be reallocated.
- Allow the blit to mirror X and/or Y coordinates.
- Disable blorp blits on Gen7 for now, since they aren't working yet.
/external/mesa3d/src/mesa/drivers/dri/intel/intel_fbo.c
3ec0e55b63db3c1067f3bbf4563beb3b98a19288 15-Apr-2012 Paul Berry <stereotype441@gmail.com> i965: Fix mipmap offsets for HiZ and separate stencil buffers.

When rendering to a miplevel other than 0 within a color, depth,
stencil, or HiZ buffer, we need to tell the GPU to render to an offset
within the buffer, so that the data is written into the correct
miplevel. We do this using a coarse offset (in pages), and a fine
adjustment (the so-called "tile_x" and "tile_y" values, which are
measured in pixels).

We have always computed the coarse offset and fine adjustment using
intel_renderbuffer_tile_offsets() function. This worked fine for
color and combined depth/stencil buffers, but failed to work properly
when HiZ and separate stencil were in use. It failed to work because
there is only one set of fine adjustment controls shared by the HiZ,
depth, and stencil buffers, so we need to choose tile_x and tile_y
values that are compatible with the tiling of all three buffers, and
then compute separate coarse offsets for each buffer.

This patch fixes the HiZ and separate stencil case by replacing the
call to intel_renderbuffer_tile_offsets() with calls to two functions:
intel_region_get_tile_masks(), which determines how much of the
adjustment can be performed using offsets and how much can be
performed using tile_x and tile_y, and
intel_region_get_aligned_offset(), which computes the coarse offset.

intel_region_get_tile_offsets() is still used for color renderbuffers,
so to avoid code duplication, I've re-worked it to use
intel_region_get_tile_masks() and intel_region_get_aligned_offset().

On i965 Gen6, fixes piglit tests
"texturing/depthstencil-render-miplevels 1024 X" where X is one of
(depth, depth_and_stencil, depth_stencil_single_binding, depth_x,
depth_x_and_stencil, stencil, stencil_and_depth, stencil_and_depth_x).

On i965 Gen7, the variants of
"texturing/depthstencil-render-miplevels" that contain a stencil
buffer still fail, due to another problem: Gen7 seems to ignore the 3
LSB's of the tile_y adjustment (and possibly also tile_x).

v2: Removed spurious comments. Added assertions to check
preconditions of intel_region_get_aligned_offset().

Reviewed-by: Chad Versace <chad.versace@linux.intel.com>
Acked-by: Kenneth Graunke <kenneth@whitecape.org>
/external/mesa3d/src/mesa/drivers/dri/intel/intel_fbo.c
b7406404aba1817d5a87714f97a108a755943452 23-Apr-2012 Eric Anholt <eric@anholt.net> intel: Return success when asked to allocate a 0-width/height renderbuffer.

It seems silly that GL lets you allocate these given that they're
framebuffer attachment incomplete, but the webgl conformance tests
actually go looking to see if the getters on 0-width/height
depth/stencil renderbuffers return good values. By failing out here,
they all got smashed to 0, which turned out to be correct for all the
getters they tested except for GL_RENDERBUFFER_INTERNAL_FORMAT. Now,
by succeeding but not making a miptree, that one also returns the
expected value.

Acked-by: Kenneth Graunke <kenneth@whitecape.org>
/external/mesa3d/src/mesa/drivers/dri/intel/intel_fbo.c
e2dce7f7ee3e7da9cbb0bb33307ecd79e824426d 10-Feb-2012 Eric Anholt <eric@anholt.net> intel: Fix rendering from textures after RenderTexture().

There's a serious trap for drivers: RenderTexture() does not indicate
that the texture is currently bound to the draw buffer, despite
FinishRenderTexture() signaling that the texture is just now being
unbound from the draw buffer.

We were acting as if RenderTexture() *was* the start of rendering and
that we could make texturing incoherent with the current contents of
the renderbuffer. This caused intel oglconform sRGB
Mipmap.1D_textures to fail, because we got a call to TexImage() and
thus RenderTexture() on a texture bound to a framebuffer that wasn't
the draw buffer, so we skipped validating the new image into the
texture object used for rendering.

We can't (easily) make RenderTexture() indicate the start of drawing,
because both our driver and gallium are using it as the moment to set
up the renderbuffer wrapper used for things like MapRenderbuffer().
Instead, postpone the setup of the workaround render target miptree
until update_renderbuffer time, so that we no longer need to skip
validation of miptrees used as render targets. As a bonus, this
should make GL_NV_texture_barrier possible.

(This also fixes a regression in the gen4 small-mipmap rendering since
3b38b33c1648b07e75dc4d8340758171e109c598, which switched
set_draw_offset from image->mt to irb->mt but didn't move the irb->mt
replacement up before set_draw_offset).

Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=44961
NOTE: This is a candidate for the 8.0 branch.
/external/mesa3d/src/mesa/drivers/dri/intel/intel_fbo.c
308c6be802fc8d7cd470316ace717aa7bb6b2a08 10-Feb-2012 Eric Anholt <eric@anholt.net> intel: Improve the fallback debug for framebuffer status checks.
/external/mesa3d/src/mesa/drivers/dri/intel/intel_fbo.c
87b4c9b322dabeba7c9a9d02e9efefd2c89e6625 01-Feb-2012 Ian Romanick <ian.d.romanick@intel.com> intel: FBOs with texture border are unsupported

FBOs differ from textures in a significant way. With textures, we can
strip the border and get correct rendering except when the application
fetches texels outside [0,1].

With an FBO, the pixel at (0,0) is in the border. The
ARB_framebuffer_object spec says:

"If the attached image is a texture image, then the window
coordinates (x[w], y[w]) correspond to the texel (i, j, k), from
figure 3.10 as follows:

i = (x[w] - b)

j = (y[w] - b)

k = (layer - b)

where <b> is the texture image's border width..."

Since the border doesn't exist, we can never render any pixels in the
correct location. Just mark these FBOs FRAMEBUFFER_UNSUPPORTED.

NOTE: This is a candidate for the 8.0 branch.

Signed-off-by: Ian Romanick <ian.d.romanick@intel.com>
Reviewed-by: Kenneth Graunke <kenneth@whitecape.org>
Reviewed-by: Eric Anholt <eric@anholt.net>
Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=42336
/external/mesa3d/src/mesa/drivers/dri/intel/intel_fbo.c
796f44d77906342e5912e7da6bdba1ba86bab9f0 20-Jan-2012 Eric Anholt <eric@anholt.net> intel: Pass the gl_renderbuffer to render_target_supported() vtable method.

I'm going to want to go looking at it for an integer texture fix.

NOTE: This is a candidate for the 8.0 branch.
/external/mesa3d/src/mesa/drivers/dri/intel/intel_fbo.c
7cac88679bb600f35694e91859c4682c04c32f7a 20-Jan-2012 Eric Anholt <eric@anholt.net> intel: Make a renderbuffer wrapping a texture have the same _BaseFormat.

Otherwise, when you asked for the _BaseFormat of an rb wrapping a
GL_RGB texture, you got GL_RGBA because that's what we were storing
the texture data as.

NOTE: This is a candidate for the 8.0 branch.
/external/mesa3d/src/mesa/drivers/dri/intel/intel_fbo.c
b73f5df6483b2e37235b258f705944321ee617f5 20-Jan-2012 Eric Anholt <eric@anholt.net> intel: Simplify intel_renderbuffer_update_wrapper() by passing in the image.

NOTE: This is a candidate for the 8.0 branch.
/external/mesa3d/src/mesa/drivers/dri/intel/intel_fbo.c
74484c5d411788c855cf91a2017d763d6a8fb4f2 20-Jan-2012 Eric Anholt <eric@anholt.net> intel: Drop intel_wrap_miptree().

Most of this function was just calling
intel_renderbuffer_update_wrapper(), which was called immediately
afterwards in the only caller.

NOTE: This is a candidate for the 8.0 branch.
/external/mesa3d/src/mesa/drivers/dri/intel/intel_fbo.c
42e9936ce6bcac9f863b2f85978489e4f804e927 25-Jan-2012 Eric Anholt <eric@anholt.net> intel: Fix accum buffer mapping since the swrast rework.

A pure swrast-allocated buffer gets an irb of NULL, so we segfaulted
in the clear-accum test. Just look at the swrast renderbuffer pointer
for handling swrast rbs.
/external/mesa3d/src/mesa/drivers/dri/intel/intel_fbo.c
1839a7fc9faae81d32ffc0cdc908b933f4524e28 16-Jan-2012 Brian Paul <brianp@vmware.com> intel: remove intel_span_supports_format()

It always returned True.
/external/mesa3d/src/mesa/drivers/dri/intel/intel_fbo.c
9f8ed9d66298e2dc5dff508e3ea723469fe06d93 16-Jan-2012 Brian Paul <brianp@vmware.com> intel: derive intel_renderbuffer from swrast_renderbuffer

Drivers that rely on swrast need to do this, as with swrast_texture_image.
/external/mesa3d/src/mesa/drivers/dri/intel/intel_fbo.c
924de7dc96f4607cb3d833637b5f69f4b9e2a6d0 16-Jan-2012 Brian Paul <brianp@vmware.com> intel: use intel_rb_format() to get renderbuffer format

This will make future changes cleaner and less invasive.
/external/mesa3d/src/mesa/drivers/dri/intel/intel_fbo.c
7a36345f70a0b8ac2d480bb52eb2c74c2be5a978 16-Jan-2012 Brian Paul <brianp@vmware.com> mesa: rename gl_renderbuffer::Data to Buffer

To better indicate that this pointer to the malloc'd memory.
/external/mesa3d/src/mesa/drivers/dri/intel/intel_fbo.c
f9874feef4d8952df5054bd8e8f4e0deda4ef44f 16-Jan-2012 Brian Paul <brianp@vmware.com> mesa: remove gl_renderbuffer::DataType
/external/mesa3d/src/mesa/drivers/dri/intel/intel_fbo.c
1e1b5cb01a10e39d01923e3c7e989c44210950cd 16-Jan-2012 Brian Paul <brianp@vmware.com> mesa: remove gl_renderbuffer:RowStride field
/external/mesa3d/src/mesa/drivers/dri/intel/intel_fbo.c
41869c49421141807ab71cabca4c8a07611f6a64 16-Jan-2012 Brian Paul <brianp@vmware.com> intel: remove most of the span Get/PutRow code
/external/mesa3d/src/mesa/drivers/dri/intel/intel_fbo.c
ba5252e590782a77b8a46d9c0ec4691cf8da6298 19-Jan-2012 Chad Versace <chad.versace@linux.intel.com> intel/gen6: Some framebuffers having separate depthstencil should be unsupported

When the framebuffer has separate depth and stencil buffers, and HiZ is
not enabled on the depth buffer, mark the framebuffer as unsupported. This
happens when trying to create a framebuffer with Z16/S8 because we haven't
enabled HiZ on Z16 yet.

Fixes gles2conform test stencil8.

Note: This is a candiate for the 8.0 branch.
Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=44948
Reviewed-and-tested-by: Ian Romanick <ian.d.romanick@intel.com>
Reviewed--by: Eric Anholt <eric@anholt.net>
Signed-off-by: Chad Versace <chad.versace@linux.intel.com>
/external/mesa3d/src/mesa/drivers/dri/intel/intel_fbo.c
062a4b601edaaea193397bd5d86fea11ceec04f4 12-Jan-2012 Brian Paul <brianp@vmware.com> intel: move declaration before code
/external/mesa3d/src/mesa/drivers/dri/intel/intel_fbo.c
6dbdc0395698de929e23b4ec1ab399e64ecfd264 07-Jan-2012 Brian Paul <brianp@vmware.com> intel: fix mapping of malloc'd renderbuffers

This fixes accum buffer operations. The accumulation buffer is the
only malloc-based renderbuffer for the intel drivers.

v2: apply x/y offset to returned pointer

NOTE: This is a candidate for the 8.0 branch.

Reviewed-by: Eric Anholt <eric@anholt.net>
/external/mesa3d/src/mesa/drivers/dri/intel/intel_fbo.c
56b57aa360a8bad0c4b68fbdf7c64ac33f9e7661 29-Dec-2011 Brian Paul <brianp@vmware.com> mesa: rework ctx->Driver.CopyTexSubImage() parameters

Replace target, level parameters with gl_texture_image.
Add gl_renderbuffer parameter to indicate source buffer for the copy.

This removes some redundant code in the drivers to find the source
renderbuffer and the destination texture image (which we already had
in _mesa_CopyTexSubImage).

Signed-off-by: Brian Paul <brianp@vmware.com>
/external/mesa3d/src/mesa/drivers/dri/intel/intel_fbo.c
6a1e19d0f63cb086e43505522cb72b0183da9b11 17-Dec-2011 Eric Anholt <eric@anholt.net> intel: Drop the batchbuffer flush on glRenderbufferStorage().

There's nothing batchbuffer-related here. State updates by the caller
will trigger re-emitting of any new hardware state.
/external/mesa3d/src/mesa/drivers/dri/intel/intel_fbo.c
2529fde36ee29bf5789bb8a0234d3c60bd38f511 16-Dec-2011 Eric Anholt <eric@anholt.net> intel: Drop the batchbuffer flush on glFramebufferRenderbuffer().

There should be nothing special about this call compared to other
callers of intel_draw_buffer().
/external/mesa3d/src/mesa/drivers/dri/intel/intel_fbo.c
0c498467104e361e50bbb95adf2b2c0e799591dc 08-Dec-2011 Eric Anholt <eric@anholt.net> intel: Stop creating the wrapped depth irb.

All the operations were just trying to get at irb->wrapped_depth->mt,
which is the same as irb->mt now.

Reviewed-by: Kenneth Graunke <kenneth@whitecape.org>
/external/mesa3d/src/mesa/drivers/dri/intel/intel_fbo.c
fdf18b323156098ba5fb2881aa1a7888d2e0667f 15-Dec-2011 Eric Anholt <eric@anholt.net> i965: Properly demote the depth mt format for fake packed depth/stencil.

gen7 only supports the non-packed formats, even if you associate a
real separate stencil buffer -- otherwise it's as if the depth test
always fails.

This requires a little bit of care in the match_texture_image case,
since the miptree format no longer matches the texture image format.

Reviewed-by: Kenneth Graunke <kenneth@whitecape.org>
/external/mesa3d/src/mesa/drivers/dri/intel/intel_fbo.c
0b8b6c7e974930daf12e97fb8f0b2a2cc29396d9 08-Dec-2011 Eric Anholt <eric@anholt.net> intel: Stop creating the wrapped stencil irb.

There were only two places it was really used at this point, which was
in the batchbuffer emit of the separate stencil packets for gen6/7.
Just write in the ->stencil_mt reference in those two places and ditch
all this flailing around with allocation and refcounts.

v2: Fix separate stencil on gen7.

Reviewed-by: Kenneth Graunke <kenneth@whitecape.org>
/external/mesa3d/src/mesa/drivers/dri/intel/intel_fbo.c
7eb0aa398b9c0f7d8a224f2a4952f7875067e917 08-Dec-2011 Eric Anholt <eric@anholt.net> intel: Simplify and touch up the FBO completeness test.

Now that we have miptrees for everything, we can more easily test for
!has_separate_stencil completeness. Also, test for whether the
stencil rb is the wrong kind of format for separate stencil, or if we
are trying to do packed to different images of a single miptree.

Reviewed-by: Kenneth Graunke <kenneth@whitecape.org>
/external/mesa3d/src/mesa/drivers/dri/intel/intel_fbo.c
950310e7a363413bd87ce6e670a7b913fbddfbff 08-Dec-2011 Eric Anholt <eric@anholt.net> intel: Remove another renderbuffer allocation path.

Now there's the thing that CALLOCs and sets up window system vtable,
and the thing that CALLOCs and sets up user renderbuffer vtable. The
user renderbuffer vtable gets replaced later by
intel_renderbuffer_update_wrapper for wrapped renderbuffers (things
with name == ~0).

Reviewed-by: Kenneth Graunke <kenneth@whitecape.org>
/external/mesa3d/src/mesa/drivers/dri/intel/intel_fbo.c
a91c31668fce46545570571468fefca216fcf881 08-Dec-2011 Eric Anholt <eric@anholt.net> intel: Make the separate stencil RB storage path match texture more.

There were too many things making intel_renderbuffer *s and tweaking
their bits.

Reviewed-by: Kenneth Graunke <kenneth@whitecape.org>
/external/mesa3d/src/mesa/drivers/dri/intel/intel_fbo.c
f22068d5be7c829d3768154845ef3c5a2986fed4 08-Dec-2011 Eric Anholt <eric@anholt.net> intel: Move S8 width/height alignment to miptree creation.

We were doing it in the caller in the renderbuffer code, but it was
missed in the separate stencil creation for textures. Apparently our
testing was using renderbuffers or pre-aligned sizes.

Reviewed-by: Kenneth Graunke <kenneth@whitecape.org>
/external/mesa3d/src/mesa/drivers/dri/intel/intel_fbo.c
8967f750953ca94aa36e3a8ed703a61f1b434f64 07-Dec-2011 Eric Anholt <eric@anholt.net> intel: Drop check for wrapped_depth in RB mapping.

This used to be needed because irb->mt would be unset for fake packed
depth/stencil, but no longer.

Reviewed-by: Kenneth Graunke <kenneth@whitecape.org>
/external/mesa3d/src/mesa/drivers/dri/intel/intel_fbo.c
faa44bc2f64eb2dfa36b553c06c9bf5fe53ed502 13-Dec-2011 Eric Anholt <eric@anholt.net> intel: Fix uninitialized values in debug output for renderbuffer mapping.
/external/mesa3d/src/mesa/drivers/dri/intel/intel_fbo.c
96159c37e3e8c966dba7cf7fe70875372dd12293 30-Nov-2011 Eric Anholt <eric@anholt.net> intel: Rely on miptree mapping for all renderbuffer maps.

Now that all RBs have miptrees, and miptree mapping covered these last
two code paths, consistently use them.

Reviewed-by: Chad Versace <chad.versace@linux.intel.com>
/external/mesa3d/src/mesa/drivers/dri/intel/intel_fbo.c
2d2bfd1f2643b93caf76087b6ac04544af52ee63 30-Nov-2011 Eric Anholt <eric@anholt.net> intel: Handle MapRenderbuffer of fake packed depth/stencil using miptree maps.

This gets the same performance win as the miptree maps did, and
removes a pile of code duplication.
/external/mesa3d/src/mesa/drivers/dri/intel/intel_fbo.c
e0d67a3a8b4ec73df7e6f818989480a3dd1ee706 30-Nov-2011 Eric Anholt <eric@anholt.net> intel: Track miptrees for fake packed depth/stencil renderbuffers.

Right now the fake packed d/s RBs are creating two sub-renderbuffers
with their own storage, and the hardware setup and the mapping code
have been explicitly referencing them. By setting miptrees on them,
we'll be able to make our renderbuffer code for fake packed
depth/stencil more consistent with all our other renderbuffers.

The interesting new behavior here is that there is now a mt with a
non-depthstencil format (X8Z24) that has a stencil_mt field
associated. This looks like it should be safe, and we'll need to be
able to do this for floating point depth/stencil as well.
/external/mesa3d/src/mesa/drivers/dri/intel/intel_fbo.c
b48c3bca87b30003f9e117d299011380e743aec9 29-Nov-2011 Eric Anholt <eric@anholt.net> intel: Move separate-stencil s8 mapping logic to intel_miptree_map.

We're going to want to reuse this logic in mapping of fake packed
miptrees wrapping separate depth/stencil miptrees.

Reviewed-by: Chad Versace <chad.versace@linux.intel.com>
/external/mesa3d/src/mesa/drivers/dri/intel/intel_fbo.c
3d798abc818326a377bbbdaac29058ac7b41e1a0 15-Nov-2011 Eric Anholt <eric@anholt.net> intel: Improve debug output for begin/finish render texture.

I've never seen a use for the thread ID value, but knowing the format
being rendered is kind of a big deal.

Reviewed-by: Kenneth Graunke <kenneth@whitecape.org>
/external/mesa3d/src/mesa/drivers/dri/intel/intel_fbo.c
05ab8fc13461aa9d6612d75c899dac20de067da6 15-Nov-2011 Eric Anholt <eric@anholt.net> intel: Remove duplicate test for texture attachment completeness.

We are already testing this if appropriate in
intel_validate_framebuffer (FBO completeness), so no need to avoid
attaching the texture to the renderbuffer here.

This causes MESA_FORMAT_R11_G11_B10_FLOAT to now be renderable as a texture
attachment on i965.

Reviewed-by: Kenneth Graunke <kenneth@whitecape.org>
/external/mesa3d/src/mesa/drivers/dri/intel/intel_fbo.c
925356c8c0b21998a1f53f042269818c19163385 15-Nov-2011 Eric Anholt <eric@anholt.net> i965: Don't require spans (swrast) support to consider a format FBO complete.

We don't want to go writing GetRow/PutRow for every format required by
GL 3.0, when it's very hard to get those functions called, and in
every case we want to make swrast do direct mapping through
MapRenderbuffer anyway.

This causes MESA_FORMAT_R11_G11_B10_FLOAT to be considered complete on gen6.

Reviewed-by: Kenneth Graunke <kenneth@whitecape.org>
/external/mesa3d/src/mesa/drivers/dri/intel/intel_fbo.c
6661b7596f3b26a773ccde79f018179713b6b6e0 15-Nov-2011 Eric Anholt <eric@anholt.net> intel: Add the context to the render_target_supported() vtbl method.

We're going to want to provide different answers per chipset
generation.

Reviewed-by: Kenneth Graunke <kenneth@whitecape.org>
/external/mesa3d/src/mesa/drivers/dri/intel/intel_fbo.c
b18875d441ca4b7b1a4098659fb4298a4bf265f6 17-Nov-2011 Chad Versace <chad.versace@linux.intel.com> intel: Use separate stencil whenever possible

For depthstencil renderbuffers, we were using separate stencil only if the
hardware required it. Since the performance gains from HiZ is so high, we
should always use separate stencil if the hardware supports it.

Reviewed-by: Eric Anholt <eric@anholt.net>
Signed-off-by: Chad Versace <chad.versace@linux.intel.com>
/external/mesa3d/src/mesa/drivers/dri/intel/intel_fbo.c
293e9a7ccfeb64efd54464658518e4ded054a13c 16-Nov-2011 Chad Versace <chad.versace@linux.intel.com> intel: Enable HiZ for texture renderbuffers

When a depth texture is first attached to framebuffer, allocate a HiZ
miptree for it.

Reviewed-by: Eric Anholt <eric@anholt.net>
Signed-off-by: Chad Versace <chad.versace@linux.intel.com>
/external/mesa3d/src/mesa/drivers/dri/intel/intel_fbo.c
b264698d30d3c789bbe1fc64fd72c731f342877a 16-Nov-2011 Chad Versace <chad.versace@linux.intel.com> intel: Resolve buffers in intel_map_renderbuffer()

Reviewed-by: Eric Anholt <eric@anholt.net>
Signed-off-by: Chad Versace <chad.versace@linux.intel.com>
/external/mesa3d/src/mesa/drivers/dri/intel/intel_fbo.c
1383e56bd916f9fc4357a6224aac4e8c691303cb 17-Nov-2011 Chad Versace <chad.versace@linux.intel.com> intel: Add resolve functions for renderbuffers

Add the following functions:
intel_renderbuffer_resolve_hiz
intel_renderbuffer_resolve_depth

Reviewed-by: Eric Anholt <eric@anholt.net>
Signed-off-by: Chad Versace <chad.versace@linux.intel.com>
/external/mesa3d/src/mesa/drivers/dri/intel/intel_fbo.c
a2e44b0813e956440c451c107cf5564b56cbe98e 17-Nov-2011 Chad Versace <chad.versace@linux.intel.com> intel: Replace intel_mipmap_tree::hiz_region with a miptree [v2]

This is required to correctly implement HiZ for mipmapped and
multi-layered textures.

v2: Accomodate refcount fixes in intel_process_dri2_buffer_*() that were
introduced in v2 of commit
intel: Replace intel_renderbuffer::region with a miptree [v2]

Reviewed-by: Eric Anholt <eric@anholt>
Signed-off-by: Chad Versace <chad.versace@linux.intel.com>
/external/mesa3d/src/mesa/drivers/dri/intel/intel_fbo.c
3eb12dfaeed03f77e31943eea164acb03e86bbc9 16-Nov-2011 Chad Versace <chad.versace@linux.intel.com> intel: Replace intel_texture_image::stencil_irb with intel_mipmap_tree::stencil_mt [v3]

For depthstencil textures using separate stencil, we embedded a stencil
buffer in intel_texture_image. The intention was that the embedded stencil
buffer would be the golden copy of the texture's stencil bits. When
necessary, we scattered/gathered the stencil bits between the texture
miptree and the embedded stencil buffer.

This approach had a serious deficiency for mipmapped or multi-layer
textures. Any given moment the embedded stencil buffer was consistent with
exactly one miptree slice, the most recent one to be scattered. This
permitted tests of type A to pass, but broke tests of type B.

Test A:
1. Create a depthstencil texture.
2. Upload data into (level=x1,layer=y1).
3. Read and test stencil data at (level=x1, layer=y1).
4. Upload data into (level=x2,layer=y2).
5. Read and test stencil data at (level=x2, layer=y2).

Test B:
1. Create a depthstencil texture.
2. Upload data into (level=x1,layer=y1).
3. Upload data into (level=x2,layer=y2).
4. Read and test stencil data at (level=x1, layer=y1).
5. Read and test stencil data at (level=x2, layer=y2).

v2:
Only allocate stencil miptree if intel->must_use_separate_stencil,
because we don't make the conversion from must_use_separate_stencil to
has_separate_stencil until commit
intel: Use separate stencil whenever possible

v3:
Don't call ChooseNewTexture in intel_renderbuffer_wrap_miptree() in
order to determine the renderbuffer format. Instead, pass the format as
a param to that function.

CC: Eric Anholt <eric@anholt.net>
Signed-off-by: Chad Versace <chad.versace@linux.intel.com>
/external/mesa3d/src/mesa/drivers/dri/intel/intel_fbo.c
c80b31fdee1fa96b8d45ad2537ecdb5b9151973e 16-Nov-2011 Chad Versace <chad.versace@linux.intel.com> intel: Refactor intel_render_texture() [v2]

This is in preparation for properly implementing glFramebufferTexture*()
for mipmapped depthstencil textures. The FIXME comments deleted by this
patch give a rough explanation of what was broken.

This refactor does the following:
- In intel_update_wrapper() and intel_wrap_texture(), change the
parameters to prepare to remove functions' dependency on
gl_texture_image.
- Move the call to intel_renderbuffer_set_draw_offsets() from
intel_render_texture() into intel_udpate_wrapper().

Each time I encounter those functions, I dislike their vague names.
(Update which wrapper? What is wrapped? What is the wrapper?). So, while
I was mucking around, I also renamed the functions.

v2:
In addition to the ``GLenum internal_format`` parameter to
intel_wrap_miptree(), add a ``gl_format format`` parameter. This
removes the need to recalculate for the true format from
internal_format with ChooseNewTextureFormat, which was just weird.

Signed-off-by: Chad Versace <chad.versace@linux.intel.com>
/external/mesa3d/src/mesa/drivers/dri/intel/intel_fbo.c
3b38b33c1648b07e75dc4d8340758171e109c598 15-Nov-2011 Chad Versace <chad.versace@linux.intel.com> intel: Remove unneeded params from intel_renderbuffer_set_draw_offset()

Since the renderbuffer tracks the miptree level and layer that it wraps,
the 'tex_image' and 'zoffset' params are no longer needed to calculate the draw
offsets.

Not only are they no longer needed, but their presence would prevent
calculating the renderbuffer draw offsets in situations where there were
no texture image. Such situations will occur during the HiZ meta-op and
during scatter/gather of separate stencil textures.

Reviewed-by: Eric Anholt <eric@anholt.net>
Signed-off-by: Chad Versace <chad.versace@linux.intel.com>
/external/mesa3d/src/mesa/drivers/dri/intel/intel_fbo.c
24da7335b22432ef4c2d57cab86e4b8fbe8733d5 15-Nov-2011 Chad Versace <chad.versace@linux.intel.com> intel: Track the miptree layer wrapped by a renderbuffer [v2]

TODO: Make v2 for kwg.

Add two fields to intel_renderbuffer:
mt_level
mt_layer

Multiple renderbuffers may simultaneously wrap a single texture and each
provide a different view into that texture. [Consider
glFramebufferTextureLayer()]. The new fields indicate which slice of the
miptree is wrapped by the renderbuffer.

The buffer resolve operations, to be introduced in the future, require
these fields in order to resolve the correct slice in the miptree.

To add the fields, it was necessary to replace the type of some function
parameters from gl_texture_image to gl_renderbuffer_attachment.

v2: [kwg] Replace confusing condition `CubeMapFace > 0` with the more
sensible `Target == GL_TEXTURE_CUBE_MAP`.

Reviewed-by: Eric Anholt <eric@anholt.net>
Reviewed-by: Kenneth Graunke <kenneth@whitecape.org>
Signed-off-by: Chad Versace <chad.versace@linux.intel.com>
/external/mesa3d/src/mesa/drivers/dri/intel/intel_fbo.c
da2816a45e6e3a33246a341fee72e6f893f315d9 16-Nov-2011 Chad Versace <chad.versace@linux.intel.com> intel: Replace intel_renderbuffer::region with a miptree [v3]

Essentially, this patch just globally substitutes `irb->region` with
`irb->mt->region` and then does some minor cleanups to avoid segfaults
and other problems.

This is in preparation for
1. Fixing scatter/gather for mipmapped separate stencil textures.
2. Supporting HiZ for mipmapped depth textures.

As a nice benefit, this lays down some preliminary groundwork for easily
texturing from any renderbuffer, even those of the window system.

A future commit will replace intel_mipmap_tree::hiz_region with a miptree.

v2:
- Return early in intel_process_dri2_buffer_*() if region allocation
fails.
- Fix double semicolon.
- Fix miptree reference leaks in the following functions:
intel_process_dri2_buffer_with_separate_stencil()
intel_image_target_renderbuffer_storage()

v3:
- [anholt] Fix check for hiz allocation failure. Replace
``if (!irb->mt)` with ``if(!irb->mt->hiz_region)``.

Reviewed-by: Eric Anholt <eric@anholt.net>
Reviewed-by: Kenneth Graunke <kenneth@whitecape.org>
Signed-off-by: Chad Versace <chad.versace@linux.intel.com>
/external/mesa3d/src/mesa/drivers/dri/intel/intel_fbo.c
c3c7cbd15418293208034e8970d626b5998abd4b 14-Nov-2011 Chad Versace <chad.versace@linux.intel.com> intel: Move inline functions from intel_fbo.h to .c

Move the following inline functions:
intel_get_rb_region
intel_framebuffer_has_hiz

A future commit will replace the renderbuffer's region with a miptree.
This small refactor will eliminate the need for intel_fbo.h to include
intel_mipmap_tree.h on that commit. I'd like to avoid the situation where
each header transitively includes every other header.

Reviewed-by: Eric Anholt <eric@anholt.net>
Reviewed-by: Kenneth Graunke <kenneth@whitecape.org>
Signed-off-by: Chad Versace <chad.versace@linux.intel.com>
/external/mesa3d/src/mesa/drivers/dri/intel/intel_fbo.c
7e9b3c098c58af49a809afbc17d508f23eab21c2 14-Nov-2011 Chad Versace <chad.versace@linux.intel.com> intel: Temporarily disable HiZ for textures

A great refactor thrashing begins after this commit for HiZ and separate
stencil. Removing code for texture HiZ will make that refactoring easier,
because then we don't have to maintain that code during the refactor.

To disable HiZ for textures, I've removed the hook in
intel_update_wrapper() that allocates a HiZ buffer when attaching a depth
texture to a framebuffer.

HiZ was broken for textures anyway, so there's no regression here.

Reviewed-by: Eric Anholt <eric@anholt.net>
Reviewed-by: Kenneth Graunke <kenneth@whitecape.org>
Signed-off-by: Chad Versace <chad.versace@linux.intel.com>
/external/mesa3d/src/mesa/drivers/dri/intel/intel_fbo.c
190aec75a4362b56b9b311975a777c56e8e6c67d 17-Nov-2011 Chad Versace <chad.versace@linux.intel.com> intel: Always gather stencil buffer in intel_map_renderbuffer_separate_s8z24()

The function gathered the stencil buffer into the depth buffer only when
the map mode contained the read bit. But we must do the gather even if the
map mode is write-only. If we do not, then, when the depth buffer's stencil
bits are scattered into the stencil buffer by intel_unmap_renderbuffer(),
some of the scattered stencil bits would be invalid.

Reviewed-by: Eric Anholt <eric@anholt.net>
Reviewed-by: Kenneth Graunke <kenneth@whitecape.org>
Signed-off-by: Chad Versace <chad.versace@linux.intel.com>
/external/mesa3d/src/mesa/drivers/dri/intel/intel_fbo.c
dc4c3a31c64aae2c3d76ccbd5bf54d04a1d5d041 15-Nov-2011 Chad Versace <chad.versace@linux.intel.com> intel: Simplify stencil detiling arithmetic

When calculating the y offset needed for detiling window system stencil
buffers, replace the term
region->height * 2 + region->height % 2 - 1
with
rb->Height - 1 .

The two terms are incidentally equivalent due to some out-of-date,
incorrect code in the Intel DRI2 glue for DDX. (See
intel_process_dri2_buffer_with_separate_stencil(), line ``buffer_height /=
2;``).

Note: This is a candidate for the 7.11 branch (only the intel_span.c hunk).
Signed-off-by: Chad Versace <chad.versace@linux.intel.com>
/external/mesa3d/src/mesa/drivers/dri/intel/intel_fbo.c
cc502aa9419a6fb127b264dbb131c786281cb8c7 14-Nov-2011 Chad Versace <chad.versace@linux.intel.com> intel: Fix intel_map_renderbuffer() for depthstencil buffers with separate stencil

For a depthstencil buffer with separate stencil,
intel_renderbuffer::region is null. (The regions are kept in hidden depth
and stencil buffers). Since the region is null, intel_map_renderbuffer()
assumed there was no data and returned a null map pointer, which in turn
was dereferenced (!) by MapRenderbuffer's caller.

This patch fixes intel_map_renderbuffer() to map the hidden depth buffer
through the GTT and return that as the mapped pointer. Also, the stencil
bits are scattered and gathered when needed.

Fixes the following Piglit tests on gen7:
fbo/fbo-readpixels-depth-formats
hiz/hiz-depth-read-fbo-d24s8
hiz/hiz-stencil-read-fbo-d24s8
EXT_packed_depth_stencil/fbo-clear-formats
EXT_packed_depth_stencil/fbo-depth-GL_DEPTH24_STENCIL8-blit
EXT_packed_depth_stencil/fbo-depth-GL_DEPTH24_STENCIL8-drawpixels
EXT_packed_depth_stencil/fbo-depth-GL_DEPTH24_STENCIL8-readpixels
EXT_packed_depth_stencil/fbo-depthstencil-GL_DEPTH24_STENCIL8-readpixels-24_8
EXT_packed_depth_stencil/fbo-depthstencil-GL_DEPTH24_STENCIL8-readpixels-FLOAT-and-USHORT
EXT_packed_depth_stencil/fbo-stencil-GL_DEPTH24_STENCIL8-readpixels

Reviewed-by: Eric Anholt <eric@anholt.net>
Signed-off-by: Chad Versace <chad.versace@linux.intel.com>
/external/mesa3d/src/mesa/drivers/dri/intel/intel_fbo.c
5365ba19db8e9d714604bb63f037800ba2ff2f4d 11-Nov-2011 Chad Versace <chad.versace@linux.intel.com> intel: Fix software detiling of system stencil buffers

If a window system stencil buffer had a region with odd height, then the
calculated y offset needed for software detiling was off by one. The bug
existed in intel_{map,unmap}_renderbuffer_s8() and in the intel_span.c
accessors.

Fixes the following Piglit tests on gen7:
general/depthstencil-default_fb-readpixels-24_8
general/depthstencil-default_fb-readpixels-FLOAT-and-USHORT

Fixes SIGABRT in the following Piglit tests on gen7:
general/depthstencil-default_fb-blit
general/depthstencil-default_fb-copypixels
general/depthstencil-default_fb-drawpixels-24_8
general/depthstencil-default_fb-drawpixels-FLOAT-and-USHORT

Reviewed-by: Eric Anholt <eric@anholt.net>
Signed-off-by: Chad Versace <chad.versace@linux.intel.com>
/external/mesa3d/src/mesa/drivers/dri/intel/intel_fbo.c
87d6b359745b6b2c94d1c852ce27e2879d4bec56 10-Nov-2011 Chad Versace <chad.versace@linux.intel.com> intel: Fix intel_unmap_renderbuffer_s8()

When gathering the temporary buffer's pixles into the gem buffer, we had
the two buffers juxtaposed. Oops.

Fixes the following Piglit tests on gen7:
general/GL_SELECT - alpha-test enabled
general/GL_SELECT - depth-test enabled
general/GL_SELECT - no test function
general/GL_SELECT - scissor-test enabled
general/GL_SELECT - stencil-test enabled

Fixes SIGABRT in Piglit tests EXT_framebuffer_object/fbo-stencil-* on
gen7.

Reviewed-by: Eric Anholt <eric@anholt.net>
Signed-off-by: Chad Versace <chad.versace@linux.intel.com>
/external/mesa3d/src/mesa/drivers/dri/intel/intel_fbo.c
f911cac7a7a8ebcad711587200c7f66ab61d1ccf 09-Nov-2011 Chad Versace <chad.versace@linux.intel.com> intel: Refactor intel_map_renderbuffer()

The function already implements 3 cases (map through GTT, blit to
a temporary, and detile stencil buffer to temporary), and a 4th will be
added soon: scatter/gather for depthstencil buffers using separate
stencil. For sanity's sake, this factors each case out into its own
function.

Reviewed-by: Eric Anholt <eric@anholt.net>
Signed-off-by: Chad Versace <chad.versace@linux.intel.com>
/external/mesa3d/src/mesa/drivers/dri/intel/intel_fbo.c
eab201bad4d4f250ca9318a228d1c71561daee1a 19-Oct-2011 Eric Anholt <eric@anholt.net> i965/gen6: Improve glReadPixels() performance by blitting to a linear temp.

The readpixels microbenchmark in mesa-demos goes from 47Mpix/sec at
1000x1000 to 450Mpix/sec. The 10x10 sizes stay about the same.

Reviewed-by: Brian Paul <brianp@vmware.com>
/external/mesa3d/src/mesa/drivers/dri/intel/intel_fbo.c
92054cd94e2188c9f4d56ddf9377c5aeb8a4e64e 11-Oct-2011 Eric Anholt <eric@anholt.net> intel: Add an implementation of MapRenderbuffer.

v2: Add separate stencil S8 W-tile swizzling/deswizzling. Tested for
the swizzling case with env INTEL_SEPARATE_STENCIL=1 INTEL_HIZ=1
./bin/hiz-depth-stencil-test-fbo-d24-s8
v3: Apply Chad's fix for S8 window system buffers.

Reviewed-by: Chad Versace <chad@chad-versace.us>
/external/mesa3d/src/mesa/drivers/dri/intel/intel_fbo.c
6b341662b3bbde7e86b3b9184266412da1b27977 01-Nov-2011 Eric Anholt <eric@anholt.net> intel: Improve the debug info for renderbuffer allocation.
/external/mesa3d/src/mesa/drivers/dri/intel/intel_fbo.c
2e5a1a254ed81b1d3efa6064f48183eefac784d0 07-Oct-2011 Kenneth Graunke <kenneth@whitecape.org> intel: Convert from GLboolean to 'bool' from stdbool.h.

I initially produced the patch using this bash command:
for file in {intel,i915,i965}/*.{c,cpp,h}; do [ ! -h $file ] && sed -i
's/GLboolean/bool/g' $file && sed -i 's/GL_TRUE/true/g' $file && sed -i
's/GL_FALSE/false/g' $file; done

Then I manually added #include <stdbool.h> to fix compilation errors,
and converted a few functions back to GLboolean that were used in core
Mesa's function pointer table to avoid "incompatible pointer" warnings.

Finally, I cleaned up some whitespace issues introduced by the change.

Signed-off-by: Kenneth Graunke <kenneth@whitecape.org>
Acked-by: Chad Versace <chad@chad-versace.us>
Acked-by: Paul Berry <stereotype441@gmail.com>
/external/mesa3d/src/mesa/drivers/dri/intel/intel_fbo.c
fd99cd0e10849205749aad580fea8c970fb46a31 29-Sep-2011 Eric Anholt <eric@anholt.net> intel: Add a helper function for getting miptree size from a texture image.

With 1D array textures, we no longer agree between the GL information
about width/height/depth of a texture and how we lay out a miptree.
/external/mesa3d/src/mesa/drivers/dri/intel/intel_fbo.c
b07c78bfe94c17e6fccba70923b03a29c751fde1 29-Sep-2011 Eric Anholt <eric@anholt.net> intel: Consolidate texture validation copy code, and reuse it correctly.

The path for ->Data was failing to be called for the FBO draw offset
fallback, and also had mismatched compressed texture support code.

This drops the intel_prepare_render() in the blit path. We aren't
copying to/from a GL_FRONT buffer, so it doesn't matter.
/external/mesa3d/src/mesa/drivers/dri/intel/intel_fbo.c
db3ada6055814a4bd5aa95fc9505fc101864391d 22-Sep-2011 Eric Anholt <eric@anholt.net> intel: Drop the "intel" argument to intel_miptree_release().

We don't have it in the other refcounting functions, and it was
totally unused.

Reviewed-by: Kenneth Graunke <kenneth@whitecape.org>
/external/mesa3d/src/mesa/drivers/dri/intel/intel_fbo.c
19cfe1e035fdaf03b7a3560c47f1b8d59a221902 21-Sep-2011 Eric Anholt <eric@anholt.net> intel: Drop some extra equality checks on reference/release functions.

_mesa_reference_renderbuffer already short-circuits equality, and
intel_miptree_release does nothing on NULL.

Reviewed-by: Kenneth Graunke <kenneth@whitecape.org>
/external/mesa3d/src/mesa/drivers/dri/intel/intel_fbo.c
fa2c886863492cc3eeee6d2059ae24edc1cb2bff 17-Sep-2011 Brian Paul <brianp@vmware.com> intel: make intel_texture_image a subclass of swrast_texture_image

We need to subclass swrast_texture_image because if we use swrast for
fallback rendering, we'll need to have swrast_texture_image objects.
/external/mesa3d/src/mesa/drivers/dri/intel/intel_fbo.c
bd817215c893cda4f23cb0ad207478ad3935e65c 26-Aug-2011 Ian Romanick <ian.d.romanick@intel.com> intel: Silence "warning: unused parameter ‘target’"

The GLenum target parameter was not used in intel_copy_texsubimage, so
remove it. Also remove the GLenum internalFormat parameter. Each
caller just copied this out of the intel_texture_image that is already
passed to intel_copy_texsubimage.

Reviewed-by: Eric Anholt <eric@anholt.net>
/external/mesa3d/src/mesa/drivers/dri/intel/intel_fbo.c
17fa6772d7e223f940dd8ec4e4f6cf8cab9a03c7 26-Aug-2011 Ian Romanick <ian.d.romanick@intel.com> intel: Silence "warning: unused parameter ‘fb’"

The gl_framebuffer was not used in intel_draw_buffer, so remove it.

Reviewed-by: Eric Anholt <eric@anholt.net>
/external/mesa3d/src/mesa/drivers/dri/intel/intel_fbo.c
9fe197c62611815ebe74248033271ad9fd07ae06 21-Aug-2011 Chia-I Wu <olv@lunarg.com> intel: add support for __DRI_IMAGE_FORMAT_ABGR8888

It maps to MESA_FORMAT_RGBA8888_REV. Surfaces of the format can only be
sampled from but not render to.

Only i915 is tested.

Reviewed-by: Eric Anholt <eric@anholt.net>

[olv: add a check in intel_image_target_renderbuffer_storage]
/external/mesa3d/src/mesa/drivers/dri/intel/intel_fbo.c
7dae1aaf142999e3cfeafb13d30abda667d66d87 15-Jul-2011 Brian Paul <brianp@vmware.com> intel: use new gl_texture_image:Face, Level fields

Reviewed-by: Ian Romanick <ian.d.romanick@intel.com>
/external/mesa3d/src/mesa/drivers/dri/intel/intel_fbo.c
0f1aae3ae7cef051f87dae056c46fcfd0afaab20 02-Aug-2011 Eric Anholt <eric@anholt.net> intel: Fix unused variable warning.
/external/mesa3d/src/mesa/drivers/dri/intel/intel_fbo.c
f73caddd3339d284556036d031ab30ce8057a510 26-Jul-2011 Kenneth Graunke <kenneth@whitecape.org> i965: Remove the now unused intel_renderbuffer::draw_offset field.

The previous commit removed the last use of this field.

Reviewed-by: Eric Anholt <eric@anholt.net>
Signed-off-by: Kenneth Graunke <kenneth@whitecape.org>
/external/mesa3d/src/mesa/drivers/dri/intel/intel_fbo.c
15c0bc5eefc89bec537e412c02965f201fb1c011 26-Jul-2011 Kenneth Graunke <kenneth@whitecape.org> i965: Check actual tile offsets in Gen4 miptree workaround.

The purpose of the (irb->draw_offset & 4095) != 0 check was to ensure
that we don't have XYy offsets into a tile, since Gen4 hardware doesn't
support that. However, it's insufficient: there are cases where
draw_offset & 4095 is 0 but we still have a Y-offset. This leads to an
assertion failure in brw_update_renderbuffer_surface with tile_y != 0.

Instead, simply call intel_renderbuffer_tile_offsets to compute the
actual X/Y offsets and check if either are non-zero. This makes both
the workaround and the assertion check the same things.

Fixes piglit test fbo-generatemipmap-formats, and should also fix
bugs #34009 and #39487.

NOTE: This is a candidate for stable release branches.

Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=34009
Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=39487
Reviewed-by: Eric Anholt <eric@anholt.net>
Reviewed-by: Chad Versace <chad@chad-versace.us>
Signed-off-by: Kenneth Graunke <kenneth@whitecape.org>
/external/mesa3d/src/mesa/drivers/dri/intel/intel_fbo.c
f7dbcba280e4397cadb14f230aa925b4143cdde4 18-Jul-2011 Chad Versace <chad@chad-versace.us> intel: Fix stencil buffer to be W tiled

Until now, the stencil buffer was allocated as a Y tiled buffer, because
in several locations the PRM states that it is. However, it is actually
W tiled. From the PRM, 2011 Sandy Bridge, Volume 1, Part 2, Section
4.5.2.1 W-Major Format:
W-Major Tile Format is used for separate stencil.

The GTT is incapable of W fencing, so we allocate the stencil buffer with
I915_TILING_NONE and decode the tile's layout in software.

This fix touches the following portions of code:
- In intel_allocate_renderbuffer_storage(), allocate the stencil
buffer with I915_TILING_NONE.
- In intel_verify_dri2_has_hiz(), verify that the stencil buffer is
not tiled.
- In the stencil buffer's span functions, the tile's layout must be
decoded in software.

This commit mutually depends on the xf86-video-intel commit
dri: Do not tile stencil buffer
Author: Chad Versace <chad@chad-versace.us>
Date: Mon Jul 18 00:38:00 2011 -0700

On Gen6 with separate stencil enabled, fixes the following Piglit tests:
bugs/fdo23670-drawpix_stencil
general/stencil-drawpixels
spec/EXT_framebuffer_object/fbo-stencil-GL_STENCIL_INDEX16-copypixels
spec/EXT_framebuffer_object/fbo-stencil-GL_STENCIL_INDEX16-drawpixels
spec/EXT_framebuffer_object/fbo-stencil-GL_STENCIL_INDEX16-readpixels
spec/EXT_framebuffer_object/fbo-stencil-GL_STENCIL_INDEX1-copypixels
spec/EXT_framebuffer_object/fbo-stencil-GL_STENCIL_INDEX1-drawpixels
spec/EXT_framebuffer_object/fbo-stencil-GL_STENCIL_INDEX1-readpixels
spec/EXT_framebuffer_object/fbo-stencil-GL_STENCIL_INDEX4-copypixels
spec/EXT_framebuffer_object/fbo-stencil-GL_STENCIL_INDEX4-drawpixels
spec/EXT_framebuffer_object/fbo-stencil-GL_STENCIL_INDEX4-readpixels
spec/EXT_framebuffer_object/fbo-stencil-GL_STENCIL_INDEX8-copypixels
spec/EXT_framebuffer_object/fbo-stencil-GL_STENCIL_INDEX8-drawpixels
spec/EXT_framebuffer_object/fbo-stencil-GL_STENCIL_INDEX8-readpixels
spec/EXT_packed_depth_stencil/fbo-stencil-GL_DEPTH24_STENCIL8-copypixels
spec/EXT_packed_depth_stencil/fbo-stencil-GL_DEPTH24_STENCIL8-readpixels
spec/EXT_packed_depth_stencil/readpixels-24_8

Note: This is a candidate for the 7.11 branch.

Signed-off-by: Chad Versace <chad@chad-versace.us>
Reviewed-by: Eric Anholt <eric@anholt.net>
Reviewed-by: Ian Romanick <ian.d.romanick@intel.com>
Acked-by: Kenneth Graunke <kenneth@whitecape.org>
/external/mesa3d/src/mesa/drivers/dri/intel/intel_fbo.c
8cf2741d2b05fd9f41eca35f0f43e6e0684d57f2 12-Jul-2011 Eric Anholt <eric@anholt.net> intel: Clarify the depthRb == stencilRb logic.

Reviewed-by: Chad Versace <chad@chad-versace.us>
/external/mesa3d/src/mesa/drivers/dri/intel/intel_fbo.c
007c2d6cd2f6b206564689ac12a3e51aaae242bc 29-Jun-2011 Eric Anholt <eric@anholt.net> intel: Remove gratuitous context checks in intel_delete_renderbuffer().

Even if we don't have a current context, if we're freeing the rb we
should free its region (and BO). The renderbuffer unreference checks
appear to be just cargo-cult from the region unreference code.

Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=30217
Reviewed-by: Chad Versace <chad@chad-versace.us>
/external/mesa3d/src/mesa/drivers/dri/intel/intel_fbo.c
c7ef5e8498550e6ed4d609641ca6deb932882485 29-Jun-2011 Eric Anholt <eric@anholt.net> intel: Remove now trivial intel_renderbuffer_set_{hiz_,}region().

As a result of this cleanup, a bug in
intel_process_dri2_buffer_no_separate_stencil() became quite apparent.
We were associating the NULL pointer after an unreference with the
STENCIL attachment -- clarify the logic and attach the right region.

Reviewed-by: Chad Versace <chad@chad-versace.us>
/external/mesa3d/src/mesa/drivers/dri/intel/intel_fbo.c
b904321ed018c661271fb1fc3eefd1af0ec61c7f 29-Jun-2011 Eric Anholt <eric@anholt.net> intel: Rely on intel_region_reference()'s support of *dst != NULL.

Reviewed-by: Chad Versace <chad@chad-versace.us>
/external/mesa3d/src/mesa/drivers/dri/intel/intel_fbo.c
97f263c229784a55014b32e8b3e420e58f8bc851 23-Jun-2011 Chad Versace <chad@chad-versace.us> intel: Change framebuffer validation criteria

Since all infrastructure is now in place to support packed
depth/stencil renderbuffers when using separate stencil, there is no
need for special cases when separate stencil is enabled.

Signed-off-by: Chad Versace <chad@chad-versace.us>
/external/mesa3d/src/mesa/drivers/dri/intel/intel_fbo.c
e357ae949465d0304adb704df5d860ee678390e7 23-Jun-2011 Chad Versace <chad@chad-versace.us> intel: In intel_update_wrapper, support s8z24 textures when using separate stencil

Also, in order to coerce intel_update_tex_wrapper_regions() to
allocate the hiz region, alter intel_update_tex_wrapper_regions() to
examine the renderbuffer format instead of the texture image format.

Signed-off-by: Chad Versace <chad@chad-versace.us>
/external/mesa3d/src/mesa/drivers/dri/intel/intel_fbo.c
bffae4c9cd7df044cdbeeed1de257d720f1e76ac 23-Jun-2011 Chad Versace <chad@chad-versace.us> intel: Factor region updates out of intel_update_wrapper

... and into new function intel_update_tex_wrapper_regions.

This prevents code duplication in the next commit.

Also add a note explaining that the hiz region is broken for mipmapped
depth textures.

Signed-off-by: Chad Versace <chad@chad-versace.us>
/external/mesa3d/src/mesa/drivers/dri/intel/intel_fbo.c
5cd4d8551778e1b371397ad4a1144a1c0b9f436f 22-Jun-2011 Chad Versace <chad@chad-versace.us> intel: Declare some functions in intel_fbo.c as non-static

... because they will be needed by intel_tex_image_s8z24_create_renderbuffers.

Redeclared functions are:
intel_alloc_renderbuffer_storage
intel_renderbuffer_set_draw_offsets

Signed-off-by: Chad Versace <chad@chad-versace.us>
/external/mesa3d/src/mesa/drivers/dri/intel/intel_fbo.c
8869a2623775a4879ac310d7073f184b7d45eed1 21-Jun-2011 Chad Versace <chad@chad-versace.us> intel: Change signature of intel_create_wrapped_renderbuffer

Redeclare as non-static because
intel_tex_image_s8z24_create_renderbuffers will use it.

Remove the 'wrapper' parameter, because there is no wrapper for
intel_texture_image.depth_rb and stencil_rb.

Signed-off-by: Chad Versace <chad@chad-versace.us>
/external/mesa3d/src/mesa/drivers/dri/intel/intel_fbo.c
3db27d4a4aee9f311a447778ce94007415f2637f 17-Jun-2011 Chad Versace <chad@chad-versace.us> intel: Allocate s8_z24 non-texture renderbuffers when using separate stencil

Now all infrastructure is in place to support s8_z24 non-texture
renderbuffers for gen7.

Reviewed-by: Eric Anholt <eric@anholt.net>
Signed-off-by: Chad Versace <chad@chad-versace.us>
/external/mesa3d/src/mesa/drivers/dri/intel/intel_fbo.c
36e05c6870fc466053b4f54edd890e19d5ac9dcf 15-Jun-2011 Chad Versace <chad@chad-versace.us> intel: Unobfuscate intel_alloc_renderbuffer_storage

Hiz buffer allocation can only occur if the 'else' branch has been taken,
so move the hiz buffer allocation into the 'else' branch.

Having the hiz buffer allocation dangling outside of the if-tree was just
damn confusing.

Reviewed-by: Kenneth Graunke <kenneth@whitecape.org>
Signed-off-by: Chad Versace <chad@chad-versace.us>
/external/mesa3d/src/mesa/drivers/dri/intel/intel_fbo.c
39d0e3632a4ccb10f2ce6578151e854ba52d3c0e 16-Jun-2011 Chad Versace <chad@chad-versace.us> intel: Add fields to intel_renderbuffer for unwrapping packed depth/stencil buffers

Add the following fields:
intel_renderbuffer.wrapped_depth;
intel_renderbuffer.wrapped_stencil

If the intel_context is using separate stencil and the renderbuffer has
a packed depth/stencil format, then wrapped_depth and wrapped_stencil are
the real renderbuffers.

Alter the following functions to accomodate the wrapped buffers:
intel_delete_renderbuffer
intel_draw_buffer
intel_get_renderbuffer
intel_renderbuffer_map
intel_renderbuffer_unmap

Subsequent commits allocate renderbuffer storage for wrapped_depth and
wrapped_stencil.

Reviewed-by: Eric Anholt <eric@anholt.net>
Signed-off-by: Chad Versace <chad@chad-versace.us>
/external/mesa3d/src/mesa/drivers/dri/intel/intel_fbo.c
f94fef83db10f0c9327bd3dd43510ad31c94d82a 09-Jun-2011 Eric Anholt <eric@anholt.net> intel: Drop the cpp argument to intel_miptree_create().
/external/mesa3d/src/mesa/drivers/dri/intel/intel_fbo.c
6dcc398ac0837025cf60b4d6a056fa3b0a16466f 09-Jun-2011 Eric Anholt <eric@anholt.net> intel: Calculate compress_byte in intel_miptree_create.

One less argument and thing to get wrong.
/external/mesa3d/src/mesa/drivers/dri/intel/intel_fbo.c
9c5fdbb721147f7304faaa8960f5b64e25a8f673 09-Jun-2011 Eric Anholt <eric@anholt.net> intel: Use the gl_format to get the base_format for miptree create.

One less argument to this insanely long function call.
/external/mesa3d/src/mesa/drivers/dri/intel/intel_fbo.c
9a523a48af05118424714f0a34ca3dda6861186a 09-Jun-2011 Eric Anholt <eric@anholt.net> intel: Drop the internal_format field of the mipmap tree.

This has been replaced with the gl_format now.
/external/mesa3d/src/mesa/drivers/dri/intel/intel_fbo.c
d5809115b568d8b74f47316607dce0730964517a 09-Jun-2011 Eric Anholt <eric@anholt.net> intel: Add the MESA_FORMAT as a field of the miptree.

We only had internal_format before, which is way more irritating to
work with.
/external/mesa3d/src/mesa/drivers/dri/intel/intel_fbo.c
d29117752f10d9bcb61e7b26064a872017a64ebe 01-Jun-2011 Eric Anholt <eric@anholt.net> intel: Clean up intel_render_texture with a rename and a helper function.

The "newImage" isn't particularly new -- it might be the same texture
that was attached to the same attachment point before. This function
also gets called when just rebinding back to an FBO with a texture
attachment.

Reviewed-by: Kenneth Graunke <kenneth@whitecape.org>
Reviewed-by: Chad Versace <chad@chad-versace.us>
/external/mesa3d/src/mesa/drivers/dri/intel/intel_fbo.c
b17aab5753a6d14c9e757bedb186963b2dae8823 31-May-2011 Eric Anholt <eric@anholt.net> intel: Move the draw_x/draw_y to the renderbuffer where it belongs.

It was originally located in the region because the tracking of
depth/color buffers was on the regions, and getting back to the irb
would have been tricky. Now, we're keying off of the renderbuffer in
more places, which means we can move these fields where they belong.

This could fix potential rendering failure with a single texture
having multiple images attached to different renderbuffers across
shareCtx (as far as I can tell, this was the only failure we could
cause, since anything else should trigger intel_render_texture in
between, for example a BindFramebuffer).

Reviewed-by: Kenneth Graunke <kenneth@whitecape.org>
Reviewed-by: Chad Versace <chad@chad-versace.us>
/external/mesa3d/src/mesa/drivers/dri/intel/intel_fbo.c
4fa01d705f0b795a5df30127925ced8e0522631f 14-Jun-2011 Brian Paul <brianp@vmware.com> dri: include swrast.h, not s_texrender.h
/external/mesa3d/src/mesa/drivers/dri/intel/intel_fbo.c
755f2e2ae597df9208523b0996bbdabf3db463b0 13-Jun-2011 Brian Paul <brianp@vmware.com> mesa: move texrender.c to swrast

This stuff is really for software rendering, it's not core Mesa.
A small step toward pushing the FetchTexel() stuff down into swrast.

Reviewed-by: Eric Anholt <eric@anholt.net>
/external/mesa3d/src/mesa/drivers/dri/intel/intel_fbo.c
84294fe26ca5860c34e6541f633be4d093ab57f2 31-May-2011 Chad Versace <chad@chad-versace.us> intel: Add function intel_renderbuffer_set_hiz_region()

It's the analog of intel_renderbuffer_set_region(), but for the hiz region
of course.

CC: Ian Romanick <idr@freedesktop.org>
CC: Kristian Høgsberg <krh@bitplanet.net>
Acked-by: Eric Anholt <eric@anholt.net>
Reviewed-by: Kenneth Graunke <kenneth@whitecape.org>
Signed-off-by: Chad Versace <chad@chad-versace.us>
/external/mesa3d/src/mesa/drivers/dri/intel/intel_fbo.c
e7bcfadc2255e3417e03676837d248f4976419e2 23-May-2011 Chad Versace <chad@chad-versace.us> intel: Change FBO validation criteria to accomodate hiz and seprate stencil

Reviewed-by: Eric Anholt <eric@anholt.net>
Signed-off-by: Chad Versace <chad@chad-versace.us>
/external/mesa3d/src/mesa/drivers/dri/intel/intel_fbo.c
c270f1a628a625ccc9f6d931f2921e3d92c31818 23-May-2011 Chad Versace <chad@chad-versace.us> intel: Add hiz_region to intel_mipmap_tree

When a texture is attached to multiple FBO's, a separate renderbuffer
wrapper is created for each attachment. This necessitates storing the hiz
region for these renderbuffers in the texture itself instead of the
renderbuffer wrapper.

Reviewed-by: Eric Anholt <eric@anholt.net>
Signed-off-by: Chad Versace <chad@chad-versace.us>
/external/mesa3d/src/mesa/drivers/dri/intel/intel_fbo.c
6ed829fe5063f61f1ab2fcb39a441e17d89e622c 23-May-2011 Chad Versace <chad@chad-versace.us> intel: Refactor the wrapping of textures with renderbuffers

Before this commit, the renderbuffer's region was updated in
intel_renderbuffer_texture(). This commit moves the update into
intel_update_wrapper(), which is a more logical location for updates.

This is in preparation for the next commit, which allocates and
updates the texture's hiz region in intel_update_wrapper(). Having the two
region updates located in the same function makes good form.

Reviewed-by: Eric Anholt <eric@anholt.net>
Signed-off-by: Chad Versace <chad@chad-versace.us>
/external/mesa3d/src/mesa/drivers/dri/intel/intel_fbo.c
7c0e6d9bbc11f7802c81df048eb721b5e15e8ece 23-May-2011 Chad Versace <chad@chad-versace.us> intel: Add hiz_region to intel_renderbuffer

A hiz surface must be supplied to the hardware when rendering to a depth
buffer with hiz. There are three potential places to store that surface:
1. Allocate a larger intel_region for the depthbuffer, and let the
region's tail be the hiz surface.
2. Allocate a separate intel_region for hiz, and store it as
brw_context state.
3. Allocate a separate intel_region for hiz, and store it in
intel_renderbuffer.

We choose method 3.

Method 1 has not been chosen due to future complications it might cause
when requesting a DRI drawable's depth buffer attachment from X.

Method 2 has not been chosen because storing the hiz region apart from
the depth region makes lazy hiz/depth resolves difficult to implement.

Reviewed-by: Eric Anholt <eric@anholt.net>
Signed-off-by: Chad Versace <chad@chad-versace.us>
/external/mesa3d/src/mesa/drivers/dri/intel/intel_fbo.c
1a1411e09b23fce9977f7926dba4f1f0c8f3c5ec 23-May-2011 Chad Versace <chad@chad-versace.us> intel: Allocate region for separate stencil buffer

... in intel_alloc_renderbuffer_storage(). The stencil buffer has quirky
pitch requirements, so its region allocation is a special case.

Reviewed-by: Eric Anholt <eric@anholt.net>
Reviewed-by: Kenneth Graunke <kenneth@whitecape.org>
Signed-off-by: Chad Versace <chad@chad-versace.us>
/external/mesa3d/src/mesa/drivers/dri/intel/intel_fbo.c
cd3568c329cff16333455fa2228a7c27b261cf05 16-Apr-2011 Eric Anholt <eric@anholt.net> intel: Use _mesa_base_tex_format for FBO texture attachments.

The _mesa_base_fbo_format variant doesn't handle some texture
internalformats, such as "3".

Fixes:
fbo-blending-formats.
fbo-alphatest-formats
EXT_texture_sRGB/fbo-alphatest-formats

Reviewed-by: Brian Paul <brianp@vmware.com>
/external/mesa3d/src/mesa/drivers/dri/intel/intel_fbo.c
c0ad70ae31ee5501281b434d56e389fc92b13a3a 05-Feb-2011 Neil Roberts <neil@linux.intel.com> intel: Try using glCopyTexSubImage2D in _mesa_meta_BlitFramebuffer

In the case where glBlitFramebuffer is being used to copy to a texture
without scaling it is faster if we can use the hardware to do a blit
rather than having to do a texture render. In most of the drivers
glCopyTexSubImage2D will use a blit so this patch makes it check for
when glBlitFramebuffer is doing a simple copy and then divert to
glCopyTexSubImage2D.

This was originally proposed as an extension to the common meta-ops.
However, it was rejected as using the BLT is only advantageous for Intel
hardware.

Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=33934
Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
/external/mesa3d/src/mesa/drivers/dri/intel/intel_fbo.c
8d68a90e225d831a395ba788e425cb717eec1f9a 10-Feb-2011 Chris Wilson <chris@chris-wilson.co.uk> intel: use pwrite for batch

It's faster. Not only is the memcpy more efficiently performed in the
kernel (making up for the system call overhead), but by not using mmap
we remove the greater overhead of tracking the vma of every batch.

And it means we can read back from the batch buffer without incurring
the cost of a uncached read through the GTT.

Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
/external/mesa3d/src/mesa/drivers/dri/intel/intel_fbo.c
d53c8380bf1ed2897979f67fdb675074169b0465 12-Jan-2011 Eric Anholt <eric@anholt.net> i915: Fix compiler warning from sw fallback removal change.
/external/mesa3d/src/mesa/drivers/dri/intel/intel_fbo.c
c0cdae03685056e170c25da7d46aed959176d652 11-Jan-2011 Eric Anholt <eric@anholt.net> i965: Use a new miptree to avoid software fallbacks due to drawing offset.

When attaching a small mipmap level to an FBO, the original gen4
didn't have the bits to support rendering to it. Instead of falling
back, just blit it to a new little miptree just for it, and let it get
revalidated into the stack later just like any other new teximage.

Bug #30365.
/external/mesa3d/src/mesa/drivers/dri/intel/intel_fbo.c
45a56e4730a74a012ad712fd9b6013d900b04742 09-Jan-2011 Vinson Lee <vlee@vmware.com> intel: Include mfeatures.h in files that perform feature tests.
/external/mesa3d/src/mesa/drivers/dri/intel/intel_fbo.c
29c4f95cbcad29d52bf3b6c875840b38b8823e4c 08-Jan-2011 Eric Anholt <eric@anholt.net> intel: Make renderbuffer tiling choice match texture tiling choice.

There really shouldn't be any difference between the two for us.
Fixes a bug where Z16 renderbuffers would be untiled on gen6, likely
leading to hangs.
/external/mesa3d/src/mesa/drivers/dri/intel/intel_fbo.c
8f593597fc100b496db368b2b988e1d2ec58b612 08-Jan-2011 Eric Anholt <eric@anholt.net> intel: Use the _BaseFormat from MESA_FORMAT_* in renderbuffer setup.
/external/mesa3d/src/mesa/drivers/dri/intel/intel_fbo.c
a7bf7230564ac282cc957207224d16f322fa73d8 08-Jan-2011 Eric Anholt <eric@anholt.net> intel: Add a vtbl hook for determining if a format is renderable.

By relying on just intel_span_supports_format, some formats that
aren't supported pre-gen4 were not reporting FBO incomplete. And we
also complained in stderr when it happened on i915 because draw_region
gets called before framebuffer completeness validation.
/external/mesa3d/src/mesa/drivers/dri/intel/intel_fbo.c
5dbb856e960f9448ec4e322f936f5f6763ee77e2 04-Jan-2011 Eric Anholt <eric@anholt.net> intel: Merge our choosetexformat fallbacks into core.

We now share the type/format -> MESA_FORMAT_* mappings with software
mesa, and the core supports most of the fallbacks hardware drivers
will want.
/external/mesa3d/src/mesa/drivers/dri/intel/intel_fbo.c
b7b2791c6bea6ad0db76fdad9a217aa1efffea93 04-Jan-2011 Eric Anholt <eric@anholt.net> intel: When validating an FBO's combined depth/stencil, use the given FBO.

We were looking at the current draw buffer instead to see whether the
depth/stencil combination matched. So you'd get told your framebuffer
was complete, until you bound it and went to draw and we decided that
it was incomplete.
/external/mesa3d/src/mesa/drivers/dri/intel/intel_fbo.c
0ea49380e20bdf76cd0e434d3d431ca9f526f1f1 04-Jan-2011 Eric Anholt <eric@anholt.net> intel: Fix segfaults from trying to use _ColorDrawBuffers in FBO validation.

The _ColorDrawBuffers is a piece of computed state that gets for the
current draw/read buffers at _mesa_update_state time. However, this
function actually gets used for non-current draw/read buffers when
checking if an FBO is complete from the driver's perspective. So,
instead of trying to just look at the attachment points that are
currently referenced by glDrawBuffers, look at all attachment points
to see if they're driver-supported formats. This appears to actually
be more in line with the intent of the spec, too.

Fixes a segfault in my upcoming fbo-clear-formats piglit test, and
hopefully bug #30278
/external/mesa3d/src/mesa/drivers/dri/intel/intel_fbo.c
8b9570e685f010745e2dfb1bff00d555e2e5f6ba 21-Dec-2010 Chris Wilson <chris@chris-wilson.co.uk> intel: Check for unsupported texture when finishing using as a render target

Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=32541
Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
/external/mesa3d/src/mesa/drivers/dri/intel/intel_fbo.c
be72efb4f29180fdaf0935f8739f230fe5ea6317 10-Dec-2010 Eric Anholt <eric@anholt.net> intel: Just use ChooseTextureFormat for renderbuffer format choice.

One less place to forget to put your new MESA_FORMAT support in.
/external/mesa3d/src/mesa/drivers/dri/intel/intel_fbo.c
e339b669a14f37698b842c0c51c1f5e4001ef12f 10-Dec-2010 Eric Anholt <eric@anholt.net> intel: Add a couple of helper functions to reduce rb code duplication.
/external/mesa3d/src/mesa/drivers/dri/intel/intel_fbo.c
78a340fd487c56468ace7347a53f95a0c751c419 24-Nov-2010 Ian Romanick <ian.d.romanick@intel.com> i915: Disallow alpha, red, RG, and sRGB as render targets

Fixes bugzilla #31832

NOTE: This is a candidate for the 7.9 branch.
/external/mesa3d/src/mesa/drivers/dri/intel/intel_fbo.c
f9995b30756140724f41daf963fa06167912be7f 12-Oct-2010 Kristian Høgsberg <krh@bitplanet.net> Drop GLcontext typedef and use struct gl_context instead
/external/mesa3d/src/mesa/drivers/dri/intel/intel_fbo.c
c77cd9ec10f7c6ad2927740e15900591d1ff388a 20-Nov-2009 Ian Romanick <ian.d.romanick@intel.com> i965: Enable GL_ARB_texture_rg
/external/mesa3d/src/mesa/drivers/dri/intel/intel_fbo.c
72b368ae69bc037681ab4e458296c07cb04349be 30-Sep-2010 Zhenyu Wang <zhenyuw@linux.intel.com> i965: always set tiling for fbo depth buffer on sandybridge

Sandybridge requires depth buffer must be tiling.

Fix 'fbo_firecube' demo.
/external/mesa3d/src/mesa/drivers/dri/intel/intel_fbo.c
934fde4f5a63ff7c3c29c21e9e67cce3c2564788 25-Sep-2010 Eric Anholt <eric@anholt.net> intel: Fix segfault on INTEL_DEBUG=fbo with unsupported framebuffers.
/external/mesa3d/src/mesa/drivers/dri/intel/intel_fbo.c
1946b81e700fbb266294b8c1cb0d29ced84bf647 25-Sep-2010 Eric Anholt <eric@anholt.net> i965: Add support for rendering to SARGB8 FBOs.

Tested with fbo-generatemipmap-formats GL_EXT_texture_srgb. The test
still fails on SLA8, though.
/external/mesa3d/src/mesa/drivers/dri/intel/intel_fbo.c
836803df794be7a2ae3be0fc047e882d49ab22bb 24-Sep-2010 Eric Anholt <eric@anholt.net> intel: Corresponding FinishRenderTexture debug to BeginRenderTexture.
/external/mesa3d/src/mesa/drivers/dri/intel/intel_fbo.c
17eace581d25a626a7d75d9d1205d012cbb14a6e 23-Sep-2010 Kristian Høgsberg <krh@bitplanet.net> dri: Pass the __DRIscreen and the __DRIscreen private back to image lookup

We will typically have a current context when we need to lookup the image,
but the lookup implementation don't need it so drop it.
/external/mesa3d/src/mesa/drivers/dri/intel/intel_fbo.c
bda941e1b895547d680b68eaf28ae2db11e6149f 25-Aug-2010 Nick Bowler <nbowler@draconx.ca> intel: Merge identical cases in switch statement.

Signed-off-by: Nick Bowler <nbowler@draconx.ca>
Signed-off-by: Brian Paul <brianp@vmware.com>
/external/mesa3d/src/mesa/drivers/dri/intel/intel_fbo.c
9087ba128089ed0dc00e6eb38f37126fb7557d3b 04-Jun-2010 Kristian Høgsberg <krh@bitplanet.net> intel: Take an intel_screen pointer in intel_alloc_region_* functions
/external/mesa3d/src/mesa/drivers/dri/intel/intel_fbo.c
84178547dfaa27ca298ad1755d1ce686036a8550 17-Jun-2010 Vinson Lee <vlee@vmware.com> intel: Remove unnecessary headers.
/external/mesa3d/src/mesa/drivers/dri/intel/intel_fbo.c
178414eba402f9087ea505e7ef19f1becdd7a36d 11-Jun-2010 Eric Anholt <eric@anholt.net> i965: Remove caching of surface state objects.

It turns out that computing a 56 byte key to look up a 20-byte object
out of a hash table was some sort of a bad idea. Whoops.

before:
[ # ] backend test min(s) median(s) stddev. count
[ 0] gl firefox-talos-gfx 37.799 38.203 0.39% 6/6
after:
[ 0] gl firefox-talos-gfx 34.761 34.784 0.17% 5/6
/external/mesa3d/src/mesa/drivers/dri/intel/intel_fbo.c
638342858894293246400d95a90d153c7f66719a 25-May-2010 Eric Anholt <eric@anholt.net> i965: Add support for GL_ALPHA framebuffer objects.
/external/mesa3d/src/mesa/drivers/dri/intel/intel_fbo.c
c4775a27e3aaa2006b98f225387499b79bc609ef 10-May-2010 Kristian Høgsberg <krh@bitplanet.net> intel: Drop intelFlush()

Now that intel_flush() deosn't use the needs_mi_flush argument, we can
finally drop one of the two flush functions.
/external/mesa3d/src/mesa/drivers/dri/intel/intel_fbo.c
ce914fff0817cb3c25a2d715f8435c6b6d6fbcdd 05-May-2010 Eric Anholt <eric@anholt.net> i965: When an RB gets a new region, clear the old from the state cache.

This prevents memory usage explosion in blender due to the state cache
hanging on to old fake frontbuffer regions. Sigh at blender still
using frontbuffer rendering.

Bug #24119.
/external/mesa3d/src/mesa/drivers/dri/intel/intel_fbo.c
362c1bf75eb74de5b4655c481b74f79718ed4a34 17-Mar-2010 Eric Anholt <eric@anholt.net> intel: Replace mt->pitch with mt->region->pitch.

The pitch is not really an inherent part of the miptree, since it's
not part of any of the layout calculations, and it's dictated by the
libdrm-allocated region pitch now.
/external/mesa3d/src/mesa/drivers/dri/intel/intel_fbo.c
da011faf48155a5c02ebc1fe1fa20a4f54b8c657 17-Mar-2010 Eric Anholt <eric@anholt.net> intel: Rely on allocated region pitch for the miptree pitch.

Bug #26966: 945 miptree pitch disagreement with libdrm.
/external/mesa3d/src/mesa/drivers/dri/intel/intel_fbo.c
bb35000b4b6dfe60048b2f5d60bc102c4a7fd791 05-Mar-2010 Eric Anholt <eric@anholt.net> intel: Remove non-kernel-exec-fencing support.

Shaves 60k off the driver from removing the broken spans code. This
means we now require 2.6.29, which seems fair given that it's a year
old and we've removed support for non-KMS already in the last release
of 2D.
/external/mesa3d/src/mesa/drivers/dri/intel/intel_fbo.c
af3f1bb26980537522a1586fef3fc3c208b44ebc 02-Mar-2010 Kristian Høgsberg <krh@bitplanet.net> intel: Set InternalFormat for renderbuffers created from an EGLImage
/external/mesa3d/src/mesa/drivers/dri/intel/intel_fbo.c
10e79627414bc2bbc72d68ed25fb9999948a294f 12-Feb-2010 Kristian Høgsberg <krh@bitplanet.net> intel: Implement GL_OES_EGL_image entrypoints
/external/mesa3d/src/mesa/drivers/dri/intel/intel_fbo.c
b76164dcedad257f37af57358b102e14fdea8381 20-Feb-2010 Vinson Lee <vlee@vmware.com> intel: Silence compiler format warnings.
/external/mesa3d/src/mesa/drivers/dri/intel/intel_fbo.c
32f2fd1c5d6088692551c80352b7d6fa35b0cd09 19-Feb-2010 Kristian Høgsberg <krh@bitplanet.net> Replace _mesa_malloc, _mesa_calloc and _mesa_free with plain libc versions
/external/mesa3d/src/mesa/drivers/dri/intel/intel_fbo.c
d282128ff68cc58bc3f5b808031c5fe7325bd69b 02-Jan-2010 Kristian Høgsberg <krh@bitplanet.net> intel: Remove struct intel_framebuffer

With the vsync fields no longer relevant and by refactoring the code
to no longer use color_rb[0-1] we can just use struct gl_framebuffer
directly.
/external/mesa3d/src/mesa/drivers/dri/intel/intel_fbo.c
a0996447559bd251ef7f089165405fcdefe79cc5 29-Dec-2009 Eric Anholt <eric@anholt.net> intel: Fix false positives in checking for non-packed depth/stencil RB.

The wine d3d9 visual.c testcase was tripping over this and failing.
Presumably it's binding a packed depth/stencil texture to both
stencil and depth attachment points, and we make a new renderbuffer
wrapper for each in that case.
/external/mesa3d/src/mesa/drivers/dri/intel/intel_fbo.c
089144e4e525883995d609af5040b2355043945e 29-Dec-2009 Eric Anholt <eric@anholt.net> intel: Allow binding a stencil but not a depth buffer.

Wine's d3d9 visual.c testcase tries this a lot, so I've added some
piglit tests (fbo-nodepth-test, fbo-nostencil-test, fbo-stencil-only)
and enabled it.
/external/mesa3d/src/mesa/drivers/dri/intel/intel_fbo.c
e4df8d32b510a3f00c12477985818c9d42a0b178 28-Dec-2009 Eric Anholt <eric@anholt.net> intel: Improve INTEL_DEBUG=fbo output.
/external/mesa3d/src/mesa/drivers/dri/intel/intel_fbo.c
5727147f894137f194d8efc7adb81b80a9b5acd7 22-Dec-2009 Eric Anholt <eric@anholt.net> intel: Remove unused stored values reported by clang.
/external/mesa3d/src/mesa/drivers/dri/intel/intel_fbo.c
cbdeb33209e782f011984a4b93cc0d36f567462e 09-Dec-2009 Ian Romanick <ian.d.romanick@intel.com> intel: Make RGB renderbuffers use XRGB8888 like we do for RGB system buffers.
/external/mesa3d/src/mesa/drivers/dri/intel/intel_fbo.c
430876cd3a70d3b701d136b825518140888f96c8 09-Dec-2009 Ian Romanick <ian.d.romanick@intel.com> intel: name in intel_create_renderbuffer was always 0, remove
/external/mesa3d/src/mesa/drivers/dri/intel/intel_fbo.c
0f01674a584ea6df96acf91d7cd3b8a9b48ee65e 09-Dec-2009 Ian Romanick <ian.d.romanick@intel.com> intel: Use texformat accessor to get bytes-per-pixel
/external/mesa3d/src/mesa/drivers/dri/intel/intel_fbo.c
4eee46efcb7e1f737b7115caf48ddb3b77408626 09-Dec-2009 Ian Romanick <ian.d.romanick@intel.com> intel: softwareBuffer in intel_alloc_renderbuffer_storage was always false, remove
/external/mesa3d/src/mesa/drivers/dri/intel/intel_fbo.c
3078bd136d6ee1d9ad16b4c834cad23b005304a4 08-Dec-2009 Ian Romanick <ian.d.romanick@intel.com> intel: Axe intel_renderbuffer::texformat

Since the texformat branch merge, the value of intel_renderbuffer::texformat
is just a copy of gl_renderbuffer::Format.
/external/mesa3d/src/mesa/drivers/dri/intel/intel_fbo.c
539a14a1dd5a0d277b193d9cd2d06423ed98dc8a 09-Dec-2009 Eric Anholt <eric@anholt.net> intel: Flush the render/texture cache when finishing render to texture.

Back when we were flushing the entire batch at BindFramebuffer, the kernel
would notice the domain transition when someone went to texture from it and
flush for us. We no longer do the batch flushing every time, so we get to
do aggressive flushing until we move batchbuffer handling to libdrm.

Fixes piglit fbo-flushing. Bug #25377. No noticeable performance loss
on cairo-gl (so this is better than batch flushing).
/external/mesa3d/src/mesa/drivers/dri/intel/intel_fbo.c
bb64c9bcdf9962c4f74d71f49307de1da4c3392b 08-Dec-2009 Ian Romanick <ian.d.romanick@intel.com> Revert "intel: Make RGB renderbuffers use XRGB8888 like we do for RGB system buffers."

This reverts commit 4598942b1b88a2a7d5af7febae7e79eedf00e385.

XRGB8888 doesn't work as intended. Revert this for now, and we'll revisit it
for 7.8 or something.
/external/mesa3d/src/mesa/drivers/dri/intel/intel_fbo.c
4598942b1b88a2a7d5af7febae7e79eedf00e385 02-Dec-2009 Eric Anholt <eric@anholt.net> intel: Make RGB renderbuffers use XRGB8888 like we do for RGB system buffers.
/external/mesa3d/src/mesa/drivers/dri/intel/intel_fbo.c
75bdbdd90b15c8704d87ca195a364ff6a42edbb1 04-Nov-2009 Eric Anholt <eric@anholt.net> intel: Don't validate in a texture image used as a render target.

Otherwise, we could lose track of rendering to that image, which could
easily happen during mipmap generation.
/external/mesa3d/src/mesa/drivers/dri/intel/intel_fbo.c
409469fb70682cd819ab405e0f92a4659381cfbe 30-Oct-2009 Brian Paul <brianp@vmware.com> intel: fix up some XRGB breakage

We weren't choosing the right XRGB span functions for reading the
framebuffer. XRGB formats still aren't turned on yet though.
/external/mesa3d/src/mesa/drivers/dri/intel/intel_fbo.c
4a253431abf43a0638afb43605b44a8742b72a60 30-Oct-2009 Brian Paul <brianp@vmware.com> intel: update intel_create_renderbuffer(format), add XRGB support

Pass a gl_format to intel_create_renderbuffer() instead of GLenum.
Add cases for MESA_FORMAT_XRGB8888 textures and renderbuffers.
However, we don't yet create any renderbuffers or textures with that
format. It seems the default alpha value is zero instead of one.
Need to investigate that first.
/external/mesa3d/src/mesa/drivers/dri/intel/intel_fbo.c
1f196b786d6bd0c6a5dbdc638574ff716cc3d4de 29-Oct-2009 Brian Paul <brianp@vmware.com> Merge branch 'texformat-rework'

Conflicts:
src/mesa/drivers/dri/radeon/radeon_fbo.c
src/mesa/drivers/dri/s3v/s3v_tex.c
src/mesa/drivers/dri/s3v/s3v_xmesa.c
src/mesa/drivers/dri/trident/trident_context.c
src/mesa/main/debug.c
src/mesa/main/mipmap.c
src/mesa/main/texformat.c
src/mesa/main/texgetimage.c
0ea575d721821262a862ceef010db9b1a8b4a6d9 29-Oct-2009 Brian Paul <brianp@vmware.com> Merge branch 'mesa_7_6_branch'
c0a61c8442af3cfa810098d34bf6a21d11a5d720 28-Oct-2009 Vinson Lee <vlee@vmware.com> intel: Fix memory leak in case of renderbuffer bad format

Signed-off-by: Brian Paul <brianp@vmware.com>
/external/mesa3d/src/mesa/drivers/dri/intel/intel_fbo.c
49d402e275cdaf46de8db5a475dfe00509141195 23-Oct-2009 Eric Anholt <eric@anholt.net> Merge remote branch 'origin/mesa_7_6_branch'

Conflicts:
src/mesa/drivers/dri/intel/intel_fbo.c
src/mesa/drivers/dri/intel/intel_mipmap_tree.c
src/mesa/drivers/dri/intel/intel_mipmap_tree.h
src/mesa/drivers/dri/intel/intel_tex_copy.c
src/mesa/drivers/dri/intel/intel_tex_image.c
2d17dbfb5346b6d75e87c839148cbe125bf5cd6d 09-Jul-2009 Eric Anholt <eric@anholt.net> intel: Keep track of x,y offsets in miptrees and use them for blitting.

By just using offsets, we confused the hardware's tiling calculations,
resulting in failures in miptree validation and blit clears.

Fixes piglit fbo-clearmipmap.

Bug #23552. (automatic mipmap generation)
/external/mesa3d/src/mesa/drivers/dri/intel/intel_fbo.c
68d94a608a6d46156a567b8f0e011ac58054975e 22-Oct-2009 Brian Paul <brianp@vmware.com> intel: use MESA_FORMAT_S8_Z24 format and avoid z24s8/s8z24 conversions
/external/mesa3d/src/mesa/drivers/dri/intel/intel_fbo.c
e6594a22f298833eeb6881795b24d03d2fd8e898 13-Oct-2009 Brian Paul <brianp@vmware.com> intel: pass zslice to intel_miptree_image_offset()

This lets us get rid of intel_miptree_depth_offsets() and simplify all
of the calling code.
/external/mesa3d/src/mesa/drivers/dri/intel/intel_fbo.c
45e76d2665b38ba3787548310efc59e969124c01 09-Oct-2009 Brian Paul <brianp@vmware.com> mesa: remove a bunch of gl_renderbuffer fields

_ActualFormat is replaced by Format (MESA_FORMAT_x).
ColorEncoding, ComponentType, RedBits, GreenBits, BlueBits, etc. are
all replaced by MESA_FORMAT_x queries.
/external/mesa3d/src/mesa/drivers/dri/intel/intel_fbo.c
3e34a2a2b97e7c93955deedb7c12b73bccd6662d 06-Oct-2009 Brian Paul <brianp@vmware.com> drivers: don't include texformat.h

And remove other unneeded #includes while we're at it.
/external/mesa3d/src/mesa/drivers/dri/intel/intel_fbo.c
1f7c914ad0beea8a29c1a171c7cd1a12f2efe0fa 01-Oct-2009 Brian Paul <brianp@vmware.com> mesa: replace gl_texture_format with gl_format

Now gl_texture_image::TexFormat is a simple MESA_FORMAT_x enum.
ctx->Driver.ChooseTexture format also returns a MESA_FORMAT_x.
gl_texture_format will go away next.
/external/mesa3d/src/mesa/drivers/dri/intel/intel_fbo.c
ddffe4546a81216cde4376ee49cbaa021f4d04bb 28-Sep-2009 Brian Paul <brianp@vmware.com> drivers: use more mesa format functions
/external/mesa3d/src/mesa/drivers/dri/intel/intel_fbo.c
4de8e2123ebeb50db252b2bb57fb167058fa4683 20-Sep-2009 Brian Paul <brianp@vmware.com> mesa: rename functions to be more consistant with rest of mesa
/external/mesa3d/src/mesa/drivers/dri/intel/intel_fbo.c
8cb389ce354944a69418ca1d402791eef8fbf239 10-Aug-2009 Brian Paul <brianp@vmware.com> intel: use new _mesa_meta_blit_framebuffer() function

The previous version of framebuffer blit was a quick hack. The new meta
version works pretty well.
/external/mesa3d/src/mesa/drivers/dri/intel/intel_fbo.c
862488075c5537b0613753b0d14c267527fc6199 03-Jul-2009 Jakob Bornecrantz <jakob@vmware.com> Merge branch 'mesa_7_5_branch'

Conflicts:
src/mesa/main/dlist.c
src/mesa/vbo/vbo_save_api.c
94e1117c9ba259665cd8e790369dcd4c789a2f93 03-Jul-2009 Michel Dänzer <daenzer@vmware.com> intel: Also update stencil bits in intel_update_wrapper().

Fixes assertion failure when binding depth/stencil texture to FBO stencil
attachment.
/external/mesa3d/src/mesa/drivers/dri/intel/intel_fbo.c
1ba96651e12b3c74fb9c8f5a61b183ef36a27b1e 03-Jun-2009 Eric Anholt <eric@anholt.net> intel: Add support for tiled textures.

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.
/external/mesa3d/src/mesa/drivers/dri/intel/intel_fbo.c
e78a6aa2b94683faa8d43a39aa68d806b14f8833 20-May-2009 Eric Anholt <eric@anholt.net> intel: Fall back on any rendering to texture with no miptree.

Fixes segfault on an fbo.c negative test for FBO with texture width/height
of 0. Previously we just tested for border != 0 to work around this
segfault.
/external/mesa3d/src/mesa/drivers/dri/intel/intel_fbo.c
8bba183b9eeb162661a287bf2e118c6dd419dd24 20-May-2009 Eric Anholt <eric@anholt.net> intel: Mark the FBO as incomplete if there's no intel_renderbuffer for it.

This happens to rendering with textures with a border, which had resulted
in a segfault on dereferencing the irb.
/external/mesa3d/src/mesa/drivers/dri/intel/intel_fbo.c
2c30fd84dfa052949a117c78d932b58c1f88b446 10-Apr-2009 Eric Anholt <eric@anholt.net> intel: Add support for argb1555, argb4444 FBOs and fix rgb565 fbo readpixels.

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.
/external/mesa3d/src/mesa/drivers/dri/intel/intel_fbo.c
ee41bb2ed01b9480e5370d67257334b81ec0c90e 06-Mar-2009 Brian Paul <brianp@vmware.com> i965: fix screen depth test in intel_validate_framebuffer)_

front_region may be null.
/external/mesa3d/src/mesa/drivers/dri/intel/intel_fbo.c
4f8ed56d168e9175e76bc42d8b924c7bcaa59dea 27-Feb-2009 Brian Paul <brianp@vmware.com> intel: no-op the intel_finish_render_texture() function

It doesn't have to do anything. See comments for more details.
/external/mesa3d/src/mesa/drivers/dri/intel/intel_fbo.c
f77b720cde981d441e482bbbd68115634b3041ce 27-Feb-2009 Brian Paul <brianp@vmware.com> intel: check texture formats in intel_validate_framebuffer()

We can't render into any texture format; only certain formats.
Check that render-to-texture's format is renderable in the
intel_validate_framebuffer()

There seems to be a bug somewhere that causes rendering to rgb565 textures
to be corrupted so disallow that for now. This will be revisted.
/external/mesa3d/src/mesa/drivers/dri/intel/intel_fbo.c
119f34e2a52d7e074ea51d49acf6c11d83142ccc 26-Feb-2009 Eric Anholt <eric@anholt.net> intel: Fix up x8r8g8b8 renderbuffer format so that alpha=1 spans code happens.

I was lured into a false sense of security by the fact that the spans code was
already there, and a bunch of tests didn't catch the problem. oglconform's
mask.c did, though.

Bug #19970.
/external/mesa3d/src/mesa/drivers/dri/intel/intel_fbo.c
40dd024be618d805b3744e15d25e115018641324 18-Feb-2009 Eric Anholt <eric@anholt.net> intel: tell libdrm whether we want a cpu-ready or gpu-ready BO for regions.

This lets us avoid allocing new buffers for renderbuffers, finalized miptrees,
and PBO-uploaded textures when there's an unreferenced but still active one
cached, while also avoiding CPU waits for batchbuffers and CPU-uploaded
textures. The size of BOs allocated for a desktop running current GL
cairogears on i915 is cut in half with this.

Note that this means we require libdrm 2.4.5.
/external/mesa3d/src/mesa/drivers/dri/intel/intel_fbo.c
bd944ef78397fd96dc2b239f542066643b06274a 29-Jan-2009 Brian Paul <brianp@vmware.com> intel: remove unused RenderToTexture field
/external/mesa3d/src/mesa/drivers/dri/intel/intel_fbo.c
d332a74e772eb60cf3cef33cafad997436fd9e93 29-Jan-2009 Brian Paul <brianp@vmware.com> intel: remove unused #includes
/external/mesa3d/src/mesa/drivers/dri/intel/intel_fbo.c
5c38801f8e36fdb4a16ed33c26454b98f3519465 29-Jan-2009 Brian Paul <brianp@vmware.com> intel: formatting clean-ups
/external/mesa3d/src/mesa/drivers/dri/intel/intel_fbo.c
65d39a9eed9ae60944dd3c5db392a382c5946cbc 27-Jan-2009 Eric Anholt <eric@anholt.net> intel: clean up more pf mess.
/external/mesa3d/src/mesa/drivers/dri/intel/intel_fbo.c
6d2e1f6a2cd25107ad9bd88b1decd05fc8000f78 22-Jan-2009 Brian Paul <brianp@vmware.com> intel: add GL_EXT_framebuffer blit extension

This functionality is required by GL_ARB_framebuffer_object.
For now, implement it in terms of glCopyPixels(). This will need to be
revisted though.
/external/mesa3d/src/mesa/drivers/dri/intel/intel_fbo.c
f8a7e497acf17cfdefe401815c7063aaf39d4200 22-Jan-2009 Brian Paul <brianp@vmware.com> intel: remove/disable the "paired depth/stencil" code

We only allow combined depth+stencil renderbuffers so the complicated code
for splitting and combining separate depth and stencil buffers is no longer
needed.
/external/mesa3d/src/mesa/drivers/dri/intel/intel_fbo.c
3abf67c6b1e1510427fc608983fdeaec88f6077c 22-Jan-2009 Brian Paul <brianp@vmware.com> intel: remove unneeded call to ctx->Driver.DepthRange()

The preceeding call to intel_draw_buffer() does that.
/external/mesa3d/src/mesa/drivers/dri/intel/intel_fbo.c
71b78149bdb3d0d92b004aed29edcf9ea1a440a8 22-Jan-2009 Brian Paul <brianp@vmware.com> i965: disallow separate depth/stencil renderbuffers

Take advantage of the GL_FRAMEBUFFER_UNSUPPORTED feature to disallow separate
depth and stencil renderbuffers; only allow combined depth/stencil buffers.

Next up: remove/simplify a bunch of the depth/stencil renderbuffer code.

Also: restore the previously disabled GL_DEPTH_COMPONENT16 case
/external/mesa3d/src/mesa/drivers/dri/intel/intel_fbo.c
3c98d3cf32e1828b116173f97dc6d4d4a609951c 20-Jan-2009 Brian Paul <brianp@vmware.com> intel: plug in stub intel_validate_framebuffer() function
/external/mesa3d/src/mesa/drivers/dri/intel/intel_fbo.c
f8b00806d8263f2ff09f175e0801379c0b9e9b2c 22-Jan-2009 Brian Paul <brianp@vmware.com> intel: inline some renderbuffer functions
/external/mesa3d/src/mesa/drivers/dri/intel/intel_fbo.c
b5da7feee03abd7ca52312476bd75d28d1afddf4 14-Jan-2009 Owain G. Ainsworth <oga@openbsd.org> Remove intel pageflipping support in its entirety.

It's been broken and deprecated for a while, so it's time to die. This has the
wonderful benefit of cleaning up the code a fair amount; making it marginally
less twisty.

I'm unsure if the for loops in IntelWindowMoved are still needed.
/external/mesa3d/src/mesa/drivers/dri/intel/intel_fbo.c
947d1c5b2a70c0eafa4c408b47607574a2908468 15-Jan-2009 Brian Paul <brianp@vmware.com> i965: asst. fixes, work-arounds for FBOs and render to texture

OpenGL allows mixing and matching depth and stencil renderbuffers in
framebuffer objects while the hardware really only supports interleaved
depth/stencil buffers. This makes for some tricky buffer management.

An extra wrinkle is the situation where the user allocates a 16bpp depth
texture or renderbuffer then tries to render to it along with a stencil
buffer. We'd have to promote the 16bpp Z values to 24-bit Z values and
mix in the stencil values to setup the depth/stencil renderbuffer.

There's no support for that now, so always allocate 32bpp depth textures/
renderbuffers for now.
/external/mesa3d/src/mesa/drivers/dri/intel/intel_fbo.c
c7f43543af8a0bf95750eb6d332fdede07d104ea 15-Jan-2009 Brian Paul <brianp@vmware.com> i965: fix incorrect renderbuffer DataType assignment
/external/mesa3d/src/mesa/drivers/dri/intel/intel_fbo.c
8b661a5d33604fd3706cb1825236d72ae2949598 07-Dec-2008 Eric Anholt <eric@anholt.net> intel: Fall back on rendering to a texture attachment with a border.

Fixes a segfault in oglconform fbo.c test.
/external/mesa3d/src/mesa/drivers/dri/intel/intel_fbo.c
c5945c2d173b77ace00e6fc225097a6afddecfa3 25-Sep-2008 Eric Anholt <eric@anholt.net> intel: Fix clears to depth_stencil texture attachments.

Broken by 0adfd1021035e90995a25ec5f20b736e55075d92, showed up as an assertion
failure in a software fallback in the shadowtex demo when we failed to
recognize the texture format.
/external/mesa3d/src/mesa/drivers/dri/intel/intel_fbo.c
ecadb51bbcb972a79f3ed79e65a7986b9396e757 18-Sep-2008 Brian Paul <brian.paul@tungstengraphics.com> mesa: added "main/" prefix to includes, remove some -I paths from Makefile.template
/external/mesa3d/src/mesa/drivers/dri/intel/intel_fbo.c
8db761409dadc2e899d4e7107eff3aa07b07aa11 13-Sep-2008 Eric Anholt <eric@anholt.net> intel: Add a width field to regions, and use it for making miptrees in TFP.

Otherwise, we would use the pitch as width of the texture, and compiz would
render the pitch padding on the right hand side.
/external/mesa3d/src/mesa/drivers/dri/intel/intel_fbo.c
f75843a517bd188639e6866db2a7b04de3524e16 24-Aug-2008 Dave Airlie <airlied@linux.ie> Revert "Revert "Merge branch 'drm-gem'""

This reverts commit 7c81124d7c4a4d1da9f48cbf7e82ab1a3a970a7a.
/external/mesa3d/src/mesa/drivers/dri/intel/intel_fbo.c
7c81124d7c4a4d1da9f48cbf7e82ab1a3a970a7a 24-Aug-2008 Dave Airlie <airlied@linux.ie> Revert "Merge branch 'drm-gem'"

This reverts commit 53675e5c05c0598b7ea206d5c27dbcae786a2c03.

Conflicts:

src/mesa/drivers/dri/i965/brw_wm_surface_state.c
/external/mesa3d/src/mesa/drivers/dri/intel/intel_fbo.c
902e401a384a8213d1239aae42bc2b7071ad6bd8 27-Jul-2008 Eric Anholt <eric@anholt.net> intel: Don't return a renderbuffer with alpha when just GL_RGB is requested.

Fixes oglconform rbGetterFuncs testcase. The span code for this mode hasn't
actually been tested.
/external/mesa3d/src/mesa/drivers/dri/intel/intel_fbo.c
2e3714380027252ba17a11f23eae851d3f77ab02 23-Jul-2008 Eric Anholt <eric@anholt.net> intel: Add a little span cache to spead up readpixels by cutting syscalls.
/external/mesa3d/src/mesa/drivers/dri/intel/intel_fbo.c
d2d5abfaeb46fc7b4d4267a6c9e92420fc9b5334 23-Jul-2008 Eric Anholt <eric@anholt.net> intel-gem: Use pread/pwrite for span access.

This will avoid clflushing entire buffers for small acesses, such as those
commonly used by regression tests.
/external/mesa3d/src/mesa/drivers/dri/intel/intel_fbo.c
2e841880cfc1006a2818d4a8bfefd21136dc39a9 11-Jul-2008 Eric Anholt <eric@anholt.net> drm-gem: Use new GEM ioctls for tiling state, and support new swizzle modes.
/external/mesa3d/src/mesa/drivers/dri/intel/intel_fbo.c
19f585a3cf65887e249d630fe43e83e7e7618dfa 02-Jul-2008 Eric Anholt <eric@anholt.net> intel-gem: Fix Y-tiling span setup.

The boolean that the server gives us for whether the region is tiled was
getting used as the enum for what tiling mode. Instead, guess the correct
tiling in screen setup.

Also, fix the Y-tiling pitch setup. The pitch to the next tile in Y is
32 scanlines, not 8.
/external/mesa3d/src/mesa/drivers/dri/intel/intel_fbo.c
537bbe6dec780f6f85838fe7e6036579c509f8a6 06-May-2008 Keith Packard <keithp@keithp.com> [intel-GEM] Add tiling support to swrast.

Accessing tiled surfaces without using the fence registers requires that
software deal with the address swizzling itself.
/external/mesa3d/src/mesa/drivers/dri/intel/intel_fbo.c
f94d317d7aea8043b179a0ba64308606375500d7 14-Mar-2008 Xiang, Haihao <haihao.xiang@intel.com> intel: fix abort issue with shadowtex demo when use
DEPTH_STENCIL texture. (bug#14952).
/external/mesa3d/src/mesa/drivers/dri/intel/intel_fbo.c
c741d287ecce1bd95d4e024d60e274abfcfbe22f 15-Feb-2008 Eric Anholt <eric@anholt.net> [intel] Allow attIndex to be negative to avoid defeating the >= 0 check.

Otherwise, we would go wildly out of bounds if passed -1 (no renderbuffer), such
as while doing LOCK_HARDWARE with glDrawBuffer(GL_NONE).
/external/mesa3d/src/mesa/drivers/dri/intel/intel_fbo.c
e131c46b20241737ceba4856dbe01dcca6dd2c03 09-Jan-2008 Kristian Høgsberg <krh@temari.boston.redhat.com> [intel] Simplify intelCreateBuffer() a bit.

Drop a bunch of unused arguments from intel_create_renderbuffer() and
introduce intel_renderbuffer_set_region() to set the region for
a renderbuffer.
/external/mesa3d/src/mesa/drivers/dri/intel/intel_fbo.c
601a6b872c33bfe3cb4ea03a5a8ba5ebe92dedaf 07-Jan-2008 Brian <brian.paul@tungstengraphics.com> Replace gl_framebuffer's _ColorDrawBufferMask with _ColorDrawBufferIndexes

Each array element is now a BUFFER_x token rather than a BUFFER_BIT_x bitmask.
The number of active color buffers is specified by _NumColorDrawBuffers.
This builds on the previous DrawBuffer changes and will help with drivers
implementing GL_ARB_draw_buffers.
/external/mesa3d/src/mesa/drivers/dri/intel/intel_fbo.c
bea6b5fe5aa3138cec8d057766ae48da4aa57dee 20-Dec-2007 Eric Anholt <eric@anholt.net> [965] Enable EXT_framebuffer_object.

To do so, merge the remainnig necessary code from the buffers, blit, span, and
screen code to shared, and replace it with those.
/external/mesa3d/src/mesa/drivers/dri/intel/intel_fbo.c
7c71ef3a3d0cf2620525f468960cdc76a0fb0d33 12-Dec-2007 Eric Anholt <eric@anholt.net> [intel] Move bufmgr back to context instead of screen, fixing glthreads.

Putting the bufmgr in the screen is not thread-safe since the emit_reloc
changes. It also led to a significant performance hit from pthread usage
for the attempted thread-safety (up to 12% of a cpu spent on refcounting
protection in single-threaded 965). The motivation had been to allow
multi-context bufmgr sharing in classic mode, but it wasn't worth the cost.
/external/mesa3d/src/mesa/drivers/dri/intel/intel_fbo.c
77a5bcaff43df8d54e0e0ef833726e4b41d7eb36 07-Nov-2007 Eric Anholt <eric@anholt.net> [intel] Move over files that will be shared with 965-fbo work.
/external/mesa3d/src/mesa/drivers/dri/intel/intel_fbo.c