Mesa (gles3): 86 new commits
Jordan Justen
jljusten at kemper.freedesktop.org
Mon Dec 17 00:27:52 UTC 2012
URL: http://cgit.freedesktop.org/mesa/mesa/commit/?id=0780817ae43fa8767a78e1bc04152c24f34af644
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
NOTE: This is a candidate for the 9.0 branch.
Signed-off-by: Ian Romanick <ian.d.romanick at intel.com>
URL: http://cgit.freedesktop.org/mesa/mesa/commit/?id=45685a54e9a8150d29b186bb8a070192f94e46d5
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
NOTE: This is a candidate for the 9.0 branch.
Signed-off-by: Ian Romanick <ian.d.romanick at intel.com>
URL: http://cgit.freedesktop.org/mesa/mesa/commit/?id=5b9ade5cede4520d2ec687f8ec8bc4d172b0196f
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=24cceaab117e31fb1330d1d675cb6f0555aee9fd
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=f20343f0b79c95873a17a51014ac95735bc06c39
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=fe04ad4042a1524aab8b880518afe2bf798292a8
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=74fe697166b34d30947af85fe3c9750e8265d4a0
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=110a59bcca6bda1e073a75406c0dba5e0696a1b3
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=af9fa61280660febd7b2e8ba141f1bd1cbbb4bf5
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=1732ba6092b813c9015984c0958f9e9f48191467
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=48087e4ee1f23ad3b472753f7522c29ff89f9385
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=1875f9a4e2bcccb917ce9097a4134e1906d47a64
Author: Matt Turner <mattst88 at gmail.com>
Date: Tue Nov 27 12:18:02 2012 -0800
glcpp: Reject token pasting operator in GLES
The GLSL ES 3.0 spec (Section 12.17) says:
"GLSL ES 1.00 removed token pasting and other functionality."
NOTE: This is a candidate for the stable branches.
Reviewed-by: Ian Romanick <ian.d.romanick at intel.com>
Reviewed-by: Carl Worth <cworth at cworth.org>
URL: http://cgit.freedesktop.org/mesa/mesa/commit/?id=91ae2d69a3acbe0dc33934f703dc16e840f9c051
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=e4782d299bbbafdaa7cf2d8b89d146802570a12b
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=7b5d742f1372efd3d493ddf5aa51acc29dcfac4d
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>
URL: http://cgit.freedesktop.org/mesa/mesa/commit/?id=4e096f03c54ec04ffa23ea9c57d2e26ed23a9423
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>
URL: http://cgit.freedesktop.org/mesa/mesa/commit/?id=11c87e16499192e3fa6d5ef4f902ea20fba9339b
Author: Matt Turner <mattst88 at gmail.com>
Date: Fri Nov 30 11:10:20 2012 -0800
mesa: Use _mesa_lookup_enum_by_nr in tex*_error_check
Reviewed-by: Brian Paul <brianp at vmware.com>
URL: http://cgit.freedesktop.org/mesa/mesa/commit/?id=b579b1b9ecf0b9f31def255ef841c2904b613e38
Author: Matt Turner <mattst88 at gmail.com>
Date: Wed Nov 28 21:45:19 2012 -0800
mesa: Allow HALF_FLOAT in glVertexAttribPointer
Fixes es3conform's half_float_max_vertex_dimensions and
half_float_textures tests.
URL: http://cgit.freedesktop.org/mesa/mesa/commit/?id=258ada8b43eb0f7cfdfd7d8f4ae2f4dbb12b9b4f
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.
Fixes es3conform's color_buffer_unsupported_format test.
Acked-by: Kenneth Graunke <kenneth at whitecape.org>
Reviewed-by: Anuj Phogat <anuj.phogat at gmail.com>
URL: http://cgit.freedesktop.org/mesa/mesa/commit/?id=af1a2fcb9d0f426048ad45ce66ff3d9372a208e6
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=14dba7da0c68aeec50b81307ba7f97e5169e11c1
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=21db28518c9d774498226a58be0576c22e6c8fb3
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=0bd345a6f2e165dbffa25614d8355cfca094da9c
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=043897db7c6d89a59c054e5810b2f82523f2e0d9
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>
URL: http://cgit.freedesktop.org/mesa/mesa/commit/?id=2e6f11fba90102d3ec4e75cc0c36dc43ccace9dc
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>
Reviewed-by: Ian Romanick <ian.d.romanick at intel.com>
URL: http://cgit.freedesktop.org/mesa/mesa/commit/?id=d3cb7c1c264ba22f2c7349a6d459cde06bedfb18
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>
Reviewed-by: Ian Romanick <ian.d.romanick at intel.com>
URL: http://cgit.freedesktop.org/mesa/mesa/commit/?id=cdcf6fce2238613f0e075f5a90bcfbc657f5f944
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=64636337fc3130843a44bf69856a14b5ba3ed933
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> (v1)
Reviewed-by: Matt Turner <mattst88 at gmail.com>
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=5b09361f550186a6160a556e89db0acce18b8d3f
Author: Matt Turner <mattst88 at gmail.com>
Date: Sat Dec 8 17:24:19 2012 -0800
mesa: Support querying GL_MAX_ELEMENT_INDEX in ES 3
The ES 3 spec says that the minumum allowable value is 2^24-1, but the
GL 4.3 and ARB_ES3_compatibility specs require 2^32-1, so return 2^32-1.
Fixes es3conform's element_index_uint_constants test.
Reviewed-by: Ian Romanick <ian.d.romanick at intel.com>
URL: http://cgit.freedesktop.org/mesa/mesa/commit/?id=fa300978ae2731601fba0333dc42791bddbdbc77
Author: Matt Turner <mattst88 at gmail.com>
Date: Sat Dec 8 17:17:19 2012 -0800
mesa: De-duplicate ES2 queries
From GL/GLES/GL_CORE and GLES2 -> GL/GL_CORE/GLES2.
Yes, we really were exposing ES2_compatibility queries on ES 1.
Reviewed-by: Ian Romanick <ian.d.romanick at intel.com>
URL: http://cgit.freedesktop.org/mesa/mesa/commit/?id=d53965fa9d7e2f17a146905faaa7745c34207a28
Author: Matt Turner <mattst88 at gmail.com>
Date: Sat Dec 8 17:10:50 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.
Reviewed-by: Ian Romanick <ian.d.romanick at intel.com>
URL: http://cgit.freedesktop.org/mesa/mesa/commit/?id=12928e40c8971b19ccfa34adf2cc47d783b34433
Author: Matt Turner <mattst88 at gmail.com>
Date: Sat Dec 8 17:04:42 2012 -0800
mesa: Allow glGet* queries on EXT_framebuffer_blit data in ES 3
Fixes 2 framebuffer_blit es3conform tests.
Reviewed-by: Ian Romanick <ian.d.romanick at intel.com>
URL: http://cgit.freedesktop.org/mesa/mesa/commit/?id=1e7ef244f214b0a13c1b9ca7026af0824bf44734
Author: Matt Turner <mattst88 at gmail.com>
Date: Sat Dec 8 17:03:44 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: Ian Romanick <ian.d.romanick at intel.com>
URL: http://cgit.freedesktop.org/mesa/mesa/commit/?id=84b21fd0c8fbd6f128e05e4df144c9a2b03125ef
Author: Matt Turner <mattst88 at gmail.com>
Date: Sat Dec 8 17:02:26 2012 -0800
mesa: Allow glGet* queries on ARB_framebuffer_object data in ES 3
Reviewed-by: Ian Romanick <ian.d.romanick at intel.com>
URL: http://cgit.freedesktop.org/mesa/mesa/commit/?id=37e7f3b042605ccb6ee99d2ed3324bfdfc97eb16
Author: Matt Turner <mattst88 at gmail.com>
Date: Sat Dec 8 17:01:42 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: Ian Romanick <ian.d.romanick at intel.com>
URL: http://cgit.freedesktop.org/mesa/mesa/commit/?id=99c570d8b863df017334a4bcf1a1de1159880249
Author: Matt Turner <mattst88 at gmail.com>
Date: Sat Dec 8 17:00:57 2012 -0800
mesa: Allow glGet* queries on EXT_transform_feedback data in ES 3
Reviewed-by: Ian Romanick <ian.d.romanick at intel.com>
URL: http://cgit.freedesktop.org/mesa/mesa/commit/?id=22f14f860a94bc2cab571f863307dd3f32a7fc8b
Author: Matt Turner <mattst88 at gmail.com>
Date: Sat Dec 8 17:00:17 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: Ian Romanick <ian.d.romanick at intel.com>
URL: http://cgit.freedesktop.org/mesa/mesa/commit/?id=5848895d0076f36a204252466b06e7d7ffeb5361
Author: Matt Turner <mattst88 at gmail.com>
Date: Sat Dec 8 16:59:37 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: Ian Romanick <ian.d.romanick at intel.com>
URL: http://cgit.freedesktop.org/mesa/mesa/commit/?id=f3d1ee994a93c8896c80f0a2ad9c6b9a297b94b8
Author: Matt Turner <mattst88 at gmail.com>
Date: Sat Dec 8 16:43:54 2012 -0800
mesa: Allow glGet* queries of select ARB_ubo data in ES 3
Fixes 5 uniform_buffer_object tests in es3conform.
Reviewed-by: Ian Romanick <ian.d.romanick at intel.com>
URL: http://cgit.freedesktop.org/mesa/mesa/commit/?id=968e4f3fe75098f3f8bb4e780cab9b11b7d58d1f
Author: Matt Turner <mattst88 at gmail.com>
Date: Fri Dec 14 14:22:28 2012 -0800
Add ES 3 handling to get.c and get_hash_generator.py
Reviewed-by: Ian Romanick <ian.d.romanick at intel.com>
URL: http://cgit.freedesktop.org/mesa/mesa/commit/?id=6ec292750d2ba9c82072882636a1d97ad2bbdbba
Author: Matt Turner <mattst88 at gmail.com>
Date: Wed Nov 28 12:03:26 2012 -0800
glapi: Move ARB_base_instance to the correct location
It's #107, it shouldn't be added after the #116 comment.
Reviewed-by: Fredrik Höglund <fredrik at kde.org>
Reviewed-by: Ian Romanick <ian.d.romanick at intel.com>
URL: http://cgit.freedesktop.org/mesa/mesa/commit/?id=cc4c453bcffb7cbadc571181c1d6996020c06dad
Author: Matt Turner <mattst88 at gmail.com>
Date: Thu Nov 29 12:43:39 2012 -0800
mesa/tests: Add ARB_ES3_compatibility enums
Reviewed-by: Ian Romanick <ian.d.romanick at intel.com>
URL: http://cgit.freedesktop.org/mesa/mesa/commit/?id=7f1eca55bcbf87e13a54a8748afff9e2af4af20d
Author: Matt Turner <mattst88 at gmail.com>
Date: Wed Nov 28 12:12:09 2012 -0800
glapi: Add enums for ARB_ES3_compatibility
Reviewed-by: Ian Romanick <ian.d.romanick at intel.com>
URL: http://cgit.freedesktop.org/mesa/mesa/commit/?id=1358f3a905448f6fb546aba951e317f743a83c76
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=075f8722ab78df32878e9b6b721a1263cea53b27
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=53ee3959f2d695ae442dcadcbce2971a9e26e99c
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=d5d1f10955f46207aabd011d43e863920abe3b00
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=4bea4cb9fd55cdb267003a6e6e16f7e903e00940
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=0924f4e90c47d9e4d7255cd1375c651523c9b1c5
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=d44014953835e9180eeb54a7969470396d7f3fd0
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=fa5078c255b5b57514ae854ecd6264379641c924
Author: Dave Airlie <airlied at redhat.com>
Date: Sun Dec 16 10:16:09 2012 +0000
r600g: fixup offset types for printing
This allows the debug code to at least show the sign properly.
Signed-off-by: Dave Airlie <airlied at redhat.com>
URL: http://cgit.freedesktop.org/mesa/mesa/commit/?id=cf358a2b42b4c1c0a672f57d5962a5d70a22df33
Author: Henri Verbeet <hverbeet at gmail.com>
Date: Fri Dec 14 04:14:14 2012 +0100
gallium/u_blitter: Remove the overlapped blit assert from util_blitter_blit_generic().
This is used by st_BlitFramebuffer() / r600_blit(), and ARB_fbo allows
overlapped blits, even though the result is undefined. No piglit regressions
on r600g / CYPRESS.
Signed-off-by: Henri Verbeet <hverbeet at gmail.com>
Reviewed-by: Michel Dänzer <michel.daenzer at amd.com>
Reviewed-by: Marek Olšák <maraeo at gmail.com>
URL: http://cgit.freedesktop.org/mesa/mesa/commit/?id=a9abaaafd8ecdaebdf8b1b7ef2ac1177aa51efca
Author: Dave Airlie <airlied at gmail.com>
Date: Sun Dec 16 11:47:01 2012 +1000
glsl_parser_extras.cpp: fixup gl vs mem contexts again.
This should fix:
https://bugs.freedesktop.org/show_bug.cgi?id=58039
Tested-by: Darxus on bug 58039
Reviewed-by: Kenneth Graunke <kenneth at whitecape.org>
Signed-off-by: Dave Airlie <airlied at redhat.com>
URL: http://cgit.freedesktop.org/mesa/mesa/commit/?id=4f91f8dd6057b73d05454fc626985183d00e5236
Author: Kenneth Graunke <kenneth at whitecape.org>
Date: Fri Nov 9 21:20:05 2012 -0800
i965: Move BRW_MAX_GRF and similar defines to brw_reg.h.
These don't really belong in brw_structs.h.
Reviewed-by: Eric Anholt <eric at anholt.net>
URL: http://cgit.freedesktop.org/mesa/mesa/commit/?id=1db1283563468d9aa04fb2d343a38a5f6fbc3540
Author: Kenneth Graunke <kenneth at whitecape.org>
Date: Fri Nov 9 14:00:15 2012 -0800
i965: Split struct brw_reg out from brw_eu.h into its own header.
struct brw_instruction and the related instruction emitting code won't
be useful on Gen8+, as the instruction encoding changed. However, the
struct brw_reg code is still extremely valuable.
While we're at it, fix up some style points:
- s/GLuint/unsigned/g
- s/GLint/int/g
- s/GLshort/int16_t/g
- s/GLushort/uint16_t/g
- s/INLINE/inline/g
- Replace tabs with spaces
- Put return types on a separate line from the function name/parameters
- Remove trailing whitespace
- Remove extraneous whitespace around function parameters
Reviewed-by: Eric Anholt <eric at anholt.net>
URL: http://cgit.freedesktop.org/mesa/mesa/commit/?id=e1ca88f098b74a6253db714ffc63d73341e60cb2
Author: Dave Airlie <airlied at gmail.com>
Date: Sun Dec 16 07:06:54 2012 +1000
docs: add ARB_texture_buffer_object_rgb32
Signed-off-by: Dave Airlie <airlied at redhat.com>
URL: http://cgit.freedesktop.org/mesa/mesa/commit/?id=39fa4c0a58e9103ec564c26e50382aa0e0af081b
Author: Dave Airlie <airlied at gmail.com>
Date: Sat Dec 15 13:03:54 2012 +1000
st/mesa: add texture buffer object rgb32 support.
This checks if the pipe driver can support RGB32 formats.
Reviewed-by: Marek Olšák <maraeo at gmail.com>
Signed-off-by: Dave Airlie <airlied at redhat.com>
URL: http://cgit.freedesktop.org/mesa/mesa/commit/?id=1b62c326ea36dcfe66e84a75d11b4bbbc4231c69
Author: Dave Airlie <airlied at gmail.com>
Date: Sat Dec 15 13:03:40 2012 +1000
mesa: add support for ARB_texture_buffer_object_rgb32
This adds the extensions + the tex buffer support for checking
the formats.
There is a piglit test enhancement sent to that list.
Reviewed-by: Marek Olšák <maraeo at gmail.com>
Signed-off-by: Dave Airlie <airlied at redhat.com>
URL: http://cgit.freedesktop.org/mesa/mesa/commit/?id=7d7a549fa03293ede1d1627be5bdb47c11677f87
Author: Dave Airlie <airlied at gmail.com>
Date: Sat Dec 15 13:24:52 2012 +1000
glsl: avoid using gl context as a memory context
Not sure what was going on here, but running piglit with debug builds
might be a good plan :-)
Reviewed-by: Kenneth Graunke <kenneth at whitecape.org>
Signed-off-by: Dave Airlie <airlied at redhat.com>
URL: http://cgit.freedesktop.org/mesa/mesa/commit/?id=b23e92dbe7682b2aad30c75c75370a4cc2634cb0
Author: Ian Romanick <ian.d.romanick at intel.com>
Date: Fri Dec 14 17:22:29 2012 -0800
i965: Add missing autoconf bits so test_vec4_register_coalesce will build
Signed-off-by: Ian Romanick <ian.d.romanick at intel.com>
Tested-by: Eric Anholt <eric at anholt.net>
URL: http://cgit.freedesktop.org/mesa/mesa/commit/?id=c9e48e5b083b6cf97ecdb2d17c874ea631203b06
Author: Eric Anholt <eric at anholt.net>
Date: Wed Aug 1 19:35:18 2012 -0700
i965: Generalize VS compute-to-MRF for compute-to-another-GRF, too.
No statistically significant performance difference on glbenchmark 2.7
(n=60). It reduces cycles spent in the vertex shader by 3.3% +/- 0.8%
(n=5), but that's only about .3% of all cycles spent according to the
fixed shader_time.
Reviewed-by: Kenneth Graunke <kenneth at whitecape.org>
URL: http://cgit.freedesktop.org/mesa/mesa/commit/?id=471af25fc57dc43a8277b4b17ec82547287621d0
Author: Eric Anholt <eric at anholt.net>
Date: Fri Nov 30 22:29:26 2012 -0800
i965/vs: Extend opt_compute_to_mrf to handle limited "reswizzling"
The way our visitor works, scalar expression/swizzle results that get
stored in channels other than .x will have an intermediate MOV from
their result in the .x channel to the real .y (or whatever) channel, and
similarly for vec2/vec3 results.
By knowing how to adjust DP4-type instructions for optimizing out a
swizzled MOV, we can reduce instructions in common matrix multiplication
cases.
Reviewed-by: Kenneth Graunke <kenneth at whitecape.org>
URL: http://cgit.freedesktop.org/mesa/mesa/commit/?id=a76a03f437df3c6458da5b0e9e70fd4d986fbdae
Author: Eric Anholt <eric at anholt.net>
Date: Fri Nov 30 23:52:38 2012 -0800
i965/vs: Add a unit test for opt_compute_to_mrf().
The compute-to-mrf code is really twitchy, and it's hard to construct
GLSL testcases for it. This unit test is also really hard to work with
(for example, if your instruction is removed by dead code elimination,
you end up inspecting something irrelevant), but I did use it for
debugging some of the commits to follow.
I called it test_vec4_register_coalesce because the compute-to-mrf code
is about to morph into that.
Reviewed-by: Kenneth Graunke <kenneth at whitecape.org>
URL: http://cgit.freedesktop.org/mesa/mesa/commit/?id=7171c45d3a6392b947d96c10362ce0459b741669
Author: Eric Anholt <eric at anholt.net>
Date: Fri Nov 30 21:15:35 2012 -0800
i965/fs: Drop an unnecessary _safe on a list walk.
Reviewed-by: Kenneth Graunke <kenneth at whitecape.org>
URL: http://cgit.freedesktop.org/mesa/mesa/commit/?id=78ce522932e8c356880c7ca10dace4b6fe6cf313
Author: Eric Anholt <eric at anholt.net>
Date: Fri Nov 30 15:54:19 2012 -0800
i965/fs: Add a note explaining a detail of register_coalesce_2().
Reviewed-by: Kenneth Graunke <kenneth at whitecape.org>
URL: http://cgit.freedesktop.org/mesa/mesa/commit/?id=7baf9198b201666fc0f20fe407d7b46ee0ca7ef5
Author: Eric Anholt <eric at anholt.net>
Date: Wed Dec 12 12:47:50 2012 -0800
i965: Also consider HALTs a potential block end.
The final halt of the fragment shader turns off the remaining channels,
then jumps such that everything is turned back on. So, we can have our
last ENDIF of the shader point at that directly.
Reviewed-by: Kenneth Graunke <kenneth at whitecape.org>
URL: http://cgit.freedesktop.org/mesa/mesa/commit/?id=2702202290b55a9c8b61f02f7ae0af8f4a53f0e2
Author: Kenneth Graunke <kenneth at whitecape.org>
Date: Wed Dec 12 02:20:05 2012 -0800
i965: Jump to the end of the next outer conditional block on ENDIFs.
From the Ivybridge PRM, Volume 4, Part 3, section 6.24 (page 172):
"The endif instruction is also used to hop out of nested conditionals by
jumping to the end of the next outer conditional block when all
channels are disabled."
Also:
"Pseudocode:
Evaluate(WrEn);
if ( WrEn == 0 ) { // all channels false
Jump(IP + JIP);
}"
First, ENDIF re-enables any channels that were disabled because they
didn't match the conditional. If any channels are active, it proceeds
to the next instruction (IP + 16). However, if they're all disabled,
there's no point in walking through all of the instructions that have no
effect---it can jump to the next instruction that might re-enable some
channels (an ELSE, ENDIF, or WHILE).
Previously, we always set JIP on ENDIF instructions to 2 (which is
measured in 8-byte units). This made it do Jump(IP + 16), which just
meant it would go to the next instruction even if all channels were off.
It turns out that walking over instructions while all the channels are
disabled like this is worse than just instruction dispatch overhead: if
there are texturing messages, it still costs a couple hundred cycles to
not-actually-read from the texture results.
This patch finds the next instruction that could re-enable channels and
sets JIP accordingly.
Reviewed-by: Eric Anholt <eric at anholt.net>
URL: http://cgit.freedesktop.org/mesa/mesa/commit/?id=2f7f095a801311bf62aa1204b5a9940509753cff
Author: Chris Forbes <chrisf at ijw.co.nz>
Date: Thu Nov 22 19:24:22 2012 +1300
i965: expose ARB_texture_cube_map_array
V3: Put enable in an existing block rather than making a new
one for no good reason.
Signed-off-by: Chris Forbes <chrisf at ijw.co.nz>
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=380fc562b35c57b0f97ea4325c578ed94efae220
Author: Eric Anholt <eric at anholt.net>
Date: Fri Dec 14 12:24:55 2012 -0800
i965/fs: Fix setup for textureGrad(samplerCubeArray, coord, dPdx, dPdy)
Caught by tex_grad-01.frag.
Reviewed-by: Kenneth Graunke <kenneth at whitecape.org>
URL: http://cgit.freedesktop.org/mesa/mesa/commit/?id=3c560633548f4b0298a372903de32639706f8c40
Author: Eric Anholt <eric at anholt.net>
Date: Wed Dec 5 14:56:32 2012 -0800
i965/fs: Move the failure for gen7 16-wide intdiv to emit_math().
The cube map array code adds another caller of emit_math(), which
needs this check.
Reviewed-by: Kenneth Graunke <kenneth at whitecape.org>
URL: http://cgit.freedesktop.org/mesa/mesa/commit/?id=d2dbba87554d9490b49884185a29ca2b46e4a616
Author: Chris Forbes <chrisf at ijw.co.nz>
Date: Thu Nov 22 22:13:46 2012 +1300
i965: fs: Add fixup for textureSize on Gen6/7
V2: Moved up into emit(ir_texture *) to avoid duplication and fix
ordering for Gen7; Gen6 math quirks moved into previous patches.
Tested on Gen6 only; passes all the cube_map_array piglits.
V3: Fixed weird whitespace
V4: Use sampler->type; otherwise broken on arrays of samplers.
v5: Minor style fixes (by anholt)
Signed-off-by: Chris Forbes <chrisf at ijw.co.nz>
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=6e34723ac9fa2d5c34cb2a38118ecf5b856c4992
Author: Chris Forbes <chrisf at ijw.co.nz>
Date: Thu Nov 29 08:39:08 2012 +1300
i965: fs: fix gen6+ math operands in one place
V4: Fix various style nits as pointed out by Eric, and expand IMM
operands on both Gen6 and Gen7.
v5: minor style nits (by anholt)
Signed-off-by: Chris Forbes <chrisf at ijw.co.nz>
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=f6a3fda25d2d9cf825c38e3e46f7cf44bd7c99e1
Author: Chris Forbes <chrisf at ijw.co.nz>
Date: Thu Nov 22 21:32:08 2012 +1300
i965: vs: Add fixup for textureSize with cube array samplers
V3: Fixed weird whitespace
V4: Use sampler's type rather than variable's type; otherwise broken
with arrays of samplers. (Thanks Eric)
v5: Fix a couple more style nits (by anholt)
Signed-off-by: Chris Forbes <chrisf at ijw.co.nz>
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=1cb57ea493d892bf5065e5fb0c5dd745744cc71c
Author: Chris Forbes <chrisf at ijw.co.nz>
Date: Sun Dec 9 22:03:49 2012 +1300
i965/vs: Fix gen6+ math operand quirks in one place
This causes immediate values to get moved to a temp on gen7, which is needed
for an upcoming change but hadn't happened in the visitor until then.
v2: Drop gen > 7 checks (doesn't exist), and style-fix comments (changes by
anholt).
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=0cda3382a6a150d42877711f14964b44fe8c6db5
Author: Chris Forbes <chrisf at ijw.co.nz>
Date: Thu Nov 22 17:55:08 2012 +1300
i965: Add various plumbing for cubemap arrays
V4: Fixed style nits
Signed-off-by: Chris Forbes <chrisf at ijw.co.nz>
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=2cae9f2d4a57dc9cca934b489df43f0ec4eb98bc
Author: Eric Anholt <eric at anholt.net>
Date: Wed Dec 5 16:19:43 2012 -0800
i965/fs: Add empirically-determined instruction latencies for gen7.
v2: Actually switch on the other math instructions mentioned in the
comment.
v3: Add timing data for textureSize(), and clean up some long comment
lines.
Testing shader_time of fs16 shaders on a few frames of various apps:
nexuiz improved by 2.9% +/- 1.5% (n=10)
no difference on GLB2.5 (n=36, outliers removed)
no difference on GLB2.7 (n=25)
etqw improved by 2.6% +/- 2.2% (n=25)
no difference on lightsmark (n=25)
Acked-by: Kenneth Graunke <kenneth at whitecape.org>
URL: http://cgit.freedesktop.org/mesa/mesa/commit/?id=4df1e18864dc6b7830bb3c7998889883fe8dae2b
Author: Eric Anholt <eric at anholt.net>
Date: Wed Dec 5 16:17:58 2012 -0800
i965/fs: Fix the clock increment in scheduling.
I've tested this to be true with various ALU ops on gen7 (with the
exception of MADs, which go at either 3 or 4 cycles per dispatch).
Acked-by: Kenneth Graunke <kenneth at whitecape.org>
URL: http://cgit.freedesktop.org/mesa/mesa/commit/?id=6255fc7426ce51b3bd1b28af45f4977fdcc37a55
Author: Eric Anholt <eric at anholt.net>
Date: Wed Dec 5 15:24:07 2012 -0800
i965/fs: Move the old gen4 bspec-based scheduling info to a helper func.
For gen7 everything changes, and we have actual information on latency.
Acked-by: Kenneth Graunke <kenneth at whitecape.org>
URL: http://cgit.freedesktop.org/mesa/mesa/commit/?id=461a29783a28e579a9a5a236e5f47ffb6d18a328
Author: Eric Anholt <eric at anholt.net>
Date: Wed Dec 5 00:06:30 2012 -0800
i965/fs: Set up gen7 UBO loads as sends from GRFs.
This gives the instruction scheduler a chance to schedule between the
loads, whereas before it was restricted due to the dependencies between
the MRFs for setting them up.
For one shader in gles3conform, it goes from getting stuck in register
allocation for as long as anybody's bothered to leave it running down
to 23 seconds, thanks to the LIFO scheduling.
Acked-by: Kenneth Graunke <kenneth at whitecape.org>
URL: http://cgit.freedesktop.org/mesa/mesa/commit/?id=456dbcc3377ee23dbeffa4da02a4d80a8519bb62
Author: Eric Anholt <eric at anholt.net>
Date: Mon Dec 3 19:59:55 2012 -0800
i965/fs: Before reg alloc, schedule instructions to reduce live ranges.
This came from an idea by Ben Segovia. 16-wide pixel shaders are very
important for latency hiding on i965, so we want to try really hard to
get them. If scheduling an instruction makes some set of instructions
available, those are probably the ones that make the instruction's
result dead. By choosing those first, we'll have a tendency to reduce
the amount of live data as opposed to creating more.
Previously, we were sometimes getting this behavior out of the
scheduler, which was what produced the scheduler's original performance
wins on lightsmark. Unfortunately, that was mostly an accident of the
lame instruction latency information that I had, which made it
impossible to fix the actual scheduling for performance. Now that we've
fixed the scheduling for setup for register allocation, we can safely
update the latency parameters for the final schedule.
In shader-db, we lose 37 16-wide shaders, but gain 90 new ones. 4
shaders that were spilling change how many registers spill, for a
reduction of 70/3899 instructions.
v2: Simplify the new loop.
Acked-by: Kenneth Graunke <kenneth at whitecape.org>
URL: http://cgit.freedesktop.org/mesa/mesa/commit/?id=ba864bfcfaceac37a5f9292795dc5aba7dc2c0e2
Author: Eric Anholt <eric at anholt.net>
Date: Tue Dec 4 13:52:19 2012 -0800
i965/fs: Add some optional debug printfs to scheduling.
Seeing when instructions become available to schedule is really useful.
Acked-by: Kenneth Graunke <kenneth at whitecape.org>
URL: http://cgit.freedesktop.org/mesa/mesa/commit/?id=7a9f940cab8e5a3bbbab3e302de2311b36159d91
Author: Eric Anholt <eric at anholt.net>
Date: Mon Dec 3 17:58:03 2012 -0800
i965/fs: Schedule instructions both before and after register allocation.
Acked-by: Kenneth Graunke <kenneth at whitecape.org>
URL: http://cgit.freedesktop.org/mesa/mesa/commit/?id=1315f3b4b38cb569846389fe3080ffa8ac6946d9
Author: Eric Anholt <eric at anholt.net>
Date: Fri Dec 14 14:02:34 2012 -0800
i965: Make sure that the shader_time report at context destroy happens.
Otherwise, you end up with some report from within a second of context
destroy, which is now what you really want for testing the impact of
changes
URL: http://cgit.freedesktop.org/mesa/mesa/commit/?id=81c247404a232d17e94ec1b435c0f2be47877778
Author: Eric Anholt <eric at anholt.net>
Date: Mon Dec 10 10:22:41 2012 -0800
i965: Print a total time for the different shader stages.
Sometimes I've got a patch for a performance optimization that's not
showing a statistically significant performance difference on reported
FPS, but still seems like a good idea because it ought to reduce time
spent in the shader. If I can see the total number of cycles spent in
the shader stage being optimized, it may show that the patch is still
worthwhile (or point out that it's actually broken in some way).
URL: http://cgit.freedesktop.org/mesa/mesa/commit/?id=f74560f3fb516971e6a7b03a2382db2f58699f59
Author: Eric Anholt <eric at anholt.net>
Date: Mon Dec 10 09:44:19 2012 -0800
i965: Scale shader_time to compensate for resets.
Some shaders experience resets more than others, which skews the numbers
reported. Attempt to correct for this by linearly scaling according to
the number of resets that happen.
Note that will not be accurate if invocations of shaders have varying
times and longer invocations are more likely to reset. However, this
should at least be better than the previous situation.
URL: http://cgit.freedesktop.org/mesa/mesa/commit/?id=338b5f887d462bbe7ef58a233cd00619e43415f0
Author: Eric Anholt <eric at anholt.net>
Date: Mon Dec 10 09:21:34 2012 -0800
i965: Adjust the split between shader_time_end() and shader_time_write().
I'm about to emit other kinds of writes besides time deltas, and it
turns out with the frequency of resets, we couldn't really use the old
time delta write() function more than once in a shader.
More information about the mesa-commit
mailing list