CesiumGS / webglreport

A web page that reports a browser's WebGL capabilities, including supported extensions and implementation specific capabilities, such as the maximum number of texture units.
https://webglreport.com
Apache License 2.0
391 stars 99 forks source link

WebGL 2 pipeline updates #27

Closed pjcozzi closed 9 years ago

pjcozzi commented 9 years ago

e.g., transform feedback

emackey commented 9 years ago

Can someone create a list of what pipeline sections & connections need to be added?

pjcozzi commented 9 years ago

I'll try to do it over the weekend.

pjcozzi commented 9 years ago

Here's the new values to report (see the tables starting on Page 269 of the ES 3 spec and the enums in Section 3.7 of the draft WebGL 2 spec):

Vertex Shader

Add these:

MAX_VERTEX_UNIFORM_COMPONENTS
MAX_VERTEX_UNIFORM_BLOCKS
MAX_VERTEX_OUTPUT_COMPONENTS
MAX_VARYING_COMPONENTS

Fragment Shader

Add these:

MAX_FRAGMENT_UNIFORM_COMPONENTS
MAX_FRAGMENT_UNIFORM_BLOCKS
MAX_FRAGMENT_INPUT_COMPONENTS
MIN_PROGRAM_TEXEL_OFFSET
MAX_PROGRAM_TEXEL_OFFSET

Framebuffer

Add these:

MAX_DRAW_BUFFERS
MAX_COLOR_ATTACHMENTS
MAX_SAMPLES // From WebGL 1 (not reported in the WebGL Report yet, #6)

Textures

Add these:

MAX_3D_TEXTURE_SIZE
MAX_ARRAY_TEXTURE_LAYERS
MAX_TEXTURE_LOD_BIAS

New Uniform Buffers section that is input to vertex and fragment shaders (like Textures)

MAX_UNIFORM_BUFFER_BINDINGS
MAX_UNIFORM_BLOCK_SIZE
UNIFORM_BUFFER_OFFSET_ALIGNMENT
MAX_COMBINED_UNIFORM_BLOCKS
MAX_COMBINED_VERTEX_UNIFORM_COMPONENTS
MAX_COMBINED_FRAGMENT_UNIFORM_COMPONENTS

New Transform Feedback section

MAX_TRANSFORM_FEEDBACK_INTERLEAVED_COMPONENTS
MAX_TRANSFORM_FEEDBACK_SEPARATE_ATTRIBS
MAX_TRANSFORM_FEEDBACK_SEPARATE_COMPONENTS

Not sure where

MAX_ELEMENT_INDEX // Maybe Vertex Shader section
MAX_SERVER_WAIT_TIMEOUT
// MAX_ELEMENTS_INDICES // not sure that drawRangeElements will make WebGL 2
// MAX_ELEMENTS_VERTICES // not sure that drawRangeElements will make WebGL 2
pjcozzi commented 9 years ago

Given that all these enums are probably not implemented yet, we could return Not implemented for those.