FTEQW
Documentation of the FTE engine source tree.
vkrenderer.h File Reference

Go to the source code of this file.

Classes

struct  vk_poolmem_t
 
struct  vk_image_s
 
struct  vk_rendertarg
 
struct  vk_rendertarg_cube
 
struct  vulkaninfo_s
 
struct  vulkaninfo_s::vk_fencework
 
struct  vulkaninfo_s::vk_mempool_s
 
struct  vulkaninfo_s::descpool
 
struct  vulkaninfo_s::dynbuffer
 
struct  vulkaninfo_s::vkframe
 
struct  vulkaninfo_s::vkframe::vk_frameend
 
struct  vulkaninfo_s::vksamplers_s
 
struct  vulkaninfo_s::vkwork_s
 
struct  pipeline_s
 
struct  stagingbuf
 

Typedefs

typedef struct vk_image_s vk_image_t
 

Enumerations

enum  dynbuf_e {
  DB_VBO , DB_EBO , DB_UBO , DB_STAGING ,
  DB_MAX
}
 

Functions

uint32_t vk_find_memory_try (uint32_t typeBits, VkFlags requirements_mask)
 
uint32_t vk_find_memory_require (uint32_t typeBits, VkFlags requirements_mask)
 
void VK_DoPresent (struct vkframe *theframe)
 
qboolean VK_EnumerateDevices (void *usercontext, void(*callback)(void *context, const char *devicename, const char *outputname, const char *desc), const char *descprefix, PFN_vkGetInstanceProcAddr vk_GetInstanceProcAddr)
 
qboolean VK_Init (rendererstate_t *info, const char **sysextname, qboolean(*createSurface)(void), void(*dopresent)(struct vkframe *theframe))
 
void VK_Shutdown (void)
 
void VK_R_BloomBlend (texid_t source, int x, int y, int w, int h)
 
void VK_R_BloomShutdown (void)
 
qboolean R_CanBloom (void)
 
qboolean VK_LoadGLSL (struct programshared_s *prog, struct programpermu_s *permu, int ver, const char **precompilerconstants, const char *vert, const char *tcs, const char *tes, const char *geom, const char *frag, qboolean noerrors, vfsfile_t *blobfile)
 
VkCommandBuffer VK_AllocFrameCBuf (void)
 
void VK_Submit_Work (VkCommandBuffer cmdbuf, VkSemaphore semwait, VkPipelineStageFlags semwaitstagemask, VkSemaphore semsignal, VkFence fencesignal, struct vkframe *presentframe, struct vk_fencework *fencedwork)
 
void VKBE_Init (void)
 
void VKBE_InitFramePools (struct vkframe *frame)
 
void VKBE_RestartFrame (void)
 
void VKBE_FlushDynamicBuffers (void)
 
void VKBE_Set2D (qboolean twodee)
 
void VKBE_ShutdownFramePools (struct vkframe *frame)
 
void VKBE_Shutdown (void)
 
void VKBE_SelectMode (backendmode_t mode)
 
void VKBE_DrawMesh_List (shader_t *shader, int nummeshes, mesh_t **mesh, vbo_t *vbo, texnums_t *texnums, unsigned int beflags)
 
void VKBE_DrawMesh_Single (shader_t *shader, mesh_t *meshchain, vbo_t *vbo, unsigned int beflags)
 
void VKBE_SubmitBatch (batch_t *batch)
 
batch_tVKBE_GetTempBatch (void)
 
void VKBE_GenBrushModelVBO (model_t *mod)
 
void VKBE_ClearVBO (vbo_t *vbo, qboolean dataonly)
 
void VKBE_UploadAllLightmaps (void)
 
void VKBE_DrawWorld (batch_t **worldbatches)
 
qboolean VKBE_LightCullModel (vec3_t org, model_t *model)
 
void VKBE_SelectEntity (entity_t *ent)
 
qboolean VKBE_SelectDLight (dlight_t *dl, vec3_t colour, vec3_t axis[3], unsigned int lmode)
 
void VKBE_VBO_Begin (vbobctx_t *ctx, size_t maxsize)
 
void VKBE_VBO_Data (vbobctx_t *ctx, void *data, size_t size, vboarray_t *varray)
 
void VKBE_VBO_Finish (vbobctx_t *ctx, void *edata, size_t esize, vboarray_t *earray, void **vbomem, void **ebomem)
 
void VKBE_VBO_Destroy (vboarray_t *vearray, void *mem)
 
void VKBE_Scissor (srect_t *rect)
 
void VKBE_BaseEntTextures (const qbyte *scenepvs, const int *sceneareas)
 
struct vk_shadowbuffer * VKBE_GenerateShadowBuffer (vecV_t *verts, int numverts, index_t *indicies, int numindicies, qboolean istemp)
 
void VKBE_DestroyShadowBuffer (struct vk_shadowbuffer *buf)
 
void VKBE_RenderShadowBuffer (struct vk_shadowbuffer *buf)
 
void VKBE_SetupForShadowMap (dlight_t *dl, int texwidth, int texheight, float shadowscale)
 
qboolean VKBE_BeginShadowmap (qboolean isspot, uint32_t width, uint32_t height)
 
void VKBE_BeginShadowmapFace (void)
 
void VKBE_DoneShadows (void)
 
void VKBE_RT_Gen_Cube (struct vk_rendertarg_cube *targ, uint32_t size, qboolean clear)
 
void VKBE_RT_Gen (struct vk_rendertarg *targ, vk_image_t *colour, uint32_t width, uint32_t height, qboolean clear, unsigned int flags)
 
void VKBE_RT_Begin (struct vk_rendertarg *targ)
 
void VKBE_RT_End (struct vk_rendertarg *targ)
 
void VKBE_RT_Destroy (struct vk_rendertarg *targ)
 
char * VK_VKErrorToString (VkResult err)
 
qboolean VK_AllocatePoolMemory (uint32_t pooltype, VkDeviceSize memsize, VkDeviceSize poolalignment, vk_poolmem_t *mem)
 
void VK_ReleasePoolMemory (vk_poolmem_t *mem)
 
qboolean VK_AllocateImageMemory (VkImage image, qboolean dedicated, vk_poolmem_t *mem)
 
qboolean VK_AllocateBindImageMemory (vk_image_t *image, qboolean dedicated)
 
vk_image_t VK_CreateTexture2DArray (uint32_t width, uint32_t height, uint32_t layers, uint32_t mips, uploadfmt_t encoding, unsigned int type, qboolean rendertarget, const char *debugname)
 
void set_image_layout (VkCommandBuffer cmd, VkImage image, VkImageAspectFlags aspectMask, VkImageLayout old_image_layout, VkAccessFlags srcaccess, VkPipelineStageFlagBits srcstagemask, VkImageLayout new_image_layout, VkAccessFlags dstaccess, VkPipelineStageFlagBits dststagemask)
 
void VK_CreateSampler (unsigned int flags, vk_image_t *img)
 
void VK_CreateSamplerInfo (VkSamplerCreateInfo *info, vk_image_t *img)
 
voidVKBE_CreateStagingBuffer (struct stagingbuf *n, size_t size, VkBufferUsageFlags usage)
 
VkBuffer VKBE_FinishStaging (struct stagingbuf *n, vk_poolmem_t *memptr)
 
voidVK_FencedBegin (void(*passed)(void *work), size_t worksize)
 
void VK_FencedSubmit (void *work)
 
void VK_FencedCheck (void)
 
voidVK_AtFrameEnd (void(*passed)(void *work), void *data, size_t worksize)
 
void VK_Draw_Init (void)
 
void VK_Draw_Shutdown (void)
 
void VK_UpdateFiltering (image_t *imagelist, int filtermip[3], int filterpic[3], int mipcap[2], float lodbias, float anis)
 
qboolean VK_LoadTextureMips (texid_t tex, const struct pendingtextureinfo *mips)
 
void VK_DestroyTexture (texid_t tex)
 
void VK_DestroyVkTexture (vk_image_t *img)
 
void VK_R_Init (void)
 
void VK_R_DeInit (void)
 
void VK_R_RenderView (void)
 
char * VKVID_GetRGBInfo (int *bytestride, int *truevidwidth, int *truevidheight, enum uploadfmt *fmt)
 
qboolean VK_SCR_UpdateScreen (void)
 
void VKBE_RenderToTextureUpdate2d (qboolean destchanged)
 
VkRenderPass VK_GetRenderPass (int pass)
 
void VKVID_QueueGetRGBData (void(*gotrgbdata)(void *rgbdata, qintptr_t bytestride, size_t width, size_t height, enum uploadfmt fmt))
 

Variables

struct vulkaninfo_s vk
 

Typedef Documentation

◆ vk_image_t

typedef struct vk_image_s vk_image_t

Enumeration Type Documentation

◆ dynbuf_e

enum dynbuf_e
Enumerator
DB_VBO 
DB_EBO 
DB_UBO 
DB_STAGING 
DB_MAX 

Function Documentation

◆ R_CanBloom()

qboolean R_CanBloom ( void  )

◆ set_image_layout()

void set_image_layout ( VkCommandBuffer  cmd,
VkImage  image,
VkImageAspectFlags  aspectMask,
VkImageLayout  old_image_layout,
VkAccessFlags  srcaccess,
VkPipelineStageFlagBits  srcstagemask,
VkImageLayout  new_image_layout,
VkAccessFlags  dstaccess,
VkPipelineStageFlagBits  dststagemask 
)

◆ VK_AllocateBindImageMemory()

qboolean VK_AllocateBindImageMemory ( vk_image_t image,
qboolean  dedicated 
)

◆ VK_AllocateImageMemory()

qboolean VK_AllocateImageMemory ( VkImage  image,
qboolean  dedicated,
vk_poolmem_t mem 
)

◆ VK_AllocatePoolMemory()

qboolean VK_AllocatePoolMemory ( uint32_t  pooltype,
VkDeviceSize  memsize,
VkDeviceSize  poolalignment,
vk_poolmem_t mem 
)

◆ VK_AllocFrameCBuf()

VkCommandBuffer VK_AllocFrameCBuf ( void  )

◆ VK_AtFrameEnd()

void * VK_AtFrameEnd ( void(*)(void *work)  passed,
void data,
size_t  worksize 
)

◆ VK_CreateSampler()

void VK_CreateSampler ( unsigned int  flags,
vk_image_t img 
)

◆ VK_CreateSamplerInfo()

void VK_CreateSamplerInfo ( VkSamplerCreateInfo info,
vk_image_t img 
)

◆ VK_CreateTexture2DArray()

vk_image_t VK_CreateTexture2DArray ( uint32_t  width,
uint32_t  height,
uint32_t  layers,
uint32_t  mips,
uploadfmt_t  encoding,
unsigned int  type,
qboolean  rendertarget,
const char *  debugname 
)

◆ VK_DestroyTexture()

void VK_DestroyTexture ( texid_t  tex)

◆ VK_DestroyVkTexture()

void VK_DestroyVkTexture ( vk_image_t img)

◆ VK_DoPresent()

void VK_DoPresent ( struct vkframe *  theframe)

◆ VK_Draw_Init()

void VK_Draw_Init ( void  )

◆ VK_Draw_Shutdown()

void VK_Draw_Shutdown ( void  )

◆ VK_EnumerateDevices()

qboolean VK_EnumerateDevices ( void usercontext,
void(*)(void *context, const char *devicename, const char *outputname, const char *desc callback,
const char *  descprefix,
PFN_vkGetInstanceProcAddr  vk_GetInstanceProcAddr 
)

◆ VK_FencedBegin()

void * VK_FencedBegin ( void(*)(void *work)  passed,
size_t  worksize 
)

◆ VK_FencedCheck()

void VK_FencedCheck ( void  )

◆ VK_FencedSubmit()

void VK_FencedSubmit ( void work)

◆ vk_find_memory_require()

uint32_t vk_find_memory_require ( uint32_t  typeBits,
VkFlags  requirements_mask 
)

◆ vk_find_memory_try()

uint32_t vk_find_memory_try ( uint32_t  typeBits,
VkFlags  requirements_mask 
)

◆ VK_GetRenderPass()

VkRenderPass VK_GetRenderPass ( int  pass)

◆ VK_Init()

qboolean VK_Init ( rendererstate_t info,
const char **  sysextname,
qboolean(*)(void createSurface,
void(*)(struct vkframe *theframe)  dopresent 
)

◆ VK_LoadGLSL()

qboolean VK_LoadGLSL ( struct programshared_s prog,
struct programpermu_s permu,
int  ver,
const char **  precompilerconstants,
const char *  vert,
const char *  tcs,
const char *  tes,
const char *  geom,
const char *  frag,
qboolean  noerrors,
vfsfile_t blobfile 
)

◆ VK_LoadTextureMips()

qboolean VK_LoadTextureMips ( texid_t  tex,
const struct pendingtextureinfo mips 
)

◆ VK_R_BloomBlend()

void VK_R_BloomBlend ( texid_t  source,
int  x,
int  y,
int  w,
int  h 
)

◆ VK_R_BloomShutdown()

void VK_R_BloomShutdown ( void  )

◆ VK_R_DeInit()

void VK_R_DeInit ( void  )

◆ VK_R_Init()

void VK_R_Init ( void  )

◆ VK_R_RenderView()

void VK_R_RenderView ( void  )

◆ VK_ReleasePoolMemory()

void VK_ReleasePoolMemory ( vk_poolmem_t mem)

◆ VK_SCR_UpdateScreen()

qboolean VK_SCR_UpdateScreen ( void  )

◆ VK_Shutdown()

void VK_Shutdown ( void  )

◆ VK_Submit_Work()

void VK_Submit_Work ( VkCommandBuffer  cmdbuf,
VkSemaphore  semwait,
VkPipelineStageFlags  semwaitstagemask,
VkSemaphore  semsignal,
VkFence  fencesignal,
struct vkframe *  presentframe,
struct vk_fencework *  fencedwork 
)

◆ VK_UpdateFiltering()

void VK_UpdateFiltering ( image_t imagelist,
int  filtermip[3],
int  filterpic[3],
int  mipcap[2],
float  lodbias,
float  anis 
)

◆ VK_VKErrorToString()

char * VK_VKErrorToString ( VkResult  err)

◆ VKBE_BaseEntTextures()

void VKBE_BaseEntTextures ( const qbyte scenepvs,
const int sceneareas 
)

◆ VKBE_BeginShadowmap()

qboolean VKBE_BeginShadowmap ( qboolean  isspot,
uint32_t  width,
uint32_t  height 
)

◆ VKBE_BeginShadowmapFace()

void VKBE_BeginShadowmapFace ( void  )

◆ VKBE_ClearVBO()

void VKBE_ClearVBO ( vbo_t vbo,
qboolean  dataonly 
)

◆ VKBE_CreateStagingBuffer()

void * VKBE_CreateStagingBuffer ( struct stagingbuf n,
size_t  size,
VkBufferUsageFlags  usage 
)

◆ VKBE_DestroyShadowBuffer()

void VKBE_DestroyShadowBuffer ( struct vk_shadowbuffer *  buf)

◆ VKBE_DoneShadows()

void VKBE_DoneShadows ( void  )

◆ VKBE_DrawMesh_List()

void VKBE_DrawMesh_List ( shader_t shader,
int  nummeshes,
mesh_t **  mesh,
vbo_t vbo,
texnums_t texnums,
unsigned int  beflags 
)

◆ VKBE_DrawMesh_Single()

void VKBE_DrawMesh_Single ( shader_t shader,
mesh_t meshchain,
vbo_t vbo,
unsigned int  beflags 
)

◆ VKBE_DrawWorld()

void VKBE_DrawWorld ( batch_t **  worldbatches)

◆ VKBE_FinishStaging()

VkBuffer VKBE_FinishStaging ( struct stagingbuf n,
vk_poolmem_t memptr 
)

◆ VKBE_FlushDynamicBuffers()

void VKBE_FlushDynamicBuffers ( void  )

◆ VKBE_GenBrushModelVBO()

void VKBE_GenBrushModelVBO ( model_t mod)

◆ VKBE_GenerateShadowBuffer()

struct vk_shadowbuffer * VKBE_GenerateShadowBuffer ( vecV_t *  verts,
int  numverts,
index_t indicies,
int  numindicies,
qboolean  istemp 
)

◆ VKBE_GetTempBatch()

batch_t * VKBE_GetTempBatch ( void  )

◆ VKBE_Init()

void VKBE_Init ( void  )

◆ VKBE_InitFramePools()

void VKBE_InitFramePools ( struct vkframe *  frame)

◆ VKBE_LightCullModel()

qboolean VKBE_LightCullModel ( vec3_t  org,
model_t model 
)

◆ VKBE_RenderShadowBuffer()

void VKBE_RenderShadowBuffer ( struct vk_shadowbuffer *  buf)

◆ VKBE_RenderToTextureUpdate2d()

void VKBE_RenderToTextureUpdate2d ( qboolean  destchanged)

◆ VKBE_RestartFrame()

void VKBE_RestartFrame ( void  )

◆ VKBE_RT_Begin()

void VKBE_RT_Begin ( struct vk_rendertarg targ)

◆ VKBE_RT_Destroy()

void VKBE_RT_Destroy ( struct vk_rendertarg targ)

◆ VKBE_RT_End()

void VKBE_RT_End ( struct vk_rendertarg targ)

◆ VKBE_RT_Gen()

void VKBE_RT_Gen ( struct vk_rendertarg targ,
vk_image_t colour,
uint32_t  width,
uint32_t  height,
qboolean  clear,
unsigned int  flags 
)

◆ VKBE_RT_Gen_Cube()

void VKBE_RT_Gen_Cube ( struct vk_rendertarg_cube targ,
uint32_t  size,
qboolean  clear 
)

◆ VKBE_Scissor()

void VKBE_Scissor ( srect_t rect)

◆ VKBE_SelectDLight()

qboolean VKBE_SelectDLight ( dlight_t dl,
vec3_t  colour,
vec3_t  axis[3],
unsigned int  lmode 
)

◆ VKBE_SelectEntity()

void VKBE_SelectEntity ( entity_t ent)

◆ VKBE_SelectMode()

void VKBE_SelectMode ( backendmode_t  mode)

◆ VKBE_Set2D()

void VKBE_Set2D ( qboolean  twodee)

◆ VKBE_SetupForShadowMap()

void VKBE_SetupForShadowMap ( dlight_t dl,
int  texwidth,
int  texheight,
float  shadowscale 
)

◆ VKBE_Shutdown()

void VKBE_Shutdown ( void  )

◆ VKBE_ShutdownFramePools()

void VKBE_ShutdownFramePools ( struct vkframe *  frame)

◆ VKBE_SubmitBatch()

void VKBE_SubmitBatch ( batch_t batch)

◆ VKBE_UploadAllLightmaps()

void VKBE_UploadAllLightmaps ( void  )

◆ VKBE_VBO_Begin()

void VKBE_VBO_Begin ( vbobctx_t ctx,
size_t  maxsize 
)

◆ VKBE_VBO_Data()

void VKBE_VBO_Data ( vbobctx_t ctx,
void data,
size_t  size,
vboarray_t varray 
)

◆ VKBE_VBO_Destroy()

void VKBE_VBO_Destroy ( vboarray_t vearray,
void mem 
)

◆ VKBE_VBO_Finish()

void VKBE_VBO_Finish ( vbobctx_t ctx,
void edata,
size_t  esize,
vboarray_t earray,
void **  vbomem,
void **  ebomem 
)

◆ VKVID_GetRGBInfo()

char * VKVID_GetRGBInfo ( int bytestride,
int truevidwidth,
int truevidheight,
enum uploadfmt fmt 
)

◆ VKVID_QueueGetRGBData()

void VKVID_QueueGetRGBData ( void(*)(void *rgbdata, qintptr_t bytestride, size_t width, size_t height, enum uploadfmt fmt gotrgbdata)

Variable Documentation

◆ vk

struct vulkaninfo_s vk