https://bugs.kde.org/show_bug.cgi?id=409460
Bug ID: 409460 Summary: Canvas pan & zoom frame 'spacing' inconsistent Product: krita Version: 4.2.2 Platform: MS Windows OS: MS Windows Status: REPORTED Severity: normal Priority: NOR Component: OpenGL Canvas Assignee: krita-bugs-n...@kde.org Reporter: i...@ralek.art Target Milestone: --- Created attachment 121306 --> https://bugs.kde.org/attachment.cgi?id=121306&action=edit High speed footage of the rendering issue SUMMARY When the canvas is dragged using the pan tool from one side to another at a constant velocity, it consistently 'skips' every other frame. The 'missing' frame is not actually missing or dropped, but rather "timed" incorrectly, producing the effect of a halved FPS. Hard to explain, much easier to show. I used a high speed camera to capture the effect because I was curious what made the canvas seem low FPS despite diagnostics showing 60. STEPS TO REPRODUCE 1. Open any document, large or small, at any zoom level. 2. Using the pan tool, drag the canvas from one side to the other at a constant velocity 3. While it may be hard to see with the naked eye, every other frame is rendered very similarly to the previous frame (but not exactly, it's still an entirely new frame) OBSERVED RESULT If I drag the letter "I" across the canvas, the frames that are rendered look like this when overlayed on top of each other: II II II II II EXPECTED RESULT Because I am dragging at a constant velocity, I would expect the distance between the "I"s (or frames) to be constant, like so: I I I I I I I I ADDITIONAL INFORMATION -A 1000 FPS capture of the effect I'm seeing is attached, notice the 'plus' is not evenly distributed among the frames, but rather alternate from 'small jump -> big jump' -The same effect happens whether the canvas is accelerated with either OpenGL or ANGLE, but not with acceleration turned off (though it may just be too low FPS to notice) -Setting 'max brush render fps' doesn't affect this as it's unrelated to the brush rendering itself. -I was linked this bug: https://bugs.kde.org/show_bug.cgi?id=386620 But I do not believe it is a duplicate, though may be related in some abstract way -When I use a mouse to drag the canvas, the effect seems mitigated or even nonexistent, but instead the canvas occasionally drops several frames each second randomly. (between 5-10 'missing' frames per 60 rendered) Krita Version: 4.2.2 Qt Version (compiled): 5.12.4 Version (loaded): 5.12.4 OS Information Build ABI: x86_64-little_endian-llp64 Build CPU: x86_64 CPU: x86_64 Kernel Type: winnt Kernel Version: 10.0.16299 Pretty Productname: Windows 10 (10.0) Product Type: windows Product Version: 10 OpenGL Info Vendor: "NVIDIA Corporation" Renderer: "GeForce GTX 980 Ti/PCIe/SSE2" Version: "4.6.0 NVIDIA 430.86" Shading language: "4.60 NVIDIA" Requested format: QSurfaceFormat(version 3.0, options QFlags<QSurfaceFormat::FormatOption>(DeprecatedFunctions), depthBufferSize 24, redBufferSize 8, greenBufferSize 8, blueBufferSize 8, alphaBufferSize 8, stencilBufferSize 8, samples -1, swapBehavior QSurfaceFormat::DoubleBuffer, swapInterval 0, colorSpace QSurfaceFormat::DefaultColorSpace, profile QSurfaceFormat::CompatibilityProfile) Current format: QSurfaceFormat(version 4.6, options QFlags<QSurfaceFormat::FormatOption>(DeprecatedFunctions), depthBufferSize 24, redBufferSize 8, greenBufferSize 8, blueBufferSize 8, alphaBufferSize 8, stencilBufferSize 8, samples 0, swapBehavior QSurfaceFormat::DoubleBuffer, swapInterval 1, colorSpace QSurfaceFormat::sRGBColorSpace, profile QSurfaceFormat::CompatibilityProfile) Version: 4.6 Supports deprecated functions true is OpenGL ES: false QPA OpenGL Detection Info supportsDesktopGL: true supportsAngleD3D11: true isQtPreferAngle: false == log == Supported renderers: QFlags(0x2|0x4) Surface format preference list: * QSurfaceFormat(version 3.0, options QFlags<QSurfaceFormat::FormatOption>(DeprecatedFunctions), depthBufferSize 24, redBufferSize 8, greenBufferSize 8, blueBufferSize 8, alphaBufferSize 8, stencilBufferSize 8, samples -1, swapBehavior QSurfaceFormat::DoubleBuffer, swapInterval 0, colorSpace QSurfaceFormat::DefaultColorSpace, profile QSurfaceFormat::CompatibilityProfile) QSurfaceFormat::OpenGL * QSurfaceFormat(version 3.0, options QFlags<QSurfaceFormat::FormatOption>(DeprecatedFunctions), depthBufferSize 24, redBufferSize 8, greenBufferSize 8, blueBufferSize 8, alphaBufferSize 8, stencilBufferSize 8, samples -1, swapBehavior QSurfaceFormat::DoubleBuffer, swapInterval 0, colorSpace QSurfaceFormat::DefaultColorSpace, profile QSurfaceFormat::CompatibilityProfile) QSurfaceFormat::OpenGLES * QSurfaceFormat(version 3.0, options QFlags<QSurfaceFormat::FormatOption>(DeprecatedFunctions), depthBufferSize 24, redBufferSize 16, greenBufferSize 16, blueBufferSize 16, alphaBufferSize 16, stencilBufferSize 8, samples -1, swapBehavior QSurfaceFormat::DoubleBuffer, swapInterval 0, colorSpace QSurfaceFormat::scRGBColorSpace, profile QSurfaceFormat::CompatibilityProfile) QSurfaceFormat::OpenGL * QSurfaceFormat(version 3.0, options QFlags<QSurfaceFormat::FormatOption>(DeprecatedFunctions), depthBufferSize 24, redBufferSize 10, greenBufferSize 10, blueBufferSize 10, alphaBufferSize 2, stencilBufferSize 8, samples -1, swapBehavior QSurfaceFormat::DoubleBuffer, swapInterval 0, colorSpace QSurfaceFormat::bt2020PQColorSpace, profile QSurfaceFormat::CompatibilityProfile) QSurfaceFormat::OpenGL * QSurfaceFormat(version 3.0, options QFlags<QSurfaceFormat::FormatOption>(DeprecatedFunctions), depthBufferSize 24, redBufferSize 16, greenBufferSize 16, blueBufferSize 16, alphaBufferSize 16, stencilBufferSize 8, samples -1, swapBehavior QSurfaceFormat::DoubleBuffer, swapInterval 0, colorSpace QSurfaceFormat::scRGBColorSpace, profile QSurfaceFormat::CompatibilityProfile) QSurfaceFormat::OpenGLES * QSurfaceFormat(version 3.0, options QFlags<QSurfaceFormat::FormatOption>(DeprecatedFunctions), depthBufferSize 24, redBufferSize 10, greenBufferSize 10, blueBufferSize 10, alphaBufferSize 2, stencilBufferSize 8, samples -1, swapBehavior QSurfaceFormat::DoubleBuffer, swapInterval 0, colorSpace QSurfaceFormat::bt2020PQColorSpace, profile QSurfaceFormat::CompatibilityProfile) QSurfaceFormat::OpenGLES Probing format... QSurfaceFormat::DefaultColorSpace QSurfaceFormat::OpenGL Found format: QSurfaceFormat(version 3.0, options QFlags<QSurfaceFormat::FormatOption>(DeprecatedFunctions), depthBufferSize 24, redBufferSize 8, greenBufferSize 8, blueBufferSize 8, alphaBufferSize 8, stencilBufferSize 8, samples -1, swapBehavior QSurfaceFormat::DoubleBuffer, swapInterval 0, colorSpace QSurfaceFormat::DefaultColorSpace, profile QSurfaceFormat::CompatibilityProfile) QSurfaceFormat::OpenGL == end log == Hardware Information Memory: 63 Gb Cores: 12 Swap: C:/Windows/Temp -- You are receiving this mail because: You are watching all bug changes.