blob: 697e6678aea004318a9d181215e2fed5a453975f [file] [log] [blame]
Jamie Madill9e54b5a2016-05-25 12:57:39 -04001//
2// Copyright 2016 The ANGLE Project Authors. All rights reserved.
3// Use of this source code is governed by a BSD-style license that can be
4// found in the LICENSE file.
5//
6// ContextVk.cpp:
7// Implements the class methods for ContextVk.
8//
9
10#include "libANGLE/renderer/vulkan/ContextVk.h"
11
12#include "common/debug.h"
Jamie Madillacccc6c2016-05-03 17:22:10 -040013#include "libANGLE/renderer/vulkan/BufferVk.h"
14#include "libANGLE/renderer/vulkan/CompilerVk.h"
15#include "libANGLE/renderer/vulkan/ContextVk.h"
16#include "libANGLE/renderer/vulkan/DeviceVk.h"
17#include "libANGLE/renderer/vulkan/FenceNVVk.h"
18#include "libANGLE/renderer/vulkan/FenceSyncVk.h"
19#include "libANGLE/renderer/vulkan/FramebufferVk.h"
20#include "libANGLE/renderer/vulkan/ImageVk.h"
21#include "libANGLE/renderer/vulkan/ProgramVk.h"
22#include "libANGLE/renderer/vulkan/QueryVk.h"
23#include "libANGLE/renderer/vulkan/RenderbufferVk.h"
24#include "libANGLE/renderer/vulkan/RendererVk.h"
25#include "libANGLE/renderer/vulkan/SamplerVk.h"
26#include "libANGLE/renderer/vulkan/ShaderVk.h"
27#include "libANGLE/renderer/vulkan/TextureVk.h"
28#include "libANGLE/renderer/vulkan/TransformFeedbackVk.h"
29#include "libANGLE/renderer/vulkan/VertexArrayVk.h"
Jamie Madill9e54b5a2016-05-25 12:57:39 -040030
31namespace rx
32{
33
Jamie Madillacccc6c2016-05-03 17:22:10 -040034ContextVk::ContextVk(const gl::ContextState &state, RendererVk *renderer)
35 : ContextImpl(state), mRenderer(renderer)
Jamie Madill9e54b5a2016-05-25 12:57:39 -040036{
37}
38
39ContextVk::~ContextVk()
40{
41}
42
43gl::Error ContextVk::initialize()
44{
45 UNIMPLEMENTED();
46 return gl::Error(GL_INVALID_OPERATION);
47}
48
49gl::Error ContextVk::flush()
50{
51 UNIMPLEMENTED();
52 return gl::Error(GL_INVALID_OPERATION);
53}
54
55gl::Error ContextVk::finish()
56{
57 UNIMPLEMENTED();
58 return gl::Error(GL_INVALID_OPERATION);
59}
60
61gl::Error ContextVk::drawArrays(GLenum mode, GLint first, GLsizei count)
62{
63 UNIMPLEMENTED();
64 return gl::Error(GL_INVALID_OPERATION);
65}
66
67gl::Error ContextVk::drawArraysInstanced(GLenum mode,
68 GLint first,
69 GLsizei count,
70 GLsizei instanceCount)
71{
72 UNIMPLEMENTED();
73 return gl::Error(GL_INVALID_OPERATION);
74}
75
76gl::Error ContextVk::drawElements(GLenum mode,
77 GLsizei count,
78 GLenum type,
79 const GLvoid *indices,
80 const gl::IndexRange &indexRange)
81{
82 UNIMPLEMENTED();
83 return gl::Error(GL_INVALID_OPERATION);
84}
85
86gl::Error ContextVk::drawElementsInstanced(GLenum mode,
87 GLsizei count,
88 GLenum type,
89 const GLvoid *indices,
90 GLsizei instances,
91 const gl::IndexRange &indexRange)
92{
93 UNIMPLEMENTED();
94 return gl::Error(GL_INVALID_OPERATION);
95}
96
97gl::Error ContextVk::drawRangeElements(GLenum mode,
98 GLuint start,
99 GLuint end,
100 GLsizei count,
101 GLenum type,
102 const GLvoid *indices,
103 const gl::IndexRange &indexRange)
104{
105 UNIMPLEMENTED();
106 return gl::Error(GL_INVALID_OPERATION);
107}
108
Jiajia Qind9671222016-11-29 16:30:31 +0800109gl::Error ContextVk::drawArraysIndirect(GLenum mode, const GLvoid *indirect)
110{
111 UNIMPLEMENTED();
112 return gl::InternalError() << "DrawArraysIndirect hasn't been implemented for vulkan backend.";
113}
114
115gl::Error ContextVk::drawElementsIndirect(GLenum mode, GLenum type, const GLvoid *indirect)
116{
117 UNIMPLEMENTED();
118 return gl::InternalError()
119 << "DrawElementsIndirect hasn't been implemented for vulkan backend.";
120}
121
Corentin Wallez87fbe1c2016-08-03 14:41:42 -0400122GLenum ContextVk::getResetStatus()
Jamie Madill9e54b5a2016-05-25 12:57:39 -0400123{
124 UNIMPLEMENTED();
Corentin Wallez87fbe1c2016-08-03 14:41:42 -0400125 return GL_NO_ERROR;
Jamie Madill9e54b5a2016-05-25 12:57:39 -0400126}
127
128std::string ContextVk::getVendorString() const
129{
130 UNIMPLEMENTED();
131 return std::string();
132}
133
134std::string ContextVk::getRendererDescription() const
135{
136 UNIMPLEMENTED();
137 return std::string();
138}
139
140void ContextVk::insertEventMarker(GLsizei length, const char *marker)
141{
142 UNIMPLEMENTED();
143}
144
145void ContextVk::pushGroupMarker(GLsizei length, const char *marker)
146{
147 UNIMPLEMENTED();
148}
149
150void ContextVk::popGroupMarker()
151{
152 UNIMPLEMENTED();
153}
154
155void ContextVk::syncState(const gl::State &state, const gl::State::DirtyBits &dirtyBits)
156{
157 UNIMPLEMENTED();
158}
159
160GLint ContextVk::getGPUDisjoint()
161{
162 UNIMPLEMENTED();
163 return GLint();
164}
165
166GLint64 ContextVk::getTimestamp()
167{
168 UNIMPLEMENTED();
169 return GLint64();
170}
171
172void ContextVk::onMakeCurrent(const gl::ContextState &data)
173{
174 UNIMPLEMENTED();
175}
176
177const gl::Caps &ContextVk::getNativeCaps() const
178{
Jamie Madillacccc6c2016-05-03 17:22:10 -0400179 return mRenderer->getNativeCaps();
Jamie Madill9e54b5a2016-05-25 12:57:39 -0400180}
181
182const gl::TextureCapsMap &ContextVk::getNativeTextureCaps() const
183{
Jamie Madillacccc6c2016-05-03 17:22:10 -0400184 return mRenderer->getNativeTextureCaps();
Jamie Madill9e54b5a2016-05-25 12:57:39 -0400185}
186
187const gl::Extensions &ContextVk::getNativeExtensions() const
188{
Jamie Madillacccc6c2016-05-03 17:22:10 -0400189 return mRenderer->getNativeExtensions();
Jamie Madill9e54b5a2016-05-25 12:57:39 -0400190}
191
192const gl::Limitations &ContextVk::getNativeLimitations() const
193{
Jamie Madillacccc6c2016-05-03 17:22:10 -0400194 return mRenderer->getNativeLimitations();
Jamie Madill9e54b5a2016-05-25 12:57:39 -0400195}
196
197CompilerImpl *ContextVk::createCompiler()
198{
Jamie Madillacccc6c2016-05-03 17:22:10 -0400199 return new CompilerVk();
Jamie Madill9e54b5a2016-05-25 12:57:39 -0400200}
201
Jamie Madillacccc6c2016-05-03 17:22:10 -0400202ShaderImpl *ContextVk::createShader(const gl::ShaderState &state)
Jamie Madill9e54b5a2016-05-25 12:57:39 -0400203{
Jamie Madillacccc6c2016-05-03 17:22:10 -0400204 return new ShaderVk(state);
Jamie Madill9e54b5a2016-05-25 12:57:39 -0400205}
206
Jamie Madillacccc6c2016-05-03 17:22:10 -0400207ProgramImpl *ContextVk::createProgram(const gl::ProgramState &state)
Jamie Madill9e54b5a2016-05-25 12:57:39 -0400208{
Jamie Madillacccc6c2016-05-03 17:22:10 -0400209 return new ProgramVk(state);
Jamie Madill9e54b5a2016-05-25 12:57:39 -0400210}
211
Jamie Madillacccc6c2016-05-03 17:22:10 -0400212FramebufferImpl *ContextVk::createFramebuffer(const gl::FramebufferState &state)
Jamie Madill9e54b5a2016-05-25 12:57:39 -0400213{
Jamie Madillacccc6c2016-05-03 17:22:10 -0400214 return new FramebufferVk(state);
Jamie Madill9e54b5a2016-05-25 12:57:39 -0400215}
216
217TextureImpl *ContextVk::createTexture(const gl::TextureState &state)
218{
Jamie Madillacccc6c2016-05-03 17:22:10 -0400219 return new TextureVk(state);
Jamie Madill9e54b5a2016-05-25 12:57:39 -0400220}
221
222RenderbufferImpl *ContextVk::createRenderbuffer()
223{
Jamie Madillacccc6c2016-05-03 17:22:10 -0400224 return new RenderbufferVk();
Jamie Madill9e54b5a2016-05-25 12:57:39 -0400225}
226
Jamie Madill8f775602016-11-03 16:45:34 -0400227BufferImpl *ContextVk::createBuffer(const gl::BufferState &state)
Jamie Madill9e54b5a2016-05-25 12:57:39 -0400228{
Jamie Madill8f775602016-11-03 16:45:34 -0400229 return new BufferVk(state);
Jamie Madill9e54b5a2016-05-25 12:57:39 -0400230}
231
Jamie Madillacccc6c2016-05-03 17:22:10 -0400232VertexArrayImpl *ContextVk::createVertexArray(const gl::VertexArrayState &state)
Jamie Madill9e54b5a2016-05-25 12:57:39 -0400233{
Jamie Madillacccc6c2016-05-03 17:22:10 -0400234 return new VertexArrayVk(state);
Jamie Madill9e54b5a2016-05-25 12:57:39 -0400235}
236
237QueryImpl *ContextVk::createQuery(GLenum type)
238{
Jamie Madillacccc6c2016-05-03 17:22:10 -0400239 return new QueryVk(type);
Jamie Madill9e54b5a2016-05-25 12:57:39 -0400240}
241
242FenceNVImpl *ContextVk::createFenceNV()
243{
Jamie Madillacccc6c2016-05-03 17:22:10 -0400244 return new FenceNVVk();
Jamie Madill9e54b5a2016-05-25 12:57:39 -0400245}
246
247FenceSyncImpl *ContextVk::createFenceSync()
248{
Jamie Madillacccc6c2016-05-03 17:22:10 -0400249 return new FenceSyncVk();
Jamie Madill9e54b5a2016-05-25 12:57:39 -0400250}
251
Geoff Lang73bd2182016-07-15 13:01:24 -0400252TransformFeedbackImpl *ContextVk::createTransformFeedback(const gl::TransformFeedbackState &state)
Jamie Madill9e54b5a2016-05-25 12:57:39 -0400253{
Geoff Lang73bd2182016-07-15 13:01:24 -0400254 return new TransformFeedbackVk(state);
Jamie Madill9e54b5a2016-05-25 12:57:39 -0400255}
256
257SamplerImpl *ContextVk::createSampler()
258{
Jamie Madillacccc6c2016-05-03 17:22:10 -0400259 return new SamplerVk();
Jamie Madill9e54b5a2016-05-25 12:57:39 -0400260}
261
Sami Väisänene45e53b2016-05-25 10:36:04 +0300262std::vector<PathImpl *> ContextVk::createPaths(GLsizei)
263{
264 return std::vector<PathImpl *>();
265}
266
Jamie Madill9e54b5a2016-05-25 12:57:39 -0400267} // namespace rx