URL:
http://cgit.freedesktop.org/mesa/mesa/commit/?id=8132e1c6257154be63f98e39d86cc0c4b5c707b3
Author: Jordan Justen <[email protected]>
Date: Thu Dec 27 13:34:44 2012 -0800
fbobject: add additional fbo completeness checks for GLES
Signed-off-by: Jordan Justen <[email protected]>
URL:
http://cgit.freedesktop.org/mesa/mesa/commit/?id=579dd32d2b295d329af44276b879d8ae06755993
Author: Jordan Justen <[email protected]>
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 <[email protected]>
URL:
http://cgit.freedesktop.org/mesa/mesa/commit/?id=be46166071e1f840e4e06c7f9588739f702f68ba
Author: Jordan Justen <[email protected]>
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 <[email protected]>
URL:
http://cgit.freedesktop.org/mesa/mesa/commit/?id=b64e03c44859faf3ba92e928fac70a2e9274c44c
Author: Jordan Justen <[email protected]>
Date: Thu Jan 10 17:29:27 2013 -0800
extensions: enable EXT_color_buffer_float for ES2/ES3
Signed-off-by: Jordan Justen <[email protected]>
URL:
http://cgit.freedesktop.org/mesa/mesa/commit/?id=beea72fe199b5bd688e861fdc5ee020ed3a372f9
Author: Jordan Justen <[email protected]>
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 <[email protected]>
Reviewed-by: Ian Romanick <[email protected]>
URL:
http://cgit.freedesktop.org/mesa/mesa/commit/?id=f67aa9e3cc68a94a55fc54b5aa66df2bd1f0cc82
Author: Jordan Justen <[email protected]>
Date: Fri Dec 28 11:24:37 2012 -0800
readpix: add error checking for GLES3
Signed-off-by: Jordan Justen <[email protected]>
URL:
http://cgit.freedesktop.org/mesa/mesa/commit/?id=b4ac5d30806fcf29c201ada979154411894c9bb4
Author: Jordan Justen <[email protected]>
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 <[email protected]>
URL:
http://cgit.freedesktop.org/mesa/mesa/commit/?id=b73af33a0e95e97183a1e74c8b77169fca6e2a33
Author: Jordan Justen <[email protected]>
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 <[email protected]>
URL:
http://cgit.freedesktop.org/mesa/mesa/commit/?id=03b0db1103e06279f9d2717c3655b6a48523454d
Author: Kenneth Graunke <[email protected]>
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 <[email protected]>
URL:
http://cgit.freedesktop.org/mesa/mesa/commit/?id=9b5ed925b57ac69ec6609d024033369c12fd95b3
Author: Chad Versace <[email protected]>
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 <[email protected]>
Reviewed-by: Ian Romanick <[email protected]>
Signed-off-by: Chad Versace <[email protected]>
URL:
http://cgit.freedesktop.org/mesa/mesa/commit/?id=742fff992bf562fdf9b523c807d02387190a01dc
Author: Paul Berry <[email protected]>
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=75d7f6828ca9e00c945640f87d77a12aa8f8f831
Author: Ian Romanick <[email protected]>
Date: Wed Aug 8 15:25:00 2012 -0700
mesa/es3: Enable ES 3.0 API and shading language version
Signed-off-by: Ian Romanick <[email protected]>
URL:
http://cgit.freedesktop.org/mesa/mesa/commit/?id=d0ce8d6ceb5f597e9cb132e6395bce8fbd51b58e
Author: Anuj Phogat <[email protected]>
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 <[email protected]>
Reviewed-by: Ian Romanick <[email protected]>
URL:
http://cgit.freedesktop.org/mesa/mesa/commit/?id=bed997dabaada5e7c8081db08f93a6f1b5932e8b
Author: Anuj Phogat <[email protected]>
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 <[email protected]>
Reviewed-by: Kenneth Graunke <[email protected]>
Reviewed-by: Ian Romanick <[email protected]>
URL:
http://cgit.freedesktop.org/mesa/mesa/commit/?id=ab36ca061412c49143a5f2af53bee862fbd40351
Author: Anuj Phogat <[email protected]>
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 <[email protected]>
Reviewed-by: Kenneth Graunke <[email protected]>
Reviewed-by: Ian Romanick <[email protected]>
URL:
http://cgit.freedesktop.org/mesa/mesa/commit/?id=2f2801f876a4c637273bd3ddefb8a5b7a840e604
Author: Anuj Phogat <[email protected]>
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 <[email protected]>
Reviewed-by: Kenneth Graunke <[email protected]>
Reviewed-by: Ian Romanick <[email protected]>
URL:
http://cgit.freedesktop.org/mesa/mesa/commit/?id=b77243b9c245fd5957aa6d615a3d83d061f51cc1
Author: Anuj Phogat <[email protected]>
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 <[email protected]>
Reviewed-by: Kenneth Graunke <[email protected]>
Reviewed-by: Ian Romanick <[email protected]>
URL:
http://cgit.freedesktop.org/mesa/mesa/commit/?id=0c535ae7fc703e10c1df7a108e8704263d7b75d3
Author: Anuj Phogat <[email protected]>
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 <[email protected]>
Reviewed-by: Ian Romanick <[email protected]>
URL:
http://cgit.freedesktop.org/mesa/mesa/commit/?id=252573ae0fe6c928885f005cf6e77200b45601fb
Author: Anuj Phogat <[email protected]>
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 <[email protected]>
Signed-off-by: Kenneth Graunke <[email protected]>
Reviewed-by: Kenneth Graunke <[email protected]>
Reviewed-by: Ian Romanick <[email protected]>
URL:
http://cgit.freedesktop.org/mesa/mesa/commit/?id=f727fc630462c91f19a59e8b48e3a4224dd0ec52
Author: Kenneth Graunke <[email protected]>
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 <[email protected]>
Signed-off-by: Kenneth Graunke <[email protected]>
Signed-off-by: Ian Romanick <[email protected]> [v2]
Reviewed-by: Anuj Phogat <[email protected]>
Reviewed-by: Ian Romanick <[email protected]> [v1]
URL:
http://cgit.freedesktop.org/mesa/mesa/commit/?id=fd3891cbbe8f11c297edf0a6bf0580f69024722e
Author: Kenneth Graunke <[email protected]>
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 <[email protected]>
Signed-off-by: Kenneth Graunke <[email protected]>
Signed-off-by: Ian Romanick <[email protected]> [v2]
Reviewed-by: Anuj Phogat <[email protected]>
Reviewed-by: Ian Romanick <[email protected]> [v1]
URL:
http://cgit.freedesktop.org/mesa/mesa/commit/?id=d786bf2c2acbafe2ac32e7fd5b8f9a6b09f3d968
Author: Ian Romanick <[email protected]>
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 <[email protected]>
URL:
http://cgit.freedesktop.org/mesa/mesa/commit/?id=45575ff388cbb4c49480c6e5e8eea32d5c7d74a4
Author: Rob Schneider <[email protected]>
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 <[email protected]>
URL:
http://cgit.freedesktop.org/mesa/mesa/commit/?id=eb09940e55806c36890ae8f5a35ad1b37ed74832
Author: Chad Versace <[email protected]>
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 <[email protected]>
Reviewed-by: Ian Romanick <[email protected]>
URL:
http://cgit.freedesktop.org/mesa/mesa/commit/?id=26f9faa04b4e924bc8e1fc35a5d75179063764e6
Author: Chad Versace <[email protected]>
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 <[email protected]>
Reviewed-by: Ian Romanick <[email protected]>
URL:
http://cgit.freedesktop.org/mesa/mesa/commit/?id=e90c08e6674018ac56e1134ba02295a3e7edc90c
Author: Chad Versace <[email protected]>
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 <[email protected]>
Reviewed-by: Ian Romanick <[email protected]>
URL:
http://cgit.freedesktop.org/mesa/mesa/commit/?id=a11fe62058ad9d44170be9346111e3f6630a3327
Author: Chad Versace <[email protected]>
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 <[email protected]>
Reviewed-by: Ian Romanick <[email protected]>
URL:
http://cgit.freedesktop.org/mesa/mesa/commit/?id=4945086f36d3ccec041e499f1e2861dc1cc45a44
Author: Chad Versace <[email protected]>
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 <[email protected]>
Reviewed-by: Ian Romanick <ian.d.romanick.intel.com>
URL:
http://cgit.freedesktop.org/mesa/mesa/commit/?id=112e302481182d625e04ae1abeaa4f4f344a645e
Author: Matt Turner <[email protected]>
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 <[email protected]> (v1)
Reviewed-by: Anuj Phogat <[email protected]>
Reviewed-by: Ian Romanick <[email protected]>
URL:
http://cgit.freedesktop.org/mesa/mesa/commit/?id=2906e2034c9d674601960a5b586b6e986e6ef04f
Author: Matt Turner <[email protected]>
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 <[email protected]>
Reviewed-by: Ian Romanick <[email protected]>
URL:
http://cgit.freedesktop.org/mesa/mesa/commit/?id=c8901133a4525fc50fb34dfe24c549f1663468cc
Author: Matt Turner <[email protected]>
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 <[email protected]>
Reviewed-by: Ian Romanick <[email protected]>
URL:
http://cgit.freedesktop.org/mesa/mesa/commit/?id=cbef5371f6cb0a03f62586f7c5b4ed66511daff4
Author: Matt Turner <[email protected]>
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 <[email protected]>
Signed-off-by: Ian Romanick <[email protected]>
Acked-by: Kenneth Graunke <[email protected]>
Reviewed-by: Anuj Phogat <[email protected]>
Reviewed-by: Ian Romanick <[email protected]>
URL:
http://cgit.freedesktop.org/mesa/mesa/commit/?id=8907b6a8e4461f6064e32ff5419053e74274e770
Author: Kenneth Graunke <[email protected]>
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 <[email protected]>
Reviewed-by: Ian Romanick <[email protected]>
URL:
http://cgit.freedesktop.org/mesa/mesa/commit/?id=f3db20da1a04fd64732c62631d59aac801a1a59d
Author: Kenneth Graunke <[email protected]>
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 <[email protected]>
Reviewed-by: Ian Romanick <[email protected]>
URL:
http://cgit.freedesktop.org/mesa/mesa/commit/?id=d9d857e24fef2ae5576523b861f46c426b94ba0d
Author: Carl Worth <[email protected]>
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 <[email protected]>
URL:
http://cgit.freedesktop.org/mesa/mesa/commit/?id=c0b768ffee1ba84a4fcfcf41adf60e6d50cbafee
Author: Carl Worth <[email protected]>
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 <[email protected]>
URL:
http://cgit.freedesktop.org/mesa/mesa/commit/?id=3dd76f7168bba6123c9ac5e2442b8c811f40399f
Author: Carl Worth <[email protected]>
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 <[email protected]>
URL:
http://cgit.freedesktop.org/mesa/mesa/commit/?id=c7df9c0e12e000f3d2fd57ebb3072f4afbda8579
Author: Carl Worth <[email protected]>
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 <[email protected]>
URL:
http://cgit.freedesktop.org/mesa/mesa/commit/?id=133383f77a526537f2bf32705ce391370dcbc84f
Author: Brian Paul <[email protected]>
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 <[email protected]>
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 <[email protected]>
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 <[email protected]>
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.
_______________________________________________
mesa-commit mailing list
[email protected]
http://lists.freedesktop.org/mailman/listinfo/mesa-commit