diff -U2 -r /var/lib/copr-rpmbuild/results/openmw-git/upstream-unpacked/Source0/openmw-master/CMakeLists.txt /var/lib/copr-rpmbuild/results/openmw-git/srpm-unpacked/openmw-master.tar.bz2-extract/openmw-master/CMakeLists.txt --- /var/lib/copr-rpmbuild/results/openmw-git/upstream-unpacked/Source0/openmw-master/CMakeLists.txt 2026-04-03 23:27:00.000000000 +0000 +++ /var/lib/copr-rpmbuild/results/openmw-git/srpm-unpacked/openmw-master.tar.bz2-extract/openmw-master/CMakeLists.txt 2026-04-03 18:46:06.000000000 +0000 @@ -83,5 +83,5 @@ set(OPENMW_VERSION_MINOR 51) set(OPENMW_VERSION_RELEASE 0) -set(OPENMW_LUA_API_REVISION 125) +set(OPENMW_LUA_API_REVISION 124) set(OPENMW_POSTPROCESSING_API_REVISION 5) diff -U2 -r /var/lib/copr-rpmbuild/results/openmw-git/upstream-unpacked/Source0/openmw-master/apps/openmw/mwlua/camerabindings.cpp /var/lib/copr-rpmbuild/results/openmw-git/srpm-unpacked/openmw-master.tar.bz2-extract/openmw-master/apps/openmw/mwlua/camerabindings.cpp --- /var/lib/copr-rpmbuild/results/openmw-git/upstream-unpacked/Source0/openmw-master/apps/openmw/mwlua/camerabindings.cpp 2026-04-03 23:27:00.000000000 +0000 +++ /var/lib/copr-rpmbuild/results/openmw-git/srpm-unpacked/openmw-master.tar.bz2-extract/openmw-master/apps/openmw/mwlua/camerabindings.cpp 2026-04-03 18:46:06.000000000 +0000 @@ -66,10 +66,7 @@ api["setExtraYaw"] = [camera](const FiniteFloat v) { camera->setExtraYaw(-v); }; api["setExtraRoll"] = [camera](const FiniteFloat v) { camera->setExtraRoll(-v); }; - api["setProjectionOffset"] - = [renderingManager](const osg::Vec2f& v) { renderingManager->setProjectionOffset(v); }; api["getExtraPitch"] = [camera]() { return -camera->getExtraPitch(); }; api["getExtraYaw"] = [camera]() { return -camera->getExtraYaw(); }; api["getExtraRoll"] = [camera]() { return -camera->getExtraRoll(); }; - api["getProjectionOffset"] = [renderingManager]() { return renderingManager->getProjectionOffset(); }; api["getThirdPersonDistance"] = [camera]() { return camera->getCameraDistance(); }; diff -U2 -r /var/lib/copr-rpmbuild/results/openmw-git/upstream-unpacked/Source0/openmw-master/apps/openmw/mwrender/npcanimation.cpp /var/lib/copr-rpmbuild/results/openmw-git/srpm-unpacked/openmw-master.tar.bz2-extract/openmw-master/apps/openmw/mwrender/npcanimation.cpp --- /var/lib/copr-rpmbuild/results/openmw-git/upstream-unpacked/Source0/openmw-master/apps/openmw/mwrender/npcanimation.cpp 2026-04-03 23:27:00.000000000 +0000 +++ /var/lib/copr-rpmbuild/results/openmw-git/srpm-unpacked/openmw-master.tar.bz2-extract/openmw-master/apps/openmw/mwrender/npcanimation.cpp 2026-04-03 18:46:06.000000000 +0000 @@ -43,5 +43,4 @@ #include "postprocessor.hpp" #include "renderbin.hpp" -#include "renderingmanager.hpp" #include "rotatecontroller.hpp" #include "vismask.hpp" @@ -367,7 +366,6 @@ { public: - OverrideFieldOfViewCallback(float fov, RenderingManager* renderingManager) + OverrideFieldOfViewCallback(float fov) : mFov(fov) - , mRenderingManager(renderingManager) { } @@ -382,13 +380,4 @@ osg::ref_ptr newProjectionMatrix = new osg::RefMatrix(); newProjectionMatrix->makePerspective(fov, aspect, zNear, zFar); - - osg::Vec2f offset = mRenderingManager->getProjectionOffset(); - - double offsetX = (offset.x() / cv->getViewport()->width()) * 2.0; - double offsetY = (offset.y() / cv->getViewport()->height()) * 2.0; - - const osg::Matrix translation = osg::Matrix::translate(offsetX, offsetY, 0.0); - newProjectionMatrix->postMult(translation); - osg::ref_ptr invertedOldMatrix = cv->getProjectionMatrix(); invertedOldMatrix = new osg::RefMatrix(osg::RefMatrix::inverse(*invertedOldMatrix)); @@ -406,5 +395,4 @@ private: float mFov; - RenderingManager* mRenderingManager; }; @@ -536,6 +524,5 @@ { mObjectRoot->setNodeMask(Mask_FirstPerson); - mObjectRoot->addCullCallback(new OverrideFieldOfViewCallback( - mFirstPersonFieldOfView, MWBase::Environment::get().getWorld()->getRenderingManager())); + mObjectRoot->addCullCallback(new OverrideFieldOfViewCallback(mFirstPersonFieldOfView)); } diff -U2 -r /var/lib/copr-rpmbuild/results/openmw-git/upstream-unpacked/Source0/openmw-master/apps/openmw/mwrender/postprocessor.cpp /var/lib/copr-rpmbuild/results/openmw-git/srpm-unpacked/openmw-master.tar.bz2-extract/openmw-master/apps/openmw/mwrender/postprocessor.cpp --- /var/lib/copr-rpmbuild/results/openmw-git/upstream-unpacked/Source0/openmw-master/apps/openmw/mwrender/postprocessor.cpp 2026-04-03 23:27:00.000000000 +0000 +++ /var/lib/copr-rpmbuild/results/openmw-git/srpm-unpacked/openmw-master.tar.bz2-extract/openmw-master/apps/openmw/mwrender/postprocessor.cpp 2026-04-03 18:46:06.000000000 +0000 @@ -647,7 +647,5 @@ if (!pass->getTarget().empty()) { - // FIXME: https://gitlab.com/OpenMW/openmw/-/work_items/9034 - std::string target = pass->getTarget(); - auto& renderTarget = technique->getRenderTargetsMap()[target]; + auto& renderTarget = technique->getRenderTargetsMap()[pass->getTarget()]; subPass.mSize = renderTarget.mSize; subPass.mRenderTexture = renderTarget.mTarget; diff -U2 -r /var/lib/copr-rpmbuild/results/openmw-git/upstream-unpacked/Source0/openmw-master/apps/openmw/mwrender/renderingmanager.cpp /var/lib/copr-rpmbuild/results/openmw-git/srpm-unpacked/openmw-master.tar.bz2-extract/openmw-master/apps/openmw/mwrender/renderingmanager.cpp --- /var/lib/copr-rpmbuild/results/openmw-git/upstream-unpacked/Source0/openmw-master/apps/openmw/mwrender/renderingmanager.cpp 2026-04-03 23:27:00.000000000 +0000 +++ /var/lib/copr-rpmbuild/results/openmw-git/srpm-unpacked/openmw-master.tar.bz2-extract/openmw-master/apps/openmw/mwrender/renderingmanager.cpp 2026-04-03 18:46:06.000000000 +0000 @@ -9,5 +9,4 @@ #include #include -#include #include @@ -1126,29 +1125,21 @@ const int height = Settings::video().mResolutionY; - const double aspect = (height == 0) ? 1.0 : static_cast(width) / height; - const float fov = mFieldOfViewOverridden ? mFieldOfViewOverride : mFieldOfView; + double aspect = (height == 0) ? 1.0 : static_cast(width) / height; + float fov = mFieldOfView; + if (mFieldOfViewOverridden) + fov = mFieldOfViewOverride; - osg::Matrix unreversedProjectionMatrix = osg::Matrix::perspective(fov, aspect, mNearClip, mViewDistance); + mViewer->getCamera()->setProjectionMatrixAsPerspective(fov, aspect, mNearClip, mViewDistance); - osg::Matrix projectionMatrix = SceneUtil::AutoDepth::isReversed() - ? SceneUtil::getReversedZProjectionMatrixAsPerspective(fov, aspect, mNearClip, mViewDistance) - : unreversedProjectionMatrix; - - double offsetX = (mProjectionOffset.x() / width) * 2.0; - double offsetY = (mProjectionOffset.y() / height) * 2.0; - - const osg::Matrix translation = osg::Matrix::translate(offsetX, offsetY, 0.0); - - projectionMatrix.postMult(translation); - unreversedProjectionMatrix.postMult(translation); - - // We always set the cameras projection matrix to the un-reversed variant for correct frustum culling. - mViewer->getCamera()->setProjectionMatrix(unreversedProjectionMatrix); - - mPerViewUniformStateUpdater->setProjectionMatrix(projectionMatrix); + if (SceneUtil::AutoDepth::isReversed()) + { + mPerViewUniformStateUpdater->setProjectionMatrix( + SceneUtil::getReversedZProjectionMatrixAsPerspective(fov, aspect, mNearClip, mViewDistance)); + } + else + mPerViewUniformStateUpdater->setProjectionMatrix(mViewer->getCamera()->getProjectionMatrix()); mSharedUniformStateUpdater->setNear(mNearClip); mSharedUniformStateUpdater->setFar(mViewDistance); - if (Stereo::getStereo()) { diff -U2 -r /var/lib/copr-rpmbuild/results/openmw-git/upstream-unpacked/Source0/openmw-master/apps/openmw/mwrender/renderingmanager.hpp /var/lib/copr-rpmbuild/results/openmw-git/srpm-unpacked/openmw-master.tar.bz2-extract/openmw-master/apps/openmw/mwrender/renderingmanager.hpp --- /var/lib/copr-rpmbuild/results/openmw-git/upstream-unpacked/Source0/openmw-master/apps/openmw/mwrender/renderingmanager.hpp 2026-04-03 23:27:00.000000000 +0000 +++ /var/lib/copr-rpmbuild/results/openmw-git/srpm-unpacked/openmw-master.tar.bz2-extract/openmw-master/apps/openmw/mwrender/renderingmanager.hpp 2026-04-03 18:46:06.000000000 +0000 @@ -280,11 +280,4 @@ void setNavMeshMode(Settings::NavMeshRenderMode value); - void setProjectionOffset(const osg::Vec2f& offset) - { - mProjectionOffset = offset; - mUpdateProjectionMatrix = true; - } - osg::Vec2f getProjectionOffset() const { return mProjectionOffset; } - private: void updateTextureFiltering(); @@ -362,5 +355,4 @@ bool mUpdateProjectionMatrix = false; bool mNight = false; - osg::Vec2f mProjectionOffset; const MWWorld::GroundcoverStore& mGroundCoverStore; diff -U2 -r /var/lib/copr-rpmbuild/results/openmw-git/upstream-unpacked/Source0/openmw-master/docs/source/reference/modding/settings/lua.rst /var/lib/copr-rpmbuild/results/openmw-git/srpm-unpacked/openmw-master.tar.bz2-extract/openmw-master/docs/source/reference/modding/settings/lua.rst --- /var/lib/copr-rpmbuild/results/openmw-git/upstream-unpacked/Source0/openmw-master/docs/source/reference/modding/settings/lua.rst 2026-04-03 23:27:00.000000000 +0000 +++ /var/lib/copr-rpmbuild/results/openmw-git/srpm-unpacked/openmw-master.tar.bz2-extract/openmw-master/docs/source/reference/modding/settings/lua.rst 2026-04-03 18:46:06.000000000 +0000 @@ -25,5 +25,5 @@ :type: boolean :range: true, false - :default: false + :default: true Enables Lua profiler. diff -U2 -r /var/lib/copr-rpmbuild/results/openmw-git/upstream-unpacked/Source0/openmw-master/files/lua_api/openmw/camera.lua /var/lib/copr-rpmbuild/results/openmw-git/srpm-unpacked/openmw-master.tar.bz2-extract/openmw-master/files/lua_api/openmw/camera.lua --- /var/lib/copr-rpmbuild/results/openmw-git/upstream-unpacked/Source0/openmw-master/files/lua_api/openmw/camera.lua 2026-04-03 23:27:00.000000000 +0000 +++ /var/lib/copr-rpmbuild/results/openmw-git/srpm-unpacked/openmw-master.tar.bz2-extract/openmw-master/files/lua_api/openmw/camera.lua 2026-04-03 18:46:06.000000000 +0000 @@ -127,15 +127,4 @@ --- --- Applies an offset to the cameras projection matrix, measured in pixels. --- Small offsets of up to roughly 2 pixels are safe, large offsets are only for debugging and will cause visual glitches. --- @function [parent=#camera] setProjectionOffset --- @param openmw.util#Vector2 offset - ---- --- The offset applied to the cameras projection matrix, in pixels. --- @function [parent=#camera] getProjectionOffset --- @return openmw.util#Vector2 - ---- -- Set the camera position; can be used only if camera is in Static mode. -- @function [parent=#camera] setStaticPosition diff -U2 -r /var/lib/copr-rpmbuild/results/openmw-git/upstream-unpacked/Source0/openmw-master/files/settings-default.cfg /var/lib/copr-rpmbuild/results/openmw-git/srpm-unpacked/openmw-master.tar.bz2-extract/openmw-master/files/settings-default.cfg --- /var/lib/copr-rpmbuild/results/openmw-git/upstream-unpacked/Source0/openmw-master/files/settings-default.cfg 2026-04-03 23:27:00.000000000 +0000 +++ /var/lib/copr-rpmbuild/results/openmw-git/srpm-unpacked/openmw-master.tar.bz2-extract/openmw-master/files/settings-default.cfg 2026-04-03 18:46:06.000000000 +0000 @@ -1183,5 +1183,5 @@ # Enable Lua profiler -lua profiler = false +lua profiler = true # No ownership tracking for allocations below or equal this size. diff -U2 -r /var/lib/copr-rpmbuild/results/openmw-git/upstream-unpacked/Source0/openmw-master/scripts/integration_tests.py /var/lib/copr-rpmbuild/results/openmw-git/srpm-unpacked/openmw-master.tar.bz2-extract/openmw-master/scripts/integration_tests.py --- /var/lib/copr-rpmbuild/results/openmw-git/upstream-unpacked/Source0/openmw-master/scripts/integration_tests.py 2026-04-03 23:27:00.000000000 +0000 +++ /var/lib/copr-rpmbuild/results/openmw-git/srpm-unpacked/openmw-master.tar.bz2-extract/openmw-master/scripts/integration_tests.py 2026-04-03 18:46:06.000000000 +0000 @@ -81,5 +81,4 @@ "[Lua]\n" f"memory limit = {1024 * 1024 * 256}\n" - "lua profiler = true\n" ) stdout_lines = list()