-
Notifications
You must be signed in to change notification settings - Fork 49
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
- download latest version - rewrote .json file - update registry entries creation
- Loading branch information
Showing
1 changed file
with
52 additions
and
74 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -1,74 +1,52 @@ | ||
include(["engines", "wine", "engine", "object"]); | ||
include(["engines", "wine", "plugins", "regedit"]); | ||
include(["utils", "functions", "net", "resource"]); | ||
include(["utils", "functions", "filesystem", "files"]); | ||
|
||
/** | ||
* Verb to install all the necessary things to run winevulkan (even inside wine mainline or newest wine-staging) | ||
* see: https://github.com/roderickc/wine-vulkan | ||
* @returns {Wine} Wine object | ||
*/ | ||
Wine.prototype.vulkanSDK = function () { | ||
print("NOTE: you need a graphic driver that supports Vulkan to run winevulkan"); | ||
print("NOTE: Vulkan works in wine from version 3.3 (if compiled with vulkan support)"); | ||
|
||
var sdkVersion = "1.1.73.0"; | ||
|
||
var setupFile = new Resource() | ||
.wizard(this.wizard()) | ||
.url("https://sdk.lunarg.com/sdk/download/" + sdkVersion +"/windows/VulkanSDK-" + sdkVersion + "-Installer.exe") | ||
.checksum("ac34f732818c409bcb283b5c6100b373ab6a2404") | ||
.name("VulkanSDK-" + sdkVersion + "-Installer.exe") | ||
.get(); | ||
|
||
this.run(setupFile, "/S"); | ||
|
||
var pathVulkanJSON = this.prefixDirectory() + "drive_c/windows/winevulkan.json" | ||
var contentVulkanJSON = '{\n' + | ||
' "file_format_version": "1.0.0",\n' + | ||
' "ICD": {\n' + | ||
' "library_path": "c:\\windows\\system32\\winevulkan.dll",\n' + | ||
' "api_version": "' + sdkVersion +'"\n' + | ||
' }\n' + | ||
'}' | ||
|
||
writeToFile(pathVulkanJSON, contentVulkanJSON); | ||
|
||
var regeditFileContent32 = | ||
"REGEDIT4\n" + | ||
"\n" + | ||
"[HKEY_LOCAL_MACHINE\\SOFTWARE\\Khronos\\Vulkan\\Drivers\\]\n" + | ||
"\"C:\\\\Windows\\\\winevulkan.json\"=dword:00000000" ; | ||
|
||
this.regedit().patch(regeditFileContent32); | ||
|
||
if (this.architecture() == "amd64") { | ||
var regeditFileContent64 = | ||
"REGEDIT4\n" + | ||
"\n" + | ||
"[HKEY_LOCAL_MACHINE\\SOFTWARE\\Wow6432Node\\Khronos\\Vulkan\\Drivers\\]n" + | ||
"\"C:\\\\Windows\\\\winevulkan.json\"=dword:00000000" ; | ||
|
||
this.regedit().patch(regeditFileContent64); | ||
} | ||
|
||
return this; | ||
} | ||
|
||
/** | ||
* Verb to install all the necessary things to run winevulkan (even inside wine mainline or newest wine-staging) | ||
*/ | ||
var verbImplementation = { | ||
install: function (container) { | ||
var wine = new Wine(); | ||
wine.prefix(container); | ||
var wizard = SetupWizard(InstallationType.VERBS, "vulkanSDK", java.util.Optional.empty()); | ||
wine.wizard(wizard); | ||
wine.vulkanSDK(); | ||
wizard.close(); | ||
} | ||
}; | ||
|
||
/* exported Verb */ | ||
var Verb = Java.extend(org.phoenicis.engines.Verb, verbImplementation); | ||
|
||
include(["engines", "wine", "engine", "object"]); | ||
include(["engines", "wine", "plugins", "regedit"]); | ||
include(["utils", "functions", "net", "resource"]); | ||
include(["utils", "functions", "filesystem", "files"]); | ||
|
||
/** | ||
* All the necessary things to run winevulkan (even inside wine mainline or newest wine-staging) | ||
* -> https://github.com/roderickc/wine-vulkan | ||
* @returns {Wine} Wine object | ||
*/ | ||
Wine.prototype.vulkanSDK = function () { | ||
print("NOTE: you need a graphic driver that supports Vulkan to run winevulkan"); | ||
print("NOTE: Vulkan works in wine from version 3.3 (if compiled with vulkan support)"); | ||
|
||
var setupFile = new Resource() | ||
.wizard(this.wizard()) | ||
.url("https://sdk.lunarg.com/sdk/download/latest/windows/vulkan-sdk.exe?u=") | ||
//checksum changes everytime a new version is released | ||
.name("vulkan-sdk.exe") | ||
.get(); | ||
|
||
this.run(setupFile, "/S"); | ||
|
||
var patchVulkanJSON = this.prefixDirectory() + "drive_c/windows/winevulkan.json"; | ||
touch(patchVulkanJSON); | ||
writeToFile(patchVulkanJSON, "{\n \"file_format_version\": \"1.0.0\",\n \"ICD\": {\n \"library_path\": \"c:\windows\system32\winevulkan.dll\",\n \"api_version\": \"1.1.92.1\"\n }\n}"); | ||
this.run("reg", ["add", "HKLM\Software\Khronos\Vulkan\Drivers", "/v", "C:\Windows\winevulkan.json", "/t", "REG_DWORD", "/d", "00000000", "/f"], null, false, true); | ||
|
||
if (this.architecture() == "amd64") { | ||
this.run("reg", ["add", "HKLM\Software\Wow6432Node\Khronos\Vulkan\Drivers", "/v", "C:\Windows\winevulkan.json", "/t", "REG_DWORD", "/d", "00000000", "/f"], null, false, true); | ||
} | ||
|
||
return this; | ||
|
||
} | ||
|
||
/** | ||
* Verb to install all the necessary things to run winevulkan (even inside wine mainline or newest wine-staging) | ||
*/ | ||
var verbImplementation = { | ||
install: function (container) { | ||
var wine = new Wine(); | ||
wine.prefix(container); | ||
var wizard = SetupWizard(InstallationType.VERBS, "vulkanSDK", java.util.Optional.empty()); | ||
wine.wizard(wizard); | ||
wine.vulkanSDK(); | ||
wizard.close(); | ||
} | ||
}; | ||
|
||
/* exported Verb */ | ||
var Verb = Java.extend(org.phoenicis.engines.Verb, verbImplementation); |