Some Issues I'm having with Krita performace

I wanted to find a way to make my Krita lighter. It rarely uses my GPU. My CPU is not the best, but compared to my old CPU (An old Celeron) it simply performs better compared to my new one (Intel i3 7th generation).

The animation is very slow, even at low resolutions. It struggles a lot to change from one frame to another, even with cache.

I simply can’t do a simple 2000x2000 illustration without wasting seconds to perform an action like “move”.

If I disable GPU usage I simply cannot move the preview screen using space + table touch without waiting more than 5 seconds.

I’m not being able to solve many other problems, the ones I mentioned being the worst of them, Krita is the only program accessible to me that does 2D animation and illustrations in the same program, can anyone with more in-depth knowledge of Krita help me?

Is Krita really that heavy a program? I try to use this program some months, believing that i would eventually find the solution, but until today i have not found it.

Welcome to the community, @moncatto.

As you noticed, Krita doesn’t use the GPU that much – but it uses lots of RAM, especially for animation. How much RAM does your device have?

Yes, Krita doesn’t use the GPU for anything except for rendering the canvas.

Hi Moncatto, I’m no Krita expert but I can suggest some performance tweaks.

First; GPU Info: Could you share your GPU details? It can impact performance advice.

Krita Performance Settings:
In ‘Settings > Configure Krita > Performance’, consider the following:

General:

  • RAM Usage: Increase the RAM limit if you have excess, for improved performance.
  • Swap File: Increase the swap file size limit and for location; set it up on an SSD if possible for speedier fallback memory usage.

Advanced:

MultiThreading -

  • Set ‘CPU limit’ to maximum to use all available cores.
  • Frame rendering clones Limit: If your CPU supports it, adjusting clones Limit above the default can help, as long as you have plenty of ram.

  • Limit frames: Default is 100fps; reducing to the necessary cap at least keep the pace of animation consistent.

(The debug section will be useful when providing devs with crucial logs regarding this kind of performance issues) Then;

Animation Cache:

  • Cache Storage Backend: ‘On-disk’ utilizes RAM without over-reliance; so leave this on as default.

Cache generation Options:

  • Limit Cached Frame Size: Decreasing this could accelerate animation preview speeds; allowing you to work on slightly blurry previews of the 2000x2000 illustrations, but you would see the full image on the final render.
  • Enabled background Cache Generation: Is on by default; Disabling this can free up processing power while drawing; you’ll need to pre-cache manually, but it could help you.

Instant Preview:

  • Use in-stack preview in Transform Tool: If the move tool is laggy, turning off ‘use in-stack preview’; and try using the transform tool instead. I did try to see what happened when I turned off ‘in Move Tool’ but it didn’t seem to speed up the move tool; so perhaps you will need to rely on the transform tool more. In which case you may like to know that unmovable layers can usually be moved with a transform mask.

But as a senior VFX artist; I would actually recommend another opensource tool when it comes to getting the most out of your PC:

For best performance with less overhead, I would do them in Blender which has far more animation features built in; If I animated anything in Krita I’d use OCA to bring it in Blender. Greace pencil is has great performance with some amazing effects built in. Blender is able to render everything just with GPU and has no problem letting you draw and preview 4k animations. Plus Blender is the ultimate gateway tool and would allow you to comp and stitch together the final scenes.

Hope this helps you on your animation journey.

-S

The key point there is ‘if you have excess’.

If you do increase the RAM limit, you must leave enough for the operating system to do its work. For Windows, that can be 3 GB or more.
Windows seems to be very sensitive to having RAM ‘stolen’ from it by krita.
Linux seems less sensitive but still slows down a lot.

Finding out and saying how much RAM you have is important.
Even if you have 8 GB, use the Task Manager to observe how much RAM is being used overall.
If you only have 4 GB then you will probably have problems.

Your enthusiasm in honor, and supplementary to @AhabGreybeard: If someone reports such problems and states that the available processors are “An old Celeron” and an “Intel i3 7th generation”, and only has the option of switching off the graphics instead of replacing them with more powerful graphics, which in the worst case could point to mobile processors, then I don’t expect that one of these PCs could have a lot of RAM available, as both are processors from Intel’s entry-level segment (the toy class).
Although, there are now some impressively powerful CPU’s among the new generation i3’s.
But we do not know the exact working conditions on @moncatto’s side yet, maybe we will be offered more information to offer better targeted support.

Michelist

Ops, sorry me a lot for delay to reply, I forget I make this question and I just remembered when I had the same problem haha xD

@ Sooz Ah, I have 12GB RAM! It’s a laptop! It does not use GPU? So I believe make sense… Idk :p

@ Takiro And this definitely help!

@SimonH My GPU is a simple Intel HD Graphics 620!
I charged some options, thank you so much for say about these options! And thanks for the informations, probably I will see about blender in the future, despite I just want to make frame-by-frame animation x3

@ AhabGreybeard on this exactly moment im put “8000MiB” of Memory limit, seems good?

@Michelist Unfortunatelly I dont remember my old Celeron to give more details, but I know a thing on Krita that maybe can help, a kind of “Krita System Information”


 Version: 5.2.1
 Installation type: installer / portable package
 Hidpi: true

Qt

  Version (compiled): 5.15.7
  Version (loaded): 5.15.7

OS Information

  Build ABI: x86_64-little_endian-llp64
  Build CPU: x86_64
  CPU: x86_64
  Kernel Type: winnt
  Kernel Version: 10.0.19045
  Pretty Productname: Windows 10 Version 2009
  Product Type: windows
  Product Version: 10

Locale

  Languages: en_US, pt, pt, en_US
  C locale: C
  QLocale current: en
  QLocale system: pt
  QTextCodec for locale: UTF-8
  Process ACP: 65001 (UTF-8)
  System locale default ACP: 1252  (ANSI - Latino I)

OpenGL Info
 
  Vendor:  "Google Inc. (Intel)" 
  Renderer:  "ANGLE (Intel, Intel(R) HD Graphics 620 Direct3D11 vs_5_0 ps_5_0, D3D11-27.20.100.8729)" 
  Driver version:  "OpenGL ES 3.0.0 (ANGLE 2.1.0 git hash: f2280c0c5f93+krita_qt5)" 
  Shading language:  "OpenGL ES GLSL ES 3.00 (ANGLE 2.1.0 git hash: f2280c0c5f93+krita_qt5)" 
  Requested format:  QSurfaceFormat(version 3.0, options QFlags<QSurfaceFormat::FormatOption>(), depthBufferSize 24, redBufferSize 8, greenBufferSize 8, blueBufferSize 8, alphaBufferSize 8, stencilBufferSize 8, samples -1, swapBehavior QSurfaceFormat::DoubleBuffer, swapInterval 0, colorSpace QSurfaceFormat::DefaultColorSpace, profile  QSurfaceFormat::NoProfile) 
  Current format:  QSurfaceFormat(version 3.0, options QFlags<QSurfaceFormat::FormatOption>(), depthBufferSize 24, redBufferSize 8, greenBufferSize 8, blueBufferSize 8, alphaBufferSize 8, stencilBufferSize 8, samples 0, swapBehavior QSurfaceFormat::DefaultSwapBehavior, swapInterval 0, colorSpace QSurfaceFormat::DefaultColorSpace, profile  QSurfaceFormat::NoProfile) 
  GL version: 3.0 
  Supports deprecated functions false 
  Is OpenGL ES: true 
  supportsBufferMapping: true 
  supportsBufferInvalidation: false 
  forceDisableTextureBuffers: true 
  Extensions: 
     GL_ANGLE_framebuffer_multisample 
     GL_EXT_multisampled_render_to_texture 
     GL_EXT_texture_format_BGRA8888 
     GL_EXT_texture_storage 
     GL_CHROMIUM_copy_compressed_texture 
     GL_OES_vertex_array_object 
     GL_ANGLE_get_tex_level_parameter 
     GL_EXT_draw_buffers 
     GL_EXT_draw_buffers_indexed 
     GL_EXT_instanced_arrays 
     GL_NV_pixel_buffer_object 
     GL_OES_texture_float_linear 
     GL_EXT_draw_elements_base_vertex 
     GL_OES_compressed_ETC2_RGBA8_texture 
     GL_EXT_texture_filter_anisotropic 
     GL_OES_rgb8_rgba8 
     GL_ANGLE_texture_compression_dxt3 
     GL_OES_depth24 
     GL_OES_texture_border_clamp 
     GL_ANGLE_robust_client_memory 
     GL_EXT_texture_rg 
     GL_KHR_parallel_shader_compile 
     GL_NV_pack_subimage 
     GL_ANGLE_copy_texture_3d 
     GL_ANGLE_program_cache_control 
     GL_EXT_texture_type_2_10_10_10_REV 
     GL_OES_fbo_render_mipmap 
     GL_EXT_blend_func_extended 
     GL_ANGLE_lossy_etc_decode 
     GL_CHROMIUM_bind_uniform_location 
     GL_ANGLE_texture_usage 
     GL_OES_depth32 
     GL_AMD_performance_monitor 
     GL_NV_framebuffer_blit 
     GL_ANGLE_instanced_arrays 
     GL_EXT_color_buffer_half_float 
     GL_EXT_color_buffer_float 
     GL_ANGLE_texture_compression_dxt5 
     GL_EXT_sRGB 
     GL_ANGLE_depth_texture 
     GL_EXT_blend_minmax 
     GL_EXT_multi_draw_indirect 
     GL_EXT_EGL_image_external_wrap_modes 
     GL_OES_mapbuffer 
     GL_OVR_multiview2 
     GL_ANGLE_multi_draw 
     GL_OES_compressed_ETC2_sRGB8_alpha8_texture 
     GL_OES_get_program_binary 
     GL_OES_compressed_ETC2_RGB8_texture 
     GL_ANGLE_multiview_multisample 
     GL_EXT_unpack_subimage 
     GL_ANGLE_base_vertex_base_instance_shader_builtin 
     GL_OES_compressed_EAC_R11_signed_texture 
     GL_OES_packed_depth_stencil 
     GL_ANGLE_request_extension 
     GL_OES_standard_derivatives 
     GL_OES_surfaceless_context 
     GL_EXT_occlusion_query_boolean 
     GL_EXT_read_format_bgra 
     GL_EXT_texture_compression_rgtc 
     GL_OES_compressed_ETC2_punchthroughA_RGBA8_texture 
     GL_OES_texture_stencil8 
     GL_EXT_frag_depth 
     GL_OES_texture_half_float 
     GL_OES_texture_half_float_linear 
     GL_EXT_texture_compression_bptc 
     GL_OES_compressed_ETC2_sRGB8_texture 
     GL_OES_compressed_EAC_R11_unsigned_texture 
     GL_EXT_debug_marker 
     GL_NV_EGL_stream_consumer_external 
     GL_OES_texture_float 
     GL_WEBGL_video_texture 
     GL_EXT_texture_compression_s3tc_srgb 
     GL_OES_draw_buffers_indexed 
     GL_CHROMIUM_sync_query 
     GL_EXT_disjoint_timer_query 
     GL_KHR_debug 
     GL_OES_compressed_ETC2_punchthroughA_sRGB8_alpha_texture 
     GL_ANGLE_framebuffer_blit 
     GL_ANGLE_translated_shader_source 
     GL_EXT_float_blend 
     GL_OES_texture_npot 
     GL_OES_EGL_image_external_essl3 
     GL_ANGLE_pack_reverse_row_order 
     GL_NV_fence 
     GL_CHROMIUM_bind_generates_resource 
     GL_EXT_clip_control 
     GL_OES_EGL_image_external 
     GL_OES_compressed_EAC_RG11_unsigned_texture 
     GL_EXT_robustness 
     GL_ANGLE_memory_size 
     GL_ANGLE_texture_multisample 
     GL_CHROMIUM_lose_context 
     GL_OES_draw_elements_base_vertex 
     GL_EXT_discard_framebuffer 
     GL_EXT_texture_compression_dxt1 
     GL_OES_EGL_image 
     GL_ANGLE_client_arrays 
     GL_EXT_shader_texture_lod 
     GL_OVR_multiview 
     GL_ANGLE_get_serialized_context_string 
     GL_ANGLE_base_vertex_base_instance 
     GL_ANGLE_provoking_vertex 
     GL_EXT_map_buffer_range 
     GL_EXT_texture_norm16 
     GL_OES_element_index_uint 
     GL_EXT_debug_label 
     GL_OES_compressed_EAC_RG11_signed_texture 
     GL_CHROMIUM_copy_texture 

QPA OpenGL Detection Info 
  supportsDesktopGL: true 
  supportsAngleD3D11: true 
  isQtPreferAngle: true 
  Detected renderers: 
    (Supported) ANGLE (Microsoft, Microsoft Basic Render Driver Direct3D11 vs_5_0 ps_5_0, D3D11-10.0.19041.3636) (OpenGL ES 3.0.0 (ANGLE 2.1.0 git hash: f2280c0c5f93+krita_qt5)) 
    (Supported) ANGLE (Intel, Intel(R) HD Graphics 620 Direct3D11 vs_5_0 ps_5_0, D3D11-27.20.100.8729) (OpenGL ES 3.0.0 (ANGLE 2.1.0 git hash: f2280c0c5f93+krita_qt5)) 
    (Supported) Intel(R) HD Graphics 620 (3.3.0 - Build 27.20.100.8729)  

useBufferInvalidation (config option): false


Hardware Information

  GPU Acceleration: angle
  Memory: 12197 Mb
  Number of Cores: 4
  Swap Location: C:/Users/casa1/AppData/Local/Temp
  Built for: sse2
  Base instruction set: fma3+avx2
  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/casa1/AppData/Local/Temp
  Current Swap Location writable: true
  Undo Enabled: true
  Undo Stack Limit: 200
  Use OpenGL: true
  Use OpenGL Texture Buffer: true
  Disable Vector Optimizations: false
  Disable AVX Optimizations: false
  Canvas State: OPENGL_SUCCESS
  Autosave Interval: 420
  Use Backup Files: true
  Number of Backups Kept: 1
  Backup File Suffix: ~
  Backup Location: Same Folder as the File
  Backup Location writable: false
  Resource Location: C:/Users/casa1/AppData/Roaming/krita
  Use Win8 Pointer Input: false
  Use RightMiddleTabletButton Workaround: false
  Levels of Detail Enabled: false
  Use Zip64: false


Loaded Python Plugins
	colorspace
	comics_project_management_tools
	documenttools
	exportlayers
	filtermanager
	lastdocumentsdocker
	plugin_importer
	quick_settings_docker
	scripter
	tenbrushes
	tenscripts


Display Information
Number of screens: 2
	Screen: 0
		Name: \\.\DISPLAY1
		Depth: 32
		Scale: 1
		Physical DPI100.968
		Logical DPI96
		Physical Size: 344, 193
		Position: 0, 0
		Resolution in pixels: 1366x768
		Manufacturer: Chimei Innolux Corporation
		Model: CMN15db
		Refresh Rate: 60
		Serial Number: 
	Screen: 1
		Name: \\.\DISPLAY2
		Depth: 32
		Scale: 1
		Physical DPI42.305
		Logical DPI96
		Physical Size: 1150, 650
		Position: -1920, -313
		Resolution in pixels: 1920x1080
		Manufacturer: GDH
		Model: TV PHILCO
		Refresh Rate: 29
		Serial Number: 1

Current Settings

  Current Swap Location: C:/Users/casa1/AppData/Local/Temp
  Current Swap Location writable: true
  Undo Enabled: true
  Undo Stack Limit: 200
  Use OpenGL: true
  Use OpenGL Texture Buffer: true
  Disable Vector Optimizations: false
  Disable AVX Optimizations: false
  Canvas State: OPENGL_SUCCESS
  Autosave Interval: 420
  Use Backup Files: true
  Number of Backups Kept: 1
  Backup File Suffix: ~
  Backup Location: Same Folder as the File
  Backup Location writable: false
  Resource Location: C:/Users/casa1/AppData/Roaming/krita
  Use Win8 Pointer Input: false
  Use RightMiddleTabletButton Workaround: false
  Levels of Detail Enabled: false
  Use Zip64: false

Thank you so much for all help x3

Hey that’s plenty of ram for Krita. So yeah definitely pump some of those memory based settings and ensure you have plenty of space on your HD for the cache. 8gb would give you 4 gb left over for everything else which may be necessary if you like to have a lot of other things open. Worse case scenario consider having less background apps so you can use even more of that memory (max of 10gb might be safe).

Another thing is since you mention graphics; I have a similar intel graphics card in my surface book that’s the integrated card so I can tell you that Krita should run relatively smoothly on it although I can recommend some additional tweaks in case your GPU is struggling:

In Settings/Configure Krita/Display; If your cpu is not so great, we’ll still need canvas acceleration on. But underneath you can switch ‘open GL’ to ‘open GL ES’ and it will give you a mobile friendly open gl. (Then restart Krita and try it)

You can also change the scaling mode here; advanced scaling requires more time to display; Trilinear is faster, bilinear is even faster, and nearest nearby does nothing in a sense to smooth the look of the pixels which results in higher performance.

2nd Last setting for pixcache I’m not sure about but it SOUNDs, like if you have more room on the hardrive it could potentially help in troubleshooting performance but not sure if it’s related to your issue.

Texture buffer; should be fine to leave this on as apparently it’s only AMD/radeon users who typically have trouble with it.

I think that’s all I can suggest! Good luck.

-S

Allowing krita to have 8 GB out of 12 GB total RAM on a Windows 10 system does seem like a good setting provided that you’re not running other memory hungry applications at the same time.
Use the Task Manger to check how much RAM is being used by which applications.

While a 2000x2000 canvas isn’t much itself, in an animation with lots of frames it can be a huge memory hog. Especially if you have a lots of layers. Even without animation I sometimes scratch the 16 GB memory mark, that’s why I upgraded to 32) The problem is as soon as Krita is swapping (or sometimes referred to as caching here in this thread) it gets sooooooo slow. That’s because when a Program runs out of Memory to allocate it will write it to the disk instead which is much much times slower than the RAM. So this should be avoided at any cost. In the status bar at the bottom of Krita you should be able to see the memory usage and if it is swapping.

The GPU isn’t used much by Krita, it only comes into play when zooming, rotating, mirroring the view (not the actual canvas). Everything else is calculated by the CPU. Every filter, every blending mode computation, every brush stroke or mask; everything.

So Krita should run fine with a potato GPU from 20 years ago but CPU and RAM (not only the amount but its data rate (speed)) are the real bottlenecks, depending on what you do.

In addition to setting a higher RAM limit in Krita’s settings I also recommend cranking CPU limit to the absolute maximum (Which is probably 4 in your case or maybe even 8 depending on how many threads each of your CPU’s cores has).

I have a high end CPU and a powerful workstation but even my Krita sometimes becomes laggy when I use a lot of layer effects (when there is a small FX displayed next to the layer infos in the layers docker) and filter layers, especially transform layers. These require a recalculation of the entire layer tree on every action which can make it very costly and therefore slow. I therefore only use these at the end of my work or turn them off most until later. If you make extensive use of them too, you should probably do something similar.

It’s also important to check how much the other software on your computer is using. When your Browser with eight tabs open already takes 4 GB of RAM for some reason (Hello there, Chrome) than there isn’t much left for Krita and the likes.

I did not find the “Open GL ES” here, probably its incompatible. I made some changes and understood how some things work, i still experience some difficulties, but its undeniably better to work with.

Thank you so much for the informations and for the support!