History log of /external/mesa3d/src/mesa/drivers/dri/intel/intel_tex_obj.h
Revision Date Author Comments (<<< Hide modified files) (Show modified files >>>)
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_tex_obj.h
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_tex_obj.h
46f5ef557f92eb3c139871d03f732a591b3d5a21 05-Nov-2011 Brian Paul <brianp@vmware.com> intel: update intel_texture_image comment
/external/mesa3d/src/mesa/drivers/dri/intel/intel_tex_obj.h
24524784cf2c8c5f5bb38eadb474c3736641cafd 05-Nov-2011 Brian Paul <brianp@vmware.com> intel: wrap comment and fix typo
/external/mesa3d/src/mesa/drivers/dri/intel/intel_tex_obj.h
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_tex_obj.h
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_tex_obj.h
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_tex_obj.h
1a062dfc6f6e872e18f048bb5a61709c36f22870 21-Jun-2011 Chad Versace <chad@chad-versace.us> intel: Add fields to intel_texture for faking s8z24 with separate stencil

Add the fields depth_rb and stencil_rb, and put hooks in place to
release the renderbuffers in intelFreeTextureImageData and
intelTexImage.

Signed-off-by: Chad Versace <chad@chad-versace.us>
/external/mesa3d/src/mesa/drivers/dri/intel/intel_tex_obj.h
1b18b45d79e065e4e05a1e89e9d756d96258ded5 06-Jan-2011 Eric Anholt <eric@anholt.net> intel: Clarify first_level/last_level vs baselevel/maxlevel by deletion.

This has always been ugly about our texture code -- object base/max
level vs intel object first/last level vs image level vs miptree
first/last level. We now get rid of intelObj->first_level which is
just tObj->BaseLevel, and make intelObj->_MaxLevel clearly based off
of tObj->_MaxLevel instead of duplicating its code (incorrectly, as
image->MaxLog2 only considers width/height and not depth!)
/external/mesa3d/src/mesa/drivers/dri/intel/intel_tex_obj.h
a232cc59e3f8ac8462c23b1a83e0ba60b451e681 05-Mar-2010 Eric Anholt <eric@anholt.net> intel: Remove support for the DRI1 TFP extension.
/external/mesa3d/src/mesa/drivers/dri/intel/intel_tex_obj.h
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_tex_obj.h
5ef6803b7a902e7faa0e77408a43eabc408ff547 17-Nov-2007 Eric Anholt <eric@anholt.net> [intel] Move additional code to be shared from intel_context.h to intel/.
/external/mesa3d/src/mesa/drivers/dri/intel/intel_tex_obj.h