[Nexus 7 (2013) General] caspboy:
Changelog

==============================​

Fixes and Improvements

Fix a failure to release performance counter resources in some cases when using Adreno Profiler with certain NDK apps and OpenCL.

Fix a crash when connecting Adreno Profiler to an app that uses the disjoint timer query extension.

Add support to Adreno Profiler for OpenCL kernel type qualifier arguments.

Add support to Adreno Profiler for clCreateImage() 1D image, 1D image array, 2D image array.

Add support to Adreno Profiler for displaying multiple OpenCL queue/device/context combinations.

Fix a potential target application crash when Adreno Profiler metrics are enabled while the GPU is not idle.

Fix for incorrect scissor results if an app calls scissor and glBufferSubdata() between two draw calls.

Fix an issue with binning configuration calculation when MSAA is enabled.

Add support for ASTC texture formats in Adreno Profiler.

Fix potential null-pointer dereference in OpenCL.

Fix rotation issues with glBlitFramebuffer() and glClipPlane() when device is not in native orientation.

Fix for possible crash when using occlusion query while changing render targets.

Fix incorrect Adreno Profiler capture for applications using 2D texture arrays.

Fix potential crash during VAO validation in buffer update calls.

Add Adreno Profiler support for buffer transmission in clFillBuffer() and clFillImage().

Improve performance when invalidating texture attachments.

The following fixes were included in the June 2014 Adreno driver release for Nexus 4, Nexus 5, and Nexus 7 and are also included in this release:

Return CL_INVALID_MEM_OBJECT in clReleaseMemObj() as per spec.

Improve performance for WebXPRT benchmark.

Eliminate unnecessary resolves when invalidating FBO attachments to improve performance.

The following fixes were included in the May 2014 Adreno driver release for Nexus 4, Nexus 5, and Nexus 7 and are also included in this release:

Add OpenCL libraries.

Fix an issue with return statements in the middle of GLSL shaders causing a GPU hang.

Fix a performance regression in VBO validation.

Improve accuracy of Renderscript kernel execution duration measurements.

Fix crashes in some dEQP test cases.

Improve support for GL_RGB10_A2UI textures in Adreno Profiler.

Fix intermittent pink color tinting with certain WebGL content.

The following fixes were included in the April 2014 Adreno driver release for Nexus 4, Nexus 5, and Nexus 7 and are also included in this release:

Fix an intermittent crash that may happen when running dEQP-GLES2.functional.light_amount.1dir.

Fix rendering corruption in GFXBench Manhattan caused by out-of-sync VBO cache.

Fix small memory leak when waiting for thread termination.

Fix dEQP clipping test failures for point and line primitive types.

Add support for GL_HALF_FLOAT_OES rendering.

Improve RenderScript performance.

Prevent GPU page fault in certain SurfaceFlinger error conditions.

Allow 0 as an argument to the GLSL #line directive, as per spec.

Remove erroneous report of paletted texture formats from the GL_COMPRESSED_TEXTURE_FORMATS query when GL_OES_compressed_paletted_texture is not reported in the extension string list.

Fix a possible segmentation fault in glTexImage2D().

Fix mishandling of trailing whitespace after a GLSL #if directive.

Fix intermittent crashes from GLSL symbol table corruption.

Fix a scenario where performing a glQueryCounter() followed by glGet(GL_TIMESTAMP_EXT) and taking the difference between the two could result in a negative value, wrongly indicating a negative latency between the CPU and GPU.

Fix possible page fault when a shared EGL surface has a depth buffer.

Fix intermittent crash in Chrome browser that sometimes occurred while rotating and locking the device at the same time.

Add thread-safety for EGL images.

Fix Adreno Profiler shader override issues with shaders that use uniforms.

Reset flags for previously bound Transform Feedback buffer after draw call in case it is bound to more than one attribute.

Fix rendering corruption in Basemark Hover.

Fix a crash in the Tumblr app.

Fix intermittent crash in glBufferData() during VBO validation.

Fix rotation-related UI rendering issues in Gunman Clive.

Fix rendering corruption issue with H.265 video.

Fix YUV video rendering issues in Group Play app.

Fix Adreno Profiler conflict with occlusion query.

Fix screen tearing when using virtual displays via the developer options with HW overlays disabled.

Fix small memory leak on thread destruction.

Fix a crash-on-launch with Redline Rush.

Fix performance issues in Arma Tactics.

Allow non-constant indices on attribute vectors, as per GLSL spec.

Fix rendering corruption in GLBenchmark.

Fix eglClientWaitSyncKHR() to correctly use a 0 ms timeout when requested instead of a 1 ms timeout.

Improve glReadPixel() performance in landscape mode.

Fix page fault in dEQP glBlitFrameBuffer() test.

Fix crash-on-launch in Royal Revolt app.

Fix incorrect behavior of glClear() on MRTs.

Fix a crash when EOF immediately follows an #endif directive in GLSL.

Improve performance of aliased VBO updates.

Fix crash in GLES conformance test.

Fix rendering corruption in Unity’s “The Chase” demo.

Fix rendering corruption that occurs when the device is rotated and a visible surface is resized.

Fix for dEQP GLES3 polygon offset tests.

Enforce mutual exclusion of RGB and L for RGB buffers and luminance buffers.

Fix race condition in EGL triggered by certain Android mediaserver scenarios.

Create separate scope for if/if else/else statements in GLSL as per spec.

Fix incorrect conversion of negative float values to FALSE in glGetBoolean().

Reject invalid GLSL version numbers in #version directive.

Allow all integer constant expressions in GLSL #line directives.

Add driver support for EGL_KHR_create_context extension.

Fix rendering corruption with TGCOM24 app.

Fix the total count of uniform samplers when uniform samplers are used both in the vertex and fragment shader.

Fix erroneous compile errors for certain YUV GLSL shaders.

Fix a crash when indexing a sampler by a non-constant index in GLSL.

Fix issues with dEQP transform feedback tests.

Fix miplevel corruptions in conformance tests.

The following fixes were included in the March 2014 Adreno driver release for Nexus 4, Nexus 5, and Nexus 7 and are also included in this release:

Increase the maximum available number of uniform vectors from 251 to 256 for vertex shaders and from 221 to 224 for fragment shaders.

Fix possible lost nodes in GLSL preprocessor symbol table. Under certain conditions, using the #undef directive in a shader could cause other, unrelated symbols to be lost. This fixes a shader issue in The Amazing Spider-Man game from Gameloft.

Fix RBOs with no allocated storage to correctly report a zero sample count.

Fix potential crash when multiple GL contexts are rendering to the same EGL surface and the EGL surface is unmapped. This fixes a possible crash while running Google’s Compatibility Test Suite.

Fix crash in Epic’s Soul demo when adding grapher metrics in Adreno Profiler.

Add processor selection in Renderscript, to measure GPU and CPU execution times and choose the fastest processor for a given kernel to execute.

If a texture is changed in a shared context and the texture is bound or rebound in the current context, then update texture samplers to ensure the changes are visible in the current context, in accordance with Rule 4, section D.3.3 of the OpenGL® ES 3.0 spec.

Fast clear is not compatible with stencil mask, so disable it when stencil mask is enabled.

Allow glBlitFramebuffer() to blit within the default framebuffer if color buffers are for different surfaces.

Do not kill the application in case of GPU reset.

Fix problems with some uniforms in override programs not being set correctly by Adreno Profiler.

Fix handling of GL_RED, GL_RED_INTEGER, GL_RG, and GL_RG_INTEGER texture formats in Adreno Profiler.

Add GL3 constant names to token descriptions in Adreno Profiler.

Fix an Adreno Profiler crash exposed by a change to the way text rendering is implemented in the Android UI framework.

Change Adreno Profiler metric timestamps from milliseconds to microseconds to provide better data for per-rendercall metrics.

Fix a crash when Adreno Profiler is collecting scrubber metrics from a GLES3 app with occlusion querying.

Fix intermittent Adreno Profiler connection timeouts.

Fix intermittent Adreno Profiler disconnects while capturing.

Fix beginning-of-race crash in Asphalt 8.

The following fixes were included in the February 2014 Adreno driver release for Nexus 5 and Nexus 7 and are also included in this release for Nexus 4:

Add Adreno Profiler support for the following pixel data formats: GL_RED,GL_RED_INTEGER, GL_RG, GL_RG_INTEGER, GL_RGB_INTEGER, GL_RGBA_INTEGER.

Add Adreno Profiler support for reporting bin configuration.

Add Adreno Profiler support for uniform buffers.

Improve performance of uniform block look-ups when using Adreno Profiler program overrides.

Add Adreno Profiler support for transform feedback objects, including program overrides.

Add more Adreno Profiler structure version checks to better warn of data structure size differences between Adreno Profiler and driver.

Add Adreno Profiler support for GL_RGB9_E5 texture format.

Add Adreno Profiler support for GL_SRGBA8 texture format.

Add Adreno Profiler support for 2D texture arrays.

Add the ability to identify which GL thread is most active, to automatically select the best thread in the Adreno Profiler.

Fix Adreno Profiler reporting of uninitialized data.

Fix occasional crash of BombSquad (and other multithreaded apps) when connecting Adreno Profiler.

Add Adreno Profiler option to maintain overrides when capturing a new frame.

Fix Adreno Profiler failure with Epic Citadel.

Fix WebGL 1.0.2 conformance test textures/texture-size-limit.html case.

Fix handling of \r line endings in shader source.

The following fixes were included in the January 2014 Adreno driver release for Nexus 5 and are also included in this release for Nexus 7 and Nexus 4:

Add support for GL_EXT_multisampled_render_to_texture extension.

Fix incorrect output with glReadPixels() on an FBO with a texture attachment which is a cubemap face.

Fix incorrect lighting in the UBOTest example from the Adreno SDK. This fix addresses problems with scalar operations on UBOs.

Performance enhancements for rasterizer discard.

Performance enhancements for transform feedback.

Fix issue with graphics driver being unable to find and load Adreno Profiler libraries.

Cleaner handling for internal compiler error cases for UBOs.

Faster rsGetElementAt() and rsSample() runtime performance for programs that access many Allocation objects.

Improved stability when compiling complex RenderScript code.

Allow a count of zero in calls to glDrawBuffers() as per spec.

Fix errors in calculation of 2D texture array slice sizes for NPOT textures.

Generate GL_INVALID_VALUE from glTexStorage2D() and glTexStorage3D() when width, height, or depth exceed supported size.

Fix behavior of glGetFramebufferAttachmentParameteriv() to properly return GL_FRAMEBUFFER_DEFAULT for the default framebuffer instead of returning GL_NONE. (See OpenGL® ES Version 3.0 spec §6.1.13.)

Change glCopyTexImage2D() to prohibit SNORM as a destination format, as per Table 3.15 of the OpenGL® ES Version 3.0 spec.

Relaxed restrictions on the width and height parameters of glCompressedTexSubImage2D() to allow updates of 1x1 and 2x2 miplevels for ETC2/EAC formats. The incoming data buffer must still have its width and height padded to four, as required by ETC2/EAC, but the width and height parameters to the function call may reflect the actual texture dimensions.

Fix a potential double-free of memory inside glLinkProgram().

Fix reported value of gl_MaxVertexTextureImageUnits for GLES 3.0 hardware.

Add support for the following built-in constants in GLSL 3.0:

gl_MaxVertexOutputVectors

gl_MaxFragmentInputVectors

gl_MinProgramTexelOffset

gl_MaxProgramTexelOffset

Fix transposition of u and v coordinates in GLSL textureOffset() and texelFetch() functions.

Fix loss of w coordinate in GLSL textureOffset() and texelFetch() functions.

Fix GLSL matrix constructor to accept an array of matrices.

​