Commit ec8eff91 authored by Glenn Watson's avatar Glenn Watson
Browse files

Bug 1883932 - Add R16 support to texture upload pool a=RyanVM

parent dcd261d2
Loading
Loading
Loading
Loading
+6 −4
Original line number Diff line number Diff line
@@ -43,6 +43,7 @@ use crate::profiler;
use crate::render_api::MemoryReport;

pub const BATCH_UPLOAD_TEXTURE_SIZE: DeviceIntSize = DeviceIntSize::new(512, 512);
const BATCH_UPLOAD_FORMAT_COUNT: usize = 4;

/// Upload a number of items to texture cache textures.
///
@@ -627,10 +628,10 @@ pub struct UploadTexturePool {
    /// The textures in the pool associated with a last used frame index.
    ///
    /// The outer array corresponds to each of teh three supported texture formats.
    textures: [VecDeque<(Texture, u64)>; 3],
    textures: [VecDeque<(Texture, u64)>; BATCH_UPLOAD_FORMAT_COUNT],
    // Frame at which to deallocate some textures if there are too many in the pool,
    // for each format.
    delay_texture_deallocation: [u64; 3],
    delay_texture_deallocation: [u64; BATCH_UPLOAD_FORMAT_COUNT],
    current_frame: u64,

    /// Temporary buffers that are used when using staging uploads + glTexImage2D.
@@ -646,8 +647,8 @@ pub struct UploadTexturePool {
impl UploadTexturePool {
    pub fn new() -> Self {
        UploadTexturePool {
            textures: [VecDeque::new(), VecDeque::new(), VecDeque::new()],
            delay_texture_deallocation: [0; 3],
            textures: [VecDeque::new(), VecDeque::new(), VecDeque::new(), VecDeque::new()],
            delay_texture_deallocation: [0; BATCH_UPLOAD_FORMAT_COUNT],
            current_frame: 0,
            temporary_buffers: Vec::new(),
            min_temporary_buffers: 0,
@@ -660,6 +661,7 @@ impl UploadTexturePool {
            ImageFormat::RGBA8 => 0,
            ImageFormat::BGRA8 => 1,
            ImageFormat::R8 => 2,
            ImageFormat::R16 => 3,
            _ => { panic!("unexpected format"); }
        }
    }