Le jeudi 18 janvier 2018 14:46:41 UTC+1, K.Takata a écrit :
> As reported in the following thread, Vim 8.0.1343 becomes slower on some
> 
> environments (when using some kind of commands like :ver, :dig, ...):
> 
> https://groups.google.com/d/topic/vim_dev/2AaZMN1T6K8/discussion
> 
> This PR optimizes text rendering and makes scrolling faster.
> 
> Also fixes that sometimes the cursor flickers when DirectX is used.
> 
> The important point is that gui_mch_flush() is very slow on DirectX.
> 
> (It takes about 5 ms or more on some environment.)
> 
> I found that gui_mch_flush() was called unnecessarily, especially when
> 
> updating the cursor.  For example, there are many parts like this:
> 
>             out_flush();
> # ifdef FEAT_GUI
>             if (gui.in_use)
>             {
>                 gui_update_cursor(TRUE, FALSE);
>                 gui_mch_flush();
>             }
> # endif
> 
> gui_mch_flush() is called from the function out_flush(), then it is called
> 
> again right after gui_update_cursor().  I don't think the first call of
> 
> gui_mch_flush() is needed.  I added two functions mch_disable_flush() and
> 
> mch_enable_flush() to control this.  gui_mch_flush() is not called between
> 
> the two functions.  I also added another function to make the above code
> 
> simpler.  Now the above code becomes:
> 
>             out_flush_cursor(TRUE, FALSE);
> 
> This calls gui_mch_flush() only once.
> 
> After disabling unnecessary calls of gui_mch_flush(), scrolling becomes
> 
> faster and cursor flickering is fixed.
> 
> Actually, this change affects all GUIs.
> 
> I hope someone tries this on GTK 2/3 or other platforms.
> 
> I also stop using ScrollWindowEx() on DirectX to optimize scrolling.
> 
> After the optimization, scrlines option in 'renderoptions' becomes
> 
> useless now.  So I made it deprecated.
> 
> 
> 
> You can view, comment on, or merge this pull request online at:
> 
>   https://github.com/vim/vim/pull/2560
> 
> Commit Summary
> 
>   directx: Make scroll faster when scrlines:1
>   Don't issue gui_mch_flush() twice when updating cursor
>   Fix cursor updating issue
>   More optimization for gui_mch_flush()
>   Revise the implementation
>   Fix cursor updating issue
>   Make scroll faster when scrlines:0
>   Merge branch 'master' into optimize-directx
>   Refactor flush functions
>   Scroll by using DirectX instead of ScrollWindowEx
>   directx: Deprecate scrlines
> 
> 
> File Changes
> 
>   
>     M
>     runtime/doc/options.txt
>     (22)
>   
>   
>     M
>     src/channel.c
>     (9)
>   
>   
>     M
>     src/edit.c
>     (6)
>   
>   
>     M
>     src/getchar.c
>     (14)
>   
>   
>     M
>     src/gui.c
>     (48)
>   
>   
>     M
>     src/gui_dwrite.cpp
>     (98)
>   
>   
>     M
>     src/gui_dwrite.h
>     (1)
>   
>   
>     M
>     src/gui_w32.c
>     (41)
>   
>   
>     M
>     src/macros.h
>     (17)
>   
>   
>     M
>     src/main.c
>     (12)
>   
>   
>     M
>     src/message.c
>     (2)
>   
>   
>     M
>     src/netbeans.c
>     (48)
>   
>   
>     M
>     src/proto/gui.pro
>     (3)
>   
>   
>     M
>     src/proto/term.pro
>     (1)
>   
>   
>     M
>     src/screen.c
>     (23)
>   
>   
>     M
>     src/search.c
>     (10)
>   
>   
>     M
>     src/term.c
>     (21)
>   
>   
>     M
>     src/ui.c
>     (11)
>   
> 
> 
> Patch Links:
> 
>   https://github.com/vim/vim/pull/2560.patch
>   https://github.com/vim/vim/pull/2560.diff
> 
> 
> 
> —
> You are receiving this because you are subscribed to this thread.
> Reply to this email directly, view it on GitHub


Hi,

Patch merged with gvim 8.0.1428.

Font used Inconsolata_for_powerline OK in directx renderoption:
Classical commands that were very Very VERY slow and made gvim unusable are now 
in a good response time.

Platform : dxdiag returns  Directx 11 enabled on AMD opteron Procc 6180 SE 
2CPUS 2.5Ghz
Tested on VMware SVGA 3D (Microsoft Corporation WDDM)


Although, deoplete response time is acceptable.

Hope this help.
Niva


In my _vimrc
set rop=type:directx,
        \gamma:1.0,
        \contrast:1.0,
        \level:0.0,
        \geom:0,
        \renmode:2,
        \taamode:0,  
set guifont=Inconsolata_for_Powerline:h9:cANSI:qDRAFT


VIM - Vi IMproved 8.0 (2016 Sep 12, compiled Jan 18 2018 16:03:34)
MS-Windows 64-bit GUI version with OLE support
Included patches: 1-1428
Huge version with GUI.  Features included (+) or not (-):
+acl               +byte_offset       +comments          +digraphs          
+farsi             +iconv/dyn         +linebreak         +mouse             
+packages          +python3/dyn       +startuptime       -termguicolors     
+user_commands     +wildmenu
+arabic            +channel           +conceal           +directx           
+file_in_path      +insert_expand     +lispindent        +mouseshape        
+path_extra        +quickfix          +statusline        +terminal          
+vertsplit         +windows
+autocmd           +cindent           +cryptv            -dnd               
+find_in_path      +job               +listcmds          +multi_byte        
-perl              +reltime           -sun_workshop      -tgetent           
+virtualedit       +writebackup
+autoservername    +clientserver      -cscope            -ebcdic            
+float             +jumplist          +localmap          +multi_lang        
+persistent_undo   +rightleft         +syntax            -termresponse      
+visual            -xfontset
+balloon_eval      +clipboard         +cursorbind        +emacs_tags        
+folding           +keymap            +lua/dyn           -mzscheme          
-postscript        +ruby/dyn          +tag_binary        +textobjects       
+visualextra       -xim
-balloon_eval_term +cmdline_compl     +cursorshape       +eval              
-footer            +lambda            +menu              -netbeans_intg     
+printer           +scrollbind        +tag_old_static    +timers            
+viminfo           -xpm_w32
+browse            +cmdline_hist      +dialog_con_gui    +ex_extra          
+gettext/dyn       +langmap           +mksession         +num64             
+profile           +signs             -tag_any_white     +title             
+vreplace          -xterm_save
++builtin_terms    +cmdline_info      +diff              +extra_search      
-hangul_input      +libcall           +modify_fname      +ole               
+python/dyn        +smartindent       -tcl               +toolbar           
+wildignore        
   system vimrc file: "$VIM\vimrc"
     user vimrc file: "$HOME\_vimrc"
 2nd user vimrc file: "$HOME\vimfiles\vimrc"
 3rd user vimrc file: "$VIM\_vimrc"
      user exrc file: "$HOME\_exrc"
  2nd user exrc file: "$VIM\_exrc"
  system gvimrc file: "$VIM\gvimrc"
    user gvimrc file: "$HOME\_gvimrc"
2nd user gvimrc file: "$HOME\vimfiles\gvimrc"
3rd user gvimrc file: "$VIM\_gvimrc"
       defaults file: "$VIMRUNTIME\defaults.vim"
    system menu file: "$VIMRUNTIME\menu.vim"
Compilation: cl -c /W3 /nologo  -I. -Iproto -DHAVE_PATHDEF -DWIN32   
-DFEAT_TERMINAL  -DFEAT_JOB_CHANNEL      -DWINVER=0x0501 -D_WIN32_WINNT=0x0501 
/MP -DHAVE_STDINT_H /O2 /GL -DNDEBUG  /Zl /MT -DFEAT_OLE -DFEAT_MBYTE 
-DFEAT_GUI_W32 -DFEAT_DIRECTX -DDYNAMIC_DIRECTX -DFEAT_DIRECTX_COLOR_EMOJI 
-DDYNAMIC_ICONV -DDYNAMIC_GETTEXT -DFEAT_LUA -DDYNAMIC_LUA  
-DDYNAMIC_LUA_DLL=\"lua53.dll\" -DFEAT_PYTHON -DDYNAMIC_PYTHON 
-DDYNAMIC_PYTHON_DLL=\"python27.dll\" -DFEAT_PYTHON3 -DDYNAMIC_PYTHON3 
-DDYNAMIC_PYTHON3_DLL=\"python36.dll\" -DFEAT_RUBY -DDYNAMIC_RUBY 
-DDYNAMIC_RUBY_VER=24 -DDYNAMIC_RUBY_DLL=\"x64-msvcrt-ruby240.dll\" -DFEAT_HUGE 
/Fd.\ObjGXOUYHRAMD64/ /Zi
Linking: link /RELEASE /nologo /subsystem:windows /LTCG:STATUS oldnames.lib 
kernel32.lib advapi32.lib shell32.lib gdi32.lib  comdlg32.lib ole32.lib 
uuid.lib /machine:AMD64 gdi32.lib version.lib   winspool.lib comctl32.lib 
advapi32.lib shell32.lib  /machine:AMD64  libcmt.lib oleaut32.lib user32.lib  
/nodefaultlib:lua53.lib   /nodefaultlib:python27.lib /nodefaultlib:python36.lib 
   WSock32.lib  /PDB:gvim.pdb -debug

-- 
-- 
You received this message from the "vim_dev" maillist.
Do not top-post! Type your reply below the text you are replying to.
For more information, visit http://www.vim.org/maillist.php

--- 
You received this message because you are subscribed to the Google Groups 
"vim_dev" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to vim_dev+unsubscr...@googlegroups.com.
For more options, visit https://groups.google.com/d/optout.

Raspunde prin e-mail lui