Lower correlation threshold in flush-finish tests again am: 6455e6f987 am: 2e18b48b04
[platform/upstream/VK-GL-CTS.git] / modules / glshared / glsRandomShaderProgram.hpp
1 #ifndef _GLSRANDOMSHADERPROGRAM_HPP
2 #define _GLSRANDOMSHADERPROGRAM_HPP
3 /*-------------------------------------------------------------------------
4  * drawElements Quality Program OpenGL (ES) Module
5  * -----------------------------------------------
6  *
7  * Copyright 2014 The Android Open Source Project
8  *
9  * Licensed under the Apache License, Version 2.0 (the "License");
10  * you may not use this file except in compliance with the License.
11  * You may obtain a copy of the License at
12  *
13  *      http://www.apache.org/licenses/LICENSE-2.0
14  *
15  * Unless required by applicable law or agreed to in writing, software
16  * distributed under the License is distributed on an "AS IS" BASIS,
17  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
18  * See the License for the specific language governing permissions and
19  * limitations under the License.
20  *
21  *//*!
22  * \file
23  * \brief sglr-rsg adaptation.
24  *//*--------------------------------------------------------------------*/
25
26 #include "tcuDefs.hpp"
27 #include "sglrContext.hpp"
28 #include "rsgExecutionContext.hpp"
29
30 namespace rsg
31 {
32 class Shader;
33 class ShaderInput;
34 }
35
36 namespace deqp
37 {
38 namespace gls
39 {
40
41 class RandomShaderProgram : public sglr::ShaderProgram
42 {
43 public:
44                                                                                 RandomShaderProgram                     (const rsg::Shader& vertexShader, const rsg::Shader& fragmentShader, int numUnifiedUniforms, const rsg::ShaderInput* const* unifiedUniforms);
45
46 private:
47         virtual void                                            shadeVertices                           (const rr::VertexAttrib* inputs, rr::VertexPacket* const* packets, const int numPackets) const;
48         virtual void                                            shadeFragments                          (rr::FragmentPacket* packets, const int numPackets, const rr::FragmentShadingContext& context) const;
49
50         void                                                            refreshUniforms                         (void) const;
51
52         const rsg::Shader&                                      m_vertexShader;
53         const rsg::Shader&                                      m_fragmentShader;
54         const int                                                       m_numUnifiedUniforms;
55         const rsg::ShaderInput* const*          m_unifiedUniforms;
56
57         const rsg::Variable*                            m_positionVar;
58         std::vector<const rsg::Variable*>       m_vertexOutputs;                        //!< Other vertex outputs in the order they are passed to fragment shader.
59         const rsg::Variable*                            m_fragColorVar;
60
61         rsg::Sampler2DMap                                       m_sampler2DMap;
62         rsg::SamplerCubeMap                                     m_samplerCubeMap;
63         mutable rsg::ExecutionContext           m_execCtx;
64 };
65
66 } // gls
67 } // deqp
68
69 #endif // _GLSRANDOMSHADERPROGRAM_HPP