xref: /aosp_15_r20/external/deqp/doc/testspecs/GLES3/functional.fbo.completeness.txt (revision 35238bce31c2a825756842865a792f8cf7f89930)
1*35238bceSAndroid Build Coastguard Worker-------------------------------------------------------------------------
2*35238bceSAndroid Build Coastguard WorkerdrawElements Quality Program Test Specification
3*35238bceSAndroid Build Coastguard Worker-----------------------------------------------
4*35238bceSAndroid Build Coastguard Worker
5*35238bceSAndroid Build Coastguard WorkerCopyright 2014 The Android Open Source Project
6*35238bceSAndroid Build Coastguard Worker
7*35238bceSAndroid Build Coastguard WorkerLicensed under the Apache License, Version 2.0 (the "License");
8*35238bceSAndroid Build Coastguard Workeryou may not use this file except in compliance with the License.
9*35238bceSAndroid Build Coastguard WorkerYou may obtain a copy of the License at
10*35238bceSAndroid Build Coastguard Worker
11*35238bceSAndroid Build Coastguard Worker     http://www.apache.org/licenses/LICENSE-2.0
12*35238bceSAndroid Build Coastguard Worker
13*35238bceSAndroid Build Coastguard WorkerUnless required by applicable law or agreed to in writing, software
14*35238bceSAndroid Build Coastguard Workerdistributed under the License is distributed on an "AS IS" BASIS,
15*35238bceSAndroid Build Coastguard WorkerWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
16*35238bceSAndroid Build Coastguard WorkerSee the License for the specific language governing permissions and
17*35238bceSAndroid Build Coastguard Workerlimitations under the License.
18*35238bceSAndroid Build Coastguard Worker-------------------------------------------------------------------------
19*35238bceSAndroid Build Coastguard Worker    Framebuffer completeness tests.
20*35238bceSAndroid Build Coastguard Worker
21*35238bceSAndroid Build Coastguard WorkerTests:
22*35238bceSAndroid Build Coastguard Worker + dEQP-GLES3.functional.fbo.completeness.renderable.*
23*35238bceSAndroid Build Coastguard Worker + dEQP-GLES3.functional.fbo.completeness.attachment_combinations.*
24*35238bceSAndroid Build Coastguard Worker + dEQP-GLES3.functional.fbo.completeness.size.zero
25*35238bceSAndroid Build Coastguard Worker + dEQP-GLES3.functional.fbo.completeness.size.distinct
26*35238bceSAndroid Build Coastguard Worker + dEQP-GLES3.functional.fbo.completeness.size.layer.*
27*35238bceSAndroid Build Coastguard Worker + dEQP-GLES3.functional.fbo.completeness.size.samples.*
28*35238bceSAndroid Build Coastguard Worker
29*35238bceSAndroid Build Coastguard WorkerIncludes:
30*35238bceSAndroid Build Coastguard Worker + glCheckFramebufferStatus return value check
31*35238bceSAndroid Build Coastguard Worker + Single attachments with all standard (and many extension) formats
32*35238bceSAndroid Build Coastguard Worker + All combinations of color, depth and stencil attachments
33*35238bceSAndroid Build Coastguard Worker + Zero-sized attachment
34*35238bceSAndroid Build Coastguard Worker + Differently sized attachments
35*35238bceSAndroid Build Coastguard Worker + Multilayer attachments
36*35238bceSAndroid Build Coastguard Worker + Compatibility of multisample attachments
37*35238bceSAndroid Build Coastguard Worker
38*35238bceSAndroid Build Coastguard WorkerExcludes:
39*35238bceSAndroid Build Coastguard Worker + Trying FBO operations on in/complete FBOs.
40*35238bceSAndroid Build Coastguard Worker + Completeness status changes after the FBO is modified.
41*35238bceSAndroid Build Coastguard Worker
42*35238bceSAndroid Build Coastguard WorkerDescription:
43*35238bceSAndroid Build Coastguard Worker
44*35238bceSAndroid Build Coastguard WorkerThese tests check that the implementation reports framebuffer completeness
45*35238bceSAndroid Build Coastguard Workerstatus correctly. Most test cases create a single framebuffer object, create
46*35238bceSAndroid Build Coastguard Workersome renderbuffers and/or textures and attach them to the FBO, and then call
47*35238bceSAndroid Build Coastguard WorkerglCheckFramebufferStatus on it. The returned value is compared against a set
48*35238bceSAndroid Build Coastguard Workerof legal return values that is calculated from the arguments given to image
49*35238bceSAndroid Build Coastguard Workercreation and attachment functions. The test passes if the return value is
50*35238bceSAndroid Build Coastguard Workerfound in this set. Some test cases may also expect image creation to fail
51*35238bceSAndroid Build Coastguard Workerbefore it can be attached.
52*35238bceSAndroid Build Coastguard Worker
53*35238bceSAndroid Build Coastguard WorkerFor each test case, the test log shows the configurations of the created
54*35238bceSAndroid Build Coastguard Workerimages and attachments, the set of expected status values and the actual
55*35238bceSAndroid Build Coastguard Workerreturned status value.
56*35238bceSAndroid Build Coastguard Worker
57*35238bceSAndroid Build Coastguard Worker
58*35238bceSAndroid Build Coastguard WorkerThe "renderable.*" test cases iterate through all the texture formats and
59*35238bceSAndroid Build Coastguard Workerattachment points and attach a single texture or renderbuffer with that format
60*35238bceSAndroid Build Coastguard Workerat that attachment point.
61*35238bceSAndroid Build Coastguard Worker
62*35238bceSAndroid Build Coastguard WorkerThe purpose of these tests is to check that the implementation's notion of
63*35238bceSAndroid Build Coastguard Workercolor/depth/stencil-renderability adheres to the GLES specification and
64*35238bceSAndroid Build Coastguard Workerextensions. Both renderability and non-renderability of unexpected formats are
65*35238bceSAndroid Build Coastguard Workerreported as test failures.
66*35238bceSAndroid Build Coastguard Worker
67*35238bceSAndroid Build Coastguard Worker
68*35238bceSAndroid Build Coastguard WorkerThe "attachment_combination.*" test cases attach some textures and/or
69*35238bceSAndroid Build Coastguard Workerrenderbuffers with suitable formats to none, some or all of the framebuffer's
70*35238bceSAndroid Build Coastguard Workerattachment points. The expected status values are as follows:
71*35238bceSAndroid Build Coastguard Worker
72*35238bceSAndroid Build Coastguard Worker* If there are no attachments, GL_FRAMEBUFFER_INCOMPLETE_MISSING_ATTACHMENT
73*35238bceSAndroid Build Coastguard Worker  must be returned.
74*35238bceSAndroid Build Coastguard Worker
75*35238bceSAndroid Build Coastguard Worker* If there is both a depth and a stencil attachment and one is a texture and
76*35238bceSAndroid Build Coastguard Worker  the other is a renderbuffer, GL_FRAMEBUFFER_UNSUPPORTED must be returned.
77*35238bceSAndroid Build Coastguard Worker
78*35238bceSAndroid Build Coastguard Worker* Otherwise, GL_FRAMEBUFFER_COMPLETE must be returned.
79*35238bceSAndroid Build Coastguard Worker
80*35238bceSAndroid Build Coastguard WorkerNote that GLES3 requires the depth and stencil attachments to be the same
81*35238bceSAndroid Build Coastguard Workerimage. When a test case has both a depth and a stencil attachment and either
82*35238bceSAndroid Build Coastguard Workerboth are textures or both are renderbuffers, the same image is used for both
83*35238bceSAndroid Build Coastguard Workerattachments.
84*35238bceSAndroid Build Coastguard Worker
85*35238bceSAndroid Build Coastguard Worker
86*35238bceSAndroid Build Coastguard WorkerThe "size.*" test cases check that attachment sizes are treated correctly.
87*35238bceSAndroid Build Coastguard Worker
88*35238bceSAndroid Build Coastguard WorkerThe "size.zero" test case creates a framebuffer object with a single
89*35238bceSAndroid Build Coastguard Workerzero-sized renderbuffer attachment. The glCheckFramebufferStatus call is
90*35238bceSAndroid Build Coastguard Workerexpected to return GL_FRAMEBUFFER_INCOMPLETE_ATTACHMENT. Note that creating
91*35238bceSAndroid Build Coastguard Workerand attaching the zero-sized renderbuffer is still expected to succeed.
92*35238bceSAndroid Build Coastguard Worker
93*35238bceSAndroid Build Coastguard WorkerThe "size.distinct" test case creates a framebuffer object with two
94*35238bceSAndroid Build Coastguard Workerattachments with different sizes. The glCheckFramebufferStatus call is
95*35238bceSAndroid Build Coastguard Workerexpected to return GL_FRAMEBUFFER_COMPLETE.
96*35238bceSAndroid Build Coastguard Worker
97*35238bceSAndroid Build Coastguard Worker
98*35238bceSAndroid Build Coastguard WorkerThe "layer.*" test cases create various layered textures (two-dimensional
99*35238bceSAndroid Build Coastguard Workerarray textures or 3D textures) and attach them to framebuffer objects with
100*35238bceSAndroid Build Coastguard WorkerglFramebufferTextureLayer. The framebuffer status is expected to be
101*35238bceSAndroid Build Coastguard WorkerGL_FRAMEBUFFER_INCOMPLETE_MISSING_ATTACHMENT when the attached layer number is
102*35238bceSAndroid Build Coastguard Workergreater than or equal to the number of layers in the texture.
103*35238bceSAndroid Build Coastguard Worker
104*35238bceSAndroid Build Coastguard Worker
105*35238bceSAndroid Build Coastguard WorkerThe "samples.*" test cases attach textures and/or renderbuffers with various
106*35238bceSAndroid Build Coastguard Workernumbers of samples. The framebuffer status is expected to be
107*35238bceSAndroid Build Coastguard WorkerGL_FRAMEBUFFER_COMPLETE when the attachments have the same number of samples
108*35238bceSAndroid Build Coastguard Worker(taking textures to have zero samples), or
109*35238bceSAndroid Build Coastguard WorkerGL_FRAMEBUFFER_INCOMPLETE_MULTISAMPLE otherwise.
110*35238bceSAndroid Build Coastguard Worker
111*35238bceSAndroid Build Coastguard WorkerBecause implementations are allowed to allocate more samples than
112*35238bceSAndroid Build Coastguard Workerrequested, a framebuffer object whose attachments have requested a
113*35238bceSAndroid Build Coastguard Workerdifferent, but non-zero, number of samples, is allowed to check either
114*35238bceSAndroid Build Coastguard Workeras complete or incomplete.
115*35238bceSAndroid Build Coastguard Worker
116*35238bceSAndroid Build Coastguard WorkerIf a test case requests more samples than the implementation supports,
117*35238bceSAndroid Build Coastguard Workerthe case is reported as "not supported".
118