| Commit message (Collapse) | Author | Age | Files | Lines |
|
|
|
|
|
| |
arbitrary cube map level.
Reviewed-by: Chad Versace <[email protected]>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
creation and deletion paths.
In implementing ARB_DIRECT_STATE_ACCESS functions, it is often necessary to
abstract the functionality of a traditional GL API function into a backend
that both the traditional and dsa API functions can share. For instance,
glTexParameteri and glTextureParameteri both call _mesa_texture_parameteri,
which takes a context object and a texture object as arguments.
The existance of such backend functions provides the opportunity for
driver internals (such as meta) to pass around the actual texture object
rather than its ID or target, saving on texture object storage and look-up
overhead.
This patch provides nameless texture creation and deletion for meta. This
will be used in an upcoming refactor of meta.
Reviewed-by: Anuj Phogat <[email protected]>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
The following preparations were made in texstate.c and texstate.h to
better facilitate the BindTextureUnit function:
Dylan Noblesmith:
mesa: add _mesa_get_tex_unit()
mesa: factor out _mesa_max_tex_unit()
This is about to appear in a lot more places, so
reduce boilerplate copy paste.
add _mesa_get_tex_unit_err() checking getter function
Reduce boilerplate across files.
Laura Ekstrand:
Made note of why BindTextureUnit should throw GL_INVALID_OPERATION if the unit is out of range.
Added assert(unit > 0) to _mesa_get_tex_unit.
Reviewed-by: Anuj Phogat <[email protected]>
|
|
|
|
| |
Reviewed-by: Anuj Phogat <[email protected]>
|
|
|
|
| |
Reviewed-by: Anuj Phogat <[email protected]>
|
|
|
|
|
|
| |
teximage.h.
Reviewed-by: Anuj Phogat <[email protected]>
|
|
|
|
|
|
|
|
|
| |
Most ARB_DIRECT_STATE_ACCESS functions take an object's ID and use it to look
up the object in its hash table. If the user passes a fake object ID (ie. a
non-generated name), the implementation should throw INVALID_OPERATION.
This is a convenience function for texture objects.
Reviewed-by: Anuj Phogat <[email protected]>
|
|
|
|
| |
Reviewed-by: Eric Anholt <[email protected]>
|
|
|
|
|
| |
Reviewed-by: Anuj Phogat <[email protected]>
Reviewed-by: Jose Fonseca <[email protected]>
|
|
|
|
|
| |
Reviewed-by: Brian Paul <[email protected]>
Reviewed-by: Ian Romanick <[email protected]>
|
|
|
|
|
| |
Reviewed-by: Brian Paul <[email protected]>
Reviewed-by: Ian Romanick <[email protected]>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
While the GL_ARB_stencil_texturing extension does not allow the creation
of stencil textures, it does allow shaders to sample stencil values
stored in packed depth/stencil textures.
Specifically, applications can call glTexParameter* with a pname of
GL_DEPTH_STENCIL_TEXTURE_MODE and value of either GL_DEPTH_COMPONENT or
GL_STENCIL_INDEX to select which component they wish to sample. The
default value is GL_DEPTH_COMPONENT (for traditional depth sampling).
Shaders should use an unsigned integer sampler (presumably usampler2D)
to access stencil data. Otherwise, results are undefined. Using shadow
samplers with GL_STENCIL_INDEX selected also is undefined behavior.
This patch creates a new gl_texture_object field, StencilSampling, to
indicate that stencil should be sampled rather than depth. (I chose to
use a boolean since I figured it would be more convenient for drivers.)
It also introduces the [Get]TexParameter code to get and set the value,
and of course the extension plumbing.
v2: Also consider textures incomplete when sampling stencil with
non-NEAREST min/mag filters (caught by Eric Anholt).
Signed-off-by: Kenneth Graunke <[email protected]>
Reviewed-by: Matt Turner <[email protected]>
Reviewed-by: Eric Anholt <[email protected]>
|
|
|
|
|
|
|
|
|
|
| |
The next patch will use this function in another file.
v2: Rename _mesa_target_enum_to_index to _mesa_tex_target_to_index.
Suggested by Brian.
Signed-off-by: Ian Romanick <[email protected]>
Reviewed-by: Brian Paul <[email protected]>
|
|
|
|
|
|
|
| |
Every caller passed true.
Signed-off-by: Kenneth Graunke <[email protected]>
Reviewed-by: Eric Anholt <[email protected]>
|
|
|
|
|
|
|
| |
Cc: [email protected]
Reviewed-by: Brian Paul <[email protected]>
Reviewed-by: Ian Romanick <[email protected]>
Reviewed-by: Kenneth Graunke <[email protected]>
|
|
|
|
| |
Signed-off-by: Brian Paul <[email protected]>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
The previous commit introduced extra words, breaking the formatting.
This text transformation was done automatically via the following shell
command:
$ git grep 'THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY' | sed 's/:.*$//' | xargs -I {} sh -c 'vim -e -s {} < vimscript
where 'vimscript' is a file containing:
/THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY/;/\*\// !fmt -w 78 -p ' * '
:wq
Reviewed-by: Brian Paul <[email protected]>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
This brings the license text in line with the MIT License as published
on the Open Source Initiative website:
http://opensource.org/licenses/mit-license.php
Generated automatically be the following shell command:
$ git grep 'THE AUTHORS BE LIABLE' | sed 's/:.*$//g' | xargs -I '{}' \
sed -i 's/THE AUTHORS/THE AUTHORS OR COPYRIGHT HOLDERS/' {}
This introduces some wrapping issues, to be fixed in the next commit.
Reviewed-by: Brian Paul <[email protected]>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Generated automatically be the following shell command:
$ git grep 'BRIAN PAUL BE LIABLE' | sed 's/:.*$//g' | xargs -I '{}' \
sed -i 's/BRIAN PAUL/THE AUTHORS/' {}
The intention here is to protect all authors, not just Brian Paul. I
believe that was already the sensible interpretation, but spelling it
out is probably better.
More practically, it also prevents people from accidentally copy &
pasting the license into a new file which says Brian is not liable when
he isn't even one of the authors.
Reviewed-by: Brian Paul <[email protected]>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
This adds the mesa core + texture + fbo support for the
texture cube map array extension.
v2:
add comment to _mesa_num_tex_faces related to cube map arrays (Brian)
drop wrong comment cut-n-paste (Brian)
fix / 6 maximum check issue (Kenneth)
coalsece some array case statements (Kenneth)
Reviewed-by: Kenneth Graunke <[email protected]>
Reviewed-by: Brian Paul <[email protected]>
Signed-off-by: Dave Airlie <[email protected]>
|
| |
|
|
|
|
|
| |
Not a real big help now, but will be useful for the
GL_ARB_texture_cube_map_array extension in the future.
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
These are part of GL_ARB_invalidate_subdata (but not OpenGL ES 3.0).
v2: Add comment explaining why minimum dimensions are set to 1 for some
texture targets. Add default case to switch statement to silence
compiler warnings and detect new texture targets. Both changes
suggested by Brian. Also use _mesa_is_desktop_gl as suggested by Ken.
Signed-off-by: Ian Romanick <[email protected]>
Reviewed-by: Brian Paul <[email protected]>
Reviewed-by: Kenneth Graunke <[email protected]>
|
|
|
|
|
| |
This function can be called in gdb to find out how much memory is used
by all texture objects.
|
|
|
|
|
|
|
|
| |
Per the spec, only nearest filtering is supported for integer textures.
Otherwise, the texture is incomplete.
Reviewed-by: José Fonseca <[email protected]>
Reviewed-by: Eric Anholt <[email protected]>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Instead of gl_texture_object::_Complete there are now two fields:
_BaseComplete and _MipmapComplete. The former indicates whether the base
texture level is valid. The later indicates whether the whole mipmap is
valid.
With sampler objects, a single texture can appear to be both complete and
incomplete at the same time. See the GL_ARB_sampler_objects spec for more
details. To implement this we now check if the texture is complete with
respect to a sampler state.
Another benefit of this is we no longer need to invalidate a texture's
completeness state when we change the minification/magnification filters
with glTexParameter().
Reviewed-by: José Fonseca <[email protected]>
Reviewed-by: Eric Anholt <[email protected]>
|
|
|
|
|
|
|
|
|
|
|
|
| |
Previously, this function only handled 2D textures.
The fallback texture is used when we try to sample from an incomplete
texture object. GLSL says sampling an incomplete texture should return
(0,0,0,1).
v2: use a 1-texel texture image, per José.
Reviewed-by: Jose Fonseca <[email protected]>
|
|
|
|
|
|
|
| |
INLINE is still seen in some files (some generated files, etc) but this
is a good start.
Acked-by: Kenneth Graunke <[email protected]>
|
| |
|
| |
|
|
|
|
|
|
|
| |
The texture is not cube complete if the base level images aren't of
the same size and format.
NOTE: This is a candidate for the 7.9 branch.
|
| |
|
| |
|
|
|
|
|
|
|
|
| |
This commit adds a function to clear a texture object such that there is
no image data associated with it, and a function to dirty it so that it
will be re-tested for completeness.
Signed-off-by: Chia-I Wu <[email protected]>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
When a GLSL sampler reads from an incomplete texture it should
return (0,0,0,1). Instead of jumping through hoops in all the drivers
to make this happen, just create/install a fallback texture with those
texel values.
Fixes piglit/fp-incomplete-tex on i965 and more importantly, fixes some
GPU lockups when trying to sample from missing surfaces. If a binding
table entry is NULL, it seems that sampling sometimes works, but not
always (lockup).
Todo: create a fallback texture for each type of texture target?
|
|
|
|
|
|
| |
Use new _mesa_reference_texobj() function for referencing/unreferencing
textures. Add new assertions/tests to try to detect invalid usage of
deleted textures.
|
| |
|
| |
|
| |
|
|
|
|
|
|
| |
Was only used by two drivers to walk over all texture objects. Can do that
via the hash table instead.
Cleaned up some comments for struct gl_texture_object.
|
|
|
|
|
| |
points so that the calling conventions will work correctly with the assembler
stubs with the Open Watcom compiler.
|
| |
|
| |
|
|
|
|
|
| |
allow drivers to implement C++-like inheritance via containment.
Lots of assorted clean-ups related to texture objects.
|
| |
|
|
|
|
|
|
|
|
|
| |
Replace struct gl_texure_object's Dimension w/ Target field.
Added _EnabledUnits to struct gl_texture_attrib - the _ReallyEnabled
field is obsolete, but still present for now. This effectively
removes the 8-texture units limit, 32 units now possible, but unlikely!
New TEXTURE_1D/2D/3D/CUBE/RECT_BIT tokens for unit->_ReallyEnabled field.
Updated device drivers to use ctx->Texture._EnabledUnits.
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Modified Files:
Mesa/macos/gli_api/gliapi1.h Mesa/macos/gli_api/gliapi2.h
Mesa/macos/gli_api/gliapiext.h Mesa/macos/src-gli/fxgli.c
Mesa/macos/src-gli/fxgli.h Mesa/macos/src-gli/fxgli2.c
Mesa/macos/src-gli/fxgli_tridebug.c Mesa/src/accum.c
Mesa/src/accum.h Mesa/src/all.h Mesa/src/alpha.c
Mesa/src/alpha.h Mesa/src/attrib.c Mesa/src/attrib.h
Mesa/src/bitmap.c Mesa/src/bitmap.h Mesa/src/blend.c
Mesa/src/blend.h Mesa/src/buffers.c Mesa/src/buffers.h
Mesa/src/clip.c Mesa/src/clip.h Mesa/src/colortab.h
Mesa/src/config.c Mesa/src/context.c Mesa/src/context.h
Mesa/src/convolve.c Mesa/src/convolve.h Mesa/src/copypix.c
Mesa/src/copypix.h Mesa/src/debug.c Mesa/src/depth.c
Mesa/src/depth.h Mesa/src/dlist.c Mesa/src/dlist.h
Mesa/src/drawpix.c Mesa/src/drawpix.h Mesa/src/enable.c
Mesa/src/enable.h Mesa/src/eval.c Mesa/src/eval.h
Mesa/src/extensions.c Mesa/src/extensions.h
Mesa/src/feedback.c Mesa/src/feedback.h Mesa/src/fog.c
Mesa/src/fog.h Mesa/src/get.c Mesa/src/get.h Mesa/src/glapi.c
Mesa/src/glthread.h Mesa/src/highpc.c Mesa/src/hint.h
Mesa/src/histogram.h Mesa/src/image.c Mesa/src/image.h
Mesa/src/imports.c Mesa/src/light.c Mesa/src/light.h
Mesa/src/lines.c Mesa/src/lines.h Mesa/src/logic.c
Mesa/src/logic.h Mesa/src/masking.c Mesa/src/masking.h
Mesa/src/matrix.c Mesa/src/matrix.h Mesa/src/pixel.c
Mesa/src/pixel.h Mesa/src/points.c Mesa/src/points.h
Mesa/src/polygon.c Mesa/src/polygon.h Mesa/src/rastpos.c
Mesa/src/readpix.c Mesa/src/scissor.c Mesa/src/scissor.h
Mesa/src/state.c Mesa/src/state.h Mesa/src/stencil.c
Mesa/src/stencil.h Mesa/src/teximage.c Mesa/src/teximage.h
Mesa/src/texobj.c Mesa/src/texobj.h Mesa/src/texstate.c
Mesa/src/texstate.h Mesa/src/texture.c Mesa/src/texture.h
Mesa/src/texutil.c Mesa/src/texutil.h Mesa/src/varray.c
Mesa/src/varray.h Mesa/src/X/fakeglx.c Mesa/src/X/xm_api.c
Mesa/src/X/xm_dd.c Mesa/src/X/xm_line.c Mesa/src/X/xm_span.c
Mesa/src/X/xm_tri.c Mesa/src/swrast/s_aaline.c
Mesa/src/swrast/s_aaline.h Mesa/src/swrast/s_aatriangle.h
Mesa/src/swrast/s_accum.h Mesa/src/swrast/s_alpha.h
Mesa/src/swrast/s_alphabuf.h Mesa/src/swrast/s_blend.h
Mesa/src/swrast/s_context.c Mesa/src/swrast/s_context.h
Mesa/src/swrast/s_depth.h Mesa/src/swrast/s_drawpix.h
Mesa/src/swrast/s_feedback.h Mesa/src/swrast/s_fog.h
Mesa/src/swrast/s_histogram.h Mesa/src/swrast/s_lines.h
Mesa/src/swrast/s_logic.h Mesa/src/swrast/s_masking.h
Mesa/src/swrast/s_pb.h Mesa/src/swrast/s_pixeltex.h
Mesa/src/swrast/s_points.h Mesa/src/swrast/s_quads.c
Mesa/src/swrast/s_quads.h Mesa/src/swrast/s_scissor.h
Mesa/src/swrast/s_span.h Mesa/src/swrast/s_stencil.h
Mesa/src/swrast/s_texture.h Mesa/src/swrast/s_triangle.h
Mesa/src/swrast/s_zoom.h Mesa/src/swrast/swrast.h
Mesa/src/swrast_setup/ss_context.h
Mesa/src/swrast_setup/ss_triangle.c
Mesa/src/swrast_setup/ss_triangle.h
Mesa/src/swrast_setup/ss_vb.h Mesa/src/tnl/t_clip.c
Mesa/src/tnl/t_clip.h Mesa/src/tnl/t_context.c
Mesa/src/tnl/t_context.h Mesa/src/tnl/t_cva.c
Mesa/src/tnl/t_cva.h Mesa/src/tnl/t_debug.c
Mesa/src/tnl/t_debug.h Mesa/src/tnl/t_dlist.h
Mesa/src/tnl/t_eval.c Mesa/src/tnl/t_eval.h
Mesa/src/tnl/t_fog.c Mesa/src/tnl/t_fog.h
Mesa/src/tnl/t_light.c Mesa/src/tnl/t_light.h
Mesa/src/tnl/t_pipeline.c Mesa/src/tnl/t_pipeline.h
Mesa/src/tnl/t_shade.c Mesa/src/tnl/t_shade.h
Mesa/src/tnl/t_stages.c Mesa/src/tnl/t_stages.h
Mesa/src/tnl/t_texture.c Mesa/src/tnl/t_texture.h
Mesa/src/tnl/t_trans_elt.c Mesa/src/tnl/t_trans_elt.h
Mesa/src/tnl/t_varray.c Mesa/src/tnl/t_varray.h
Mesa/src/tnl/t_vb.c Mesa/src/tnl/t_vb.h
Mesa/src/tnl/t_vbcull.c Mesa/src/tnl/t_vbcull.h
Mesa/src/tnl/t_vbfill.c Mesa/src/tnl/t_vbfill.h
Mesa/src/tnl/t_vbindirect.c Mesa/src/tnl/t_vbindirect.h
Mesa/src/tnl/t_vbrender.c Mesa/src/tnl/t_vbrender.h
Mesa/src/tnl/t_vbxform.c Mesa/src/tnl/t_vbxform.h
Mesa/src/tnl/tnl.h
Added Files:
Mesa/src/mtypes.h
Removed Files:
Mesa/src/types.h
Changed Mesa/src/types to Mesa/src/mtypes.h to avoid conflicts while
compiling on a VMS system.
----------------------------------------------------------------------
|
|
|
|
|
|
|
| |
Completely removed the dirty texture object list. Set texObj->Complete
to GL_FALSE to indicate dirty.
Made point/line/triangle/quad SWvertex parameters const.
Minor code clean-ups.
|
| |
|