WebGL 2.0 compatibility? - webgl

How can I understand if PC with certain GPU supports WebGL 2.0? Appreciate if you can provide any helpfull links to proved documentation.

Related

Opengl ES 3.1+ support on iOS through Vulkan wrapper

Now that a Vulkan to Metal wrapper is officially supported by Khronos (MoltenVK), and that OpenGL to Vulkan wrappers began to appear (glo), would it be technically possible to use OpenGL ES 3.1 or even 3.2 (so even with support to OpenGL compute shaders) on modern iOS versions/HW by chaining these two technologies? Has anybody tried this combination?
I'm not much interested in the performance drop (that would obviously be there due to the two additional layers of abstraction), but only on the enabling factor and cross-platform aspect of the solution.
In theory, yes :).
MoltenVK doesn't support every bit of Vulkan (see the Vulkan Portable Subset section), and some of those features might be required by OpenGL ES 3.1. Triangle fans are an obvious one, full texture swizzle is another. MoltenVK has focused on things that could translate directly; if the ES-on-Vulkan translator was willing to accept extra overhead, it could fake some or all of these features.
The core ANGLE team is working on both OpenGL ES 3.1 support and a Vulkan backend, according to their README and recent commits. They have a history of emulating features (like triangle fans) needed by ES that weren't available in D3D.

WebGL Compute Shader and VBO/UBO's

AFAIK is the compute shader model very limited in WebGL. The documentation on this is even less. I have a hard time to find any answers to my questions.
Is there a possibility to execute a compute shader on one or multiple VBO/UBO's and alter their values?
Update: On April 9 2019, the Khronos group released the a draft standard for compute shaders in WebGL 2.
Original answer:
In this press release, the Khronos group stated that they are working on an extension to WebGL 2 to allow for compute shaders:
What’s next? An extension to WebGL 2.0 providing compute shader support is under development, which will bring many leading-edge graphics algorithms to the web. Khronos is also beginning work on the next generation of WebGL, to bring the enhanced performance of the new generation of explicit 3D APIs to the web. Stay tuned for more news!
Your best bet is to wait about a year or two for it to happen on a limited number of GPU + browser combination.
2022 UPDATE
It has been declared here (in red) that the WebGL 2.0 Compute specification has instead been moved into the new WebGPU spec and is deprecated for WebGL 2.0.
WebGPU has nowhere near global coverage across browsers yet, whereas WebGL 2.0 reached global coverage as of Feb 2022. WebGL 2.0 Compute is implemented only in Google Chrome (Windows, Linux) and Microsoft Edge Insider Channels and will not be implemented elsewhere.
This is obviously a severe limitation for those wanting compute capability on the web. But it is still possible to do informal compute using other methods, such as using regular graphics shaders + the expanded input and output buffer functionalities supplied by WebGL 2.0.
I would recommend Amanda Ghassaei's gpu-io for this. It does all the work for you in wrapping regular GL calls to give compute capability that "just works" (in either WebGL or WebGL 2.0).

PVRTC2 texture compression on iOS

Imagination Technologies released an OpenGL ES 2.0 extension called IMG_texture_compression_pvrtc2 almost five years ago that offers image quality improvements over PVRTC1 compression. A detailed article is found here,
I know that iOS support PVRTC1 compression, and it is listed in extensions on all devices. Does anyone know if Apple supports PVRTC2 or plans to in the near future? Since the extension has been out for so long, Apple recommends PVRTC over other formats, and I assume their hardware already supports, It seems like the should.
Does anyone know of any mobile platform that supports this extension? Any additional information would be helpful.
Does anyone know if Apple supports PVRTC2
Doesn't look like it.
or plans to in the near future?
You'd have to ask Apple.
Does anyone know of any mobile platform that supports this extension?
It's an IMG proprietary extension and texture format, so you'd have to try and find a non-Apple device with a recent high-end IMG GPU.
You'd probably have more luck looking at the ASTC texture format; that one is a multi-vendor extension (and mandatory in OpenGL ES 3.2 so widely supported).

rendering some characters in OpenGL ES 2.x scene

I’m new for OpenGL ES 2.x on iOS, and I’m trying to render some characters in the OpenGL ES 2.x scene. But I don’t know how to do it.
So anyone who can point me in the direction of an Objective-C tutorial or post some sample code?
Any help or advice would be much appreciated.
This question is asked a lot because OpenGL does not have built-in support for text fonts. There is a good survey of solutions and discussion here:
http://www.opengl.org/archives/resources/features/fontsurvey/
http://stackoverflow.com/questions/18557535/text-font-rendering-in-opengles-2-ios-coretext-options-and-best-practice
But the easiest solution by far is to use the Print3D class in the PowerVR SDK:
http://www.imgtec.com/powervr/insider/sdkdownloads/index.asp

Can DirectCompute really be used on a DX10.1 GPU?

Are there any limitations with using DirectCompute on DX10.1 GPUs? I will do most of my development on a DX11 desktop, but I'd like to demo code on a DX10.1 laptop. It'll be a Macbook Pro running Win7 in Bootcamp. The GPU is an Nvidia 330M. What limitations can I expect?
Edit: I found a page about using Compute Shaders on DX10, but it's not entirely clear to me if these are serious limitations or not.
Edit 2: My goal is to learn a bit about quantitative finance and solving PDEs.
Frankly I think CS 4.x is rather limitating because of the lack of atomics, double precision, restrictions for accessing groupshared memory, as well as the 16KB limit. Also you can have only one UAV that can be bound.
I believe most of DirectCompute developers will use CS 4.x for post-processing in games or so (probably with both CS 4.x and CS 5.0 code path). People that want to do heavy GPGPU work will learn with CS 4.x then later move on CS 5.0.
Now you're saying you haven't a clue of the CS 4.x limitations. I suggest to go with CS 4.x and stick to it for now.
But really it all depends what you are developing, how and your target audience (professional developer vs hobby coder, shipping your application now vs in two years, mainstream audience vs pro market etc).
I can't tell you if the limitations are serious or not, as 1) it depends on what you're trying to achieve, and 2) I simply don't know enough about the compute shader.
However, you can run the DirectX Caps Viewer to see what features your device will support (or what limitations you can expect). Also, AFAIK other than the limitations highlighted in the link you posted, you will only be able to use CS 4.0, not the new features in CS 5.0.

Resources