@@ -104,13 +104,15 @@ public struct BottleWineConfig: Codable, Equatable {
104
104
public struct BottleMetalConfig : Codable , Equatable {
105
105
var metalHud : Bool = false
106
106
var metalTrace : Bool = false
107
+ var dxrEnabled : Bool = false
107
108
108
109
public init ( ) { }
109
110
110
111
public init ( from decoder: Decoder ) throws {
111
112
let container = try decoder. container ( keyedBy: CodingKeys . self)
112
113
self . metalHud = try container. decodeIfPresent ( Bool . self, forKey: . metalHud) ?? false
113
114
self . metalTrace = try container. decodeIfPresent ( Bool . self, forKey: . metalTrace) ?? false
115
+ self . dxrEnabled = try container. decodeIfPresent ( Bool . self, forKey: . dxrEnabled) ?? false
114
116
}
115
117
}
116
118
@@ -178,6 +180,11 @@ public struct BottleSettings: Codable, Equatable {
178
180
set { wineConfig. windowsVersion = newValue }
179
181
}
180
182
183
+ public var avxEnabled : Bool {
184
+ get { return wineConfig. avxEnabled }
185
+ set { wineConfig. avxEnabled = newValue }
186
+ }
187
+
181
188
/// The pinned programs on this bottle
182
189
public var pins : [ PinnedProgram ] {
183
190
get { return info. pins }
@@ -205,6 +212,11 @@ public struct BottleSettings: Codable, Equatable {
205
212
set { metalConfig. metalTrace = newValue }
206
213
}
207
214
215
+ public var dxrEnabled : Bool {
216
+ get { return metalConfig. dxrEnabled }
217
+ set { metalConfig. dxrEnabled = newValue }
218
+ }
219
+
208
220
public var dxvk : Bool {
209
221
get { return dxvkConfig. dxvk }
210
222
set { dxvkConfig. dxvk = newValue }
@@ -220,11 +232,6 @@ public struct BottleSettings: Codable, Equatable {
220
232
set { dxvkConfig. dxvkHud = newValue }
221
233
}
222
234
223
- public var avxEnabled : Bool {
224
- get { return wineConfig. avxEnabled }
225
- set { wineConfig. avxEnabled = newValue }
226
- }
227
-
228
235
@discardableResult
229
236
public static func decode( from metadataURL: URL ) throws -> BottleSettings {
230
237
guard FileManager . default. fileExists ( atPath: metadataURL. path ( percentEncoded: false ) ) else {
@@ -306,5 +313,9 @@ public struct BottleSettings: Codable, Equatable {
306
313
if avxEnabled {
307
314
wineEnv. updateValue ( " 1 " , forKey: " ROSETTA_ADVERTISE_AVX " )
308
315
}
316
+
317
+ if dxrEnabled {
318
+ wineEnv. updateValue ( " 1 " , forKey: " D3DM_SUPPORT_DXR " )
319
+ }
309
320
}
310
321
}
0 commit comments