mirror of
https://github.com/gfx-rs/wgpu.git
synced 2024-11-21 22:33:49 +00:00
Cache MAX_SAMPLES on gles backend (#5346)
This commit is contained in:
parent
f86898ffeb
commit
2234fd681d
@ -120,6 +120,7 @@ By @cwfitzgerald in [#5325](https://github.com/gfx-rs/wgpu/pull/5325).
|
||||
#### GLES
|
||||
|
||||
- Log an error when GLES texture format heuristics fail. By @PolyMeilex in [#5266](https://github.com/gfx-rs/wgpu/issues/5266)
|
||||
- Cache the sample count to keep `get_texture_format_features` cheap. By @Dinnerbone in [#5346](https://github.com/gfx-rs/wgpu/pull/5346)
|
||||
|
||||
### Bug Fixes
|
||||
|
||||
|
@ -802,6 +802,7 @@ impl super::Adapter {
|
||||
}
|
||||
|
||||
let downlevel_defaults = wgt::DownlevelLimits {};
|
||||
let max_samples = unsafe { gl.get_parameter_i32(glow::MAX_SAMPLES) };
|
||||
|
||||
// Drop the GL guard so we can move the context into AdapterShared
|
||||
// ( on Wasm the gl handle is just a ref so we tell clippy to allow
|
||||
@ -820,6 +821,7 @@ impl super::Adapter {
|
||||
next_shader_id: Default::default(),
|
||||
program_cache: Default::default(),
|
||||
es: es_ver.is_some(),
|
||||
max_msaa_samples: max_samples,
|
||||
}),
|
||||
},
|
||||
info: Self::make_info(vendor, renderer),
|
||||
@ -986,12 +988,7 @@ impl crate::Adapter<super::Api> for super::Adapter {
|
||||
use wgt::TextureFormat as Tf;
|
||||
|
||||
let sample_count = {
|
||||
let max_samples = unsafe {
|
||||
self.shared
|
||||
.context
|
||||
.lock()
|
||||
.get_parameter_i32(glow::MAX_SAMPLES)
|
||||
};
|
||||
let max_samples = self.shared.max_msaa_samples;
|
||||
if max_samples >= 16 {
|
||||
Tfc::MULTISAMPLE_X2
|
||||
| Tfc::MULTISAMPLE_X4
|
||||
|
@ -251,6 +251,11 @@ struct AdapterShared {
|
||||
next_shader_id: AtomicU32,
|
||||
program_cache: Mutex<ProgramCache>,
|
||||
es: bool,
|
||||
|
||||
/// Result of `gl.get_parameter_i32(glow::MAX_SAMPLES)`.
|
||||
/// Cached here so it doesn't need to be queried every time texture format capabilities are requested.
|
||||
/// (this has been shown to be a significant enough overhead)
|
||||
max_msaa_samples: i32,
|
||||
}
|
||||
|
||||
pub struct Adapter {
|
||||
|
Loading…
Reference in New Issue
Block a user