[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [Public WebGL] Minor spec updates



It was determined by both the ANGLE team (who have built OpenGL ES on
top of Direct3D) and Microsoft's browser team that OpenGL's texture
swizzle functionality can not be implemented with high performance on
top of Direct3D. There are two primary options for doing so -- either
re-uploading texture data behind the scenes -- expensive, as you can
appreciate -- or dynamically recompiling shaders on the fly to include
the appropriate texture swizzles -- also expensive, and a lot of
bookkeeping. Either way, an application heavily utilizing OpenGL ES's
texture swizzle functionality would never perform well on a Direct3D
based WebGL implementation. For this reason the functionality was
removed from WebGL.

For use cases like Emscripten, it will be necessary to push back to
application authors and re-cast the use of texture swizzles in some
other way. There are plenty of other options, including generating new
shaders on the fly, or generating several up front at application
startup.

-Ken


On Mon, Feb 23, 2015 at 9:57 PM, Jukka Jylänki <jujjyl@gmail.com> wrote:
>
> The choice to remove texture swizzles sounds arbitrary to me. Neither the pull request or this mail actually explain what the hardware for this was, which leaves the most important bits of detail for a decision like this up for random guesses to parties who were not present in the F2F discussion. Why is native GL/GLES then able to implement these, and why is WebGL special in this respect that it can't?
>
>> On 24 Feb 2015, at 03:40, Kenneth Russell <kbr@google.com> wrote:
>>
>>
>> A couple of minor spec updates to WebGL 2.0:
>>
>> - Texture swizzling has been removed from the specification in
>> https://github.com/KhronosGroup/WebGL/pull/854 . On some WebGL
>> implementations, texture swizzles can not be implemented in a
>> performant manner, meaning that applications relying on this
>> functionality would run significantly more slowly on those
>> implementations. For this reason, texture swizzles will not be
>> supported in WebGL 2.0.
>>
>> - A query of the implementation-dependent maximum client wait timeout
>> has been added in https://github.com/KhronosGroup/WebGL/pull/871 .
>> This is intended to prevent applications from blocking the browser's
>> main thread for long periods of time. An INVALID_OPERATION error will
>> now be generated if the user requests a timeout larger than the
>> maximum.
>>
>> Please send any comments about these changes to the list.
>>
>> Thanks,
>>
>> -Ken
>>
>> -----------------------------------------------------------
>> You are currently subscribed to public_webgl@khronos.org.
>> To unsubscribe, send an email to majordomo@khronos.org with
>> the following command in the body of your email:
>> unsubscribe public_webgl
>> -----------------------------------------------------------
>>

-----------------------------------------------------------
You are currently subscribed to public_webgl@khronos.org.
To unsubscribe, send an email to majordomo@khronos.org with
the following command in the body of your email:
unsubscribe public_webgl
-----------------------------------------------------------