Bug 449092 - Fuzzy canvas with trilinear/high quality filtering
Summary: Fuzzy canvas with trilinear/high quality filtering
Status: CONFIRMED
Alias: None
Product: krita
Classification: Applications
Component: OpenGL Canvas (show other bugs)
Version: 5.0.2
Platform: Other Linux
: NOR normal
Target Milestone: ---
Assignee: Krita Bugs
URL:
Keywords:
Depends on:
Blocks:
 
Reported: 2022-01-24 18:58 UTC by grum999
Modified: 2022-02-11 14:19 UTC (History)
2 users (show)

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


Attachments
Example KO with fuzzy canvas (trilinear filtering) (1021.84 KB, video/webm)
2022-01-24 18:58 UTC, grum999
Details
Example OK with canvas properly rendered (biilinear filtering) (856.71 KB, video/webm)
2022-01-24 18:59 UTC, grum999
Details

Note You need to log in before you can comment on or make changes to this bug.
Description grum999 2022-01-24 18:58:53 UTC
Created attachment 145874 [details]
Example KO with fuzzy canvas (trilinear filtering)

SUMMARY

In some situation, canvas is fuzzy/blurry.

The case occurs when Canvas Graphics Acceleration is enabled, with Open GL, for *trilinear filtering* and *high quality filtering* modes.
With *bilinear filtering* and *nearest neighbour* everything is fine.

STEPS TO REPRODUCE
There's different method to reproduce it (painting, move tool, ...)

Here's the "move tool" steps (easy to reproduce and easy to check the problem):
1) create a big document (A4 @ 600dpi here)
2) zoom to fit
3) draw some abstract thing with *b) basic-5* brush for example
4) select move tool
5) start to move
6) zoom in ==> canvas is fuzzy, and it's not possible to work with displayed content
7) select another layer/go back to current layer
8) start to move: canvas is now properly rendered

OBSERVED RESULT
If *trilinear filtering* or *high quality filtering* is active, on step 7) canvas is fuzzy/blurry
If *bilinear filtering* or *nearest neighbour* is active, on step 7) canvas is properly rendered

EXPECTED RESULT
In all case, whatever the scale filter applied, the canvas must be properly rendered

SOFTWARE/OS VERSIONS
------------------------------------------------
Krita

 Version: 5.0.2
 Languages: en_GB, en, fr, en_GB, en
 Hidpi: false

Qt

  Version (compiled): 5.12.12
  Version (loaded): 5.12.12

OS Information

  Build ABI: x86_64-little_endian-lp64
  Build CPU: x86_64
  CPU: x86_64
  Kernel Type: linux
  Kernel Version: 4.19.0-18-amd64
  Pretty Productname: Debian GNU/Linux 10 (buster)
  Product Type: debian
  Product Version: 10
  Desktop: KDE

OpenGL Info
 
  Vendor:  "NVIDIA Corporation" 
  Renderer:  "GeForce GTX 1060 3GB/PCIe/SSE2" 
  Version:  "4.6.0 NVIDIA 418.211.00" 
  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 -1, swapBehavior QSurfaceFormat::DoubleBuffer, swapInterval 0, colorSpace QSurfaceFormat::DefaultColorSpace, profile  QSurfaceFormat::CompatibilityProfile) 
     Version: 4.6
     Supports deprecated functions true 
     is OpenGL ES: false 
  supportsBufferMapping: true 
  supportsBufferInvalidation: true 
  Extensions: 
     "GL_EXT_memory_object_fd" 
     "GL_IBM_texture_mirrored_repeat" 
     "GL_ARB_internalformat_query" 
     "GL_KHR_debug" 
     "GL_NV_register_combiners2" 
     "GL_ARB_viewport_array" 
     "GL_NV_bindless_multi_draw_indirect_count" 
     "GL_NV_register_combiners" 
     "GL_KTX_buffer_region" 
     "GL_ARB_ES3_compatibility" 
     "GL_ARB_blend_func_extended" 
     "GL_ATI_draw_buffers" 
     "GL_NV_vertex_program" 
     "GL_ARB_gpu_shader5" 
     "GL_ARB_framebuffer_sRGB" 
     "GL_ARB_sample_locations" 
     "GL_ARB_base_instance" 
     "GL_EXT_fog_coord" 
     "GL_NV_fill_rectangle" 
     "GL_EXT_framebuffer_multisample_blit_scaled" 
     "GL_NV_gpu_program4" 
     "GL_ARB_fragment_layer_viewport" 
     "GL_NV_parameter_buffer_object2" 
     "GL_ARB_shader_atomic_counter_ops" 
     "GL_NV_conservative_raster" 
     "GL_NV_blend_minmax_factor" 
     "GL_NV_gpu_shader5" 
     "GL_ARB_texture_env_combine" 
     "GL_NV_packed_depth_stencil" 
     "GL_ARB_post_depth_coverage" 
     "GL_ARB_texture_compression_bptc" 
     "GL_ARB_half_float_vertex" 
     "GL_NVX_blend_equation_advanced_multi_draw_buffers" 
     "GL_ARB_draw_buffers" 
     "GL_ARB_shadow" 
     "GL_NV_copy_depth_to_color" 
     "GL_ARB_vertex_array_object" 
     "GL_NV_compute_program5" 
     "GL_NV_vertex_buffer_unified_memory" 
     "GL_ARB_texture_query_lod" 
     "GL_NV_fragment_program_option" 
     "GL_ARB_derivative_control" 
     "GL_NV_shader_thread_shuffle" 
     "GL_NV_viewport_swizzle" 
     "GL_ARB_texture_query_levels" 
     "GL_EXTX_framebuffer_mixed_formats" 
     "GL_ARB_sampler_objects" 
     "GL_ARB_transform_feedback_instanced" 
     "GL_ARB_window_pos" 
     "GL_NV_conservative_raster_dilate" 
     "GL_ARB_texture_multisample" 
     "GL_ARB_timer_query" 
     "GL_ARB_sample_shading" 
     "GL_ARB_draw_elements_base_vertex" 
     "GL_ARB_conservative_depth" 
     "GL_KHR_parallel_shader_compile" 
     "GL_ARB_shader_atomic_counters" 
     "GL_ARB_texture_buffer_range" 
     "GL_EXT_gpu_program_parameters" 
     "GL_ARB_fragment_program_shadow" 
     "GL_EXT_framebuffer_blit" 
     "GL_ARB_pixel_buffer_object" 
     "GL_EXT_raster_multisample" 
     "GL_ARB_texture_stencil8" 
     "GL_EXT_texture_storage" 
     "GL_ARB_robustness" 
     "GL_ARB_shader_group_vote" 
     "GL_ARB_compatibility" 
     "GL_ARB_vertex_type_10f_11f_11f_rev" 
     "GL_ARB_multi_bind" 
     "GL_ARB_seamless_cube_map" 
     "GL_EXT_texture_filter_minmax" 
     "GL_ARB_compressed_texture_pixel_storage" 
     "GL_NV_multisample_coverage" 
     "GL_ARB_multitexture" 
     "GL_NV_texture_multisample" 
     "GL_EXT_separate_specular_color" 
     "GL_NV_vertex_array_range" 
     "GL_ARB_texture_border_clamp" 
     "GL_EXT_texture_compression_dxt1" 
     "GL_ARB_point_parameters" 
     "GL_ARB_transform_feedback2" 
     "GL_ARB_texture_mirrored_repeat" 
     "GL_NV_gpu_program_fp64" 
     "GL_ARB_texture_gather" 
     "GL_NV_fragment_shader_interlock" 
     "GL_NV_fragment_coverage_to_color" 
     "GL_NV_shader_atomic_int64" 
     "GL_ARB_draw_buffers_blend" 
     "GL_NVX_gpu_memory_info" 
     "GL_EXT_texture_sRGB_R8" 
     "GL_ARB_texture_float" 
     "GL_NV_memory_attachment" 
     "GL_NV_framebuffer_multisample_coverage" 
     "GL_NV_sample_locations" 
     "GL_ARB_texture_env_crossbar" 
     "GL_NV_copy_image" 
     "GL_NV_texture_rectangle_compressed" 
     "GL_OVR_multiview" 
     "GL_NV_fragment_program" 
     "GL_NV_framebuffer_mixed_samples" 
     "GL_ARB_cull_distance" 
     "GL_EXT_separate_shader_objects" 
     "GL_NV_gpu_program5_mem_extended" 
     "GL_NV_vertex_program2_option" 
     "GL_ARB_pipeline_statistics_query" 
     "GL_ARB_sparse_texture_clamp" 
     "GL_ARB_clip_control" 
     "GL_ARB_fragment_shader_interlock" 
     "GL_ARB_texture_cube_map" 
     "GL_EXT_texture_edge_clamp" 
     "GL_KHR_robust_buffer_access_behavior" 
     "GL_NV_uniform_buffer_unified_memory" 
     "GL_EXT_texture_array" 
     "GL_EXT_vertex_attrib_64bit" 
     "GL_ARB_invalidate_subdata" 
     "GL_EXT_framebuffer_multisample" 
     "GL_ARB_spirv_extensions" 
     "GL_NV_viewport_array2" 
     "GL_NV_vertex_program1_1" 
     "GL_EXT_geometry_shader4" 
     "GL_NV_pixel_data_range" 
     "GL_EXT_shader_integer_mix" 
     "GL_ARB_vertex_array_bgra" 
     "GL_NV_alpha_to_coverage_dither_control" 
     "GL_EXT_packed_float" 
     "GL_EXT_rescale_normal" 
     "GL_ARB_fragment_coord_conventions" 
     "GL_ARB_texture_cube_map_array" 
     "GL_ARB_shader_draw_parameters" 
     "GL_ARB_texture_filter_anisotropic" 
     "GL_ARB_sparse_buffer" 
     "GL_ARB_gpu_shader_int64" 
     "GL_NV_internalformat_sample_query" 
     "GL_ARB_texture_mirror_clamp_to_edge" 
     "GL_ARB_ES3_2_compatibility" 
     "GL_ARB_vertex_program" 
     "GL_ARB_texture_compression_rgtc" 
     "GL_EXT_draw_range_elements" 
     "GL_ARB_clear_buffer_object" 
     "GL_ARB_texture_rectangle" 
     "GL_NV_shader_storage_buffer_object" 
     "GL_ARB_texture_env_dot3" 
     "GL_EXT_texture_mirror_clamp" 
     "GL_NV_gpu_program5" 
     "GL_ARB_framebuffer_object" 
     "GL_ARB_shader_subroutine" 
     "GL_ARB_shader_texture_lod" 
     "GL_ARB_copy_image" 
     "GL_ARB_texture_env_add" 
     "GL_NV_transform_feedback" 
     "GL_EXT_blend_equation_separate" 
     "GL_ARB_shader_texture_image_samples" 
     "GL_NV_path_rendering" 
     "GL_EXT_bgra" 
     "GL_ARB_ES3_1_compatibility" 
     "GL_EXT_compiled_vertex_array" 
     "GL_ARB_texture_barrier" 
     "GL_NV_gpu_program4_1" 
     "GL_NV_vertex_attrib_integer_64bit" 
     "GL_KHR_blend_equation_advanced" 
     "GL_ARB_robust_buffer_access_behavior" 
     "GL_ARB_vertex_type_2_10_10_10_rev" 
     "GL_ARB_internalformat_query2" 
     "GL_NV_texture_shader3" 
     "GL_KHR_no_error" 
     "GL_ARB_enhanced_layouts" 
     "GL_EXT_post_depth_coverage" 
     "GL_EXT_texture_integer" 
     "GL_ARB_vertex_buffer_object" 
     "GL_ARB_shader_precision" 
     "GL_ARB_ES2_compatibility" 
     "GL_NV_vdpau_interop2" 
     "GL_EXT_x11_sync_object" 
     "GL_ARB_shader_clock" 
     "GL_ARB_draw_indirect" 
     "GL_ATI_texture_mirror_once" 
     "GL_ARB_shader_bit_encoding" 
     "GL_NV_texture_rectangle" 
     "GL_ARB_program_interface_query" 
     "GL_ARB_shader_ballot" 
     "GL_ARB_tessellation_shader" 
     "GL_ARB_sparse_texture" 
     "GL_NV_depth_clamp" 
     "GL_ARB_depth_buffer_float" 
     "GL_ARB_texture_storage" 
     "GL_EXT_gpu_shader4" 
     "GL_EXT_texture_lod_bias" 
     "GL_NV_conservative_raster_pre_snap_triangles" 
     "GL_NV_transform_feedback2" 
     "GL_NV_blend_square" 
     "GL_ARB_explicit_attrib_location" 
     "GL_KHR_context_flush_control" 
     "GL_EXT_depth_bounds_test" 
     "GL_ARB_geometry_shader4" 
     "GL_EXT_multi_draw_arrays" 
     "GL_EXT_texture_env_add" 
     "GL_AMD_vertex_shader_viewport_index" 
     "GL_EXT_transform_feedback2" 
     "GL_ARB_get_texture_sub_image" 
     "GL_EXT_packed_pixels" 
     "GL_EXT_texture_sRGB_decode" 
     "GL_EXT_texture_compression_latc" 
     "GL_SGIS_texture_lod" 
     "GL_EXT_semaphore" 
     "GL_ARB_transform_feedback_overflow_query" 
     "GL_NV_query_resource" 
     "GL_EXT_draw_buffers2" 
     "GL_EXT_shadow_funcs" 
     "GL_ARB_shader_objects" 
     "GL_EXT_pixel_buffer_object" 
     "GL_ARB_draw_instanced" 
     "GL_ARB_half_float_pixel" 
     "GL_ARB_shader_storage_buffer_object" 
     "GL_NV_shader_atomic_counters" 
     "GL_NV_fragment_program2" 
     "GL_NV_shader_atomic_float" 
     "GL_EXT_import_sync_object" 
     "GL_ARB_shader_image_size" 
     "GL_EXT_texture_shared_exponent" 
     "GL_ARB_texture_buffer_object" 
     "GL_EXT_semaphore_fd" 
     "GL_NV_geometry_shader_passthrough" 
     "GL_KHR_robustness" 
     "GL_NV_blend_equation_advanced" 
     "GL_EXT_texture_env_dot3" 
     "GL_NV_half_float" 
     "GL_ARB_arrays_of_arrays" 
     "GL_NV_float_buffer" 
     "GL_EXT_direct_state_access" 
     "GL_ARB_texture_compression" 
     "GL_EXT_memory_object" 
     "GL_ARB_indirect_parameters" 
     "GL_EXT_Cg_shader" 
     "GL_EXT_vertex_array" 
     "GL_NV_multisample_filter_hint" 
     "GL_ARB_query_buffer_object" 
     "GL_NV_ES3_1_compatibility" 
     "GL_ARB_multisample" 
     "GL_EXT_texture_filter_anisotropic" 
     "GL_NV_bindless_texture" 
     "GL_ARB_uniform_buffer_object" 
     "GL_EXT_draw_instanced" 
     "GL_NV_explicit_multisample" 
     "GL_S3_s3tc" 
     "GL_NV_texture_compression_vtc" 
     "GL_EXT_vertex_array_bgra" 
     "GL_ARB_point_sprite" 
     "GL_EXT_blend_minmax" 
     "GL_ARB_compute_variable_group_size" 
     "GL_SGIX_shadow" 
     "GL_EXT_provoking_vertex" 
     "GL_ARB_framebuffer_no_attachments" 
     "GL_ARB_shading_language_include" 
     "GL_EXT_texture_swizzle" 
     "GL_NV_geometry_shader4" 
     "GL_NV_fog_distance" 
     "GL_ARB_vertex_attrib_64bit" 
     "GL_NV_command_list" 
     "GL_ARB_occlusion_query2" 
     "GL_NV_sample_mask_override_coverage" 
     "GL_EXT_bindable_uniform" 
     "GL_EXT_blend_func_separate" 
     "GL_ARB_occlusion_query" 
     "GL_NV_texture_shader" 
     "GL_NV_vertex_program2" 
     "GL_EXT_texture3D" 
     "GL_NV_texture_shader2" 
     "GL_ARB_texture_buffer_object_rgb32" 
     "GL_EXT_framebuffer_object" 
     "GL_ARB_explicit_uniform_location" 
     "GL_NV_shader_atomic_float64" 
     "GL_NVX_conditional_render" 
     "GL_ARB_instanced_arrays" 
     "GL_ARB_debug_output" 
     "GL_NV_light_max_exponent" 
     "GL_ARB_texture_rg" 
     "GL_ARB_multi_draw_indirect" 
     "GL_NV_vertex_program3" 
     "GL_EXT_shader_image_load_store" 
     "GL_ARB_transform_feedback3" 
     "GL_NV_stereo_view_rendering" 
     "GL_ARB_texture_filter_minmax" 
     "GL_ARB_shading_language_100" 
     "GL_KHR_blend_equation_advanced_coherent" 
     "GL_EXT_polygon_offset_clamp" 
     "GL_SGIS_generate_mipmap" 
     "GL_ARB_sparse_texture2" 
     "GL_ARB_vertex_attrib_binding" 
     "GL_NV_parameter_buffer_object" 
     "GL_ARB_texture_view" 
     "GL_NVX_nvenc_interop" 
     "GL_NV_blend_equation_advanced_coherent" 
     "GL_NV_point_sprite" 
     "GL_ARB_texture_storage_multisample" 
     "GL_EXT_timer_query" 
     "GL_EXT_shader_image_load_formatted" 
     "GL_EXT_stencil_two_side" 
     "GL_EXT_texture_compression_s3tc" 
     "GL_NV_fence" 
     "GL_NV_path_rendering_shared_edge" 
     "GL_EXT_stencil_wrap" 
     "GL_ARB_shader_viewport_layer_array" 
     "GL_EXT_secondary_color" 
     "GL_ARB_map_buffer_alignment" 
     "GL_NV_draw_texture" 
     "GL_EXT_texture_cube_map" 
     "GL_ARB_texture_rgb10_a2ui" 
     "GL_EXT_blend_subtract" 
     "GL_IBM_rasterpos_clip" 
     "GL_ARB_parallel_shader_compile" 
     "GL_SGIX_depth_texture" 
     "GL_ARB_gpu_shader_fp64" 
     "GL_NV_vertex_array_range2" 
     "GL_ARB_imaging" 
     "GL_ARB_depth_texture" 
     "GL_ARB_buffer_storage" 
     "GL_NV_shader_atomic_fp16_vector" 
     "GL_SUN_slice_accum" 
     "GL_ARB_copy_buffer" 
     "GL_EXT_texture_buffer_object" 
     "GL_NV_feature_query" 
     "GL_ARB_map_buffer_range" 
     "GL_NV_query_resource_tag" 
     "GL_ARB_shading_language_420pack" 
     "GL_ARB_conditional_render_inverted" 
     "GL_ARB_color_buffer_float" 
     "GL_ARB_stencil_texturing" 
     "GL_ARB_polygon_offset_clamp" 
     "GL_NV_bindless_multi_draw_indirect" 
     "GL_NV_texture_env_combine4" 
     "GL_NV_primitive_restart" 
     "GL_NV_shader_buffer_load" 
     "GL_EXT_packed_depth_stencil" 
     "GL_ARB_clear_texture" 
     "GL_AMD_vertex_shader_layer" 
     "GL_EXT_texture_object" 
     "GL_EXT_framebuffer_sRGB" 
     "GL_ARB_depth_clamp" 
     "GL_EXT_window_rectangles" 
     "GL_ARB_shader_image_load_store" 
     "GL_EXT_sparse_texture2" 
     "GL_NV_vdpau_interop" 
     "GL_ARB_fragment_shader" 
     "GL_ARB_bindless_texture" 
     "GL_OVR_multiview2" 
     "GL_ARB_separate_shader_objects" 
     "GL_EXT_texture_sRGB" 
     "GL_EXT_point_parameters" 
     "GL_ARB_get_program_binary" 
     "GL_ARB_seamless_cubemap_per_texture" 
     "GL_ARB_direct_state_access" 
     "GL_NV_draw_vulkan_image" 
     "GL_NV_occlusion_query" 
     "GL_ARB_vertex_shader" 
     "GL_NV_conditional_render" 
     "GL_AMD_seamless_cubemap_per_texture" 
     "GL_ARB_fragment_program" 
     "GL_ARB_texture_non_power_of_two" 
     "GL_EXT_texture_lod" 
     "GL_EXT_abgr" 
     "GL_EXT_texture_compression_rgtc" 
     "GL_NV_texgen_reflection" 
     "GL_ARB_shading_language_packing" 
     "GL_AMD_multi_draw_indirect" 
     "GL_NV_ES1_1_compatibility" 
     "GL_EXT_blend_color" 
     "GL_ARB_compute_shader" 
     "GL_ATI_texture_float" 
     "GL_NV_clip_space_w_scaling" 
     "GL_NV_shader_thread_group" 
     "GL_NV_robustness_video_memory_purge" 
     "GL_ARB_transpose_matrix" 
     "GL_ARB_texture_swizzle" 
     "GL_EXT_texture_env_combine" 
     "GL_NV_depth_buffer_float" 
     "GL_ARB_gl_spirv" 
     "GL_ARB_provoking_vertex" 
     "GL_NV_texture_barrier" 
     "GL_ARB_sync" 

QPA OpenGL Detection Info 
  supportsDesktopGL: true 
  supportsOpenGLES: true 
  isQtPreferOpenGLES: false 

useBufferInvalidation (config option): false


Hardware Information

  GPU Acceleration: auto
  Memory: 64389 Mb
  Number of Cores: 24
  Swap Location: /tmp

Current Settings

  Current Swap Location: /tmp
  Current Swap Location writable: true
  Undo Enabled: true
  Undo Stack Limit: 350
  Use OpenGL: true
  Use OpenGL Texture Buffer: true
  Disable Vector Optimizations: false
  Disable AVX Optimizations: false
  Canvas State: OPENGL_SUCCESS
  Autosave Interval: 60
  Use Backup Files: true
  Number of Backups Kept: 4
  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: DP-4
		Depth: 24
		Scale: 1
		Resolution in pixels: 3840x2160
		Manufacturer: ViewSonic Corporation
		Model: VP2780 SERIES
		Refresh Rate: 59
	Screen: 1
		Name: HDMI-0
		Depth: 24
		Scale: 1
		Resolution in pixels: 1920x1080
		Manufacturer: Iiyama North America
		Model: PL2410HD-
		Refresh Rate: 60

Current Settings

  Current Swap Location: /tmp
  Current Swap Location writable: true
  Undo Enabled: true
  Undo Stack Limit: 350
  Use OpenGL: true
  Use OpenGL Texture Buffer: true
  Disable Vector Optimizations: false
  Disable AVX Optimizations: false
  Canvas State: OPENGL_SUCCESS
  Autosave Interval: 60
  Use Backup Files: true
  Number of Backups Kept: 4
  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


Current Settings

  Current Swap Location: /tmp
  Current Swap Location writable: true
  Undo Enabled: true
  Undo Stack Limit: 350
  Use OpenGL: false
  Use OpenGL Texture Buffer: true
  Disable Vector Optimizations: false
  Disable AVX Optimizations: false
  Canvas State: OPENGL_SUCCESS
  Autosave Interval: 60
  Use Backup Files: true
  Number of Backups Kept: 4
  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


Current Settings

  Current Swap Location: /tmp
  Current Swap Location writable: true
  Undo Enabled: true
  Undo Stack Limit: 350
  Use OpenGL: true
  Use OpenGL Texture Buffer: true
  Disable Vector Optimizations: false
  Disable AVX Optimizations: false
  Canvas State: TRY_OPENGL
  Autosave Interval: 60
  Use Backup Files: true
  Number of Backups Kept: 4
  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


Current Settings

  Current Swap Location: /tmp
  Current Swap Location writable: true
  Undo Enabled: true
  Undo Stack Limit: 350
  Use OpenGL: true
  Use OpenGL Texture Buffer: false
  Disable Vector Optimizations: false
  Disable AVX Optimizations: false
  Canvas State: TRY_OPENGL
  Autosave Interval: 60
  Use Backup Files: true
  Number of Backups Kept: 4
  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


Current Settings

  Current Swap Location: /tmp
  Current Swap Location writable: true
  Undo Enabled: true
  Undo Stack Limit: 350
  Use OpenGL: true
  Use OpenGL Texture Buffer: false
  Disable Vector Optimizations: false
  Disable AVX Optimizations: false
  Canvas State: TRY_OPENGL
  Autosave Interval: 60
  Use Backup Files: true
  Number of Backups Kept: 4
  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


Current Settings

  Current Swap Location: /tmp
  Current Swap Location writable: true
  Undo Enabled: true
  Undo Stack Limit: 350
  Use OpenGL: true
  Use OpenGL Texture Buffer: true
  Disable Vector Optimizations: false
  Disable AVX Optimizations: false
  Canvas State: TRY_OPENGL
  Autosave Interval: 60
  Use Backup Files: true
  Number of Backups Kept: 4
  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


Current Settings

  Current Swap Location: /tmp
  Current Swap Location writable: true
  Undo Enabled: true
  Undo Stack Limit: 350
  Use OpenGL: true
  Use OpenGL Texture Buffer: true
  Disable Vector Optimizations: false
  Disable AVX Optimizations: false
  Canvas State: TRY_OPENGL
  Autosave Interval: 60
  Use Backup Files: true
  Number of Backups Kept: 4
  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


Current Settings

  Current Swap Location: /tmp
  Current Swap Location writable: true
  Undo Enabled: true
  Undo Stack Limit: 350
  Use OpenGL: true
  Use OpenGL Texture Buffer: true
  Disable Vector Optimizations: false
  Disable AVX Optimizations: false
  Canvas State: TRY_OPENGL
  Autosave Interval: 60
  Use Backup Files: true
  Number of Backups Kept: 4
  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


Current Settings

  Current Swap Location: /tmp
  Current Swap Location writable: true
  Undo Enabled: true
  Undo Stack Limit: 350
  Use OpenGL: true
  Use OpenGL Texture Buffer: true
  Disable Vector Optimizations: false
  Disable AVX Optimizations: false
  Canvas State: TRY_OPENGL
  Autosave Interval: 60
  Use Backup Files: true
  Number of Backups Kept: 4
  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


Current Settings

  Current Swap Location: /tmp
  Current Swap Location writable: true
  Undo Enabled: true
  Undo Stack Limit: 350
  Use OpenGL: true
  Use OpenGL Texture Buffer: true
  Disable Vector Optimizations: false
  Disable AVX Optimizations: false
  Canvas State: TRY_OPENGL
  Autosave Interval: 60
  Use Backup Files: true
  Number of Backups Kept: 4
  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


Current Settings

  Current Swap Location: /tmp
  Current Swap Location writable: true
  Undo Enabled: true
  Undo Stack Limit: 350
  Use OpenGL: true
  Use OpenGL Texture Buffer: true
  Disable Vector Optimizations: false
  Disable AVX Optimizations: false
  Canvas State: TRY_OPENGL
  Autosave Interval: 60
  Use Backup Files: true
  Number of Backups Kept: 4
  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


Current Settings

  Current Swap Location: /tmp
  Current Swap Location writable: true
  Undo Enabled: true
  Undo Stack Limit: 350
  Use OpenGL: true
  Use OpenGL Texture Buffer: true
  Disable Vector Optimizations: false
  Disable AVX Optimizations: false
  Canvas State: TRY_OPENGL
  Autosave Interval: 60
  Use Backup Files: true
  Number of Backups Kept: 4
  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
------------------------------------------------

ADDITIONAL INFORMATION
https://krita-artists.org/t/solved-artwork-canvas-randomly-goes-fuzzy/35715?u=grum999

Krita 4.4.8: everything works fine 
From the oldest Krita 5-prealpha tested (b1530e3) the problem is already here.. :-/
Comment 1 grum999 2022-01-24 18:59:32 UTC
Created attachment 145875 [details]
Example OK with canvas properly rendered (biilinear filtering)
Comment 2 Ahab Greybeard 2022-01-25 09:29:59 UTC
I can Confirm this, as described, using the Jan 24 5.1.0-prealpha (git b781193) on Debian 10.
The effect is less noticeable on a smaller canvas.
Comment 3 Alvin Wong 2022-02-11 14:19:32 UTC
Seems related to bug 439156