Mesa (gles3): 82 new commits
Paul Berry
stereotype441 at kemper.freedesktop.org
Fri Nov 30 21:33:16 UTC 2012
URL: http://cgit.freedesktop.org/mesa/mesa/commit/?id=5612c08ee21ba5c3b260c307029c9d012e70f0d1
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=fe65f8a910f72abc84f2383fc370e1c3b33674fe
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=4aa51f6950c8575e7583a9cfb1be645141d54024
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=875af0381ebccec08b66d9f737f0b01f43af4d08
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=3a10e929c9374d7d9336e07a0351a39649abe093
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.
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=d91b972bae12b32290049c9f1dc6591841e00a5a
Author: Carl Worth <cworth at cworth.org>
Date: Mon Nov 26 15:00:05 2012 -0800
glcpp: Make undefined macros illegal in #if and #elif for GLES3
Simply emitting a nicely-formatted error message if any undefined macro is
encountered in a parser context expecting an expression.
With this commit, the following piglit test now passes:
spec/glsl-es-3.00/compiler/undefined-macro.vert
Reviewed-by: Matt Turner <mattst88 at gmail.com>
Reviewed-by: Ian Romanick <ian.d.romanick at intel.com>
URL: http://cgit.freedesktop.org/mesa/mesa/commit/?id=4beab01ee1d705c341774fd798332665aa1b6644
Author: Carl Worth <cworth at cworth.org>
Date: Mon Nov 26 14:53:54 2012 -0800
glcpp: Add a flag to the parser state to indicate GLES.
This can be triggered either by creation of a GLES context (with
api == API_OPENGLES2) or else by a #version directive with version
value 100 or with a string of "es" following the version value.
There's no behavioral change with this commit—just preparation for ES-specific
behavior in the preprocessor in the future.
Reviewed-by: Matt Turner <mattst88 at gmail.com>
Reviewed-by: Ian Romanick <ian.d.romanick at intel.com>
URL: http://cgit.freedesktop.org/mesa/mesa/commit/?id=2ef14db135a14bdb051c1932d2408d10ea2bf233
Author: Matt Turner <mattst88 at gmail.com>
Date: Tue Nov 20 13:01:04 2012 -0800
mesa: Rename and wire-up GetInteger64i_v
The function was named badly and wasn't in the dispatch table,
making it hard to find.
Fixes transform_feedback2_states and gets a few other transform
feedback tests closer to working in es3conform.
Reviewed-by Anuj Phogat <anuj.phogat at gmail.com>
Reviewed-by: Kenneth Graunke <kenneth at whitecape.org>
URL: http://cgit.freedesktop.org/mesa/mesa/commit/?id=6baac771dea926839614f1f24dd7f3ab48a24e91
Author: Matt Turner <mattst88 at gmail.com>
Date: Tue Nov 20 12:56:52 2012 -0800
mesa: Correct glGet{Boolean,Integer}i_v names
Reviewed-by Anuj Phogat <anuj.phogat at gmail.com>
Reviewed-by: Kenneth Graunke <kenneth at whitecape.org>
URL: http://cgit.freedesktop.org/mesa/mesa/commit/?id=32373331cb8369d38e1d835c2058a593bfcf93ed
Author: Matt Turner <mattst88 at gmail.com>
Date: Wed Nov 21 15:06:10 2012 -0800
mesa: Allow glGet* queries on EXT_texture_lod_bias data in ES 3
Fixes the remaining 4 texture_lod_bias failures in es3conform.
Tested-by: Anuj Phogat <anuj.phogat at gmail.com>
Reviewed-by: Kenneth Graunke <kenneth at whitecape.org>
URL: http://cgit.freedesktop.org/mesa/mesa/commit/?id=1056a30870ad9bf8d0c692c5b39219e1612fe660
Author: Chad Versace <chad.versace at linux.intel.com>
Date: Tue Nov 20 17:04:45 2012 -0800
mesa: Support more glGet enums for ES3
For glGetIntegerv, add support for the following in an OpenGL ES 3.0
context:
GL_MAJOR_VERSION
GL_MINOR_VERSION
GL_NUM_EXTENSIONS
See Table 6.29 of the OpenGL ES 3.0 spec.
Fixes error GL_INVALID_ENUM in piglit egl-create-context-verify-gl-flavor,
testcase for OpenGL ES 3.0.
Reviewed-by: Kenneth Graunke <kenneth at whitecape.org>
Reviewed-by: Matt Turner <mattst88 at gmail.com>
Signed-off-by: Chad Versace <chad.versace at linux.intel.com>
URL: http://cgit.freedesktop.org/mesa/mesa/commit/?id=207f8e830683c1f924fdfe69555193e62ad84d95
Author: Kenneth Graunke <kenneth at whitecape.org>
Date: Mon Nov 19 22:36:28 2012 -0800
glsl: Support unsigned integer constants in layout qualifiers.
Fixes es3conform's explicit_attrib_location_integer_constants.
Reviewed-by: Ian Romanick <ian.d.romanick at intel.com>
Reviewed-by: Eric Anholt <eric at anholt.net>
URL: http://cgit.freedesktop.org/mesa/mesa/commit/?id=70eee8cc608c6aabc19aec47798fc3ab708298c6
Author: Kenneth Graunke <kenneth at whitecape.org>
Date: Mon Nov 19 21:59:59 2012 -0800
meta: Use #version 300 es for _mesa_glsl_Clear's integer shaders on ES3.
Fixes es3conform's color_buffer_float_clamp_(fixed|on|off) tests.
Reviewed-by: Ian Romanick <ian.d.romanick at intel.com>
URL: http://cgit.freedesktop.org/mesa/mesa/commit/?id=b338510e59abadf77be73706034ec587df6a021c
Author: Kenneth Graunke <kenneth at whitecape.org>
Date: Mon Nov 19 21:51:25 2012 -0800
meta: Use #version 300 es in GenerateMipmap shaders on ES3.
Reviewed-by: Ian Romanick <ian.d.romanick at intel.com>
URL: http://cgit.freedesktop.org/mesa/mesa/commit/?id=8428d1467280cf3449047425fc3342fc6831e7d2
Author: Jordan Justen <jordan.l.justen at intel.com>
Date: Fri Nov 16 13:40:59 2012 -0800
mesa: assert if driver did not compute the version
Make sure drivers initialize the version before:
* _mesa_initialize_exec_table is called
* _mesa_initialize_exec_table_vbo is called
* A context is made current
Signed-off-by: Jordan Justen <jordan.l.justen at intel.com>
Reviewed-by: Kenneth Graunke <kenneth at whitecape.org>
URL: http://cgit.freedesktop.org/mesa/mesa/commit/?id=9ece258b6f2aee38d696bfc479589f90a8a719e9
Author: Jordan Justen <jordan.l.justen at intel.com>
Date: Mon Nov 19 11:21:05 2012 -0800
mesa: don't initialize VBO vtxfmt in _vbo_CreateContext
The driver should call _mesa_initialize_vbo_vtxfmt after
computing the context version.
Signed-off-by: Jordan Justen <jordan.l.justen at intel.com>
Reviewed-by: Kenneth Graunke <kenneth at whitecape.org>
URL: http://cgit.freedesktop.org/mesa/mesa/commit/?id=354551ac3a4a76ff6ef80b5b5e4b88171e28c9ed
Author: Jordan Justen <jordan.l.justen at intel.com>
Date: Fri Nov 16 10:42:02 2012 -0800
mesa: don't initialize exec dispatch tables in _mesa_initialize_context
Drivers must compute the context version, and then call
_mesa_initialize_exec_table themselves.
Signed-off-by: Jordan Justen <jordan.l.justen at intel.com>
Reviewed-by: Kenneth Graunke <kenneth at whitecape.org>
URL: http://cgit.freedesktop.org/mesa/mesa/commit/?id=bf559e80d0402ebf64b3c8da5622ffec2bcf4e45
Author: Jordan Justen <jordan.l.justen at intel.com>
Date: Fri Nov 16 18:25:35 2012 -0800
mesa dispatch_sanity: call new functions to initialize exec table
In a future patch the exec functions will no longer set up
by _mesa_initialize_context and _vbo_CreateContext.
Therefore we must call _mesa_initialize_exec_table and
_mesa_initialize_exec_table_vbo.
Signed-off-by: Jordan Justen <jordan.l.justen at intel.com>
Reviewed-by: Kenneth Graunke <kenneth at whitecape.org>
URL: http://cgit.freedesktop.org/mesa/mesa/commit/?id=900a00cff323f358030723fe32e9487438ee0c83
Author: Jordan Justen <jordan.l.justen at intel.com>
Date: Fri Nov 16 10:30:19 2012 -0800
drivers: compute version and then initialize exec table
This change forces the context version to be computed before
initilizing the exec dispatch tables.
Signed-off-by: Jordan Justen <jordan.l.justen at intel.com>
Reviewed-by: Kenneth Graunke <kenneth at whitecape.org>
URL: http://cgit.freedesktop.org/mesa/mesa/commit/?id=b9f0060fd0a3b71a766d5bf6977c42833da9f6bb
Author: Jordan Justen <jordan.l.justen at intel.com>
Date: Mon Nov 19 11:17:39 2012 -0800
vbo: add _mesa_initialize_vbo_vtxfmt
This function initializes the exec/save dispatch tables
for VBO vtxfmt.
Signed-off-by: Jordan Justen <jordan.l.justen at intel.com>
Reviewed-by: Kenneth Graunke <kenneth at whitecape.org>
URL: http://cgit.freedesktop.org/mesa/mesa/commit/?id=e6324ac2a7922d413b8c622f5c85ea3fb5536f92
Author: Jordan Justen <jordan.l.justen at intel.com>
Date: Fri Nov 16 10:27:13 2012 -0800
mesa: separate exec allocation from initialization
In glapi/gl_genexec.py:
* Remove _mesa_alloc_dispatch_table call
In glapi/gl_genexec.py and api_exec.h:
* Rename _mesa_create_exec_table to _mesa_initialize_exec_table
In context.c:
* Call _mesa_alloc_dispatch_table instead of _mesa_create_exec_table
* Call _mesa_initialize_exec_table (this is temporary)
Once all drivers have been modified to call
_mesa_initialize_exec_table, then the call to
_mesa_initialize_context can be removed from context.c.
Signed-off-by: Jordan Justen <jordan.l.justen at intel.com>
Reviewed-by: Kenneth Graunke <kenneth at whitecape.org>
URL: http://cgit.freedesktop.org/mesa/mesa/commit/?id=e0a9ebc6fab28c08ca2a72913abf2fdfa41d8d79
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=691a6243a90c89bd69d9af065968b00414c4afc1
Author: Matt Turner <mattst88 at gmail.com>
Date: Sat Nov 17 17:39:35 2012 -0800
mesa: Allow glGet* queries on EXT_framebuffer_blit data in ES 3
Fixes 2 framebuffer_blit es3conform tests.
Reviewed-by: Kenneth Graunke <kenneth at whitecape.org>
URL: http://cgit.freedesktop.org/mesa/mesa/commit/?id=2ad06f332830a717339fe42e92451988ebd21f80
Author: Matt Turner <mattst88 at gmail.com>
Date: Sat Nov 17 16:38:05 2012 -0800
mesa: Allow glGet* queries on ARB_fragment/vertex_shader data in ES 3
Fixes uniform_buffer_object_implementation_dependent_limits in
es3conform.
Reviewed-by: Kenneth Graunke <kenneth at whitecape.org>
URL: http://cgit.freedesktop.org/mesa/mesa/commit/?id=5bdf6146eb200afb77fdf0421dfb493a1764f52a
Author: Matt Turner <mattst88 at gmail.com>
Date: Thu Nov 15 22:13:48 2012 -0800
mesa: Allow GL_DEPTH_STENCIL_ATTACHMENT in ES 3
Fixes framebuffer_srgb_default_encoding_fbo and 5 packed_depth_stencil
tests from es3conform.
Reviewed-by: Kenneth Graunke <kenneth at whitecape.org>
URL: http://cgit.freedesktop.org/mesa/mesa/commit/?id=2b720afb267a54d7dee57eb383b6eba4111a1e14
Author: Matt Turner <mattst88 at gmail.com>
Date: Thu Nov 15 22:05:27 2012 -0800
mesa: Allow glGet* queries on ARB_framebuffer_object data in ES 3
Reviewed-by: Kenneth Graunke <kenneth at whitecape.org>
URL: http://cgit.freedesktop.org/mesa/mesa/commit/?id=c6d1ea141ffefa9a38fe1a4eca224cf92a50007d
Author: Matt Turner <mattst88 at gmail.com>
Date: Thu Nov 15 21:55:05 2012 -0800
mesa: Allow glGet* queries on ARB_transform_feedback2 data in ES 3
Fixes the transform_feedback2_init_defaults test from es3conform.
The ES 3 spec lists these as TRANSFORM_FEEDBACK_PAUSED and
TRANSFORM_FEEDBACK_ACTIVE.
Reviewed-by: Kenneth Graunke <kenneth at whitecape.org>
URL: http://cgit.freedesktop.org/mesa/mesa/commit/?id=44197009f4970ccf0a150b46d5b31384b0372549
Author: Matt Turner <mattst88 at gmail.com>
Date: Thu Nov 15 21:41:14 2012 -0800
mesa: Allow glGet* queries on EXT_transform_feedback data in ES 3
Reviewed-by: Kenneth Graunke <kenneth at whitecape.org>
URL: http://cgit.freedesktop.org/mesa/mesa/commit/?id=0a7d0165fc9b400b928f63c95850bcd6db8524af
Author: Matt Turner <mattst88 at gmail.com>
Date: Thu Nov 15 21:19:01 2012 -0800
mesa: Allow glGet* queries on ARB_sync data in ES 3
Fixes the sync_coverage_max_server_wait_timeout test in es3conform.
Reviewed-by: Kenneth Graunke <kenneth at whitecape.org>
URL: http://cgit.freedesktop.org/mesa/mesa/commit/?id=989e00dd86581ad5fc6114fdfb34940d7f4f9753
Author: Matt Turner <mattst88 at gmail.com>
Date: Thu Nov 15 15:57:16 2012 -0800
mesa: Allow glGet* queries of EXT_pbo data in ES 3
Fixes pixel_buffer_object_default_binding and gets other tests in
es3conform closer to passing.
Reviewed-by: Kenneth Graunke <kenneth at whitecape.org>
URL: http://cgit.freedesktop.org/mesa/mesa/commit/?id=9f80b300cb078f133d55a502513cffa98be8ad77
Author: Matt Turner <mattst88 at gmail.com>
Date: Thu Nov 15 15:40:32 2012 -0800
mesa: Allow glGet* queries of select ARB_ubo data in ES 3
Fixes 5 uniform_buffer_object tests in es3conform
Reviewed-by: Kenneth Graunke <kenneth at whitecape.org>
URL: http://cgit.freedesktop.org/mesa/mesa/commit/?id=bce821a20a525d765a3a6118dd959ce892d095b1
Author: Matt Turner <mattst88 at gmail.com>
Date: Thu Nov 15 15:47:18 2012 -0800
mesa: Add ES 3 handling to get.c
Reviewed-by: Kenneth Graunke <kenneth at whitecape.org>
URL: http://cgit.freedesktop.org/mesa/mesa/commit/?id=501a910b96b7af17ad82a1ba7ca09bb4dd257b48
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
URL: http://cgit.freedesktop.org/mesa/mesa/commit/?id=116a902febbcb431b6e00a007f6cb5c3debd5a2f
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.
URL: http://cgit.freedesktop.org/mesa/mesa/commit/?id=2c7c866d39120dd8721ecd4ed442b9084bfac805
Author: Ian Romanick <ian.d.romanick at intel.com>
Date: Fri Nov 9 12:26:42 2012 -0800
glsl: Allow layout qualifiers in GLSL 3.00 ES
Note that while 'packed' is a reserved word in GLSL ES, row_major is not.
This means that we have to use the string-based matching for that.
Signed-off-by: Ian Romanick <ian.d.romanick at intel.com>
Reviewed-by: Kenneth Graunke <kenneth at whitecape.org>
URL: http://cgit.freedesktop.org/mesa/mesa/commit/?id=055a2dfd25c98e7bcee863ac6ba4af232e2c17d3
Author: Ian Romanick <ian.d.romanick at intel.com>
Date: Fri Nov 9 10:23:30 2012 -0800
i965: Add support for GL_ANY_SAMPLES_PASSED_CONSERVATIVE
We just treat this as an alias for GL_ANY_SAMPLES_PASSED.
Signed-off-by: Ian Romanick <ian.d.romanick at intel.com>
Reviewed-by: Eric Anholt <eric at anholt.net>
Reviewed-by: Kenneth Graunke <kenneth at whitecape.org>
URL: http://cgit.freedesktop.org/mesa/mesa/commit/?id=7bde17f8bec503c5e715464e1727c2a3c99fe7ea
Author: Anuj Phogat <anuj.phogat at gmail.com>
Date: Mon Sep 17 14:52:10 2012 -0700
intel: Enable ETC2 support on intel hardware
This patch enables support for ETC2 compressed textures on
all intel hardware. At present, ETC2 texture decoding is not
available on intel hardware. So, compressed ETC2 texture data
is decoded in software and stored in a suitable uncompressed
MESA_FORMAT at the time of glCompressedTexImage2D. Currently,
ETC2 formats are only exposed in OpenGL ES 3.0.
V2: Use single etc_wraps variable for both etc1 and etc2.
V3: Remove redundant code and use just one intel_miptree_map_etc()
and intel_miptree_unmap_etc() function.
Choose MESA_FORMAT_SIGNED_{R16, GR1616} for ETC2 signed-{r11, rg11}
formats
Signed-off-by: Anuj Phogat <anuj.phogat at gmail.com>
Tested-by: Matt Turner <mattst88 at gmail.com>
Reviewed-by: Eric Anholt <eric at anholt.net>
Reviewed-by: Kenneth Graunke <kenneth at whitecape.org>
URL: http://cgit.freedesktop.org/mesa/mesa/commit/?id=e0db19f5425d8c429d0df777d214556d98474d9e
Author: Anuj Phogat <anuj.phogat at gmail.com>
Date: Tue Oct 23 12:22:20 2012 -0700
mesa: Add decoding functions for GL_COMPRESSED_SRGB8_PUNCHTHROUGH_ALPHA1_ETC2
Data in GL_COMPRESSED_SRGB8_PUNCHTHROUGH_ALPHA1_ETC2 format is decoded and stored
in MESA_FORMAT_SARGB.
Signed-off-by: Anuj Phogat <anuj.phogat at gmail.com>
Reviewed-by: Brian Paul <brianp at vmware.com>
URL: http://cgit.freedesktop.org/mesa/mesa/commit/?id=48a6adb70b92d3b2288924d1c3d5e3a9c85a0588
Author: Anuj Phogat <anuj.phogat at gmail.com>
Date: Mon Oct 22 13:34:30 2012 -0700
mesa: Add decoding functions for GL_COMPRESSED_RGB8_PUNCHTHROUGH_ALPHA1_ETC2
Data in GL_COMPRESSED_RGB8_PUNCHTHROUGH_ALPHA1_ETC2 format is decoded and stored
in MESA_FORMAT_RGBA8888_REV.
Signed-off-by: Anuj Phogat <anuj.phogat at gmail.com>
Reviewed-by: Brian Paul <brianp at vmware.com>
URL: http://cgit.freedesktop.org/mesa/mesa/commit/?id=1c390b56a63b9fd40452392f10381eccfa219a9a
Author: Anuj Phogat <anuj.phogat at gmail.com>
Date: Wed Oct 10 13:46:20 2012 -0700
mesa: Add decoding functions for GL_COMPRESSED_SIGNED_RG11_EAC
Data in GL_COMPRESSED_SIGNED_RG11_EAC format is decoded and stored in
MESA_FORMAT_SIGNED_GR1616.
Signed-off-by: Anuj Phogat <anuj.phogat at gmail.com>
Reviewed-by: Brian Paul <brianp at vmware.com>
URL: http://cgit.freedesktop.org/mesa/mesa/commit/?id=f0d03f01928cf14de48bf9ba1abd3a51949e4a8d
Author: Anuj Phogat <anuj.phogat at gmail.com>
Date: Tue Oct 9 17:02:37 2012 -0700
mesa: Add decoding functions for GL_COMPRESSED_SIGNED_R11_EAC
Data in GL_COMPRESSED_SIGNED_R11_EAC format is decoded and stored in
MESA_FORMAT_SIGNED_R16.
v2:
16 bit signed data is converted to 16 bit unsigned data by
adding 2 ^ 15 and stored in an unsigned texture format.
v3:
1. Handle a corner case when base code word value is -128. As per
OpenGL ES 3.0 specification -128 is not an allowed value and should
be truncated to -127.
2. Converting a decoded 16 bit signed data to 16 bit unsigned data by
adding 2 ^ 15 gives us an output which matches the decompressed image
(.ppm) generated by ericsson's etcpack tool. ericsson is also doing this
conversion in their tool because .ppm image files don't support signed
data. But gles 3.0 specification doesn't suggest this conversion. We
need to keep the decoded data in signed format. Both signed format
tests in gles3 conformance pass with these changes.
Signed-off-by: Anuj Phogat <anuj.phogat at gmail.com>
Tested-by: Matt Turner <mattst88 at gmail.com>
Reviewed-by: Brian Paul <brianp at vmware.com>
URL: http://cgit.freedesktop.org/mesa/mesa/commit/?id=837f127472f9b4395658a6c243684d96b32012ff
Author: Anuj Phogat <anuj.phogat at gmail.com>
Date: Mon Nov 12 16:32:08 2012 -0800
mesa: Add decoding functions for GL_COMPRESSED_RG11_EAC
Data in GL_COMPRESSED_RG11_EAC format is decoded and stored in
MESA_FORMAT_RG1616.
Signed-off-by: Anuj Phogat <anuj.phogat at gmail.com>
Reviewed-by: Brian Paul <brianp at vmware.com>
URL: http://cgit.freedesktop.org/mesa/mesa/commit/?id=db912bffa6111942e21c50594ca2d2121c0a82dd
Author: Anuj Phogat <anuj.phogat at gmail.com>
Date: Mon Nov 12 16:28:07 2012 -0800
mesa: Add decoding functions for GL_COMPRESSED_R11_EAC
Data in GL_COMPRESSED_R11_EAC format is decoded and stored in
MESA_FORMAT_R16.
Signed-off-by: Anuj Phogat <anuj.phogat at gmail.com>
Reviewed-by: Brian Paul <brianp at vmware.com>
URL: http://cgit.freedesktop.org/mesa/mesa/commit/?id=c3d69c505bcd4710a404d32692d9b7a6514a83fc
Author: Anuj Phogat <anuj.phogat at gmail.com>
Date: Mon Nov 12 16:13:25 2012 -0800
mesa: Add decoding functions for GL_COMPRESSED_SRGB8_ALPHA8_ETC2_EAC
Data in GL_COMPRESSED_SRGB8_ALPHA8_ETC2_EAC format is decoded and stored
in MESA_FORMAT_SARGB8.
Signed-off-by: Anuj Phogat <anuj.phogat at gmail.com>
Reviewed-by: Brian Paul <brianp at vmware.com>
URL: http://cgit.freedesktop.org/mesa/mesa/commit/?id=a1894d01d2d2f632930bdf0a7d55b0c8d454ef05
Author: Anuj Phogat <anuj.phogat at gmail.com>
Date: Mon Nov 12 15:58:25 2012 -0800
mesa: Add decoding functions for GL_COMPRESSED_RGBA8_ETC2_EAC
Data in GL_COMPRESSED_RGBA8_ETC2_EAC format is decoded and stored
in MESA_FORMAT_RGBA8888_REV.
Signed-off-by: Anuj Phogat <anuj.phogat at gmail.com>
Reviewed-by: Brian Paul <brianp at vmware.com>
URL: http://cgit.freedesktop.org/mesa/mesa/commit/?id=12822d8214de55902e347b097a768be393b2cf89
Author: Anuj Phogat <anuj.phogat at gmail.com>
Date: Thu Sep 27 17:05:24 2012 -0700
mesa: Add decoding functions for GL_COMPRESSED_SRGB8_ETC2
Data in GL_COMPRESSED_SRGB8_ETC2 format is decoded and stored
in MESA_FORMAT_SARGB8.
Signed-off-by: Anuj Phogat <anuj.phogat at gmail.com>
Reviewed-by: Brian Paul <brianp at vmware.com>
URL: http://cgit.freedesktop.org/mesa/mesa/commit/?id=eca92c5bb449f6be9dff72f45141724259036e26
Author: Anuj Phogat <anuj.phogat at gmail.com>
Date: Mon Sep 17 14:47:56 2012 -0700
mesa: Add decoding functions for GL_COMPRESSED_RGB8_ETC2
Data in GL_COMPRESSED_RGB8_ETC2 format is decoded and stored in
MESA_FORMAT_RGBX8888_REV.
v2: Use CLAMP macro and stdbool.h
Signed-off-by: Anuj Phogat <anuj.phogat at gmail.com>
Reviewed-by: Brian Paul <brianp at vmware.com>
URL: http://cgit.freedesktop.org/mesa/mesa/commit/?id=16c87c35377400c5eccb91d58175a2c13eab1cfe
Author: Anuj Phogat <anuj.phogat at gmail.com>
Date: Mon Nov 12 17:58:46 2012 -0800
mesa: Make nonlinear_to_linear() function available outside file
This patch changes nonlinear_to_linear() function to non static inline
and makes it available outside format_unpack.c. Also, removes the
duplicate copies in other files.
Signed-off-by: Anuj Phogat <anuj.phogat at gmail.com>
Reviewed-by: Brian Paul <brianp at vmware.com>
URL: http://cgit.freedesktop.org/mesa/mesa/commit/?id=d18c89da50500da55c8554fdbfd5460130458bbf
Author: Anuj Phogat <anuj.phogat at gmail.com>
Date: Mon Nov 5 17:45:18 2012 -0800
mesa: Add new MESA_FORMATs for ETC2 compressed textures
It is required by OpenGL ES 3.0 to support ETC2 textures.
This patch adds new MESA_FORMATs for following etc2 texture
formats:
GL_COMPRESSED_RGB8_ETC2
GL_COMPRESSED_SRGB8_ETC2
GL_COMPRESSED_RGBA8_ETC2_EAC
GL_COMPRESSED_SRGB8_ALPHA8_ETC2_EAC
GL_COMPRESSED_R11_EAC
GL_COMPRESSED_RG11_EAC
GL_COMPRESSED_SIGNED_R11_EAC
GL_COMPRESSED_SIGNED_RG11_EAC
MESA_FORMAT_ETC2_RGB8_PUNCHTHROUGH_ALPHA1
MESA_FORMAT_ETC2_SRGB8_PUNCHTHROUGH_ALPHA1
Above formats are currently available in only gles 3.0.
v2: Add entries in texfetch_funcs[] array.
Signed-off-by: Anuj Phogat <anuj.phogat at gmail.com>
Reviewed-by: Brian Paul <brianp at vmware.com>
URL: http://cgit.freedesktop.org/mesa/mesa/commit/?id=256a8dcaa8d569cf1cd54eeaa8b25b4d3d246f67
Author: Ian Romanick <ian.d.romanick at intel.com>
Date: Fri Aug 17 18:09:23 2012 -0700
glsl: Remove deprecated GLSL 1.30 language features in core context
Signed-off-by: Ian Romanick <ian.d.romanick at intel.com>
URL: http://cgit.freedesktop.org/mesa/mesa/commit/?id=1c9ff559f28c1be3282a5d0d111db3353639d635
Author: Ian Romanick <ian.d.romanick at intel.com>
Date: Fri Aug 17 18:09:09 2012 -0700
i965: Don't maintain programs for ff state when there is no ff
Signed-off-by: Ian Romanick <ian.d.romanick at intel.com>
URL: http://cgit.freedesktop.org/mesa/mesa/commit/?id=4e634ca412176a1012ec855745a522979cb23870
Author: Ian Romanick <ian.d.romanick at intel.com>
Date: Fri Aug 17 18:08:39 2012 -0700
mesa: Don't muck about with ff state when there is no ff
Signed-off-by: Ian Romanick <ian.d.romanick at intel.com>
URL: http://cgit.freedesktop.org/mesa/mesa/commit/?id=ab2151c84ce0c2ad1f89ad500f6663700341c55a
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=e0995f2d22cb0eede376df6492d40534afbc4d3d
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
Signed-off-by: Ian Romanick <ian.d.romanick at intel.com>
URL: http://cgit.freedesktop.org/mesa/mesa/commit/?id=de15b88deefa0644a71d531077dfbbfe226ce8fc
Author: Ian Romanick <ian.d.romanick at intel.com>
Date: Fri Aug 10 22:28:27 2012 -0700
mesa/es3: Add support for GL_PRIMITIVE_RESTART_FIXED_INDEX
This requires some derived state. The cut vertex used is either the
value specified by glPrimitiveRestartIndex or it's hard-coded to ~0.
The derived state gl_array_attrib::_RestartIndex captures this value.
In addition, the derived state gl_array_attrib::_PrimitiveRestart is set
whenever either gl_array_attrib::PrimitiveRestart or
gl_array_attrib::PrimitiveRestartFixedIndex is set.
v2: Use _mesa_is_gles3.
Signed-off-by: Ian Romanick <ian.d.romanick at intel.com>
URL: http://cgit.freedesktop.org/mesa/mesa/commit/?id=615b1fca142a724a0814a519e0a46d4cc51ffd77
Author: Paul Berry <stereotype441 at gmail.com>
Date: Wed Aug 8 11:30:42 2012 -0700
Set es_version to false when using FF fragment shading in meta ops
URL: http://cgit.freedesktop.org/mesa/mesa/commit/?id=8bc33bee01f87d9025c43705e3b50a7f986b866b
Author: Ian Romanick <ian.d.romanick at intel.com>
Date: Fri Aug 10 21:38:21 2012 -0700
mesa/es3: Add support for GL_ANY_SAMPLES_PASSED_CONSERVATIVE query target
Signed-off-by: Ian Romanick <ian.d.romanick at intel.com>
URL: http://cgit.freedesktop.org/mesa/mesa/commit/?id=0321fc3fcadcd496b851d92e4b9d16d628141ad5
Author: Paul Berry <stereotype441 at gmail.com>
Date: Sat Aug 4 15:42:33 2012 -0700
glsl: Create builtin function profiles for GLSL 3.00 ES.
Nearly all of the builtin functions in GLSL 3.00 ES are already
implemented in Mesa; this patch enables them.
A few functions are not implemented yet; those have been commented
out, with a FIXME comment to act as a reminder of what still needs to
be implemented. Here is the complete list: packSnorm2x16,
unpackSnorm2x16, packUnorm2x16, unpackUnorm2x16, packHalf2x16,
unpackHalf2x16.
URL: http://cgit.freedesktop.org/mesa/mesa/commit/?id=c4b08e42f8a61d16a542c6fd81d3ac31085a81e7
Author: Paul Berry <stereotype441 at gmail.com>
Date: Mon Aug 6 14:36:31 2012 -0700
glsl: add determinant() functions.
These functions are defined in GLSL 1.50 and GLES 3.00 ES.
The formulas have been extracted from the existing implementation of
inverse().
URL: http://cgit.freedesktop.org/mesa/mesa/commit/?id=bdd61fa1cca53983790bb646d37f206fbc08569d
Author: Paul Berry <stereotype441 at gmail.com>
Date: Sat Aug 4 10:43:53 2012 -0700
glsl: Make builtin function profiles for GLSL ES use "es" in the filename.
URL: http://cgit.freedesktop.org/mesa/mesa/commit/?id=3f48ada3c8341c2e6ebc3c84b94850871d47f0fc
Author: Paul Berry <stereotype441 at gmail.com>
Date: Sat Aug 4 10:29:49 2012 -0700
glsl: Add builtin variables for GLSL 3.00 ES.
This patch also adds assertions so that when we add new GLSL versions,
we'll notice that we need to update the builtin variables.
URL: http://cgit.freedesktop.org/mesa/mesa/commit/?id=1c029d13cac32b2a0a8de902c32f00770612b8bc
Author: Paul Berry <stereotype441 at gmail.com>
Date: Thu Aug 2 13:38:57 2012 -0700
glsl: Populate built-in types correctly for GLSL 3.00 ES.
This patch implements all of the built-in types for GLSL 3.00 ES.
This is almost exactly the same as the set of built-in types for GLSL
1.30, except ate 1D samplers are skipped, and samplerCubeShadow is
added.
This patch also addes an assertion so that when we add new GLSL
versions, we'll notice that we need to update the types.
URL: http://cgit.freedesktop.org/mesa/mesa/commit/?id=a2bbbee2719b0bdbbf9c4b1e37df854b647946b0
Author: Paul Berry <stereotype441 at gmail.com>
Date: Sat Aug 4 10:00:20 2012 -0700
glsl: Make {Min,Max}ProgramTexelOffset available to compiler.
These constants need to be made available to shaders in GLSL 3.00 ES.
URL: http://cgit.freedesktop.org/mesa/mesa/commit/?id=59a2b77c9ba5c17e2faa14946771fd67c97ec640
Author: Paul Berry <stereotype441 at gmail.com>
Date: Thu Aug 2 17:51:02 2012 -0700
glsl: Fix linker checks for GLSL ES 3.00.
This patch updates the following linker checks to do the right thing
in GLSL 3.00 ES:
- Failing to write to gl_Position is allowed in GLSL 1.40+ as well as
GLSL 3.00 ES.
- It is an error to write to both gl_ClipVertex and gl_ClipDistance in
GLSL 1.30+. This does not apply to GLSL 3.00 ES.
- GLSL 3.00 ES uses the same varying counting rules as GLSL 1.00 ES.
- In GLSL 1.30 and GLSL 3.00 ES, "discard" terminates the shader.
- In GLSL 1.00 ES and GLSL 3.00 ES, both a fragment and a vertex
shader must be present.
URL: http://cgit.freedesktop.org/mesa/mesa/commit/?id=683529e3e29b3ae029c1be76e7346880129598d7
Author: Paul Berry <stereotype441 at gmail.com>
Date: Thu Aug 2 17:50:43 2012 -0700
glsl: Record in gl_shader_program whether the program uses GLSL ES.
Previously we recorded just the GLSL version (or the max version, if
GLSL 1.10 and GLSL 1.20 programs were linked together).
URL: http://cgit.freedesktop.org/mesa/mesa/commit/?id=3d8da73e149b810b06c75bfbf5ad6b992fe9394b
Author: Paul Berry <stereotype441 at gmail.com>
Date: Thu Aug 2 17:49:44 2012 -0700
glsl: Clean up shading language mixing check for GLSL 3.00 ES.
Previously, we prohibited mixing of shading language versions if
min_version == 100 or max_version >= 130. This was technically
correct (since desktop GLSL 1.30 and beyond prohibit mixing of shading
language versions, as does GLSL 1.00 ES), but it was confusing. Also,
we asserted that all shading language versions were between 1.00 and
1.40, which was unnecessary (since the parser already checks shading
language versions) and doesn't work for GLSL 3.00 ES.
This patch changes the code to explicitly check that (a) ES shaders
aren't mixed with desktop shaders, (b) shaders aren't mixed between ES
versions, and (c) shaders aren't mixed between desktop GLSL versions
when at least one shader is GLSL 1.30 or greater. Also, it removes
the unnecessary assertion.
URL: http://cgit.freedesktop.org/mesa/mesa/commit/?id=035b7bce4fa7921a928c02916b45636dacce5fe1
Author: Paul Berry <stereotype441 at gmail.com>
Date: Thu Aug 2 17:47:49 2012 -0700
glsl: Record in gl_shader whether the shader uses GLSL ES.
Previously we recorded just the GLSL version, with the knowledge that
100 means GLSL 1.00 ES. With the advent of GLSL 3.00 ES, this is
going to get more complex, and eventually will probably become
ambiguous (GLSL 4.00 already exists, and GLSL 4.00 ES is likely to be
created some day).
To reduce confusion, this patch simply records whether the shader is
GLSL ES as an explicit boolean.
URL: http://cgit.freedesktop.org/mesa/mesa/commit/?id=5367b2f7c5c69e29ea2533fd77435b7775665a58
Author: Paul Berry <stereotype441 at gmail.com>
Date: Thu Aug 2 11:17:30 2012 -0700
glsl/parser: Handle "#version 300 es" directive.
Note that GLSL 1.00 is selected using "#version 100", so "#version 100
es" is prohibited.
v2: Check for GLES3 before allowing '#version 300 es'
Signed-off-by: Paul Berry <stereotype441 at gmail.com>
Signed-off-by: Ian Romanick <ian.d.romanick at intel.com>
URL: http://cgit.freedesktop.org/mesa/mesa/commit/?id=0d6009d33a5ded1247fb7c55bcb90e3bd6256416
Author: Paul Berry <stereotype441 at gmail.com>
Date: Thu Aug 2 11:02:55 2012 -0700
glsl/parser: Extract version directive processing into a function.
Version directive handling is going to have to be used within two
parser rules, one for desktop-style version directives (e.g. "#version
130") and one for the new ES-style version directive (e.g. "#version
300 es"), so this patch moves it to a function that can be called from
both rules.
No functional change.
URL: http://cgit.freedesktop.org/mesa/mesa/commit/?id=c5b5fb32ad76bb27e95dbae94b7311ecc6428b52
Author: Paul Berry <stereotype441 at gmail.com>
Date: Thu Aug 2 13:21:54 2012 -0700
glsl/preprocessor: Handle "#version 300 es" directive.
URL: http://cgit.freedesktop.org/mesa/mesa/commit/?id=c11eb04257bdf595c99f1c95041be1b75b7f785e
Author: Paul Berry <stereotype441 at gmail.com>
Date: Thu Aug 2 13:06:45 2012 -0700
glsl/preprocessor: Extract version directive processing into a function.
Version directive handling is going to have to be used within two
parser rules, one for desktop-style version directives (e.g. "#version
130") and one for the new ES-style version directive (e.g. "#version
300 es"), so this patch moves it to a function that can be called from
both rules.
No functional change.
[mattst88] v2: Use intmax_t instead of int for version argument. Would
otherwise write garbage after #version since PRIiMAX was reading 64-bits
instead of 32.
URL: http://cgit.freedesktop.org/mesa/mesa/commit/?id=164fb49ca5417b043c488817765ef11a0ed527e9
Author: Paul Berry <stereotype441 at gmail.com>
Date: Thu Aug 2 08:18:12 2012 -0700
glsl: Enable GLSL ES 3.00 features inherited from desktop GLSL.
This patch turns on the following features for GLSL ES 3.00:
- Array constructors, whole array assignment, and array comparisons.
- Second and third operands of ?: may be arrays.
- Use of "in" and "out" qualifiers on globals.
- Bitwise and modulus operators.
- Integral vertex shader inputs.
- Range-checking of literal integers.
- array.length method.
- Function calls may be constant expressions.
- Integral varyings must be qualified with "flat".
- Interpolation and centroid qualifiers may not be applied to vertex
shader inputs.
URL: http://cgit.freedesktop.org/mesa/mesa/commit/?id=fd4d1ff16397a90af924d9464289b91766f8da56
Author: Paul Berry <stereotype441 at gmail.com>
Date: Thu Aug 2 08:17:55 2012 -0700
glsl: parse GLSL ES 3.00 keywords correctly.
GLSL ES 3.00 adds the following keywords over GLSL 1.00: uint,
uvec[2-4], matNxM, centroid, flat, smooth, various samplers, layout,
switch, default, and case.
Additionally, it reserves a large number of keywords, some of which
were already reserved in versions of desktop GL that Mesa supports,
some of which are new to Mesa.
A few of the reserved keywords in GLSL ES 3.00 are keywords that are
supported in all other versions of GLSL: attribute, varying,
sampler1D, sampler1DShador, sampler2DRect, and sampler2DRectShadow.
This patch updates the lexer to handle all of the new keywords
correctly when the language being parsed is GLSL 3.00 ES.
URL: http://cgit.freedesktop.org/mesa/mesa/commit/?id=5b61d8e12260aef48debf8b82cac43856fe589a5
Author: Paul Berry <stereotype441 at gmail.com>
Date: Wed Aug 1 19:04:59 2012 -0700
glsl: Rework lexer keyword handling in preparation for GLSL 3.00 ES.
This patch expands the lexer KEYWORD macro to take two additional
arguments: the GLSL ES versions in which the given keyword was first
reserved, and supported, respectively. This will allow us to
trivially add support for GLSL 3.00 ES keywords, even though the set
of GLSL 3.00 ES keywords is neither a subset or a superset of the
keywords corresponding to any desktop GLSL version.
The new KEYWORD macro makes use of the
_mesa_glsl_parse_state::is_version() function, so it accepts 0 as
meaning "unsupported" (rather than 999, which we used previously).
Note that a few keywords ("packed" and "row_major") are supported
*either* when GLSL 1.40 is in use or when ARB_uniform_buffer_obj
support is enabled. Previously, we handled these by cleverly taking
advantage of the fact that the KEYWORD macro didn't parenthesize its
arguments in the usual way. Now they are handled more
straightforwardly, with a new macro, KEYWORD_WITH_ALT.
URL: http://cgit.freedesktop.org/mesa/mesa/commit/?id=9325dd03d06afe900e4ef01235faa54aa549c662
Author: Paul Berry <stereotype441 at gmail.com>
Date: Sun Aug 5 09:57:01 2012 -0700
glsl: Make use of new _mesa_glsl_parse_state::check_version() function.
Previous to this patch, we were not very consistent about the errors
we generate when a shader tried to use a feature that is prohibited in
the current GLSL version. Some error messages failed to mention the
GLSL version currently in use (or did so inaccurately), and some error
messages failed to mention the first GLSL version in which the given
feature is allowed.
This patch reworks all of the error checks to use the check_version()
function, which produces error messages in a standard form
(approximately "$FEATURE forbidden in $CURRENT_GLSL_VERSION
($REQUIRED_GLSL_VERSION required).").
URL: http://cgit.freedesktop.org/mesa/mesa/commit/?id=0b7342a47c02f4d5461ada864af47bb293512f7d
Author: Paul Berry <stereotype441 at gmail.com>
Date: Wed Aug 1 14:50:05 2012 -0700
glsl: Make use of new _mesa_glsl_parse_state::is_version() function.
URL: http://cgit.freedesktop.org/mesa/mesa/commit/?id=89b62c01eb00a6f8229408c858eca79a7c5fbae0
Author: Paul Berry <stereotype441 at gmail.com>
Date: Wed Aug 1 19:09:24 2012 -0700
glsl: Add GLSL version query functions.
With the advent of GLSL 3.00 ES, the version checks we perform in the
GLSL compiler (to determine which language features are present) will
become more complicated. To reduce the complexity, this patch adds
functions check_version() and is_version() to _mesa_glsl_parse_state.
These functions take two version numbers: a desktop GLSL version and a
GLSL ES version, and return a boolean indicating whether the GLSL
version being compiled is at least the required version. So, for
example, is_version(130, 300) returns true if the GLSL version being
compiled is at least desktop GLSL 1.30 or GLSL 3.00.
The check_version() function additionally produces an error message if
the version check fails, informing the user of which GLSL version(s)
support the given feature.
URL: http://cgit.freedesktop.org/mesa/mesa/commit/?id=92df4bbb2823646b88fe1285f9644c4b7210aa6f
Author: Paul Berry <stereotype441 at gmail.com>
Date: Thu Aug 2 06:45:30 2012 -0700
glsl: Compute version_string on the fly.
Fixes a bug where version_string would be left uninitialized if no
GLSL "#version" directive was used.
URL: http://cgit.freedesktop.org/mesa/mesa/commit/?id=8dbfe47159a01ba627dc8ac791a8380fbbf3c0f3
Author: Paul Berry <stereotype441 at gmail.com>
Date: Wed Aug 1 18:36:57 2012 -0700
glsl: Make a function to express a GLSL version ir human-readable form.
This will be useful in generating more helpful error messages,
especially with the addition of GLSL 3.00 ES support.
URL: http://cgit.freedesktop.org/mesa/mesa/commit/?id=3ca9ba91a18842ca15edce6324f474e8234d99c3
Author: Paul Berry <stereotype441 at gmail.com>
Date: Wed Aug 1 17:44:02 2012 -0700
glsl: Simplify symbol table version checking.
Previously, we stored the GLSL language version in the
glsl_symbol_table struct. But this was unnecessary--all
glsl_symbol_table needs to know is whether functions and variables
have separate namespaces (they do in GLSL 1.10 only).
URL: http://cgit.freedesktop.org/mesa/mesa/commit/?id=0956649389e26e525063d36356b27557a9fa0243
Author: Paul Berry <stereotype441 at gmail.com>
Date: Mon Aug 6 10:22:44 2012 -0700
mesa: Add ARB_ES3_compatibility flag.
This extension was approved by the ARB on 2012/06/12. Supporting it
immediately will make it easier to develop and test GLES3 features,
since we can do initial development and testing using desktop GL.
URL: http://cgit.freedesktop.org/mesa/mesa/commit/?id=b259059577d4be9a04ffb94152f94e7c26f408c2
Author: Ian Romanick <ian.d.romanick at intel.com>
Date: Wed Aug 8 13:11:32 2012 -0700
mesa/es3: Allow transpose matrix uniforms in GLES3
Signed-off-by: Ian Romanick <ian.d.romanick at intel.com>
More information about the mesa-commit
mailing list