SUMMARY stuttering performance while using touch and rotate with two fingers while transforming something (all transform modes) STEPS TO REPRODUCE - draw something - activate the transform tool or lasso select - use two fingers to zoom and rotate OBSERVED RESULT very inconsistent performance. sometimes i get 120 fps, sometimes less than 10. using while i paint normally works fine. this happens regardless of canvas size. EXPECTED RESULT around 70 fps. SOFTWARE/OS VERSIONS Windows: 10 GPU: AMD Radeon RX 5700XT CPU: i7-6700 Tablet: Cintiq pro 13 -------------------------------------------- DETAILED INFO Krita Version: 5.2.0-prealpha (git 0f478fc) Installation type: installer / portable package Hidpi: true Qt Version (compiled): 5.12.12 Version (loaded): 5.12.12 OS Information Build ABI: x86_64-little_endian-llp64 Build CPU: x86_64 CPU: x86_64 Kernel Type: winnt Kernel Version: 10.0.19043 Pretty Productname: Windows 10 (10.0) Product Type: windows Product Version: 10 Locale Languages: en_US, en_US C locale: C QLocale current: en QLocale system: de QTextCodec for locale: UTF-8 Process ACP: 65001 (UTF-8) System locale default ACP: 1252 (ANSI - Lateinisch I) OpenGL Info Vendor: "Google Inc. (AMD)" Renderer: "ANGLE (AMD, AMD Radeon RX 5700 XT Direct3D11 vs_5_0 ps_5_0, D3D11-30.0.13023.4001)" Version: "OpenGL ES 3.0.0 (ANGLE 2.1.0 git hash: f2280c0c5f93+krita_qt5.12.12)" Shading language: "OpenGL ES GLSL ES 3.00 (ANGLE 2.1.0 git hash: f2280c0c5f93+krita_qt5.12.12)" Requested format: 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) Current format: QSurfaceFormat(version 3.0, options QFlags<QSurfaceFormat::FormatOption>(), depthBufferSize 24, redBufferSize 16, greenBufferSize 16, blueBufferSize 16, alphaBufferSize 16, stencilBufferSize 8, samples 0, swapBehavior QSurfaceFormat::DefaultSwapBehavior, swapInterval 0, colorSpace QSurfaceFormat::scRGBColorSpace, profile QSurfaceFormat::NoProfile) Version: 3.0 Supports deprecated functions false is OpenGL ES: true supportsBufferMapping: true supportsBufferInvalidation: false forceDisableTextureBuffers: true Extensions: "GL_EXT_texture_storage" "GL_OES_compressed_ETC2_sRGB8_texture" "GL_EXT_unpack_subimage" "GL_OES_vertex_array_object" "GL_EXT_debug_label" "GL_EXT_blend_minmax" "GL_CHROMIUM_copy_compressed_texture" "GL_EXT_debug_marker" "GL_EXT_texture_compression_dxt1" "GL_OES_mapbuffer" "GL_EXT_multisampled_render_to_texture" "GL_EXT_robustness" "GL_EXT_texture_norm16" "GL_OVR_multiview2" "GL_EXT_sRGB" "GL_ANGLE_multiview_multisample" "GL_EXT_multi_draw_indirect" "GL_OES_texture_float_linear" "GL_ANGLE_translated_shader_source" "GL_ANGLE_program_cache_control" "GL_OES_texture_half_float" "GL_ANGLE_robust_client_memory" "GL_ANGLE_memory_size" "GL_ANGLE_framebuffer_multisample" "GL_EXT_texture_filter_anisotropic" "GL_OES_EGL_image" "GL_OES_compressed_ETC2_punchthroughA_RGBA8_texture" "GL_OES_compressed_ETC2_RGBA8_texture" "GL_ANGLE_base_vertex_base_instance" "GL_OES_packed_depth_stencil" "GL_ANGLE_texture_usage" "GL_EXT_color_buffer_float" "" "GL_OES_texture_float" "GL_ANGLE_lossy_etc_decode" "GL_ANGLE_framebuffer_blit" "GL_OES_texture_half_float_linear" "GL_ANGLE_depth_texture" "GL_EXT_texture_type_2_10_10_10_REV" "GL_ANGLE_request_extension" "GL_EXT_read_format_bgra" "GL_OES_standard_derivatives" "GL_EXT_disjoint_timer_query" "GL_EXT_draw_buffers_indexed" "GL_EXT_texture_compression_rgtc" "GL_EXT_shader_texture_lod" "GL_EXT_texture_format_BGRA8888" "GL_OVR_multiview" "GL_ANGLE_texture_compression_dxt3" "GL_CHROMIUM_sync_query" "GL_EXT_clip_control" "GL_ANGLE_client_arrays" "GL_ANGLE_copy_texture_3d" "GL_OES_depth24" "GL_OES_element_index_uint" "GL_OES_get_program_binary" "GL_ANGLE_base_vertex_base_instance_shader_builtin" "GL_EXT_EGL_image_external_wrap_modes" "GL_EXT_color_buffer_half_float" "GL_OES_texture_border_clamp" "GL_ANGLE_provoking_vertex" "GL_OES_compressed_EAC_R11_unsigned_texture" "GL_EXT_texture_compression_s3tc_srgb" "GL_OES_fbo_render_mipmap" "GL_ANGLE_texture_compression_dxt5" "GL_CHROMIUM_lose_context" "GL_NV_pack_subimage" "GL_OES_compressed_EAC_R11_signed_texture" "GL_AMD_performance_monitor" "GL_OES_texture_npot" "GL_ANGLE_multi_draw" "GL_OES_compressed_EAC_RG11_unsigned_texture" "GL_ANGLE_instanced_arrays" "GL_OES_EGL_image_external" "GL_OES_compressed_ETC2_punchthroughA_sRGB8_alpha_texture" "GL_OES_compressed_ETC2_sRGB8_alpha8_texture" "GL_KHR_parallel_shader_compile" "GL_EXT_blend_func_extended" "GL_NV_framebuffer_blit" "GL_NV_fence" "GL_OES_depth32" "GL_OES_surfaceless_context" "GL_EXT_discard_framebuffer" "GL_EXT_draw_elements_base_vertex" "GL_EXT_texture_compression_bptc" "GL_WEBGL_video_texture" "GL_EXT_instanced_arrays" "GL_OES_draw_buffers_indexed" "GL_OES_texture_stencil8" "GL_OES_rgb8_rgba8" "GL_CHROMIUM_bind_uniform_location" "GL_OES_compressed_ETC2_RGB8_texture" "GL_EXT_occlusion_query_boolean" "GL_ANGLE_get_tex_level_parameter" "GL_NV_EGL_stream_consumer_external" "GL_OES_draw_elements_base_vertex" "GL_ANGLE_texture_multisample" "GL_CHROMIUM_bind_generates_resource" "GL_OES_EGL_image_external_essl3" "GL_OES_compressed_EAC_RG11_signed_texture" "GL_EXT_float_blend" "GL_EXT_draw_buffers" "GL_EXT_map_buffer_range" "GL_KHR_debug" "GL_NV_pixel_buffer_object" "GL_ANGLE_get_serialized_context_string" "GL_EXT_frag_depth" "GL_CHROMIUM_copy_texture" "GL_ANGLE_pack_reverse_row_order" "GL_EXT_texture_rg" QPA OpenGL Detection Info supportsDesktopGL: true supportsAngleD3D11: true isQtPreferAngle: true useBufferInvalidation (config option): false Hardware Information GPU Acceleration: auto Memory: 24521 Mb Number of Cores: 8 Swap Location: C:/Users/Til/AppData/Local/Temp Built for: sse2 Base instruction set: sse2 Supported instruction sets: fma3+avx2 avx2 fma3+avx avx fma4 fma3+sse4.2 sse4.2 sse4.1 ssse3 sse3 sse2 Current Settings Current Swap Location: C:/Users/Til/AppData/Local/Temp Current Swap Location writable: true Undo Enabled: true Undo Stack Limit: 200 Use OpenGL: true Use OpenGL Texture Buffer: false Disable Vector Optimizations: false Disable AVX Optimizations: false Canvas State: OPENGL_SUCCESS Autosave Interval: 420 Use Backup Files: false Number of Backups Kept: 1 Backup File Suffix: ~ Backup Location: Same Folder as the File Backup Location writable: false Use Win8 Pointer Input: false Use RightMiddleTabletButton Workaround: false Levels of Detail Enabled: false Use Zip64: false Display Information Number of screens: 2 Screen: 0 Name: \\.\DISPLAY2 Depth: 32 Scale: 1 Position: 0, 0 Resolution in pixels: 1920x1080 Manufacturer: Model: Refresh Rate: 60 Screen: 1 Name: \\.\DISPLAY1 Depth: 32 Scale: 1 Position: 0, 1080 Resolution in pixels: 1920x1080 Manufacturer: Model: Refresh Rate: 59 Current Settings Current Swap Location: C:/Users/Til/AppData/Local/Temp Current Swap Location writable: true Undo Enabled: true Undo Stack Limit: 200 Use OpenGL: true Use OpenGL Texture Buffer: false Disable Vector Optimizations: false Disable AVX Optimizations: false Canvas State: OPENGL_SUCCESS Autosave Interval: 420 Use Backup Files: false Number of Backups Kept: 1 Backup File Suffix: ~ Backup Location: Same Folder as the File Backup Location writable: false Use Win8 Pointer Input: false Use RightMiddleTabletButton Workaround: false Levels of Detail Enabled: false Use Zip64: false
I tried to reproduce it on macOS an couldn't get stuttering rotation, however transform tool can stutter a bit if "Instant preview -> In-Stack preview in Transform Tool" is activated in preferences, this is a wanted feature by a lot of users but comes with some performance hit. Does unchecking this option fixes your issue? As for the fps count, how are you measuring it?
> however transform tool can stutter a bit if "Instant preview -> In-Stack > preview in Transform Tool" is activated in preferences, this is a wanted > feature by a lot of users but comes with some performance hit. Does > unchecking this option fixes your issue? this was already disabled and enabling it doesn't change anything either. i looked in task manager and it doesn't seem like it's my PC struggling to keep up since resource usage is normal. > As for the fps count, how are you measuring it? performance->advanced->debug logging of opengl framerate. i know framerate is inconsistent here and that can be normal while idle, but while i zoom and rotate, the fps should be high. the stutter is also noticable without the fps counter.
Thanks for your comment! Automatically switching the status of this bug to REPORTED so that the KDE team knows that the bug is ready to get confirmed. In the future you may also do this yourself when providing needed information.
I also cannot reproduce this issue, with krita 5.2.9 using the touch screen of my yoga laptop. Everything is pretty smooth. I get a pretty consistent 55 fps. I'm afraid there isn't much more we can do with this report :-(
ok i tested more thoroughly this time and found out it only breaks when using "wacom gestures" on my cintiq pro 13. wacom gestures are bad anyway so i try to keep them off but they turn themselves on automatically every so often. i think this bug is a non-issue though since it's so specific. all my 2 other touch devices worked fine (linux fedora 41/win11 with windows ink)