Bug 452131 - kinetic scrolling/touch pan not working on cintiq
Summary: kinetic scrolling/touch pan not working on cintiq
Status: RESOLVED NOT A BUG
Alias: None
Product: krita
Classification: Applications
Component: Shortcuts and Canvas Input Settings (show other bugs)
Version: nightly build (please specify the git hash!)
Platform: Microsoft Windows Microsoft Windows
: NOR normal
Target Milestone: ---
Assignee: Krita Bugs
URL:
Keywords:
Depends on:
Blocks:
 
Reported: 2022-03-31 23:34 UTC by til.schmitter
Modified: 2022-06-26 09:29 UTC (History)
2 users (show)

See Also:
Latest Commit:
Version Fixed In:
Sentry Crash Report:


Attachments
correct left vs broken right (kritarc) (22.69 KB, image/png)
2022-04-06 23:24 UTC, til.schmitter
Details

Note You need to log in before you can comment on or make changes to this bug.
Description til.schmitter 2022-03-31 23:34:45 UTC
SUMMARY
i updated to 5.1.0-prealpha (git 959bf28) from 5.1.0-prealpha (git 2599950) today and now kinetic scrolling doesn't work anymore to move or rotate the canvas. it used to work on 2599950.


STEPS TO REPRODUCE
i'm using:
  cintiq 13 pro

  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

WHAT I ALREADY TRIED
- enabling/disabling windows ink
- disabling/enabling kinetic scrolling 
      (kinetic scrolling is set to "on touch drag")
- replacing this with a gesture: canvas input settings->pan canvas->gesture/one finger drag/pan mode
      while this works to an extent, it takes a while for krita to register the one finger drag as a gesture to start pan mode, 
      so there is a noticable delay + this doesn't help with rotating the canvas
Comment 1 til.schmitter 2022-04-06 00:14:20 UTC
additionally, panning the canvas is more laggy and takes up to 16% of my cpu instead of just 10% on older versions. here's a more complete system info log of my setup: 

Krita

 Version: 5.1.0-prealpha (git c14d3bb)
 Installation type: installer / portable package
 Languages: en_US, en, en_US, en, en_US, en, en_US, en, en_US, en, en_US, en, de_DE, de, en_US, en
 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

OpenGL Info
 
  Vendor:  "ATI Technologies Inc." 
  Renderer:  "AMD Radeon RX 5700 XT" 
  Version:  "4.6.14761 Compatibility Profile Context 21.30.23.04 30.0.13023.4001" 
  Shading language:  "4.60" 
  Requested format:  QSurfaceFormat(version 2.0, options QFlags<QSurfaceFormat::FormatOption>(), depthBufferSize -1, redBufferSize -1, greenBufferSize -1, blueBufferSize -1, alphaBufferSize -1, stencilBufferSize -1, samples -1, swapBehavior QSurfaceFormat::DefaultSwapBehavior, swapInterval 1, colorSpace QSurfaceFormat::DefaultColorSpace, profile  QSurfaceFormat::NoProfile) 
  Current format:  QSurfaceFormat(version 4.6, options QFlags<QSurfaceFormat::FormatOption>(DeprecatedFunctions), depthBufferSize 0, 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 
  supportsBufferMapping: true 
  supportsBufferInvalidation: true 
  Extensions: 
     "GL_ARB_texture_mirror_clamp_to_edge" 
     "GL_ARB_shader_objects" 
     "GL_ARB_gpu_shader_fp64" 
     "GL_ARB_compressed_texture_pixel_storage" 
     "GL_AMD_sparse_texture" 
     "GL_ARB_fragment_layer_viewport" 
     "WGL_EXT_swap_control" 
     "GL_EXT_texture_swizzle" 
     "GL_IBM_texture_mirrored_repeat" 
     "GL_EXT_texture_buffer_object" 
     "GL_EXT_memory_object_win32" 
     "GL_ARB_depth_texture" 
     "GL_EXT_texture_compression_s3tc" 
     "GL_ARB_conservative_depth" 
     "GL_AMD_shader_trace" 
     "GL_ARB_occlusion_query2" 
     "GL_EXT_texture3D" 
     "GL_EXT_semaphore" 
     "GL_AMD_debug_output" 
     "GL_EXT_texture_compression_latc" 
     "GL_EXT_texture_snorm" 
     "GL_EXT_secondary_color" 
     "GL_ARB_framebuffer_sRGB" 
     "GL_ARB_cull_distance" 
     "GL_ARB_map_buffer_range" 
     "GL_ARB_pixel_buffer_object" 
     "GL_ARB_texture_query_lod" 
     "GL_AMD_framebuffer_sample_positions" 
     "GL_ATI_texture_mirror_once" 
     "GL_AMD_sample_positions" 
     "GL_ARB_clear_texture" 
     "GL_ARB_indirect_parameters" 
     "GL_EXT_shader_integer_mix" 
     "GL_NV_texture_barrier" 
     "GL_ARB_texture_env_dot3" 
     "GL_ARB_separate_shader_objects" 
     "GL_NV_blend_square" 
     "GL_ARB_vertex_buffer_object" 
     "GL_ARB_get_texture_sub_image" 
     "GL_ARB_internalformat_query" 
     "GL_AMD_transform_feedback4" 
     "GL_ARB_shader_subroutine" 
     "GL_EXT_draw_range_elements" 
     "GL_EXT_timer_query" 
     "GL_ARB_texture_env_combine" 
     "GL_ARB_half_float_pixel" 
     "GL_AMD_shader_stencil_value_export" 
     "GL_ARB_explicit_attrib_location" 
     "GL_ARB_sampler_objects" 
     "GL_ARB_texture_buffer_range" 
     "GL_ARB_shadow" 
     "GL_AMD_shader_atomic_counter_ops" 
     "GL_NV_alpha_to_coverage_dither_control" 
     "GL_ARB_shading_language_include" 
     "GL_EXT_texture_object" 
     "GL_ARB_get_program_binary" 
     "GL_ARB_texture_barrier" 
     "GL_ARB_gpu_shader5" 
     "GL_ARB_texture_compression_rgtc" 
     "GL_EXT_texture_sRGB" 
     "GL_EXT_packed_float" 
     "GL_ATI_draw_buffers" 
     "GL_ARB_vertex_program" 
     "GL_ARB_texture_rectangle" 
     "GL_ARB_viewport_array" 
     "GL_ARB_texture_border_clamp" 
     "GL_EXT_stencil_wrap" 
     "GL_ARB_transpose_matrix" 
     "GL_NV_float_buffer" 
     "GL_EXT_shadow_funcs" 
     "GL_ARB_vertex_type_10f_11f_11f_rev" 
     "GL_ARB_texture_view" 
     "GL_ARB_texture_rg" 
     "GL_ARB_draw_buffers_blend" 
     "GL_EXT_framebuffer_multisample" 
     "GL_ARB_multi_bind" 
     "GL_ARB_framebuffer_object" 
     "GL_AMD_vertex_shader_layer" 
     "GL_AMD_query_buffer_object" 
     "GL_EXT_copy_texture" 
     "GL_EXT_depth_bounds_test" 
     "GL_ARB_conditional_render_inverted" 
     "GL_ARB_texture_snorm" 
     "GL_ARB_color_buffer_float" 
     "GL_ARB_occlusion_query" 
     "GL_ARB_geometry_shader4" 
     "GL_ARB_fragment_coord_conventions" 
     "GL_ARB_texture_buffer_object" 
     "GL_EXT_separate_specular_color" 
     "GL_ARB_transform_feedback_overflow_query" 
     "GL_EXT_texture_env_dot3" 
     "GL_WIN_swap_hint" 
     "GL_ARB_instanced_arrays" 
     "GL_EXT_draw_buffers2" 
     "GL_EXT_draw_instanced" 
     "GL_ARB_shader_atomic_counter_ops" 
     "GL_AMD_pinned_memory" 
     "GL_ARB_texture_storage" 
     "GL_EXT_gpu_program_parameters" 
     "GL_AMD_shader_trinary_minmax" 
     "GL_EXT_multi_draw_arrays" 
     "GL_EXT_framebuffer_blit" 
     "GL_EXT_rescale_normal" 
     "GL_NV_depth_buffer_float" 
     "GL_ARB_texture_mirrored_repeat" 
     "GL_ARB_shader_texture_lod" 
     "GL_ARB_shader_stencil_export" 
     "GL_ARB_multitexture" 
     "GL_ARB_texture_swizzle" 
     "GL_EXT_texture_mirror_clamp" 
     "GL_NV_conditional_render" 
     "GL_ARB_debug_output" 
     "GL_EXT_texture_rectangle" 
     "GL_ARB_blend_func_extended" 
     "GL_INTEL_fragment_shader_ordering" 
     "GL_ARB_window_pos" 
     "GL_ARB_vertex_array_bgra" 
     "GL_ARB_shadow_ambient" 
     "GL_ARB_texture_env_add" 
     "GL_EXT_vertex_attrib_64bit" 
     "GL_ARB_sparse_texture" 
     "GL_ARB_point_parameters" 
     "GL_ARB_ES2_compatibility" 
     "GL_ARB_shader_draw_parameters" 
     "GL_ARB_fragment_program_shadow" 
     "GL_ARB_ES3_1_compatibility" 
     "GL_ATI_envmap_bumpmap" 
     "GL_ARB_stencil_texturing" 
     "GL_KHR_parallel_shader_compile" 
     "GL_AMD_texture_cube_map_array" 
     "GL_ARB_texture_gather" 
     "GL_AMD_texture_texture4" 
     "GL_AMD_performance_monitor" 
     "GL_ATI_separate_stencil" 
     "GL_AMD_gpu_shader_int64" 
     "GL_EXT_vertex_array" 
     "GL_EXT_texture_array" 
     "GL_ARB_framebuffer_no_attachments" 
     "GL_AMD_gcn_shader" 
     "GL_ARB_seamless_cubemap_per_texture" 
     "GL_AMD_stencil_operation_extended" 
     "GL_ARB_shading_language_100" 
     "GL_AMD_gpu_shader_half_float_fetch" 
     "GL_ARB_sample_shading" 
     "GL_EXT_blend_minmax" 
     "GL_KHR_debug" 
     "GL_EXT_transform_feedback" 
     "GL_EXT_texture_sRGB_RG8" 
     "GL_AMD_name_gen_delete" 
     "GL_EXT_fog_coord" 
     "GL_ARB_transform_feedback_instanced" 
     "GL_ARB_texture_stencil8" 
     "GL_EXT_bgra" 
     "GL_EXT_geometry_shader4" 
     "GL_AMD_draw_buffers_blend" 
     "GL_AMD_occlusion_query_event" 
     "GL_ARB_texture_multisample" 
     "GL_ARB_multisample" 
     "GL_ARB_parallel_shader_compile" 
     "GL_ARB_half_float_vertex" 
     "GL_ARB_timer_query" 
     "GL_AMD_transform_feedback3_lines_triangles" 
     "GL_NV_copy_depth_to_color" 
     "GL_ARB_texture_compression_bptc" 
     "GL_EXT_texture_integer" 
     "GL_ARB_provoking_vertex" 
     "GL_ARB_depth_clamp" 
     "GL_EXT_texture_edge_clamp" 
     "GL_ARB_ES3_compatibility" 
     "GL_ARB_shader_ballot" 
     "GL_AMD_multi_draw_indirect" 
     "GL_ARB_draw_elements_base_vertex" 
     "GL_ARB_sync" 
     "GL_KHR_robustness" 
     "GL_ARB_compatibility" 
     "GL_ARB_buffer_storage" 
     "GL_EXT_packed_pixels" 
     "GL_KHR_context_flush_control" 
     "GL_ARB_texture_non_power_of_two" 
     "GL_ARB_copy_image" 
     "GL_ARB_draw_instanced" 
     "GL_ARB_direct_state_access" 
     "GL_ARB_vertex_shader" 
     "GL_EXT_texture_env_combine" 
     "GL_EXT_texture_compression_rgtc" 
     "GL_ARB_bindless_texture" 
     "GL_ARB_robust_buffer_access_behavior" 
     "GL_AMD_shader_stencil_export" 
     "GL_EXT_texture_shared_exponent" 
     "GL_AMD_interleaved_elements" 
     "GL_ATI_texture_env_combine3" 
     "GL_KHR_no_error" 
     "GL_EXT_framebuffer_sRGB" 
     "GL_EXT_vertex_array_bgra" 
     "GL_ARB_vertex_attrib_binding" 
     "GL_ARB_shader_precision" 
     "GL_ARB_map_buffer_alignment" 
     "GL_OES_EGL_image" 
     "GL_ARB_texture_cube_map" 
     "GL_ARB_depth_buffer_float" 
     "GL_NV_half_float" 
     "GL_ARB_draw_indirect" 
     "GL_ARB_shader_viewport_layer_array" 
     "GL_KTX_buffer_region" 
     "GL_EXT_framebuffer_object" 
     "GL_ARB_point_sprite" 
     "GL_AMD_conservative_depth" 
     "GL_ARB_shader_image_size" 
     "GL_EXT_gpu_shader4" 
     "GL_NV_shader_atomic_int64" 
     "GL_ARB_draw_buffers" 
     "GL_AMD_blend_minmax_factor" 
     "GL_ARB_transform_feedback3" 
     "GL_EXT_texture_cube_map" 
     "GL_ARB_explicit_uniform_location" 
     "GL_ARB_shader_image_load_store" 
     "GL_AMD_depth_clamp_separate" 
     "GL_EXT_direct_state_access" 
     "GL_ARB_enhanced_layouts" 
     "GL_ARB_clear_buffer_object" 
     "GL_ATI_texture_float" 
     "GL_EXT_texture_filter_anisotropic" 
     "GL_NV_copy_image" 
     "GL_ARB_clip_control" 
     "GL_ARB_texture_buffer_object_rgb32" 
     "GL_ARB_arrays_of_arrays" 
     "GL_ARB_shader_atomic_counters" 
     "GL_EXT_texgen_reflection" 
     "GL_ATI_fragment_shader" 
     "GL_ARB_shading_language_420pack" 
     "GL_ARB_tessellation_shader" 
     "GL_ARB_texture_rgb10_a2ui" 
     "GL_ARB_multi_draw_indirect" 
     "GL_ARB_fragment_program" 
     "GL_EXT_texture_sRGB_R8" 
     "GL_ARB_vertex_array_object" 
     "GL_EXT_semaphore_win32" 
     "GL_ARB_gl_spirv" 
     "GL_ARB_vertex_attrib_64bit" 
     "GL_ARB_texture_env_crossbar" 
     "GL_EXT_texture_lod" 
     "GL_ARB_shader_storage_buffer_object" 
     "GL_EXT_blend_equation_separate" 
     "GL_EXT_provoking_vertex" 
     "GL_NV_primitive_restart" 
     "GL_ARB_query_buffer_object" 
     "GL_EXT_shader_image_load_store" 
     "GL_ARB_copy_buffer" 
     "GL_AMD_sparse_texture_pool" 
     "GL_EXT_point_parameters" 
     "GL_AMDX_debug_output" 
     "GL_EXT_texture_compression_bptc" 
     "GL_EXT_polygon_offset_clamp" 
     "GL_ARB_seamless_cube_map" 
     "GL_EXT_texture_sRGB_decode" 
     "GL_EXT_copy_buffer" 
     "GL_AMD_seamless_cubemap_per_texture" 
     "GL_NV_texgen_reflection" 
     "GL_EXT_memory_object" 
     "GL_AMD_vertex_shader_viewport_index" 
     "GL_ARB_derivative_control" 
     "GL_NV_explicit_multisample" 
     "GL_EXT_packed_depth_stencil" 
     "GL_ARB_shading_language_packing" 
     "GL_ARB_texture_compression" 
     "GL_EXT_histogram" 
     "GL_EXT_blend_subtract" 
     "GL_EXT_blend_func_separate" 
     "GL_EXT_compiled_vertex_array" 
     "GL_EXT_blend_color" 
     "GL_ARB_base_instance" 
     "GL_AMD_gpu_shader_int16" 
     "GL_ARB_pipeline_statistics_query" 
     "GL_ARB_vertex_type_2_10_10_10_rev" 
     "GL_ARB_polygon_offset_clamp" 
     "GL_EXT_pixel_buffer_object" 
     "GL_EXT_texture_lod_bias" 
     "GL_AMD_gpu_shader_half_float" 
     "GL_EXT_texture_env_add" 
     "GL_ARB_program_interface_query" 
     "GL_ARB_texture_query_levels" 
     "GL_ARB_shader_group_vote" 
     "GL_ARB_shader_texture_image_samples" 
     "GL_ARB_invalidate_subdata" 
     "GL_ARB_texture_float" 
     "GL_SGIS_texture_edge_clamp" 
     "GL_ARB_texture_storage_multisample" 
     "GL_ARB_texture_cube_map_array" 
     "GL_ATI_texture_compression_3dc" 
     "GL_ARB_shader_bit_encoding" 
     "GL_ARB_uniform_buffer_object" 
     "GL_ARB_sparse_buffer" 
     "GL_SUN_multi_draw_arrays" 
     "GL_SGIS_generate_mipmap" 
     "GL_ARB_internalformat_query2" 
     "GL_ARB_compute_shader" 
     "GL_ARB_fragment_shader" 
     "GL_ARB_transform_feedback2" 
     "GL_KHR_robust_buffer_access_behavior" 
     "GL_ARB_spirv_extensions" 
     "GL_EXT_texture_storage" 
     "GL_SGIS_texture_lod" 
     "GL_EXT_bindable_uniform" 
     "GL_ARB_imaging" 
     "GL_EXT_abgr" 
     "GL_EXT_subtexture" 

QPA OpenGL Detection Info 
  supportsDesktopGL: true 
  supportsAngleD3D11: true 
  isQtPreferAngle: true 

useBufferInvalidation (config option): false


Hardware Information

  GPU Acceleration: none
  Memory: 24521 Mb
  Number of Cores: 8
  Swap Location: C:/Users/Til/AppData/Local/Temp

Current Settings

  Current Swap Location: C:/Users/Til/AppData/Local/Temp
  Current Swap Location writable: true
  Undo Enabled: true
  Undo Stack Limit: 75
  Use OpenGL: false
  Use OpenGL Texture Buffer: true
  Disable Vector Optimizations: false
  Disable AVX Optimizations: false
  Canvas State: OPENGL_SUCCESS
  Autosave Interval: 360
  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.25
		Resolution in pixels: 1536x864
		Manufacturer: 
		Model: 
		Refresh Rate: 60
	Screen: 1
		Name: \\.\DISPLAY1
		Depth: 32
		Scale: 1.25
		Resolution in pixels: 1536x864
		Manufacturer: 
		Model: 
		Refresh Rate: 59
Comment 2 til.schmitter 2022-04-06 00:41:42 UTC
actually, some of this fixed itself after i deleted the krita config files. it's no longer laggy but i still can't pan with one finger
Comment 3 til.schmitter 2022-04-06 22:33:54 UTC
things i found connected to this:
-when i switch from a previous version to this it gives me the popup where it says "The resource database scheme has changed. Krita will backup your database and create a new database." (even though i should already be on the new database version unless you changed it again.)
-touch rotation and touch painting don't work until i delete both kritarc and kritadisplayrc in appdata\local.
-after i delete these files touch rotation works again but everything else still doesn't. 
-i also have to delete these files again to get rotation working on the older version after i switch back.

->this makes me assume that the resource update breaks some config files.
Comment 4 til.schmitter 2022-04-06 22:57:33 UTC
touch rotation breaks again after i change: settings->general->tools->kinetic scrolling from "on middle-click drag" to "on touch drag".
changing the setting back to "on middle-click drag" doesn't revert the behavior. only deleting kritadisplayrc fixes this.

kritadisplayrc WORKING:
[General]
canvasState=TRY_OPENGL

kritadisplayrc BROKEN:
[General]
EnableHiDPI=true
OpenGLRenderer=auto
canvasState=OPENGL_SUCCESS
EnableHiDPIFractionalScaling=false
LogUsage=true
rootSurfaceFormat=bt709-g22
Comment 5 til.schmitter 2022-04-06 23:24:02 UTC
Created attachment 148008 [details]
correct left vs broken right (kritarc)

another method to break touch rotation is to enable/disable touch painting (maybe just changing any of the "tool" settings breaks touch rotation). i went and checked which part of the settings breaks in particular and found that the order in which rgb+color space for mdiBackgroundColorXML get saved is messed up (correct on the left, wrong on the right). 

i assume there's another settings file that breaks that's not saved in appdata\local, because no matter what files i deleted here, i couldn't get touch drag kinetic scrolling to work again using only one finger.
Comment 6 til.schmitter 2022-04-06 23:30:39 UTC
LastBackGroundColor also seems to be saved in a different order, but this doesn't seem to break anything
Comment 7 Alvin Wong 2022-04-15 16:49:04 UTC
Uh, there seems to be a lot of things mixed in this report... Anyway, considering only the issue of panning the canvas, first I shall clarify that "kinetic scrolling" only applies to the dockers and certain lists, for example the layers docker and the brush preset chooser. The touch gestures for manipulating the canvas are configured separately from the "Canvas Input Settings" section.

Krita's touch gesture support has been somewhat revamped in https://invent.kde.org/graphics/krita/-/merge_requests/1341, which consequently means the canvas input settings needs to be reset in order to get the new default gestures, or the user can add the gestures themself. This also makes the input profile somewhat incompatible between old and new versions.

We are in the process of changing some stuff regarding touch gestures in https://invent.kde.org/graphics/krita/-/merge_requests/1395. For the time being, when moving to nightly you may have to reassign some of the gestures yourself.
Comment 8 til.schmitter 2022-06-26 09:29:08 UTC
i just read this again (didn't really get it the first time haha) but thank you, it works again now