Refactoring - rename resetPoolExpiry to requestResidency

This commit is contained in:
2025-11-13 23:02:58 -08:00
parent a68b1bf38d
commit d664e670f4
15 changed files with 33 additions and 34 deletions

View File

@@ -150,7 +150,7 @@ void KRCamera::preStream(const KRViewport& viewport)
m_skyBox.bind(&getContext()); m_skyBox.bind(&getContext());
if (m_skyBox.isBound()) { if (m_skyBox.isBound()) {
m_skyBox.get()->resetPoolExpiry(0.0f, KRTexture::TEXTURE_USAGE_SKY_CUBE); m_skyBox.get()->requestResidency(0.0f, KRTexture::TEXTURE_USAGE_SKY_CUBE);
} }
} }
@@ -625,7 +625,7 @@ void KRCamera::renderDebug(RenderInfo& ri)
KRTexture* fontTexture = m_pContext->getTextureManager()->getTexture("font"); KRTexture* fontTexture = m_pContext->getTextureManager()->getTexture("font");
fontTexture->resetPoolExpiry(0.0f, KRTexture::TEXTURE_USAGE_UI); fontTexture->requestResidency(0.0f, KRTexture::TEXTURE_USAGE_UI);
if (fontTexture->getStreamLevel(KRTexture::TEXTURE_USAGE_UI) != kraken_stream_level::STREAM_LEVEL_OUT) { if (fontTexture->getStreamLevel(KRTexture::TEXTURE_USAGE_UI) != kraken_stream_level::STREAM_LEVEL_OUT) {
PipelineInfo info{}; PipelineInfo info{};

View File

@@ -396,7 +396,7 @@ void KRLight::render(RenderInfo& ri)
m_flareTexture.bind(&getContext()); m_flareTexture.bind(&getContext());
if (m_flareTexture.isBound()) { if (m_flareTexture.isBound()) {
m_flareTexture.get()->resetPoolExpiry(0.0f, KRTexture::TEXTURE_USAGE_LIGHT_FLARE); m_flareTexture.get()->requestResidency(0.0f, KRTexture::TEXTURE_USAGE_LIGHT_FLARE);
KRMeshManager::KRVBOData& vertices = getContext().getMeshManager()->KRENGINE_VBO_DATA_2D_SQUARE_VERTICES; KRMeshManager::KRVBOData& vertices = getContext().getMeshManager()->KRENGINE_VBO_DATA_2D_SQUARE_VERTICES;
// Render light flare on transparency pass // Render light flare on transparency pass

View File

@@ -294,7 +294,7 @@ void KRModel::render(KRNode::RenderInfo& ri)
if (m_lightMap.isBound() && ri.camera->settings.bEnableLightMap && ri.renderPass->getType() != RENDER_PASS_SHADOWMAP && ri.renderPass->getType() != RENDER_PASS_SHADOWMAP) { if (m_lightMap.isBound() && ri.camera->settings.bEnableLightMap && ri.renderPass->getType() != RENDER_PASS_SHADOWMAP && ri.renderPass->getType() != RENDER_PASS_SHADOWMAP) {
m_lightMap.get()->resetPoolExpiry(lod_coverage, KRTexture::TEXTURE_USAGE_LIGHT_MAP); m_lightMap.get()->requestResidency(lod_coverage, KRTexture::TEXTURE_USAGE_LIGHT_MAP);
// TODO - Vulkan refactoring. We need to bind the shadow map in KRMesh::Render // TODO - Vulkan refactoring. We need to bind the shadow map in KRMesh::Render
// m_pContext->getTextureManager()->selectTexture(5, m_pLightMap, lod_coverage, KRTexture::TEXTURE_USAGE_LIGHT_MAP); // m_pContext->getTextureManager()->selectTexture(5, m_pLightMap, lod_coverage, KRTexture::TEXTURE_USAGE_LIGHT_MAP);
} }
@@ -316,7 +316,6 @@ void KRModel::render(KRNode::RenderInfo& ri)
void KRModel::preStream(const KRViewport& viewport) void KRModel::preStream(const KRViewport& viewport)
{ {
KRNode::preStream(viewport); KRNode::preStream(viewport);
m_lightMap.bind(&getContext());
loadModel(); loadModel();
float lod_coverage = viewport.coverage(getBounds()); float lod_coverage = viewport.coverage(getBounds());
@@ -329,7 +328,7 @@ void KRModel::preStream(const KRViewport& viewport)
m_lightMap.bind(&getContext()); m_lightMap.bind(&getContext());
if (m_lightMap.isBound()) { if (m_lightMap.isBound()) {
m_lightMap.get()->resetPoolExpiry(lod_coverage, KRTexture::TEXTURE_USAGE_LIGHT_MAP); m_lightMap.get()->requestResidency(lod_coverage, KRTexture::TEXTURE_USAGE_LIGHT_MAP);
} }
} }

View File

@@ -120,7 +120,7 @@ void KRSprite::preStream(const KRViewport& viewport)
m_spriteTexture.bind(&getContext()); m_spriteTexture.bind(&getContext());
if (m_spriteTexture.isBound()) { if (m_spriteTexture.isBound()) {
m_spriteTexture.get()->resetPoolExpiry(0.0f, KRTexture::TEXTURE_USAGE_SPRITE); m_spriteTexture.get()->requestResidency(0.0f, KRTexture::TEXTURE_USAGE_SPRITE);
} }
} }

View File

@@ -233,27 +233,27 @@ void KRMaterial::preStream(float lodCoverage)
getTextures(); getTextures();
if (m_ambientMap.isBound()) { if (m_ambientMap.isBound()) {
m_ambientMap.get()->resetPoolExpiry(lodCoverage, KRTexture::TEXTURE_USAGE_AMBIENT_MAP); m_ambientMap.get()->requestResidency(lodCoverage, KRTexture::TEXTURE_USAGE_AMBIENT_MAP);
} }
if (m_diffuseMap.isBound()) { if (m_diffuseMap.isBound()) {
m_diffuseMap.get()->resetPoolExpiry(lodCoverage, KRTexture::TEXTURE_USAGE_DIFFUSE_MAP); m_diffuseMap.get()->requestResidency(lodCoverage, KRTexture::TEXTURE_USAGE_DIFFUSE_MAP);
} }
if (m_normalMap.isBound()) { if (m_normalMap.isBound()) {
m_normalMap.get()->resetPoolExpiry(lodCoverage, KRTexture::TEXTURE_USAGE_NORMAL_MAP); m_normalMap.get()->requestResidency(lodCoverage, KRTexture::TEXTURE_USAGE_NORMAL_MAP);
} }
if (m_specularMap.isBound()) { if (m_specularMap.isBound()) {
m_specularMap.get()->resetPoolExpiry(lodCoverage, KRTexture::TEXTURE_USAGE_SPECULAR_MAP); m_specularMap.get()->requestResidency(lodCoverage, KRTexture::TEXTURE_USAGE_SPECULAR_MAP);
} }
if (m_reflectionMap.isBound()) { if (m_reflectionMap.isBound()) {
m_reflectionMap.get()->resetPoolExpiry(lodCoverage, KRTexture::TEXTURE_USAGE_REFLECTION_MAP); m_reflectionMap.get()->requestResidency(lodCoverage, KRTexture::TEXTURE_USAGE_REFLECTION_MAP);
} }
if (m_reflectionCube.isBound()) { if (m_reflectionCube.isBound()) {
m_reflectionCube.get()->resetPoolExpiry(lodCoverage, KRTexture::TEXTURE_USAGE_REFECTION_CUBE); m_reflectionCube.get()->requestResidency(lodCoverage, KRTexture::TEXTURE_USAGE_REFECTION_CUBE);
} }
} }
@@ -384,27 +384,27 @@ void KRMaterial::bind(KRNode::RenderInfo& ri, ModelFormat modelFormat, __uint32_
} }
if (bDiffuseMap) { if (bDiffuseMap) {
m_diffuseMap.get()->resetPoolExpiry(lod_coverage, KRTexture::TEXTURE_USAGE_DIFFUSE_MAP); m_diffuseMap.get()->requestResidency(lod_coverage, KRTexture::TEXTURE_USAGE_DIFFUSE_MAP);
pShader->setImageBinding("diffuseTexture", m_diffuseMap.get(), getContext().getSamplerManager()->DEFAULT_WRAPPING_SAMPLER); pShader->setImageBinding("diffuseTexture", m_diffuseMap.get(), getContext().getSamplerManager()->DEFAULT_WRAPPING_SAMPLER);
} }
if (bSpecMap) { if (bSpecMap) {
m_specularMap.get()->resetPoolExpiry(lod_coverage, KRTexture::TEXTURE_USAGE_SPECULAR_MAP); m_specularMap.get()->requestResidency(lod_coverage, KRTexture::TEXTURE_USAGE_SPECULAR_MAP);
pShader->setImageBinding("specularTexture", m_specularMap.get(), getContext().getSamplerManager()->DEFAULT_WRAPPING_SAMPLER); pShader->setImageBinding("specularTexture", m_specularMap.get(), getContext().getSamplerManager()->DEFAULT_WRAPPING_SAMPLER);
} }
if (bNormalMap) { if (bNormalMap) {
m_normalMap.get()->resetPoolExpiry(lod_coverage, KRTexture::TEXTURE_USAGE_NORMAL_MAP); m_normalMap.get()->requestResidency(lod_coverage, KRTexture::TEXTURE_USAGE_NORMAL_MAP);
pShader->setImageBinding("normalTexture", m_normalMap.get(), getContext().getSamplerManager()->DEFAULT_WRAPPING_SAMPLER); pShader->setImageBinding("normalTexture", m_normalMap.get(), getContext().getSamplerManager()->DEFAULT_WRAPPING_SAMPLER);
} }
if (bReflectionCubeMap) { if (bReflectionCubeMap) {
m_reflectionCube.get()->resetPoolExpiry(lod_coverage, KRTexture::TEXTURE_USAGE_REFECTION_CUBE); m_reflectionCube.get()->requestResidency(lod_coverage, KRTexture::TEXTURE_USAGE_REFECTION_CUBE);
pShader->setImageBinding("reflectionCubeTexture", m_reflectionCube.get(), getContext().getSamplerManager()->DEFAULT_CLAMPED_SAMPLER); pShader->setImageBinding("reflectionCubeTexture", m_reflectionCube.get(), getContext().getSamplerManager()->DEFAULT_CLAMPED_SAMPLER);
} }
if (bReflectionMap) { if (bReflectionMap) {
m_reflectionMap.get()->resetPoolExpiry(lod_coverage, KRTexture::TEXTURE_USAGE_REFLECTION_MAP); m_reflectionMap.get()->requestResidency(lod_coverage, KRTexture::TEXTURE_USAGE_REFLECTION_MAP);
pShader->setImageBinding("reflectionTexture", m_reflectionMap.get(), getContext().getSamplerManager()->DEFAULT_CLAMPED_SAMPLER); pShader->setImageBinding("reflectionTexture", m_reflectionMap.get(), getContext().getSamplerManager()->DEFAULT_CLAMPED_SAMPLER);
} }

View File

@@ -198,7 +198,7 @@ void KRMesh::preStream(float lodCoverage)
for (Submesh& mesh : m_submeshes) { for (Submesh& mesh : m_submeshes) {
for (shared_ptr<KRMeshManager::KRVBOData>& vbo : mesh.vbo_data_blocks) { for (shared_ptr<KRMeshManager::KRVBOData>& vbo : mesh.vbo_data_blocks) {
vbo->resetPoolExpiry(lodCoverage); vbo->requestResidency(lodCoverage);
} }
} }
} }

View File

@@ -171,7 +171,7 @@ unordered_map<std::string, KRMesh*>& KRMeshManager::getMeshes()
void KRMeshManager::bindVBO(VkCommandBuffer& commandBuffer, KRVBOData* vbo_data, float lodCoverage) void KRMeshManager::bindVBO(VkCommandBuffer& commandBuffer, KRVBOData* vbo_data, float lodCoverage)
{ {
vbo_data->resetPoolExpiry(lodCoverage); vbo_data->requestResidency(lodCoverage);
bool vbo_changed = false; bool vbo_changed = false;
if (m_currentVBO == NULL) { if (m_currentVBO == NULL) {
@@ -632,7 +632,7 @@ void KRMeshManager::KRVBOData::bind(VkCommandBuffer& commandBuffer)
} }
} }
void KRMeshManager::KRVBOData::resetPoolExpiry(float lodCoverage) void KRMeshManager::KRVBOData::requestResidency(float lodCoverage)
{ {
long current_frame = m_manager->getContext().getCurrentFrame(); long current_frame = m_manager->getContext().getCurrentFrame();
if (current_frame != m_last_frame_used) { if (current_frame != m_last_frame_used) {

View File

@@ -123,7 +123,7 @@ public:
return (long)m_size; return (long)m_size;
} }
void resetPoolExpiry(float lodCoverage); void requestResidency(float lodCoverage);
long getLastFrameUsed() long getLastFrameUsed()
{ {
return m_last_frame_used; return m_last_frame_used;

View File

@@ -146,7 +146,7 @@ void KRTexture::resize(int max_dim)
m_handle_lock.clear(); m_handle_lock.clear();
} }
void KRTexture::resetPoolExpiry(float lodCoverage, KRTexture::texture_usage_t textureUsage) void KRTexture::requestResidency(float lodCoverage, KRTexture::texture_usage_t textureUsage)
{ {
long current_frame = getContext().getCurrentFrame(); long current_frame = getContext().getCurrentFrame();
if (current_frame != m_last_frame_used) { if (current_frame != m_last_frame_used) {

View File

@@ -77,7 +77,7 @@ public:
float getStreamPriority(); float getStreamPriority();
virtual void resetPoolExpiry(float lodCoverage, texture_usage_t textureUsage); virtual void requestResidency(float lodCoverage, texture_usage_t textureUsage);
virtual bool isAnimated(); virtual bool isAnimated();
virtual KRTexture* compress(bool premultiply_alpha = false); virtual KRTexture* compress(bool premultiply_alpha = false);

View File

@@ -91,13 +91,13 @@ long KRTextureAnimated::getMemRequiredForSize(int max_dim)
} }
void KRTextureAnimated::resetPoolExpiry(float lodCoverage, texture_usage_t textureUsage) void KRTextureAnimated::requestResidency(float lodCoverage, texture_usage_t textureUsage)
{ {
KRTexture::resetPoolExpiry(lodCoverage, textureUsage); KRTexture::requestResidency(lodCoverage, textureUsage);
for (int i = 0; i < m_frame_count; i++) { for (int i = 0; i < m_frame_count; i++) {
KRTexture2D* frame_texture = textureForFrame(i); KRTexture2D* frame_texture = textureForFrame(i);
if (frame_texture) { if (frame_texture) {
frame_texture->resetPoolExpiry(lodCoverage, textureUsage); // Ensure that frames of animated textures do not expire from the texture pool prematurely, as they are referenced indirectly frame_texture->requestResidency(lodCoverage, textureUsage); // Ensure that frames of animated textures do not expire from the texture pool prematurely, as they are referenced indirectly
} }
} }
} }
@@ -106,7 +106,7 @@ void KRTextureAnimated::resetPoolExpiry(float lodCoverage, texture_usage_t textu
/* /*
void KRTextureAnimated::bind(int texture_unit) void KRTextureAnimated::bind(int texture_unit)
{ {
resetPoolExpiry(0.0f, TEXTURE_USAGE_NONE); // TODO - Need to set parameters here for streaming priority? requestResidency(0.0f, TEXTURE_USAGE_NONE); // TODO - Need to set parameters here for streaming priority?
KRTexture::bind(texture_unit); KRTexture::bind(texture_unit);
int frame_number = (int)floor(fmodf(getContext().getAbsoluteTime() * m_frame_rate, (float)m_frame_count)); int frame_number = (int)floor(fmodf(getContext().getAbsoluteTime() * m_frame_rate, (float)m_frame_count));
KRTexture2D* frame_texture = textureForFrame(frame_number); KRTexture2D* frame_texture = textureForFrame(frame_number);

View File

@@ -46,7 +46,7 @@ public:
virtual bool save(Block& data) override; virtual bool save(Block& data) override;
virtual long getMemRequiredForSize(int max_dim) override; virtual long getMemRequiredForSize(int max_dim) override;
virtual void resetPoolExpiry(float lodCoverage, texture_usage_t textureUsage) override; virtual void requestResidency(float lodCoverage, texture_usage_t textureUsage) override;
virtual long getReferencedMemSize() override; virtual long getReferencedMemSize() override;

View File

@@ -50,4 +50,4 @@ bool KRTextureBinding::bind(KRContext* context)
m_resource = context->getTextureManager()->getTexture(m_name); m_resource = context->getTextureManager()->getTexture(m_name);
return (m_resource != nullptr); return (m_resource != nullptr);
} }

View File

@@ -146,12 +146,12 @@ long KRTextureCube::getMemRequiredForSize(int max_dim)
} }
void KRTextureCube::resetPoolExpiry(float lodCoverage, texture_usage_t textureUsage) void KRTextureCube::requestResidency(float lodCoverage, texture_usage_t textureUsage)
{ {
KRTexture::resetPoolExpiry(lodCoverage, textureUsage); KRTexture::requestResidency(lodCoverage, textureUsage);
for(int i=0; i<6; i++) { for(int i=0; i<6; i++) {
if(m_textures[i]) { if(m_textures[i]) {
m_textures[i]->resetPoolExpiry(lodCoverage, textureUsage); // Ensure that side of cube maps do not expire from the texture pool prematurely, as they are referenced indirectly m_textures[i]->requestResidency(lodCoverage, textureUsage); // Ensure that side of cube maps do not expire from the texture pool prematurely, as they are referenced indirectly
} }
} }
} }

View File

@@ -45,7 +45,7 @@ public:
virtual bool save(mimir::Block& data) override; virtual bool save(mimir::Block& data) override;
virtual long getMemRequiredForSize(int max_dim) override; virtual long getMemRequiredForSize(int max_dim) override;
virtual void resetPoolExpiry(float lodCoverage, texture_usage_t textureUsage) override; virtual void requestResidency(float lodCoverage, texture_usage_t textureUsage) override;
virtual int getFaceCount() const override; virtual int getFaceCount() const override;
virtual VkFormat getFormat() const override; virtual VkFormat getFormat() const override;