Vulkan fixes on Linux
This commit is contained in:
parent
2f8a8ed763
commit
b6a7b2192c
5 changed files with 9 additions and 10 deletions
|
|
@ -14,6 +14,6 @@
|
||||||
#define log_warning(msg) do { printf("\x1b[33m" "[WARN]" "\x1b[0m: %s", (msg)); } while (0)
|
#define log_warning(msg) do { printf("\x1b[33m" "[WARN]" "\x1b[0m: %s", (msg)); } while (0)
|
||||||
#define log_info(msg) do { printf("\x1b[32m" "[INFO]" "\x1b[0m: %s", (msg)); } while (0)
|
#define log_info(msg) do { printf("\x1b[32m" "[INFO]" "\x1b[0m: %s", (msg)); } while (0)
|
||||||
|
|
||||||
#define fatal(msg) do { arena_bump(global_arena); arena_deinit(global_arena); log_error(msg); exit(1); } while (0)
|
#define fatal(msg) do { log_error(msg); exit(1); } while (0)
|
||||||
|
|
||||||
#endif
|
#endif
|
||||||
|
|
|
||||||
2
makefile
2
makefile
|
|
@ -8,8 +8,8 @@ endif
|
||||||
SRC:=\
|
SRC:=\
|
||||||
topaz.c\
|
topaz.c\
|
||||||
core/linear.c\
|
core/linear.c\
|
||||||
core/arena.c\
|
|
||||||
core/vector.c\
|
core/vector.c\
|
||||||
|
core/arena.c
|
||||||
|
|
||||||
ifeq (${GRAPHICS_BACKEND},gl)
|
ifeq (${GRAPHICS_BACKEND},gl)
|
||||||
SRC += rendering/gl/gl.c\
|
SRC += rendering/gl/gl.c\
|
||||||
|
|
|
||||||
|
|
@ -67,11 +67,15 @@ void vk_instance_init(struct renderer_context *context)
|
||||||
|
|
||||||
usize extension_count = 0;
|
usize extension_count = 0;
|
||||||
const char **extension_names = vk_instance_extensions(&extension_count);
|
const char **extension_names = vk_instance_extensions(&extension_count);
|
||||||
|
u32 flags = 0;
|
||||||
|
#ifdef PLATFORM_MACOS
|
||||||
|
flags |= VK_INSTANCE_CREATE_ENUMERATE_PORTABILITY_BIT_KHR;
|
||||||
|
#endif
|
||||||
|
|
||||||
VkInstanceCreateInfo instance_info = {
|
VkInstanceCreateInfo instance_info = {
|
||||||
.sType = VK_STRUCTURE_TYPE_INSTANCE_CREATE_INFO,
|
.sType = VK_STRUCTURE_TYPE_INSTANCE_CREATE_INFO,
|
||||||
.pApplicationInfo = &application_info,
|
.pApplicationInfo = &application_info,
|
||||||
.flags = VK_INSTANCE_CREATE_ENUMERATE_PORTABILITY_BIT_KHR,
|
.flags = flags,
|
||||||
.enabledLayerCount = LAYER_COUNT,
|
.enabledLayerCount = LAYER_COUNT,
|
||||||
.ppEnabledLayerNames = layers,
|
.ppEnabledLayerNames = layers,
|
||||||
.enabledExtensionCount = extension_count,
|
.enabledExtensionCount = extension_count,
|
||||||
|
|
|
||||||
|
|
@ -5,13 +5,12 @@
|
||||||
#include "device.h"
|
#include "device.h"
|
||||||
#include "surface.h"
|
#include "surface.h"
|
||||||
#include "vk.h"
|
#include "vk.h"
|
||||||
#include "../../core/arena.h"
|
|
||||||
#include <stdlib.h>
|
#include <stdlib.h>
|
||||||
#include <stdio.h>
|
#include <stdio.h>
|
||||||
|
|
||||||
struct renderer_context *renderer_context_init(RGFW_window *window)
|
struct renderer_context *renderer_context_init(RGFW_window *window)
|
||||||
{
|
{
|
||||||
struct renderer_context *context = (struct renderer_context *)arena_alloc(global_arena, (sizeof(struct renderer_context)));
|
struct renderer_context *context = (struct renderer_context *)malloc(sizeof(struct renderer_context));
|
||||||
context->window = window;
|
context->window = window;
|
||||||
|
|
||||||
vk_instance_init(context);
|
vk_instance_init(context);
|
||||||
|
|
@ -27,6 +26,7 @@ void renderer_context_deinit(struct renderer_context *context)
|
||||||
vk_surface_deinit(context);
|
vk_surface_deinit(context);
|
||||||
vk_device_deinit(context);
|
vk_device_deinit(context);
|
||||||
vk_instance_deinit(context);
|
vk_instance_deinit(context);
|
||||||
|
free(context);
|
||||||
}
|
}
|
||||||
|
|
||||||
struct mesh *renderer_build_chunk_mesh(void)
|
struct mesh *renderer_build_chunk_mesh(void)
|
||||||
|
|
|
||||||
5
topaz.c
5
topaz.c
|
|
@ -5,13 +5,8 @@
|
||||||
#include "core/arena.h"
|
#include "core/arena.h"
|
||||||
#include "types.h"
|
#include "types.h"
|
||||||
|
|
||||||
struct arena_allocator *global_arena = NULL;
|
|
||||||
|
|
||||||
i32 main(i32 argc, char **argv)
|
i32 main(i32 argc, char **argv)
|
||||||
{
|
{
|
||||||
global_arena = arena_init(1);
|
|
||||||
u32 result = platform_run(argc, argv);
|
u32 result = platform_run(argc, argv);
|
||||||
arena_bump(global_arena);
|
|
||||||
arena_deinit(global_arena);
|
|
||||||
return result;
|
return result;
|
||||||
}
|
}
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue