Skip to content

Instantly share code, notes, and snippets.

@cocafe
Last active October 13, 2025 13:55
Show Gist options
  • Save cocafe/d3b4e286af68925d45fcb2c7337cf673 to your computer and use it in GitHub Desktop.
Save cocafe/d3b4e286af68925d45fcb2c7337cf673 to your computer and use it in GitHub Desktop.

Revisions

  1. cocafe revised this gist Jul 20, 2021. 1 changed file with 1 addition and 1 deletion.
    2 changes: 1 addition & 1 deletion vmx_perf_tweaks.md
    Original file line number Diff line number Diff line change
    @@ -42,7 +42,7 @@ monitor_control.disable_directexec = "true"
    random freezes:
    if a picture or video is in Windows clip-paste buffer, then vmware is likely to freeze.
    somebody reported this in vmware community already, but it looks like no fix right now (vmware 16).
    just closed vmware window forcely and Ctrl+C some plain texts, then open vmware again , this will fix that freeze.
    just closed vmware window forcely and Ctrl+C some plain texts, then open vmware again. this will fix that freeze.
    configs above accidentally fix this freeze by disabling vmware tool (clip-paste sharing) in guest OS.
    ```

  2. cocafe revised this gist Jul 20, 2021. 1 changed file with 10 additions and 0 deletions.
    10 changes: 10 additions & 0 deletions vmx_perf_tweaks.md
    Original file line number Diff line number Diff line change
    @@ -36,6 +36,16 @@ isolation.tools.getVersion.disable = "true"
    monitor_control.disable_directexec = "true"
    ```

    **update:**

    ```
    random freezes:
    if a picture or video is in Windows clip-paste buffer, then vmware is likely to freeze.
    somebody reported this in vmware community already, but it looks like no fix right now (vmware 16).
    just closed vmware window forcely and Ctrl+C some plain texts, then open vmware again , this will fix that freeze.
    configs above accidentally fix this freeze by disabling vmware tool (clip-paste sharing) in guest OS.
    ```

    #### spoof guest OS - more

    ```makefile
  3. cocafe revised this gist Sep 11, 2020. 1 changed file with 3 additions and 0 deletions.
    3 changes: 3 additions & 0 deletions vmx_perf_tweaks.md
    Original file line number Diff line number Diff line change
    @@ -82,6 +82,8 @@ mks.lowCompositingFPS="60"
    mks.maxCompositingFPS="1000"
    mks.skipHookTimeoutCheck="TRUE"
    mks.updateCoalescePeriodUS="0"
    svga.readbackRegionComplexityLimit="512"
    mks.requireHardwareRenderer="TRUE"
    ```

    - `mks.lowCompositingFPS="60"` : default: `10`, lower limit?
    @@ -91,6 +93,7 @@ mks.updateCoalescePeriodUS="0"
    - `svga.threadPollUS="1000"` : default: `10000`, `1000` to reduce latency, may be laggy due to overhead
    - `mks.vdpMinFrameDelayMS=`~~"0"~~ : default: `28`
    - `svga.noThreadSleep="TRUE"` : default: `FALSE`, `TRUE` **can hog one logical host CPU 100%, use with caution**
    - `svga.readbackRegionComplexityLimit="512"` : default: "64", `512` improves FPS of program inside VM

    #### other tweaks that may affect interactivity

  4. cocafe revised this gist Sep 11, 2020. 1 changed file with 3 additions and 6 deletions.
    9 changes: 3 additions & 6 deletions vmx_perf_tweaks.md
    Original file line number Diff line number Diff line change
    @@ -81,17 +81,15 @@ use with caution if host machine has poor performance (not tested yet).
    mks.lowCompositingFPS="60"
    mks.maxCompositingFPS="1000"
    mks.skipHookTimeoutCheck="TRUE"
    mks.vdpMinFrameDelayMS="0"
    mks.updateCoalescePeriodUS="0"
    svga.threadPollUS="1000"
    ```

    - `mks.lowCompositingFPS="60"` : default: `10`, lower limit?
    - `mks.maxCompositingFPS="1000"` : default: `100`
    - `mks.skipHookTimeoutCheck="TRUE"` : default: `FALSE`
    - `mks.vdpMinFrameDelayMS="0"` : default: `28`
    - `mks.updateCoalescePeriodUS="0"` : default: `16666`" (16.666ms, 60Hz), `0` **: latency reduces greatly**
    - `svga.threadPollUS="1000"` : default: `10000`, `1000` to reduce latency
    - `mks.updateCoalescePeriodUS="0"` : default: `16666`" (16.666ms, 60Hz), `0` : **latency reduces greatly**
    - `svga.threadPollUS="1000"` : default: `10000`, `1000` to reduce latency, may be laggy due to overhead
    - `mks.vdpMinFrameDelayMS=`~~"0"~~ : default: `28`
    - `svga.noThreadSleep="TRUE"` : default: `FALSE`, `TRUE` **can hog one logical host CPU 100%, use with caution**

    #### other tweaks that may affect interactivity
    @@ -117,7 +115,6 @@ svga.maxFullscreenRefreshTick= # default: "-1" ???
    svga.threadPollPendingFencesUS= # default: "100"
    svga.maxFenceAgeUS= # default: "100000"
    svga.traceFBCoaleseUS= # default: "10000"
    svga.maxFullscreenRefreshTick= #default: "-1"
    mks.dx11.waitForQueryYieldMS= #default: "1"
    mks.forceDiscreteGPU= #default: "FALSE"
    ```
  5. cocafe revised this gist Sep 8, 2020. 1 changed file with 1 addition and 1 deletion.
    2 changes: 1 addition & 1 deletion vmx_perf_tweaks.md
    Original file line number Diff line number Diff line change
    @@ -1,4 +1,4 @@
    ### VMware VMX Notes, Performance Tweak, Interactivity Improvements
    ### VMware VMX Notes, Performance Tweaks, Interactivity Improvements

    experimented on VMware Workstation `15.5.2 build-15785246`, other verisons may not work, no guaranteed.

  6. cocafe renamed this gist Sep 8, 2020. 1 changed file with 1 addition and 1 deletion.
    2 changes: 1 addition & 1 deletion vmx_perf_turn.md → vmx_perf_tweaks.md
    Original file line number Diff line number Diff line change
    @@ -1,4 +1,4 @@
    ### VMware VMX Notes, Performance/Interactivity Improvements
    ### VMware VMX Notes, Performance Tweak, Interactivity Improvements

    experimented on VMware Workstation `15.5.2 build-15785246`, other verisons may not work, no guaranteed.

  7. cocafe revised this gist Sep 7, 2020. 1 changed file with 1 addition and 1 deletion.
    2 changes: 1 addition & 1 deletion vmx_perf_turn.md
    Original file line number Diff line number Diff line change
    @@ -1,6 +1,6 @@
    ### VMware VMX Notes, Performance/Interactivity Improvements

    experimented on VMware Workstation `15.5.2 build-15785246`, other verisons may not work
    experimented on VMware Workstation `15.5.2 build-15785246`, other verisons may not work, no guaranteed.

    -----

  8. cocafe revised this gist Sep 7, 2020. 1 changed file with 1 addition and 1 deletion.
    2 changes: 1 addition & 1 deletion vmx_perf_turn.md
    Original file line number Diff line number Diff line change
    @@ -1,6 +1,6 @@
    ### VMware VMX Notes, Performance/Interactivity Improvements

    experimented on VMware Workstation `15.5.2 build-15785246`, other verison may not work
    experimented on VMware Workstation `15.5.2 build-15785246`, other verisons may not work

    -----

  9. cocafe revised this gist Sep 7, 2020. 1 changed file with 1 addition and 1 deletion.
    2 changes: 1 addition & 1 deletion vmx_perf_turn.md
    Original file line number Diff line number Diff line change
    @@ -1,6 +1,6 @@
    ### VMware VMX Notes, Performance/Interactivity Improvements

    experimented on VMware Workstation 15.5.1, other verison may not work
    experimented on VMware Workstation `15.5.2 build-15785246`, other verison may not work

    -----

  10. cocafe revised this gist Sep 7, 2020. 1 changed file with 1 addition and 1 deletion.
    2 changes: 1 addition & 1 deletion vmx_perf_turn.md
    Original file line number Diff line number Diff line change
    @@ -1,6 +1,6 @@
    ### VMware VMX Notes, Performance/Interactivity Improvements

    tested on VMware Workstation 15.5.1, other verison may not work
    experimented on VMware Workstation 15.5.1, other verison may not work

    -----

  11. cocafe revised this gist Sep 7, 2020. 1 changed file with 1 addition and 1 deletion.
    2 changes: 1 addition & 1 deletion vmx_perf_turn.md
    Original file line number Diff line number Diff line change
    @@ -1,6 +1,6 @@
    ### VMware VMX Notes, Performance/Interactivity Improvements

    for VMware Workstation 15.5.1
    tested on VMware Workstation 15.5.1, other verison may not work

    -----

  12. cocafe revised this gist Sep 7, 2020. 1 changed file with 2 additions and 0 deletions.
    2 changes: 2 additions & 0 deletions vmx_perf_turn.md
    Original file line number Diff line number Diff line change
    @@ -1,5 +1,7 @@
    ### VMware VMX Notes, Performance/Interactivity Improvements

    for VMware Workstation 15.5.1

    -----

    #### global config for all VMs
  13. cocafe revised this gist Sep 7, 2020. No changes.
  14. cocafe revised this gist Sep 7, 2020. 1 changed file with 1 addition and 1 deletion.
    2 changes: 1 addition & 1 deletion vmx_perf_turn.md
    Original file line number Diff line number Diff line change
    @@ -88,7 +88,7 @@ svga.threadPollUS="1000"
    - `mks.maxCompositingFPS="1000"` : default: `100`
    - `mks.skipHookTimeoutCheck="TRUE"` : default: `FALSE`
    - `mks.vdpMinFrameDelayMS="0"` : default: `28`
    - `mks.updateCoalescePeriodUS="0"` : default: `1666`" (16.66ms, 60Hz), `0` **: latency reduces greatly**
    - `mks.updateCoalescePeriodUS="0"` : default: `16666`" (16.666ms, 60Hz), `0` **: latency reduces greatly**
    - `svga.threadPollUS="1000"` : default: `10000`, `1000` to reduce latency
    - `svga.noThreadSleep="TRUE"` : default: `FALSE`, `TRUE` **can hog one logical host CPU 100%, use with caution**

  15. cocafe revised this gist Sep 7, 2020. 1 changed file with 1 addition and 1 deletion.
    2 changes: 1 addition & 1 deletion vmx_perf_turn.md
    Original file line number Diff line number Diff line change
    @@ -110,7 +110,7 @@ svga.maxChangeTick = "1"

    #### tweaks that did not confirmed

    ```
    ```makefile
    svga.maxFullscreenRefreshTick= # default: "-1" ???
    svga.threadPollPendingFencesUS= # default: "100"
    svga.maxFenceAgeUS= # default: "100000"
  16. cocafe revised this gist Sep 7, 2020. 1 changed file with 2 additions and 2 deletions.
    4 changes: 2 additions & 2 deletions vmx_perf_turn.md
    Original file line number Diff line number Diff line change
    @@ -94,8 +94,8 @@ svga.threadPollUS="1000"

    #### other tweaks that may affect interactivity

    - `mks.vsync="1"`: default: `"1"`, `0` feels choppy, because vsync is off
    - `mks.allowAcceleratedRenderers="TRUE"`: ?
    - `mks.vsync="1"`: default: `1`, `0` feels choppy, because vsync is off
    - `mks.allowAcceleratedRenderers="TRUE"`: default: "default", may allow to switch backend hw-acc renderer
    - `mks.win32.timerResolution="500"`: default: `0`
    - `mks.dx11.enableModernPresentation="TRUE"`: default: `FALSE`, `TRUE` feels laggy

  17. cocafe revised this gist Sep 7, 2020. 1 changed file with 1 addition and 1 deletion.
    2 changes: 1 addition & 1 deletion vmx_perf_turn.md
    Original file line number Diff line number Diff line change
    @@ -8,7 +8,7 @@

    #### resume/suspend VM asap

    `note: if you have mere host RAM amount, do not use ` `prefvmx.minVmMemPct=100`
    if you have mere host RAM amount, do not use `prefvmx.minVmMemPct=100`

    ```makefile
    # add to global config to apply to all VMs
  18. cocafe revised this gist Sep 7, 2020. 1 changed file with 0 additions and 2 deletions.
    2 changes: 0 additions & 2 deletions vmx_perf_turn.md
    Original file line number Diff line number Diff line change
    @@ -84,8 +84,6 @@ mks.updateCoalescePeriodUS="0"
    svga.threadPollUS="1000"
    ```

    `notes`:

    - `mks.lowCompositingFPS="60"` : default: `10`, lower limit?
    - `mks.maxCompositingFPS="1000"` : default: `100`
    - `mks.skipHookTimeoutCheck="TRUE"` : default: `FALSE`
  19. cocafe revised this gist Sep 7, 2020. 1 changed file with 10 additions and 12 deletions.
    22 changes: 10 additions & 12 deletions vmx_perf_turn.md
    Original file line number Diff line number Diff line change
    @@ -1,12 +1,12 @@
    #### VMware VMX Notes, Performance/Interactivity Improvements
    ### VMware VMX Notes, Performance/Interactivity Improvements

    -----

    ##### global config for all VMs
    #### global config for all VMs

    `C:\ProgramData\VMware\VMware Workstation\config.ini`

    ##### resume/suspend VM asap
    #### resume/suspend VM asap

    `note: if you have mere host RAM amount, do not use ` `prefvmx.minVmMemPct=100`

    @@ -20,7 +20,7 @@ mainMem.partialLazyRestore = "FALSE"

    ----

    ##### spoof guest OS that it's inside real machine
    #### spoof guest OS that it's inside real machine

    these tweaks will break VM tools ability to communicate with host, but it can actually fix weird random freezes since Workstation 12+, confirmed.

    @@ -34,7 +34,7 @@ isolation.tools.getVersion.disable = "true"
    monitor_control.disable_directexec = "true"
    ```

    ##### spoof guest OS - more
    #### spoof guest OS - more

    ```makefile
    monitor_control.disable_directexec = "true"
    @@ -48,7 +48,7 @@ monitor_control.disable_btpriv = "true"
    monitor_control.disable_btseg = "true"
    ```

    ##### spoof macOS guest
    #### spoof macOS guest

    ```makefile
    board-id.reflectHost = "FALSE"
    @@ -65,7 +65,7 @@ efi.nvram.var.ROM = "3c0754a2f9be"

    ----

    ##### improve interactivity (greatly)
    #### improve interactivity (greatly)

    confirmed on hosts with `GTX1070` and `RX580`, `win7` and `ubuntu 18.04` guests.

    @@ -94,14 +94,14 @@ svga.threadPollUS="1000"
    - `svga.threadPollUS="1000"` : default: `10000`, `1000` to reduce latency
    - `svga.noThreadSleep="TRUE"` : default: `FALSE`, `TRUE` **can hog one logical host CPU 100%, use with caution**

    ##### other tweaks that may affect interactivity
    #### other tweaks that may affect interactivity

    - `mks.vsync="1"`: default: `"1"`, `0` feels choppy, because vsync is off
    - `mks.allowAcceleratedRenderers="TRUE"`: ?
    - `mks.win32.timerResolution="500"`: default: `0`
    - `mks.dx11.enableModernPresentation="TRUE"`: default: `FALSE`, `TRUE` feels laggy

    ##### placebo thing
    #### placebo thing

    this tweak can be found while googling improve vmware interactive things, but it is deprecated in modern Workstation

    @@ -110,7 +110,7 @@ this tweak can be found while googling improve vmware interactive things, but it
    svga.maxChangeTick = "1"
    ```

    ##### tweaks that did not confirmed
    #### tweaks that did not confirmed

    ```
    svga.maxFullscreenRefreshTick= # default: "-1" ???
    @@ -122,5 +122,3 @@ mks.dx11.waitForQueryYieldMS= #default: "1"
    mks.forceDiscreteGPU= #default: "FALSE"
    ```

    ---

  20. cocafe renamed this gist Sep 7, 2020. 1 changed file with 0 additions and 0 deletions.
    File renamed without changes.
  21. cocafe created this gist Sep 7, 2020.
    126 changes: 126 additions & 0 deletions vmx_perf_turn.mk
    Original file line number Diff line number Diff line change
    @@ -0,0 +1,126 @@
    #### VMware VMX Notes, Performance/Interactivity Improvements

    -----

    ##### global config for all VMs

    `C:\ProgramData\VMware\VMware Workstation\config.ini`

    ##### resume/suspend VM asap

    `note: if you have mere host RAM amount, do not use ` `prefvmx.minVmMemPct=100`

    ```makefile
    # add to global config to apply to all VMs
    prefvmx.minVmMemPct = "100"
    mainMem.useNamedFile = "FALSE"
    mainMem.partialLazySave = "FALSE"
    mainMem.partialLazyRestore = "FALSE"
    ```

    ----

    ##### spoof guest OS that it's inside real machine

    these tweaks will break VM tools ability to communicate with host, but it can actually fix weird random freezes since Workstation 12+, confirmed.

    ```makefile
    monitor_control.virtual_rdtsc = "false"
    monitor_control.restrict_backdoor = "true"
    isolation.tools.getPtrLocation.disable = "true"
    isolation.tools.setPtrLocation.disable = "true"
    isolation.tools.setVersion.disable = "true"
    isolation.tools.getVersion.disable = "true"
    monitor_control.disable_directexec = "true"
    ```

    ##### spoof guest OS - more

    ```makefile
    monitor_control.disable_directexec = "true"
    monitor_control.disable_chksimd = "true"
    monitor_control.disable_ntreloc = "true"
    monitor_control.disable_selfmod = "true"
    monitor_control.disable_reloc = "true"
    monitor_control.disable_btinout = "true"
    monitor_control.disable_btmemspace = "true"
    monitor_control.disable_btpriv = "true"
    monitor_control.disable_btseg = "true"
    ```

    ##### spoof macOS guest

    ```makefile
    board-id.reflectHost = "FALSE"
    board-id = "Mac-BE088AF8C5EB4FA2"
    hw.model.reflectHost = "FALSE"
    hw.model = "iMac18,3"
    serialNumber.reflectHost = "FALSE"
    serialNumber = "C02TC4YKJ1GJ"
    smbios.reflectHost = "FALSE"
    efi.nvram.var.ROM.reflectHost = "FALSE"
    efi.nvram.var.MLB.reflectHost = "FALSE"
    efi.nvram.var.ROM = "3c0754a2f9be"
    ```

    ----

    ##### improve interactivity (greatly)

    confirmed on hosts with `GTX1070` and `RX580`, `win7` and `ubuntu 18.04` guests.

    interactive response latency is reduced ***greatly***, no more choppy guest screen.

    these tweaks probably add some overheads to host machine.

    use with caution if host machine has poor performance (not tested yet).

    ```makefile
    mks.lowCompositingFPS="60"
    mks.maxCompositingFPS="1000"
    mks.skipHookTimeoutCheck="TRUE"
    mks.vdpMinFrameDelayMS="0"
    mks.updateCoalescePeriodUS="0"
    svga.threadPollUS="1000"
    ```

    `notes`:

    - `mks.lowCompositingFPS="60"` : default: `10`, lower limit?
    - `mks.maxCompositingFPS="1000"` : default: `100`
    - `mks.skipHookTimeoutCheck="TRUE"` : default: `FALSE`
    - `mks.vdpMinFrameDelayMS="0"` : default: `28`
    - `mks.updateCoalescePeriodUS="0"` : default: `1666`" (16.66ms, 60Hz), `0` **: latency reduces greatly**
    - `svga.threadPollUS="1000"` : default: `10000`, `1000` to reduce latency
    - `svga.noThreadSleep="TRUE"` : default: `FALSE`, `TRUE` **can hog one logical host CPU 100%, use with caution**

    ##### other tweaks that may affect interactivity

    - `mks.vsync="1"`: default: `"1"`, `0` feels choppy, because vsync is off
    - `mks.allowAcceleratedRenderers="TRUE"`: ?
    - `mks.win32.timerResolution="500"`: default: `0`
    - `mks.dx11.enableModernPresentation="TRUE"`: default: `FALSE`, `TRUE` feels laggy

    ##### placebo thing

    this tweak can be found while googling improve vmware interactive things, but it is deprecated in modern Workstation

    ```makefile
    # default: 4, 100/4=25hz, maximum: 1
    svga.maxChangeTick = "1"
    ```

    ##### tweaks that did not confirmed

    ```
    svga.maxFullscreenRefreshTick= # default: "-1" ???
    svga.threadPollPendingFencesUS= # default: "100"
    svga.maxFenceAgeUS= # default: "100000"
    svga.traceFBCoaleseUS= # default: "10000"
    svga.maxFullscreenRefreshTick= #default: "-1"
    mks.dx11.waitForQueryYieldMS= #default: "1"
    mks.forceDiscreteGPU= #default: "FALSE"
    ```
    ---