Refactoring - rename resetPoolExpiry to requestResidency
This commit is contained in:
@@ -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{};
|
||||||
|
|||||||
@@ -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
|
||||||
|
|||||||
@@ -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);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -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);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -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);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -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);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -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) {
|
||||||
|
|||||||
@@ -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;
|
||||||
|
|||||||
@@ -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) {
|
||||||
|
|||||||
@@ -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);
|
||||||
|
|||||||
@@ -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);
|
||||||
|
|||||||
@@ -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;
|
||||||
|
|
||||||
|
|||||||
@@ -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);
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -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
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -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;
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user