mirror of
https://github.com/overte-org/overte.git
synced 2025-04-20 02:03:57 +02:00
FIxing the mini mirror perf issue and the gamma correction
This commit is contained in:
parent
b9a2b2778e
commit
a42f9a5d0e
5 changed files with 32 additions and 6 deletions
|
@ -578,8 +578,6 @@ void OpenGLDisplayPlugin::present() {
|
|||
|
||||
PROFILE_RANGE_EX(__FUNCTION__, 0xff00ff00, (uint64_t)presentCount())
|
||||
|
||||
glEnable(GL_FRAMEBUFFER_SRGB);
|
||||
|
||||
updateTextures();
|
||||
if (_currentSceneTexture) {
|
||||
// Write all layers to a local framebuffer
|
||||
|
|
|
@ -75,7 +75,7 @@ bool StereoDisplayPlugin::internalActivate() {
|
|||
_container->removeMenu(FRAMERATE);
|
||||
|
||||
_screen = qApp->primaryScreen();
|
||||
// _container->setFullscreen(_screen);
|
||||
_container->setFullscreen(_screen);
|
||||
|
||||
return Parent::internalActivate();
|
||||
}
|
||||
|
|
|
@ -201,10 +201,22 @@ void RenderDeferredTask::run(const SceneContextPointer& sceneContext, const Rend
|
|||
if (!(renderContext->args && renderContext->args->hasViewFrustum())) {
|
||||
return;
|
||||
}
|
||||
RenderArgs* args = renderContext->args;
|
||||
auto config = std::static_pointer_cast<Config>(renderContext->jobConfig);
|
||||
|
||||
gpu::doInBatch(args->_context, [&](gpu::Batch& batch) {
|
||||
_gpuTimer.begin(batch);
|
||||
});
|
||||
|
||||
for (auto job : _jobs) {
|
||||
job.run(sceneContext, renderContext);
|
||||
}
|
||||
|
||||
gpu::doInBatch(args->_context, [&](gpu::Batch& batch) {
|
||||
_gpuTimer.end(batch);
|
||||
});
|
||||
|
||||
config->gpuTime = _gpuTimer.getAverage();
|
||||
}
|
||||
|
||||
void DrawDeferred::run(const SceneContextPointer& sceneContext, const RenderContextPointer& renderContext, const Inputs& inputs) {
|
||||
|
@ -416,7 +428,7 @@ void DrawBackgroundDeferred::run(const SceneContextPointer& sceneContext, const
|
|||
});
|
||||
args->_batch = nullptr;
|
||||
|
||||
std::static_pointer_cast<Config>(renderContext->jobConfig)->gpuTime = _gpuTimer.getAverage();
|
||||
// std::static_pointer_cast<Config>(renderContext->jobConfig)->gpuTime = _gpuTimer.getAverage();
|
||||
}
|
||||
|
||||
void Blit::run(const SceneContextPointer& sceneContext, const RenderContextPointer& renderContext, const gpu::FramebufferPointer& srcFramebuffer) {
|
||||
|
|
|
@ -173,13 +173,29 @@ public:
|
|||
void run(const render::SceneContextPointer& sceneContext, const render::RenderContextPointer& renderContext, const gpu::FramebufferPointer& srcFramebuffer);
|
||||
};
|
||||
|
||||
class RenderDeferredTaskConfig : public render::Task::Config {
|
||||
Q_OBJECT
|
||||
Q_PROPERTY(double gpuTime READ getGpuTime)
|
||||
public:
|
||||
double getGpuTime() { return gpuTime; }
|
||||
|
||||
protected:
|
||||
friend class RenderDeferredTask;
|
||||
double gpuTime;
|
||||
};
|
||||
|
||||
class RenderDeferredTask : public render::Task {
|
||||
public:
|
||||
using Config = RenderDeferredTaskConfig;
|
||||
RenderDeferredTask(render::CullFunctor cullFunctor);
|
||||
|
||||
void configure(const Config& config) {}
|
||||
void run(const render::SceneContextPointer& sceneContext, const render::RenderContextPointer& renderContext);
|
||||
|
||||
using JobModel = Model<RenderDeferredTask>;
|
||||
using JobModel = Model<RenderDeferredTask, Config>;
|
||||
|
||||
protected:
|
||||
gpu::RangeTimer _gpuTimer;
|
||||
};
|
||||
|
||||
#endif // hifi_RenderDeferredTask_h
|
||||
|
|
|
@ -521,7 +521,7 @@ public:
|
|||
|
||||
template <class... A>
|
||||
Model(const Varying& input, A&&... args) :
|
||||
Concept(nullptr), _data(Data(std::forward<A>(args)...)), _input(input), _output(Output()) {
|
||||
Concept(std::make_shared<C>()), _data(Data(std::forward<A>(args)...)), _input(input), _output(Output()) {
|
||||
_config = _data._config;
|
||||
std::static_pointer_cast<Config>(_config)->init(&_data);
|
||||
applyConfiguration();
|
||||
|
|
Loading…
Reference in a new issue