Jump to content
Lg2K

CSGO SDK VMPI patch

Recommended Posts

Hi CSGO mappers of Mapcore!

As many of you may know, the possibility to use multiple computers help the compiling process of a CSGO map via VMPI has been disabled by Valve for a while now. After doing a bit of research I figured out how to get VMPI (fully) working again by modifying the vvis and vrad dll files. If you don't know what VMPI is and why you might want to use it when compiling maps for CSGO please visit the Valve Developer Community VMPI page first.

Note: This is an unofficial patch. VVIS, VRAD and VMPI are property of Valve Software.

Disclaimer: The dlls provided are modified vvis_dll.dll and vrad_dll.dll files from the official CSGO SDK installation. Please use these dlls at your own risk. No responsibility is claimed for any damage to either your computer or game installation while using these modified dlls.

Warning: When running VMPI, the modified VVIS and VRAD dll files will perform a GET request to vmpi.lg2k.com (instead of Valve's blocked server). If you don't want to make a connection to my webserver please do not use the patched dll files.

Download

Patch version 1.0:  CSGO VMPI Patch v1.0.zip

How to install

To use VMPI you will need to install the patched dll files on both the master and worker systems.

  1. Download the patched vvis_dll.dll and vrad_dll.dll files.
  2. Go to the bin folder of your Counter-Strike Global Offensive installation (i.e. C:\Program Files (x86)\Steam\steamapps\common\Counter-Strike Global Offensive\bin)
    An easy way to find you Counter-Strike: Global Offensive installation folder is to go to your Steam library > right click Counter-Strike: Global Offensive > manage > Browse local files.
  3. Make a backup of the original vvis_dll.dll and vrad_dll.dll files.
  4. Replace the vvis_dll.dll and vrad_dll.dll in your bin folder with the patched vvis_dll.dll and vrad_dll.dll files.

VMPI map compile settings (Hammer)

To use VMPI when compiling a CSGO map include the following parameters in the corresponding (advanced) compile configuration properties.

  VVIS VRAD
Command $vis_exe $light_exe
Required parameters -mpi -mpi
-mpi_UseDefaultDistributor*
-mpi_AutoLocalWorker**
(Recommended)
status parameters
-mpi_Graphics
-mpi_ShowDistributeWorkStats
-mpi_Graphics
-mpi_ShowDistributeWorkStats
(Recommended)
ease of use
-mpi_TimingWait -mpi_TimingWait

*VRAD only works with VMPI whit the following argument: "-mpi_UseDefaultDistributor". The default argument ("-mpi_UseSDKDistributor") doesn't work.

**-mpi_AutoLocalWorker is needed for VRAD to let the master help during the compiling process. If you wish to compile the map's lighting using only the workers' system don't include this parameter in the compile settings.

More information about VMPI arguments can be found on: Valve Developer Community.

Starting a VMPI worker

To start a worker you will need to run two commands on the worker's system.

Executable Parameters
vvis.exe -mpi_Worker <master's ip adderess> -mpi_Retry
vrad.exe -mpi_Worker <master's ip adderess> -mpi_Retry
  1. Go to the bin folder of your Counter-Strike Global Offensive installation (i.e. C:\Program Files (x86)\Steam\steamapps\common\Counter-Strike Global Offensive\bin)
    An easy way to find you Counter-Strike: Global Offensive installation folder is to go to your Steam library > right click Counter-Strike: Global Offensive > manage > Browse local files.
  2. Type cmd in the address-bar and hit enter. (A command prompt should open)
  3. To start the vvis worker type vvis.exe -mpi_Worker <master's ip adderess> -mpi_Retry.
  4. To start the vrad worker type vrad.exe -mpi_Worker <master's ip adderess> -mpi_Retry.

Port forwarding

Default VMPI port: 23311 (TCP and UDP)
This port can be changed by adding -mpi_Port <port> (Ex: -mpi_Port 25320) to the master $vis_exe and $light_exe compile settings in Hammer.

If you intend to use VMPI via a local network or via the internet the VMPI port might be blocked by your antivirus. If this is the case you will need to allow this port in your antivirus settings. When using VMPI via the internet you will also need to portforward the VMPI port in your router/modem configuration.


VMPI registry

The patched dll files are configured to use a custom VMPI registry (vmpi.lg2k.com).

Valve's VMPI registry

Original VMPI registry url: "vmpi-registry.valvesoftware.com"
Original VMPI registry port: 80

VMPI REST requests

Origin Type Path Status Expected response
Master GET /find_workers 200 Unknown*

*It's currently unknown how and what Valve's vmpi-registry request returns, but it's expected to be a list of possible worker ip addresses or a way to tell the vmpi-registry to start and assign workers to the master.

Errors
Using the original VMPI registry results in a CURL error, likely because it's blocked with a firewall so only Valve can use their VMPI workers and outsiders can't get access to their VMPI worker machines.

Lg2K's VMPI registry (modified)

VMPI registry url: "vmpi.lg2k.com"
VMPI registry port: 80

VMPI REST requests

Origin Type Path Status Expected response
Master GET /find_workers 200 0

 

Share this post


Link to post
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

Loading...

×
×
  • Create New...