From 45923755ba0d0bd123f2d1a538e933258ad8e350 Mon Sep 17 00:00:00 2001 From: Rukai Date: Tue, 18 Jun 2019 11:55:03 +1000 Subject: [PATCH] Implement sample_count field --- wgpu-native/src/conv.rs | 8 +++++++- wgpu-native/src/device.rs | 2 +- 2 files changed, 8 insertions(+), 2 deletions(-) diff --git a/wgpu-native/src/conv.rs b/wgpu-native/src/conv.rs index 3e86f0d887..47860b2318 100644 --- a/wgpu-native/src/conv.rs +++ b/wgpu-native/src/conv.rs @@ -414,6 +414,7 @@ pub fn map_texture_dimension_size( depth, }: Extent3d, array_size: u32, + sample_size: u32, ) -> hal::image::Kind { use crate::resource::TextureDimension::*; use hal::image::Kind as H; @@ -421,14 +422,19 @@ pub fn map_texture_dimension_size( D1 => { assert_eq!(height, 1); assert_eq!(depth, 1); + assert_eq!(sample_size, 1); H::D1(width, checked_u32_as_u16(array_size)) } D2 => { assert_eq!(depth, 1); - H::D2(width, height, checked_u32_as_u16(array_size), 1) // TODO: Samples + assert!(sample_size == 1 || sample_size == 2 || sample_size == 4 + || sample_size == 8 || sample_size == 16 || sample_size == 32 || sample_size == 64, + "Invalid sample_count of {}", sample_size); + H::D2(width, height, checked_u32_as_u16(array_size), sample_size as u8) } D3 => { assert_eq!(array_size, 1); + assert_eq!(sample_size, 1); H::D3(width, height, depth) } } diff --git a/wgpu-native/src/device.rs b/wgpu-native/src/device.rs index c54ac48d3d..f11cabe85d 100644 --- a/wgpu-native/src/device.rs +++ b/wgpu-native/src/device.rs @@ -680,7 +680,7 @@ pub fn device_create_texture( device_id: DeviceId, desc: &resource::TextureDescriptor, ) -> resource::Texture { - let kind = conv::map_texture_dimension_size(desc.dimension, desc.size, desc.array_layer_count); + let kind = conv::map_texture_dimension_size(desc.dimension, desc.size, desc.array_layer_count, desc.sample_count); let format = conv::map_texture_format(desc.format); let aspects = format.surface_desc().aspects; let usage = conv::map_texture_usage(desc.usage, aspects);