fixed memory bug introduced by 48796a0fa3
This commit is contained in:
parent
1d64275dee
commit
3a210a6959
1 changed files with 11 additions and 11 deletions
|
|
@ -82,16 +82,16 @@ pub const Instance = struct {
|
||||||
defer avaliableExtensions.deinit();
|
defer avaliableExtensions.deinit();
|
||||||
_ = c.vkEnumerateInstanceExtensionProperties(null, &avaliableExtensionsCount, avaliableExtensions.items.ptr);
|
_ = c.vkEnumerateInstanceExtensionProperties(null, &avaliableExtensionsCount, avaliableExtensions.items.ptr);
|
||||||
// Check the extensions we want against the extensions the user has
|
// Check the extensions we want against the extensions the user has
|
||||||
for(extensions) |need_ext| {
|
for (extensions) |need_ext| {
|
||||||
var found = false;
|
var found = false;
|
||||||
for(avaliableExtensions.items) |useable_ext| {
|
for (avaliableExtensions.items) |useable_ext| {
|
||||||
const extensionName: [*c]const u8 = &useable_ext.extensionName;
|
const extensionName: [*c]const u8 = &useable_ext.extensionName;
|
||||||
if(std.mem.eql(u8, std.mem.sliceTo(need_ext, 0), std.mem.sliceTo(extensionName, 0))){
|
if (std.mem.eql(u8, std.mem.sliceTo(need_ext, 0), std.mem.sliceTo(extensionName, 0))) {
|
||||||
found = true;
|
found = true;
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
if(!found){
|
if (!found) {
|
||||||
std.debug.panic("ERROR: Needed vulkan extension {s} not found\n", .{need_ext});
|
std.debug.panic("ERROR: Needed vulkan extension {s} not found\n", .{need_ext});
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
@ -107,19 +107,19 @@ pub const Instance = struct {
|
||||||
// Every layer we do have we add to this list, if we don't have it no worries just print a message and continue
|
// Every layer we do have we add to this list, if we don't have it no worries just print a message and continue
|
||||||
var newLayers = std.ArrayList([*c]const u8).init(allocator);
|
var newLayers = std.ArrayList([*c]const u8).init(allocator);
|
||||||
// Loop over layers we want
|
// Loop over layers we want
|
||||||
for(validation_layers) |want_layer| {
|
for (validation_layers) |want_layer| {
|
||||||
var found = false;
|
var found = false;
|
||||||
for(availableLayers.items) |useable_validation| {
|
for (availableLayers.items) |useable_validation| {
|
||||||
const layer_name: [*c]const u8 = &useable_validation.layerName;
|
const layer_name: [*c]const u8 = &useable_validation.layerName;
|
||||||
if (std.mem.eql(u8, std.mem.sliceTo(want_layer, 0), std.mem.sliceTo(layer_name, 0))){
|
if (std.mem.eql(u8, std.mem.sliceTo(want_layer, 0), std.mem.sliceTo(layer_name, 0))) {
|
||||||
found = true;
|
found = true;
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
if(!found){
|
if (!found) {
|
||||||
std.debug.print("WARNING: Compiled in debug mode, but wanted validation layer {s} not found.\n", .{want_layer});
|
std.debug.print("WARNING: Compiled in debug mode, but wanted validation layer {s} not found.\n", .{want_layer});
|
||||||
std.debug.print("NOTE: Validation layer will be removed from the wanted validation layers\n", .{});
|
std.debug.print("NOTE: Validation layer will be removed from the wanted validation layers\n", .{});
|
||||||
} else{
|
} else {
|
||||||
try newLayers.append(want_layer);
|
try newLayers.append(want_layer);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
@ -138,7 +138,7 @@ pub const Instance = struct {
|
||||||
.pApplicationInfo = &app_info,
|
.pApplicationInfo = &app_info,
|
||||||
.enabledExtensionCount = @intCast(extensions.len),
|
.enabledExtensionCount = @intCast(extensions.len),
|
||||||
.ppEnabledExtensionNames = extensions.ptr,
|
.ppEnabledExtensionNames = extensions.ptr,
|
||||||
.enabledLayerCount = @intCast(newLayers.capacity),
|
.enabledLayerCount = @intCast(newLayers.items.len),
|
||||||
.ppEnabledLayerNames = newLayers.items.ptr,
|
.ppEnabledLayerNames = newLayers.items.ptr,
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
@ -849,7 +849,7 @@ pub fn Device(comptime n: usize) type {
|
||||||
|
|
||||||
pub fn waitIdle(self: Self) void {
|
pub fn waitIdle(self: Self) void {
|
||||||
const mapErrorRes = mapError(c.vkDeviceWaitIdle(self.handle));
|
const mapErrorRes = mapError(c.vkDeviceWaitIdle(self.handle));
|
||||||
if(mapErrorRes) {} else |err| {
|
if (mapErrorRes) {} else |err| {
|
||||||
std.debug.panic("Vulkan wait idle error: {any}\n", .{err});
|
std.debug.panic("Vulkan wait idle error: {any}\n", .{err});
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue