mirror of
https://git.code.sf.net/p/quake/quakeforge
synced 2024-11-23 04:42:32 +00:00
[vulkan] Use correct vertex shader for skys
This gets skys rendering again, but their depth is incorrect.
This commit is contained in:
parent
de581501fb
commit
81956095f1
3 changed files with 15 additions and 14 deletions
|
@ -36,7 +36,7 @@
|
||||||
#include <vulkan/vulkan.h>
|
#include <vulkan/vulkan.h>
|
||||||
|
|
||||||
//FIXME location
|
//FIXME location
|
||||||
enum {
|
typedef enum {
|
||||||
QFV_passDepth, // geometry
|
QFV_passDepth, // geometry
|
||||||
QFV_passGBuffer, // geometry
|
QFV_passGBuffer, // geometry
|
||||||
QFV_passLighting, // single quad
|
QFV_passLighting, // single quad
|
||||||
|
@ -44,7 +44,7 @@ enum {
|
||||||
QFV_passCompose, // single quad
|
QFV_passCompose, // single quad
|
||||||
|
|
||||||
QFV_NumPasses
|
QFV_NumPasses
|
||||||
};
|
} QFV_Subpass;
|
||||||
|
|
||||||
enum {
|
enum {
|
||||||
QFV_attachDepth,
|
QFV_attachDepth,
|
||||||
|
|
|
@ -719,12 +719,12 @@
|
||||||
//renderPass = renderpass;
|
//renderPass = renderpass;
|
||||||
};
|
};
|
||||||
bsp_skysheet = {
|
bsp_skysheet = {
|
||||||
subpass = 2;
|
subpass = 3;
|
||||||
stages = (
|
stages = (
|
||||||
{
|
{
|
||||||
stage = vertex;
|
stage = vertex;
|
||||||
name = main;
|
name = main;
|
||||||
module = $builtin/bsp_gbuf.vert;
|
module = $builtin/quakebsp.vert;
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
stage = fragment;
|
stage = fragment;
|
||||||
|
|
|
@ -75,6 +75,12 @@ static const char *bsp_pass_names[] = {
|
||||||
"translucent",
|
"translucent",
|
||||||
};
|
};
|
||||||
|
|
||||||
|
static QFV_Subpass subpass_map[] = {
|
||||||
|
QFV_passDepth, // QFV_bspDepth
|
||||||
|
QFV_passGBuffer, // QFV_bspGBuffer
|
||||||
|
QFV_passTranslucent, // QFV_bspTranslucent
|
||||||
|
};
|
||||||
|
|
||||||
static float identity[] = {
|
static float identity[] = {
|
||||||
1, 0, 0, 0,
|
1, 0, 0, 0,
|
||||||
0, 1, 0, 0,
|
0, 1, 0, 0,
|
||||||
|
@ -872,7 +878,7 @@ bsp_begin_subpass (QFV_BspSubpass subpass, VkPipeline pipeline,
|
||||||
dfunc->vkResetCommandBuffer (cmd, 0);
|
dfunc->vkResetCommandBuffer (cmd, 0);
|
||||||
VkCommandBufferInheritanceInfo inherit = {
|
VkCommandBufferInheritanceInfo inherit = {
|
||||||
VK_STRUCTURE_TYPE_COMMAND_BUFFER_INHERITANCE_INFO, 0,
|
VK_STRUCTURE_TYPE_COMMAND_BUFFER_INHERITANCE_INFO, 0,
|
||||||
ctx->renderpass, subpass,
|
ctx->renderpass, subpass_map[subpass],
|
||||||
cframe->framebuffer,
|
cframe->framebuffer,
|
||||||
0, 0, 0,
|
0, 0, 0,
|
||||||
};
|
};
|
||||||
|
@ -883,6 +889,9 @@ bsp_begin_subpass (QFV_BspSubpass subpass, VkPipeline pipeline,
|
||||||
};
|
};
|
||||||
dfunc->vkBeginCommandBuffer (cmd, &beginInfo);
|
dfunc->vkBeginCommandBuffer (cmd, &beginInfo);
|
||||||
|
|
||||||
|
QFV_duCmdBeginLabel (device, cmd, bsp_pass_names[subpass],
|
||||||
|
{0, 0.5, 0.6, 1});
|
||||||
|
|
||||||
dfunc->vkCmdBindPipeline (cmd, VK_PIPELINE_BIND_POINT_GRAPHICS,
|
dfunc->vkCmdBindPipeline (cmd, VK_PIPELINE_BIND_POINT_GRAPHICS,
|
||||||
pipeline);
|
pipeline);
|
||||||
VkViewport viewport = {0, 0, vid.width, vid.height, 0, 1};
|
VkViewport viewport = {0, 0, vid.width, vid.height, 0, 1};
|
||||||
|
@ -914,6 +923,7 @@ bsp_end_subpass (VkCommandBuffer cmd, vulkan_ctx_t *ctx)
|
||||||
qfv_device_t *device = ctx->device;
|
qfv_device_t *device = ctx->device;
|
||||||
qfv_devfuncs_t *dfunc = device->funcs;
|
qfv_devfuncs_t *dfunc = device->funcs;
|
||||||
|
|
||||||
|
QFV_duCmdEndLabel (device, cmd);
|
||||||
dfunc->vkEndCommandBuffer (cmd);
|
dfunc->vkEndCommandBuffer (cmd);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -1274,15 +1284,6 @@ Vulkan_DrawSky (vulkan_ctx_t *ctx)
|
||||||
fragconst_t frag_constants = { time: vr_data.realtime };
|
fragconst_t frag_constants = { time: vr_data.realtime };
|
||||||
push_fragconst (&frag_constants, bctx->layout, dfunc,
|
push_fragconst (&frag_constants, bctx->layout, dfunc,
|
||||||
bframe->cmdSet.a[QFV_bspTranslucent]);
|
bframe->cmdSet.a[QFV_bspTranslucent]);
|
||||||
bind_view (qfv_bsp_texture, ctx->default_black->view, bframe,
|
|
||||||
bframe->cmdSet.a[QFV_bspTranslucent],//FIXME
|
|
||||||
bctx->layout, dfunc);
|
|
||||||
bind_view (qfv_bsp_glowmap, ctx->default_black->view, bframe,
|
|
||||||
bframe->cmdSet.a[QFV_bspTranslucent],//FIXME
|
|
||||||
bctx->layout, dfunc);
|
|
||||||
bind_view (qfv_bsp_lightmap, ctx->default_black->view, bframe,
|
|
||||||
bframe->cmdSet.a[QFV_bspTranslucent],//FIXME
|
|
||||||
bctx->layout, dfunc);
|
|
||||||
for (is = bctx->sky_chain; is; is = is->tex_chain) {
|
for (is = bctx->sky_chain; is; is = is->tex_chain) {
|
||||||
surf = is->surface;
|
surf = is->surface;
|
||||||
if (tex != surf->texinfo->texture->render) {
|
if (tex != surf->texinfo->texture->render) {
|
||||||
|
|
Loading…
Reference in a new issue