Mesa (gles3): 50 new commits
Ian Romanick
idr at kemper.freedesktop.org
Wed Jan 16 07:47:05 UTC 2013
URL: http://cgit.freedesktop.org/mesa/mesa/commit/?id=401271956d41f2d50ee262e91f601e22697fbb55
Author: Jordan Justen <jordan.l.justen at intel.com>
Date: Thu Dec 27 13:34:44 2012 -0800
fbobject: add additional fbo completeness checks for GLES
Signed-off-by: Jordan Justen <jordan.l.justen at intel.com>
URL: http://cgit.freedesktop.org/mesa/mesa/commit/?id=cbf1ab2cf22813a0b464ebb5057a08a51022e857
Author: Jordan Justen <jordan.l.justen at intel.com>
Date: Sat Jan 12 01:11:21 2013 -0800
framebuffer: update allowed implementation format/type
Allow additional format/type combinations based on the
color render buffer to fix failures with gles3-gtf.
Signed-off-by: Jordan Justen <jordan.l.justen at intel.com>
URL: http://cgit.freedesktop.org/mesa/mesa/commit/?id=58598e2e6656c843208a26bb9f9fa00f18e5293c
Author: Jordan Justen <jordan.l.justen at intel.com>
Date: Sat Jan 12 01:05:44 2013 -0800
readpix: allow implementation format/type
For GLES2/3 allow reading of pixels with format/type based on:
* GL_IMPLEMENTATION_COLOR_READ_FORMAT
* GL_IMPLEMENTATION_COLOR_READ_TYPE
Signed-off-by: Jordan Justen <jordan.l.justen at intel.com>
URL: http://cgit.freedesktop.org/mesa/mesa/commit/?id=d1f05ff362691b48227967652a523818543a2711
Author: Jordan Justen <jordan.l.justen at intel.com>
Date: Thu Jan 10 17:29:27 2013 -0800
extensions: enable EXT_color_buffer_float for ES2/ES3
Signed-off-by: Jordan Justen <jordan.l.justen at intel.com>
URL: http://cgit.freedesktop.org/mesa/mesa/commit/?id=bfb8041ca2f863ccf06383c12ca4d87303218492
Author: Jordan Justen <jordan.l.justen at intel.com>
Date: Fri Dec 28 11:27:04 2012 -0800
readpix: check FBO completeness before trying to access the read-buffer
Signed-off-by: Jordan Justen <jordan.l.justen at intel.com>
Reviewed-by: Ian Romanick <ian.d.romanick at intel.com>
URL: http://cgit.freedesktop.org/mesa/mesa/commit/?id=e3b02469cd508a7bd10ec97dee30b749fc301bb4
Author: Jordan Justen <jordan.l.justen at intel.com>
Date: Fri Dec 28 11:24:37 2012 -0800
readpix: add error checking for GLES3
Signed-off-by: Jordan Justen <jordan.l.justen at intel.com>
URL: http://cgit.freedesktop.org/mesa/mesa/commit/?id=35c8ce95ec765bb9b9c43075e8de8ef9abb8996e
Author: Jordan Justen <jordan.l.justen at intel.com>
Date: Fri Dec 28 11:07:01 2012 -0800
copyteximage: update error checking for GLES3
Changes based on GTF/gles3 conformance test suite.
Signed-off-by: Jordan Justen <jordan.l.justen at intel.com>
URL: http://cgit.freedesktop.org/mesa/mesa/commit/?id=3f7e1a440c054ca9a366340ae503916475c1f927
Author: Jordan Justen <jordan.l.justen at intel.com>
Date: Fri Dec 28 11:00:50 2012 -0800
copyteximage: make sure is_srgb(src) == is_srgb(dst)
v2:
* Remove _EXT on enums
* Remove compressed forms of sRGB from is_srgb_format
* Add comment referencing GL Core spec
Signed-off-by: Jordan Justen <jordan.l.justen at intel.com>
URL: http://cgit.freedesktop.org/mesa/mesa/commit/?id=292c12b8e9f589878ef85f8a1aedf0e7dd175df5
Author: Kenneth Graunke <kenneth at whitecape.org>
Date: Tue Jan 8 11:23:10 2013 -0800
mesa: Use GL_RED for DEPTH_TEXTURE_MODE for everything but legacy GL.
According to page 163 of the ES 3.0 spec:
"Texture lookups involving textures with depth component data generate
a texture base color C_b either using depth data directly or by
performing a comparison with the D_ref value used to perform the
lookup, as described in section 3.8.15. The resulting value R_t is
then expanded to a color C_b = (R_t,0,0,1), ..."
In other words, depth textures are supposed to be treated as GL_RED.
A discussion about this text can be found in Khronos bugzilla:
https://cvs.khronos.org/bugzilla/show_bug.cgi?id=7962
It's unclear what the behavior of desktop GL should be. The GL 3.x
specifications indicate that it should be (r, r, r, 1), which is
GL_LUMINANCE (the old default). However, page 112 of the 4.2 core
specification contains the text quoted above, explicitly declaring it
to be (R_t, 0, 0, 1), which is GL_RED.
So it hinges on whether the 4.2 text is a change or a clarification.
Personally I think that using GL_RED in core contexts and GL_INTENSITY
in legacy contexts seems reasonable.
Fixes 4 es3conform tests:
- depth_texture_fbo
- depth_texture_fbo_clear
- depth_texture_teximage
- depth_texture_texsubimage
Cc: Ian Romanick <idr at freedesktop.org>
URL: http://cgit.freedesktop.org/mesa/mesa/commit/?id=d9db91626d2bffda898794b330061554eaf65085
Author: Chad Versace <chad.versace at linux.intel.com>
Date: Wed Nov 21 09:28:36 2012 -0800
i965: Bump maximum supported ES2 context version to 3.0
Since patch "i965: Validate requested GLES context version in
brwCreateContext", we have been able to create ES 3.0 contexts due to the
max version check. So...bump the max version.
Reviewed-by: Kenneth Graunke <kenneth at whitecape.org>
Reviewed-by: Ian Romanick <ian.d.romanick at intel.com>
Signed-off-by: Chad Versace <chad.versace at linux.intel.com>
URL: http://cgit.freedesktop.org/mesa/mesa/commit/?id=40b655e9a60c508b5a5ef08da039b240c84bbde2
Author: Paul Berry <stereotype441 at gmail.com>
Date: Tue Aug 7 12:39:30 2012 -0700
i965/Gen6+: Enable ARB_ES3_compatibility extension
IMPORTANT: this patch should not be pushed to master until ES3 support
is fully implemented on i965/Gen6+.
URL: http://cgit.freedesktop.org/mesa/mesa/commit/?id=277f4b68295a64ef80d5371240a172be12584ec1
Author: Ian Romanick <ian.d.romanick at intel.com>
Date: Wed Aug 8 15:25:00 2012 -0700
mesa/es3: Enable ES 3.0 API and shading language version
v2: Add ARB_internalformat_query to the list of required extensions.
Signed-off-by: Ian Romanick <ian.d.romanick at intel.com>
URL: http://cgit.freedesktop.org/mesa/mesa/commit/?id=1cedf7819b605cd78ae4762c2abc20988577d852
Author: Ian Romanick <ian.d.romanick at intel.com>
Date: Tue Jan 15 23:20:02 2013 -0800
glapi: Remove duplicate ARB_base_instance from gl_API.xml
Signed-off-by: Ian Romanick <ian.d.romanick at intel.com>
URL: http://cgit.freedesktop.org/mesa/mesa/commit/?id=3c00a52f7e02007f40fa53a06fad517bed0328ff
Author: Ian Romanick <ian.d.romanick at intel.com>
Date: Sat Dec 1 11:06:31 2012 -0800
intel: Enable GL_ARB_internalformat_query
Signed-off-by: Ian Romanick <ian.d.romanick at intel.com>
Reviewed-by: Eric Anholt <eric at anholt.net>
Reviewed-by: Jordan Justen <jordan.l.justen at intel.com>
URL: http://cgit.freedesktop.org/mesa/mesa/commit/?id=f5e7f12e4a1d2ee98ced36c232842d60181fc01e
Author: Ian Romanick <ian.d.romanick at intel.com>
Date: Sat Dec 1 11:05:00 2012 -0800
mesa: Add driver method to determine the possible sample counts
Use this method in _mesa_GetInternalformativ for both GL_SAMPLES and
GL_NUM_SAMPLE_COUNTS.
v2: internalFormat may not be color renderable by the driver, so zero
can be returned as a sample count. Require that drivers supporting the
extension provide a QuerySamplesForFormat function. The later was
suggested by Eric Anholt.
Signed-off-by: Ian Romanick <ian.d.romanick at intel.com>
Reviewed-by: Eric Anholt <eric at anholt.net>
Reviewed-by: Jordan Justen <jordan.l.justen at intel.com>
URL: http://cgit.freedesktop.org/mesa/mesa/commit/?id=bda540d2357f69a63dcf16550e178f803682d6ce
Author: Ian Romanick <ian.d.romanick at intel.com>
Date: Fri Nov 30 12:43:58 2012 -0800
mesa: Add dispatch and extension XML for GL_ARB_internalformat_query
Signed-off-by: Ian Romanick <ian.d.romanick at intel.com>
Reviewed-by: Eric Anholt <eric at anholt.net>
Reviewed-by: Jordan Justen <jordan.l.justen at intel.com>
URL: http://cgit.freedesktop.org/mesa/mesa/commit/?id=5e4bb063f03a066eb60225b544b81036ebf78638
Author: Ian Romanick <ian.d.romanick at intel.com>
Date: Fri Nov 30 12:42:59 2012 -0800
mesa: Add extension tracking bit for GL_ARB_internalformat_query
Though, I'm tempted to always expose this extension when
GL_ARB_framebuffer_object is exposed. In that case, it would share the same
enable bit.
v2: Correctly sort extension names. Suggested by Eric Anholt.
Signed-off-by: Ian Romanick <ian.d.romanick at intel.com>
Reviewed-by: Eric Anholt <eric at anholt.net>
Reviewed-by: Jordan Justen <jordan.l.justen at intel.com>
URL: http://cgit.freedesktop.org/mesa/mesa/commit/?id=1b468d043e538a6302ad77a408ad123c58dc0e83
Author: Ian Romanick <ian.d.romanick at intel.com>
Date: Fri Nov 30 12:41:50 2012 -0800
mesa: Add skeleton implementation of glGetInternalformativ
This is for the GL_ARB_internalformat_query extension and GLES 3.0.
v2: Generate GL_INVALID_OPERATION if the extension is not supported.
Signed-off-by: Ian Romanick <ian.d.romanick at intel.com>
Reviewed-by: Eric Anholt <eric at anholt.net>
Reviewed-by: Jordan Justen <jordan.l.justen at intel.com>
URL: http://cgit.freedesktop.org/mesa/mesa/commit/?id=780c2cb42bc7bff9f89a998effb732bdcd72630b
Author: Vinson Lee <vlee at freedesktop.org>
Date: Tue Jan 15 18:03:25 2013 -0800
meta: Move loop variable declaration outside for loop.
Fixes build with MSVC.
Signed-off-by: Vinson Lee <vlee at freedesktop.org>
URL: http://cgit.freedesktop.org/mesa/mesa/commit/?id=7ecbbc338668d745daae7b3a6d17f3af0adf12d7
Author: Brian Paul <brianp at vmware.com>
Date: Tue Jan 15 17:02:30 2013 -0700
mesa: move declarations before code to fix MSVC build
URL: http://cgit.freedesktop.org/mesa/mesa/commit/?id=d0ce8d6ceb5f597e9cb132e6395bce8fbd51b58e
Author: Anuj Phogat <anuj.phogat at gmail.com>
Date: Mon Jan 7 10:30:11 2013 +0530
mesa: Round float param in glTexparameterf() to nearest integer
OpenGL 4.2 specification suggests rounding the float data to nearest
integer when the type of internal state is integer. Out of range floats
should be clamped to {INT_MIN, INT_MAX}. This is not specified anywhere
in gl/gles spec but below test expects this behavior. This patch makes
gles3 conformance sgis_texture_lod_basic_getter.test pass.
A GL spec bug will be raised to include clamping of out of range floats.
V2: Round float to nearest integer for all cases where
_mesa_Texparameterf() converts float param to int. Use the same block of
float to int conversion code for GL_TEXTURE_SWIZZLE_{R,G,B,A}_EXT cases
as well.
Signed-off-by: Anuj Phogat <anuj.phogat at gmail.com>
Reviewed-by: Ian Romanick <ian.d.romanick at intel.com>
URL: http://cgit.freedesktop.org/mesa/mesa/commit/?id=bed997dabaada5e7c8081db08f93a6f1b5932e8b
Author: Anuj Phogat <anuj.phogat at gmail.com>
Date: Tue Dec 11 20:17:47 2012 -0800
mesa: Add support to allow blitting to multiple color draw buffers
This patch fixes a blitting case when drawAttachment->Texture ==
readAttachment->Texture. It was causing an assertion failure in
intel_miptree_attach_map() with gles3 conformance test case:
framebuffer_blit_functionality_minifying_blit
Number of changes in this file look scary. But most of them are caused
by introducing a big for loop to support rendering to multiple color
draw buffers.
V2: Fixed a case when number of draw buffer attachments are zero.
V3: Put a for loop in blit_nearest() and blit_linear() functions in to
support blitting to multiple color draw buffers.
V4: Remove variable declaration in for loop to avoid MSVC compilation
issues.
Signed-off-by: Anuj Phogat <anuj.phogat at gmail.com>
Reviewed-by: Kenneth Graunke <kenneth at whitecape.org>
Reviewed-by: Ian Romanick <ian.d.romanick at intel.com>
URL: http://cgit.freedesktop.org/mesa/mesa/commit/?id=ab36ca061412c49143a5f2af53bee862fbd40351
Author: Anuj Phogat <anuj.phogat at gmail.com>
Date: Tue Dec 11 20:17:47 2012 -0800
mesa: Add error checking in _mesa_BlitFramebuffer() for MRTs
This patch adds required error checking in _mesa_BlitFramebuffer() when
blitting to multiple color render targets. It also fixes a case when
blitting to a framebuffer with renderbuffer/texture attached to
GL_COLOR_ATTACHMENT{i} (where i!=0). Earlier it skips color blitting if
nothing is found attached to GL_COLOR_ATTACHMENT0.
V2: Fixed a case when number of draw buffer attachments are zero.
V3: Do compatible_color_datatypes() and compatible_resolve_formats()
check for all the draw renderbuffers in fbobject.c. Fix debug code
at bottom of _mesa_BlitFramebuffer() to handle MRTs. Combine error
checking code for linear blits with other color blit error checking.
Signed-off-by: Anuj Phogat <anuj.phogat at gmail.com>
Reviewed-by: Kenneth Graunke <kenneth at whitecape.org>
Reviewed-by: Ian Romanick <ian.d.romanick at intel.com>
URL: http://cgit.freedesktop.org/mesa/mesa/commit/?id=2f2801f876a4c637273bd3ddefb8a5b7a840e604
Author: Anuj Phogat <anuj.phogat at gmail.com>
Date: Tue Dec 11 20:08:13 2012 -0800
mesa: Fix GL error generation in _mesa_GetFramebufferAttachmentParameteriv()
This allows query on default framebuffer in
glGetFramebufferAttachmentParameteriv() for gles3. Fixes unexpected GL
errors in gles3 conformance test case:
framebuffer_blit_functionality_multisampled_to_singlesampled_blit
V2: Use _mesa_is_gles3() check to restrict allowed attachment types to
specific APIs.
Signed-off-by: Anuj Phogat <anuj.phogat at gmail.com>
Reviewed-by: Kenneth Graunke <kenneth at whitecape.org>
Reviewed-by: Ian Romanick <ian.d.romanick at intel.com>
URL: http://cgit.freedesktop.org/mesa/mesa/commit/?id=b77243b9c245fd5957aa6d615a3d83d061f51cc1
Author: Anuj Phogat <anuj.phogat at gmail.com>
Date: Tue Dec 11 19:36:05 2012 -0800
intel: Support blitting to multiple color draw buffers
This patch enables blitting to multiple color attachments of a
framebuffer. It also fixes a case when blitting to a framebuffer with
renderbuffer/texture attached to non-zero attachment point
i.e. GL_COLOR_ATTACHMENT{1, 2, ...}. Earlier we were incorrectly
blitting to GL_COLOR_ATTACHMENT0 by default.
V2: Use intel_copy_texsubimage() for blitting only if all the color
attachments can blit using it.
Signed-off-by: Anuj Phogat <anuj.phogat at gmail.com>
Reviewed-by: Kenneth Graunke <kenneth at whitecape.org>
Reviewed-by: Ian Romanick <ian.d.romanick at intel.com>
URL: http://cgit.freedesktop.org/mesa/mesa/commit/?id=0c535ae7fc703e10c1df7a108e8704263d7b75d3
Author: Anuj Phogat <anuj.phogat at gmail.com>
Date: Wed Nov 28 12:55:55 2012 -0800
meta: Add functionality to do _mesa_meta_BlitFrameBuffer() using glsl
This patch rewrites _mesa_meta_BlitFrameBuffer() function to add support
for blitting with GLSL/GLSL ES shaders. These changes were required to
support glBlitFrameBuffer() in gles3. This patch, along with other
patches in this series, make 16 failing framebuffer_blit test cases in
gles3 conformance pass.
V2: Properly handle flipped blits for source and destination
renderbuffer / textures. Add support for GL_TEXTURE_RECTANGLE in
_mesa_meta_BlitFrameBuffer. Create a temp depth texture to support
depth buffer blitting.
V3: Remove unsupported / redundant shader code. Add an assertion to make
sure that we don't use rectangle texture in ES. Put API guard on
glTexEnvi().
V4: For gles3: Don't use ReadPixels or CopyTexImage2D to blit depth
buffer. gles3 spec says for CopyTexImage2D that "color buffer
components can be dropped during the conversion to internalformat,
but new components cannot be added." So, use the internal format of
read renderbuffer to create texture for color buffer blitting.
Signed-off-by: Anuj Phogat <anuj.phogat at gmail.com>
Reviewed-by: Ian Romanick <idr at freedesktop.org>
URL: http://cgit.freedesktop.org/mesa/mesa/commit/?id=252573ae0fe6c928885f005cf6e77200b45601fb
Author: Anuj Phogat <anuj.phogat at gmail.com>
Date: Mon Jan 7 15:55:31 2013 -0800
mesa: Fix GL error generation in glBlitFramebuffer()
V2:
If mask has GL_STENCIL_BUFFER_BIT set, the depth formats for
readRenderBuffer and drawRenderBuffer must match unless one of the two
buffers doesn't have depth, in which case it's not blitted, so the
format check should be ignored. Same comment goes for stencil formats
in depth renderbuffers if mask has GL_DEPTH_BUFFER_BIT set.
v3 (Kayden): Refactor code to be a bit more readable.
Signed-off-by: Anuj Phogat <anuj.phogat at gmail.com>
Signed-off-by: Kenneth Graunke <kenneth at whitecape.org>
Reviewed-by: Kenneth Graunke <kenneth at whitecape.org>
Reviewed-by: Ian Romanick <ian.d.romanick at intel.com>
URL: http://cgit.freedesktop.org/mesa/mesa/commit/?id=f727fc630462c91f19a59e8b48e3a4224dd0ec52
Author: Kenneth Graunke <kenneth at whitecape.org>
Date: Tue Dec 18 13:26:04 2012 -0800
mesa: Make ES3 glDrawBuffers() only accept BACK/NONE for the winsys fbo.
Nothing was explicitly checking this.
v2: Update GL3 spec reference.
Signed-off-by: Anuj Phogat <anuj.phogat at gmail.com>
Signed-off-by: Kenneth Graunke <kenneth at whitecape.org>
Signed-off-by: Ian Romanick <ian.d.romanick at intel.com> [v2]
Reviewed-by: Anuj Phogat <anuj.phogat at gmail.com>
Reviewed-by: Ian Romanick <ian.d.romanick at intel.com> [v1]
URL: http://cgit.freedesktop.org/mesa/mesa/commit/?id=fd3891cbbe8f11c297edf0a6bf0580f69024722e
Author: Kenneth Graunke <kenneth at whitecape.org>
Date: Tue Dec 18 13:26:03 2012 -0800
mesa: Handle GL_BACK correctly for ES 3.0 in glDrawBuffers().
In ES 3.0, when calling glDrawBuffers() on the window system
framebuffer, the only valid targets are GL_NONE or GL_BACK. Since there
is no stereo rendering in ES 3.0, this is a single buffer, unlike
desktop where it may be two (and thus isn't allowed).
For single-buffered configs, GL_BACK ironically means the front (and
only) buffer. I'm not sure that it matters, however, as ES shouldn't
have front buffer rendering in the first place.
Fixes es3conform framebuffer_blit_coverage_default_draw_buffer_binding.
v2: Update GLES3 spec reference.
Signed-off-by: Anuj Phogat <anuj.phogat at gmail.com>
Signed-off-by: Kenneth Graunke <kenneth at whitecape.org>
Signed-off-by: Ian Romanick <ian.d.romanick at intel.com> [v2]
Reviewed-by: Anuj Phogat <anuj.phogat at gmail.com>
Reviewed-by: Ian Romanick <ian.d.romanick at intel.com> [v1]
URL: http://cgit.freedesktop.org/mesa/mesa/commit/?id=d786bf2c2acbafe2ac32e7fd5b8f9a6b09f3d968
Author: Ian Romanick <ian.d.romanick at intel.com>
Date: Tue Jan 15 14:17:46 2013 -0800
egl/dri2: Fix typo in the previous commit
I didn't notice this due to a noobed piglit run. It wasn't previously
noticed because the patch was only run on a driver that supported GLES3.
Signed-off-by: Ian Romanick <ian.d.romanick at intel.com>
URL: http://cgit.freedesktop.org/mesa/mesa/commit/?id=45575ff388cbb4c49480c6e5e8eea32d5c7d74a4
Author: Rob Schneider <Swizzle at t-online.de>
Date: Tue Jan 15 11:49:12 2013 -0800
libgl-gdi: Avoid hangs on DLL_PROCESS_DETACH.
At process exit DLL_PROCESS_DETACH is signaled to DllMain(), where then
a final cleanup is triggered. In stw_cleanup() code is triggered that
tries to communicate a shutdown to the spawned threads -- however at
that time those threads have already been terminated by the OS and so
the process hangs.
v2: skip stw_cleanup_thread() too
Signed-off-by: José Fonseca <jfonseca at vmware.com>
URL: http://cgit.freedesktop.org/mesa/mesa/commit/?id=eb09940e55806c36890ae8f5a35ad1b37ed74832
Author: Chad Versace <chad.versace at linux.intel.com>
Date: Tue Nov 20 13:43:11 2012 -0800
egl/dri2: Add plumbing for EGL_OPENGL_ES3_BIT_KHR
Fixes error EGL_BAD_ATTRIBUTE in the tests below on Intel Sandybridge:
* piglit egl-create-context-verify-gl-flavor, testcase OpenGL ES 3.0
* gles3conform, revision 19700, when runnning GL3Tests with -fbo
This plumbing is added in order to comply with the EGL_KHR_create_context
spec. According to the EGL_KHR_create_context spec, it is illegal to call
eglCreateContext(EGL_CONTEXT_MAJOR_VERSION_KHR=3) with a config whose
EGL_RENDERABLE_TYPE does not contain the EGL_OPENGL_ES3_BIT_KHR. The
pertinent
portion of the spec is quoted below; the key word is "respectively".
* If <config> is not a valid EGLConfig, or does not support the
requested client API, then an EGL_BAD_CONFIG error is generated
(this includes requesting creation of an OpenGL ES 1.x, 2.0, or
3.0 context when the EGL_RENDERABLE_TYPE attribute of <config>
does not contain EGL_OPENGL_ES_BIT, EGL_OPENGL_ES2_BIT, or
EGL_OPENGL_ES3_BIT_KHR respectively).
To create this patch, I searched for all the ES2 bit plumbing by calling
`git grep "ES2_BIT\|DRI_API_GLES2" src/egl`, and then at each location
added a case for ES3.
Signed-off-by: Chad Versace <chad.versace at linux.intel.com>
Reviewed-by: Ian Romanick <ian.d.romanick at intel.com>
URL: http://cgit.freedesktop.org/mesa/mesa/commit/?id=26f9faa04b4e924bc8e1fc35a5d75179063764e6
Author: Chad Versace <chad.versace at linux.intel.com>
Date: Wed Nov 21 16:55:43 2012 -0800
intel: Expose support for DRI_API_GLES3
If the hardware/driver combo supports GLES3, then set the GLES3 bit in
intel_screen's bitmask of supported DRI API's. Neither the EGL nor GLX
layer uses the bit yet.
Signed-off-by: Chad Versace <chad.versace at linux.intel.com>
Reviewed-by: Ian Romanick <ian.d.romanick at intel.com>
URL: http://cgit.freedesktop.org/mesa/mesa/commit/?id=e90c08e6674018ac56e1134ba02295a3e7edc90c
Author: Chad Versace <chad.versace at linux.intel.com>
Date: Tue Nov 20 13:27:14 2012 -0800
dri: Define enum __DRI_API_GLES3
This enum corresponds to EGL_OPENGL_ES3_BIT_KHR.
Neither the GLX nor EGL layer use the enum yet.
I don't like the GLES bits. I'd prefer that all GLES APIs be exposed
through a single API bit, as is done in GLX_EXT_create_context_es_profile.
But, we need this GLES3 enum in order to do the plumbing necessary to
correctly support EGL_OPENGL_ES3_BIT_KHR as required by the
EGL_KHR_create_context spec.
Signed-off-by: Chad Versace <chad.versace at linux.intel.com>
Reviewed-by: Ian Romanick <ian.d.romanick at intel.com>
URL: http://cgit.freedesktop.org/mesa/mesa/commit/?id=a11fe62058ad9d44170be9346111e3f6630a3327
Author: Chad Versace <chad.versace at linux.intel.com>
Date: Wed Nov 21 16:22:19 2012 -0800
intel: Move validation of context version into intelInitContext
Each driver (i830, i915, i965) used independent but similar code to
validate the requested context version. With the rececnt arrival of GLES3,
that logic has needed an update. Rather than apply identical updates to
each drivers validation code, let's just move the validation into the
shared routine intelInitContext.
This refactor required some incidental changes to functions
i830CreateContext and intelInitContext. For each function, this patch:
- Adds context version parameters to the signature.
- Adds a DRI_CTX_ERROR out param to the signature.
- Sets the DRI_CTX_ERROR at each early return.
Tested against gen6 with piglit egl-create-context-verify-gl-flavor.
Verified that this patch does not change the set of exposed EGL context
flavors.
Signed-off-by: Chad Versace <chad.versace at linux.intel.com>
Reviewed-by: Ian Romanick <ian.d.romanick at intel.com>
URL: http://cgit.freedesktop.org/mesa/mesa/commit/?id=4945086f36d3ccec041e499f1e2861dc1cc45a44
Author: Chad Versace <chad.versace at linux.intel.com>
Date: Wed Nov 21 15:08:27 2012 -0800
intel: Set screen's api mask according to hw capabilities (v3)
Before this patch, intelInitScreen2 set DRIScreen::api_mask with the hacky
heuristic below:
if (gen >= 3)
api_mask = GL | GLES1 | GLES2;
else
api_mask = 0;
This hack was likely broken on gen2 (i830), but I don't care enough to
properly investigate. It appears that every EGLConfig on i830 has
EGL_RENDERABLE_TYPE=0, and thus eglCreateContext will never succeed.
Anyway, moving on to living drivers...
With the arrival of EGL_OPENGL_ES3_BIT_KHR, this heuristic is now
insufficient. We must enable the GLES3 bit if and only if the driver is
capable of creating a GLES3 context. This requires us to determine the
maximum supported context version supported by the hardware/driver for
each api *during initialization of intel_screen*.
Therefore, this patch adds four new fields to intel_screen which indicate
the maximum supported context version for each api:
max_gl_core_version
max_gl_compat_version
max_gl_es1_version
max_gl_es2_version
The api mask is now correctly set as:
api_mask = GL;
if (max_gl_es1_version > 0)
api_mask |= GLES1;
if (max_gl_es2_version > 0)
api_mask |= GLES2;
Tested against gen6 with piglit egl-create-context-verify-gl-flavor.
Verified that this patch does not change the set of exposed EGL context
flavors.
v2:
- Replace the if-tree on gen with a switch, for Ian.
- Unconditionally enable the DRI_API_OPENGL bit, for Ian.
v3:
- Drop max gl version to 1.4 on gen3 if !has_occlusion_query,
because occlusion queries entered core in 1.5. For Ian.
v4:
- Drop ES2 version back to 2.0 due to rebase (Ian).
Signed-off-by: Chad Versace <chad.versace at linux.intel.com>
Reviewed-by: Ian Romanick <ian.d.romanick.intel.com>
URL: http://cgit.freedesktop.org/mesa/mesa/commit/?id=112e302481182d625e04ae1abeaa4f4f344a645e
Author: Matt Turner <mattst88 at gmail.com>
Date: Fri Nov 30 15:07:54 2012 -0800
mesa: Return INVALID_ENUM for glReadPixels(..., GL_DEPTH_*, ...) on ES 3
I'm not sure if this is the correct fix. The
_mesa_es_error_check_format_and_type function (used above in the ES 1
and 2 cases) was originally added for glTexImage checking and allows
GL_DEPTH_STENCIL/GL_UNSIGNED_INT_24_8 combinations. Using it in ES 3
causes other tests to regress.
Fixes es3conform's packed_depth_stencil_error test.
Reviewed-by: Kenneth Graunke <kenneth at whitecape.org> (v1)
Reviewed-by: Anuj Phogat <anuj.phogat at gmail.com>
Reviewed-by: Ian Romanick <ian.d.romanick at intel.com>
URL: http://cgit.freedesktop.org/mesa/mesa/commit/?id=2906e2034c9d674601960a5b586b6e986e6ef04f
Author: Matt Turner <mattst88 at gmail.com>
Date: Fri Nov 30 15:07:18 2012 -0800
mesa: Return INVALID_OPERATION when type is known but not allowed
INVALID_ENUM is for when the type is simply not known.
Fixes part of es3conform's packed_depth_stencil_error test.
Reviewed-by: Kenneth Graunke <kenneth at whitecape.org>
Reviewed-by: Ian Romanick <ian.d.romanick at intel.com>
URL: http://cgit.freedesktop.org/mesa/mesa/commit/?id=c8901133a4525fc50fb34dfe24c549f1663468cc
Author: Matt Turner <mattst88 at gmail.com>
Date: Wed Nov 28 21:45:19 2012 -0800
mesa: Allow HALF_FLOAT in glVertexAttribPointer for GLES3
Fixes es3conform's half_float_max_vertex_dimensions and
half_float_textures tests.
Reviewed-by: Jordan Justen <jordan.l.justen at intel.com>
Reviewed-by: Ian Romanick <ian.d.romanick at intel.com>
URL: http://cgit.freedesktop.org/mesa/mesa/commit/?id=cbef5371f6cb0a03f62586f7c5b4ed66511daff4
Author: Matt Turner <mattst88 at gmail.com>
Date: Tue Nov 20 13:45:03 2012 -0800
mesa: Reject texture-only formats as renderbuffer formats in ES 3
ES 3 specifies some formats as texture-only (i.e., not available for
renderbuffers).
See the "Required Texture Formats" section (pg 126) of the ES 3 spec.
v2: Allow RED and RG float rendering in core profiles The check used to
be (version > 30) || (compat profile w/extensions). Just deleting
<version > 30) broke 3.0+ core profiles.
Fixes es3conform's color_buffer_unsupported_format test.
Signed-off-by: Matt Turner <mattst88 at gmail.com>
Signed-off-by: Ian Romanick <ian.d.romanick at intel.com>
Acked-by: Kenneth Graunke <kenneth at whitecape.org>
Reviewed-by: Anuj Phogat <anuj.phogat at gmail.com>
Reviewed-by: Ian Romanick <ian.d.romanick at intel.com>
URL: http://cgit.freedesktop.org/mesa/mesa/commit/?id=8907b6a8e4461f6064e32ff5419053e74274e770
Author: Kenneth Graunke <kenneth at whitecape.org>
Date: Sat Nov 17 21:23:28 2012 -0800
mesa: Fix default value of BUFFER_ACCESS_FLAGS.
According to both the GL 3.0 and ES 3.0 specifications (table 2.7 for GL
and table 2.8 for ES), the default value of BUFFER_ACCESS_FLAGS is
supposed to be zero.
Note that there are two related quantities: the obsolete BUFFER_ACCESS
enum and the new BUFFER_ACCESS_FLAGS bitfield.
BUFFER_ACCESS can only be GL_READ_ONLY, GL_WRITE_ONLY, or GL_READ_WRITE;
BUFFER_ACCESS_FLAGS can easily represent all three via GL_MAP_WRITE_BIT,
GL_MAP_READ_BIT, and their logical or. It also supports more flags.
Thus, Mesa only stores the bitfield, and simply computes the old enum
when queried, via simplified_access_mode(bufObj->AccessFlags).
The tricky part is that, while BUFFER_ACCESS_FLAGS defaults to 0,
BUFFER_ACCESS defaults to GL_READ_WRITE for desktop [GL 3.0, table 2.8]
and GL_WRITE_ONLY_OES for ES [the GL_EXT_map_buffer_range extension].
Mesa tried to implement this by setting the default AccessFlags to
GL_MAP_READ_BIT | GL_MAP_WRITE_BIT on desktop, and GL_MAP_WRITE_BIT on
ES. But in all specifications, it needs to be 0.
This patch moves that logic into simplified_access_mode(): when
AccessFlags == 0, it now returns GL_READ_WRITE for desktop and
GL_WRITE_ONLY for ES 1/2. (BUFFER_ACCESS doesn't exist on ES 3.0,
so it's irrelevant there.)
With that in place, it changes the AccessFlags default to 0.
Fixes three es3conform tsets:
- copy_buffer_defaults
- map_buffer_range_modify_indices
- pixel_buffer_object_default_parameters
Reviewed-by: Jordan Justen <jordan.l.justen at intel.com>
Reviewed-by: Ian Romanick <ian.d.romanick at intel.com>
URL: http://cgit.freedesktop.org/mesa/mesa/commit/?id=f3db20da1a04fd64732c62631d59aac801a1a59d
Author: Kenneth Graunke <kenneth at whitecape.org>
Date: Fri Nov 16 14:52:01 2012 -0800
mesa: Rework crazy error code rules in glDrawBuffers().
Perhaps most importantly, this patch adds comments quoting the relevant
spec paragraphs above each error condition.
It also makes three changes:
- For FBOs, GL_COLOR_ATTACHMENTm where m >= MaxDrawBuffers is supposed
to generate INVALID_OPERATION (not INVALID_ENUM).
- Constants that refer to multiple buffers (such as FRONT, BACK, LEFT,
RIGHT, and FRONT_AND_BACK) are supposed to generate INVALID_OPERATION,
not INVALID_ENUM.
- In ES 3.0, for FBOs, buffers[i] must be NONE or GL_COLOR_ATTACHMENTi
or else INVALID_OPERATION occurs. (This is a new restriction.)
Fixes es3conform's draw-buffers-api test.
v2: The error path was missing a "return" like all the other error
paths. Also, we may as well call it glDrawBuffers in the error message
since the ARB suffix doesn't exist in ES 3.
Reviewed-by: Jordan Justen <jordan.l.justen at intel.com>
Reviewed-by: Ian Romanick <ian.d.romanick at intel.com>
URL: http://cgit.freedesktop.org/mesa/mesa/commit/?id=d9d857e24fef2ae5576523b861f46c426b94ba0d
Author: Carl Worth <cworth at cworth.org>
Date: Thu Dec 13 15:23:10 2012 -0800
i965: Force even an empty query to flush all previous queries.
The specification requires that query results are processed in order, (when
one query result is returned, all previous query of the same type must also be
available). The implementation was failing this requirement in the case of
BeginQuery and EndQuery with no intervening drawing, (the result would be made
available immediately without flushing previous queries).
This fixes the following es3conform test:
occlusion_query_query_order
as well as the following piglit test:
occlusion_query_order
Reviewed-by: Ian Romanick <ian.d.romanick at intel.com>
URL: http://cgit.freedesktop.org/mesa/mesa/commit/?id=c0b768ffee1ba84a4fcfcf41adf60e6d50cbafee
Author: Carl Worth <cworth at cworth.org>
Date: Thu Dec 13 11:15:03 2012 -0800
meta: Allow meta operations to pause/resume an active occlusion query
This allows for avoiding the occlusion query erroneously accumulating results
during the meta operation. This functionality is made conditional on a new
MESA_META_OCCLUSION_QUERY bit so that meta-operations which should generate
fragments can continue to get the current behavior.
The implementation of glClear is specifically augmented to request the flag
since glClear is specified to not generate fragments.
This fixes the following es3conform tests:
occlusion_query_draw_occluded.test
occlusion_query_clear
occlusion_query_custom_framebuffer
occlusion_query_stencil_test
occlusion_query_discarded_fragments
As well as the following piglit test:
occlusion_query_meta_no_fragments
Reviewed-by: Ian Romanick <ian.d.romanick at intel.com>
URL: http://cgit.freedesktop.org/mesa/mesa/commit/?id=3dd76f7168bba6123c9ac5e2442b8c811f40399f
Author: Carl Worth <cworth at cworth.org>
Date: Thu Dec 13 12:47:56 2012 -0800
queryobj: Add EverBound flag, making ISQuery() return false before BeginQuery()
This flag allows for the specified behavior that GenQueries reserves a name,
but does not associate an object with it until BeginQuery. We allocate the
object immediately with the new EverBound flag set to false, and then set the
flag to true at the time of BeginQuery.
This allows us to implement a conformant IsQuery function by checking the
state of the new EverBound flag.
This fixes the following es3conform tests:
occlusion_query_genqueries
occlusion_query_is_query_nonzero
and the following piglit test:
occlusion_query_lifetime
Reviewed-by: Ian Romanick <ian.d.romanick at intel.com>
URL: http://cgit.freedesktop.org/mesa/mesa/commit/?id=c7df9c0e12e000f3d2fd57ebb3072f4afbda8579
Author: Carl Worth <cworth at cworth.org>
Date: Mon Dec 17 13:38:39 2012 -0800
Update comment to specify actual text being referenced from the specification.
The reference to "correct, see spec" was a bit too vague to be useful,
(particularly since the language being referenced here changes between OpenGL
3.1 and OpenGL 4.3).
Reviewed-by: Ian Romanick <ian.d.romanick at intel.com>
URL: http://cgit.freedesktop.org/mesa/mesa/commit/?id=133383f77a526537f2bf32705ce391370dcbc84f
Author: Brian Paul <brianp at vmware.com>
Date: Tue Jan 15 13:00:09 2013 -0700
docs: minor updates to VMware guest driver docs
The DRM's --enable-vmwgfx-experimental-api flag isn't needed anymore.
URL: http://cgit.freedesktop.org/mesa/mesa/commit/?id=7660529c44b3f6753e9b5636e876a3cd83c8ba51
Author: Marek Olšák <maraeo at gmail.com>
Date: Mon Jan 14 01:38:51 2013 +0100
r300g: fix and cleanup flushing before clearing CMASK, ZMASK, and HIZ
URL: http://cgit.freedesktop.org/mesa/mesa/commit/?id=ca2c28859eca83f8fbf1f43616f5ef861e95e8d6
Author: Marek Olšák <maraeo at gmail.com>
Date: Sat Jan 12 03:29:40 2013 +0100
r300g: implement MSAA compression and fast MSAA color clear
These are optimizations which make MSAA a lot faster.
The MSAA work is complete with this commit. (except for enablement of AA
optimizations for RGBA16F, for which a patch is ready and waiting until
the kernel CS checker fix lands)
MSAA can't be made any faster as far as hw programming is concerned.
The catch is only one process and one colorbuffer can use the optimizations
at a time. There usually is only one MSAA colorbuffer, so it shouldn't be
an issue.
Also, there is a limit on the size of MSAA colorbuffer resolution in terms
of megapixels. If the limit is surpassed, the AA optimizations are disabled.
The limit is:
- 1 Mpix on low-end and some mid-level chipsets (1024x768 and 1280x720)
- 2 Mpix on some mid-level chipsets (1600x1200 and 1920x1080)
- 3 or 4 Mpix on high-end chipsets (2048x1536 or 2560x1600, respectively)
It corresponds to the number of raster pipes (= GB pipes) available, each pipe
can hold 1 Mpix of AA compression data.
If it's enabled, the driver prints to stdout:
radeon: Acquired access to AA optimizations.
URL: http://cgit.freedesktop.org/mesa/mesa/commit/?id=1dfe8eead95613a7db62dd17d3da56884b5a887e
Author: Marek Olšák <maraeo at gmail.com>
Date: Fri Jan 11 16:45:54 2013 +0100
gallium/util: add a half float array to util_color
For convenient packing into half floats.
More information about the mesa-commit
mailing list