Bug 1009

Summary: FBObject's chooses incompatible format for sampling sink according to ES3 spec.
Product: [JogAmp] Jogl Reporter: Sven Gothel <sgothel>
Component: coreAssignee: Sven Gothel <sgothel>
Status: RESOLVED FIXED    
Severity: critical CC: sgothel
Priority: ---    
Version: 2   
Hardware: All   
OS: all   
Type: --- SCM Refs:
d354cf767182c27f44ad4c00d2e975f8d689daa8
Workaround: ---

Description Sven Gothel 2014-05-26 10:09:48 CEST
For ES3, sampling-sink colorbuffer format must be equal w/ 
the sampling-source Colorbuffer.

ES3 BlitFramebuffer Requirements: OpenGL ES 3.0.2 p194: 4.3.2  Copying Pixels:

  If SAMPLE_BUFFERS for the read framebuffer is greater than zero, no copy
  is performed and an INVALID_OPERATION error is generated if the formats of
  the read and draw framebuffers are not identical or if the source and destination
  rectangles are not defined with the same (X0, Y 0) and (X1, Y 1) bounds.

Texture and Renderbuffer format details:

ES2 Base iFormat: OpenGL ES 2.0.24 p66: 3.7.1 Texture Image Specification, Table 3.8
 - ALPHA, LUMINANCE, LUMINANCE_ALPHA, RGB, RGBA

ES3 Base iFormat: OpenGL ES 3.0.2 p125: 3.8.3 Texture Image Specification, Table 3.11
 - ALPHA, LUMINANCE, LUMINANCE_ALPHA, RGB, RGBA
   DEPTH_COMPONENT, STENCIL_COMPONENT, RED, RG

ES3 Required Texture and Renderbuffer iFormat: OpenGL ES 3.0.2 p126: 3.8.3 Texture Image Specification
 - RGBA32I, RGBA32UI, RGBA16I, RGBA16UI, RGBA8, RGBA8I,
   RGBA8UI, SRGB8_ALPHA8, RGB10_A2, RGB10_A2UI, RGBA4, and
   RGB5_A1.
 - RGB8 and RGB565.
 - RG32I, RG32UI, RG16I, RG16UI, RG8, RG8I, and RG8UI.
 - R32I, R32UI, R16I, R16UI, R8, R8I, and R8UI.

+++

Our implementation shall attempt to use the same format
for the sampling-source and -sink
wherever possible, e.g. GL2ES3 (excluding ES1 and ES2)!

+++
Comment 1 Sven Gothel 2014-05-26 19:30:32 CEST
commit d354cf767182c27f44ad4c00d2e975f8d689daa8

fixed as described