fmt: cargo fmt
This commit is contained in:
parent
05467c2c78
commit
6fbc4b3075
|
@ -6,7 +6,7 @@ pub(crate) mod internal {
|
||||||
use std::error::Error;
|
use std::error::Error;
|
||||||
use std::path::PathBuf;
|
use std::path::PathBuf;
|
||||||
|
|
||||||
use persy::{Config, Persy, ByteVec, ValueMode};
|
use persy::{ByteVec, Config, Persy, ValueMode};
|
||||||
|
|
||||||
pub(crate) fn get_cache_dir() -> Result<PathBuf, Box<dyn Error>> {
|
pub(crate) fn get_cache_dir() -> Result<PathBuf, Box<dyn Error>> {
|
||||||
let cache_dir = if let Some(cache_dir) =
|
let cache_dir = if let Some(cache_dir) =
|
||||||
|
@ -45,11 +45,15 @@ pub(crate) mod internal {
|
||||||
|
|
||||||
pub(crate) fn get_cache() -> Result<Persy, Box<dyn Error>> {
|
pub(crate) fn get_cache() -> Result<Persy, Box<dyn Error>> {
|
||||||
let cache_dir = get_cache_dir()?;
|
let cache_dir = get_cache_dir()?;
|
||||||
let conn = Persy::open_or_create_with(&cache_dir.join("librashader.db.1"), Config::new(), |persy| {
|
let conn = Persy::open_or_create_with(
|
||||||
let tx = persy.begin()?;
|
&cache_dir.join("librashader.db.1"),
|
||||||
tx.commit()?;
|
Config::new(),
|
||||||
Ok(())
|
|persy| {
|
||||||
})?;
|
let tx = persy.begin()?;
|
||||||
|
tx.commit()?;
|
||||||
|
Ok(())
|
||||||
|
},
|
||||||
|
)?;
|
||||||
Ok(conn)
|
Ok(conn)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -59,14 +63,19 @@ pub(crate) mod internal {
|
||||||
key: &[u8],
|
key: &[u8],
|
||||||
) -> Result<Option<Vec<u8>>, Box<dyn Error>> {
|
) -> Result<Option<Vec<u8>>, Box<dyn Error>> {
|
||||||
if !conn.exists_index(index)? {
|
if !conn.exists_index(index)? {
|
||||||
return Ok(None);
|
return Ok(None);
|
||||||
}
|
}
|
||||||
|
|
||||||
let value = conn.get::<_, ByteVec>(index, &ByteVec::from(key))?.next();
|
let value = conn.get::<_, ByteVec>(index, &ByteVec::from(key))?.next();
|
||||||
Ok(value.map(|v| v.to_vec()))
|
Ok(value.map(|v| v.to_vec()))
|
||||||
}
|
}
|
||||||
|
|
||||||
pub(crate) fn set_blob(conn: &Persy, index: &str, key: &[u8], value: &[u8]) -> Result<(), Box<dyn Error>> {
|
pub(crate) fn set_blob(
|
||||||
|
conn: &Persy,
|
||||||
|
index: &str,
|
||||||
|
key: &[u8],
|
||||||
|
value: &[u8],
|
||||||
|
) -> Result<(), Box<dyn Error>> {
|
||||||
let mut tx = conn.begin()?;
|
let mut tx = conn.begin()?;
|
||||||
if !tx.exists_index(index)? {
|
if !tx.exists_index(index)? {
|
||||||
tx.create_index::<ByteVec, ByteVec>(index, ValueMode::Replace)?;
|
tx.create_index::<ByteVec, ByteVec>(index, ValueMode::Replace)?;
|
||||||
|
|
|
@ -14,7 +14,9 @@ pub struct CachedCompilation<T> {
|
||||||
compilation: T,
|
compilation: T,
|
||||||
}
|
}
|
||||||
|
|
||||||
impl<T: ShaderReflectObject> ShaderReflectObject for CachedCompilation<T> { type Compiler = T::Compiler; }
|
impl<T: ShaderReflectObject> ShaderReflectObject for CachedCompilation<T> {
|
||||||
|
type Compiler = T::Compiler;
|
||||||
|
}
|
||||||
|
|
||||||
impl<T: ShaderReflectObject + for<'de> serde::Deserialize<'de> + serde::Serialize + Clone>
|
impl<T: ShaderReflectObject + for<'de> serde::Deserialize<'de> + serde::Serialize + Clone>
|
||||||
ShaderInputCompiler<CachedCompilation<T>> for Glslang
|
ShaderInputCompiler<CachedCompilation<T>> for Glslang
|
||||||
|
@ -39,7 +41,9 @@ where
|
||||||
};
|
};
|
||||||
|
|
||||||
let compilation = 'cached: {
|
let compilation = 'cached: {
|
||||||
if let Ok(Some(cached)) = crate::cache::internal::get_blob(&cache, "spirv", key.as_bytes()) {
|
if let Ok(Some(cached)) =
|
||||||
|
crate::cache::internal::get_blob(&cache, "spirv", key.as_bytes())
|
||||||
|
{
|
||||||
let decoded =
|
let decoded =
|
||||||
bincode::serde::decode_from_slice(&cached, bincode::config::standard())
|
bincode::serde::decode_from_slice(&cached, bincode::config::standard())
|
||||||
.map(|(compilation, _)| CachedCompilation { compilation })
|
.map(|(compilation, _)| CachedCompilation { compilation })
|
||||||
|
@ -58,7 +62,9 @@ where
|
||||||
if let Ok(updated) =
|
if let Ok(updated) =
|
||||||
bincode::serde::encode_to_vec(&compilation.compilation, bincode::config::standard())
|
bincode::serde::encode_to_vec(&compilation.compilation, bincode::config::standard())
|
||||||
{
|
{
|
||||||
let Ok(()) = crate::cache::internal::set_blob(&cache, "spirv", key.as_bytes(), &updated) else {
|
let Ok(()) =
|
||||||
|
crate::cache::internal::set_blob(&cache, "spirv", key.as_bytes(), &updated)
|
||||||
|
else {
|
||||||
return Ok(compilation);
|
return Ok(compilation);
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
|
|
@ -64,18 +64,30 @@ use librashader::runtime::gl::FilterChain as FilterChainGL;
|
||||||
pub type libra_gl_filter_chain_t = Option<NonNull<FilterChainGL>>;
|
pub type libra_gl_filter_chain_t = Option<NonNull<FilterChainGL>>;
|
||||||
|
|
||||||
/// A handle to a Direct3D 11 filter chain.
|
/// A handle to a Direct3D 11 filter chain.
|
||||||
#[cfg(any(feature = "__cbindgen_internal", all(target_os = "windows", feature = "runtime-d3d11")))]
|
#[cfg(any(
|
||||||
|
feature = "__cbindgen_internal",
|
||||||
|
all(target_os = "windows", feature = "runtime-d3d11")
|
||||||
|
))]
|
||||||
use librashader::runtime::d3d11::FilterChain as FilterChainD3D11;
|
use librashader::runtime::d3d11::FilterChain as FilterChainD3D11;
|
||||||
|
|
||||||
/// A handle to a Direct3D 11 filter chain.
|
/// A handle to a Direct3D 11 filter chain.
|
||||||
#[doc(cfg(all(target_os = "windows", feature = "runtime-d3d11")))]
|
#[doc(cfg(all(target_os = "windows", feature = "runtime-d3d11")))]
|
||||||
#[cfg(any(feature = "__cbindgen_internal", all(target_os = "windows", feature = "runtime-d3d11")))]
|
#[cfg(any(
|
||||||
|
feature = "__cbindgen_internal",
|
||||||
|
all(target_os = "windows", feature = "runtime-d3d11")
|
||||||
|
))]
|
||||||
pub type libra_d3d11_filter_chain_t = Option<NonNull<FilterChainD3D11>>;
|
pub type libra_d3d11_filter_chain_t = Option<NonNull<FilterChainD3D11>>;
|
||||||
|
|
||||||
#[cfg(any(feature = "__cbindgen_internal", all(target_os = "windows", feature = "runtime-d3d12")))]
|
#[cfg(any(
|
||||||
|
feature = "__cbindgen_internal",
|
||||||
|
all(target_os = "windows", feature = "runtime-d3d12")
|
||||||
|
))]
|
||||||
use librashader::runtime::d3d12::FilterChain as FilterChainD3D12;
|
use librashader::runtime::d3d12::FilterChain as FilterChainD3D12;
|
||||||
/// A handle to a Direct3D 12 filter chain.
|
/// A handle to a Direct3D 12 filter chain.
|
||||||
#[cfg(any(feature = "__cbindgen_internal", all(target_os = "windows", feature = "runtime-d3d12")))]
|
#[cfg(any(
|
||||||
|
feature = "__cbindgen_internal",
|
||||||
|
all(target_os = "windows", feature = "runtime-d3d12")
|
||||||
|
))]
|
||||||
pub type libra_d3d12_filter_chain_t = Option<NonNull<FilterChainD3D12>>;
|
pub type libra_d3d12_filter_chain_t = Option<NonNull<FilterChainD3D12>>;
|
||||||
|
|
||||||
#[cfg(feature = "runtime-vulkan")]
|
#[cfg(feature = "runtime-vulkan")]
|
||||||
|
@ -88,7 +100,14 @@ pub type libra_vk_filter_chain_t = Option<NonNull<FilterChainVulkan>>;
|
||||||
#[cfg(all(target_os = "macos", feature = "runtime-metal"))]
|
#[cfg(all(target_os = "macos", feature = "runtime-metal"))]
|
||||||
use librashader::runtime::mtl::FilterChain as FilterChainMetal;
|
use librashader::runtime::mtl::FilterChain as FilterChainMetal;
|
||||||
#[doc(cfg(all(target_vendor = "apple", feature = "runtime-metal")))]
|
#[doc(cfg(all(target_vendor = "apple", feature = "runtime-metal")))]
|
||||||
#[cfg(any(feature = "__cbindgen_internal", all(target_vendor = "apple", feature = "runtime-metal", feature = "__cbindgen_internal_objc")))]
|
#[cfg(any(
|
||||||
|
feature = "__cbindgen_internal",
|
||||||
|
all(
|
||||||
|
target_vendor = "apple",
|
||||||
|
feature = "runtime-metal",
|
||||||
|
feature = "__cbindgen_internal_objc"
|
||||||
|
)
|
||||||
|
))]
|
||||||
pub type libra_mtl_filter_chain_t = Option<NonNull<FilterChainMetal>>;
|
pub type libra_mtl_filter_chain_t = Option<NonNull<FilterChainMetal>>;
|
||||||
|
|
||||||
/// Defines the output viewport for a rendered frame.
|
/// Defines the output viewport for a rendered frame.
|
||||||
|
|
|
@ -192,7 +192,7 @@ impl LibrashaderError {
|
||||||
#[cfg(feature = "runtime-vulkan")]
|
#[cfg(feature = "runtime-vulkan")]
|
||||||
LibrashaderError::VulkanFilterError(_) => LIBRA_ERRNO::RUNTIME_ERROR,
|
LibrashaderError::VulkanFilterError(_) => LIBRA_ERRNO::RUNTIME_ERROR,
|
||||||
#[cfg(all(target_vendor = "apple", feature = "runtime-metal"))]
|
#[cfg(all(target_vendor = "apple", feature = "runtime-metal"))]
|
||||||
LibrashaderError::MetalFilterError(_) => LIBRA_ERRNO::RUNTIME_ERROR
|
LibrashaderError::MetalFilterError(_) => LIBRA_ERRNO::RUNTIME_ERROR,
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
pub(crate) const fn ok() -> libra_error_t {
|
pub(crate) const fn ok() -> libra_error_t {
|
||||||
|
|
|
@ -8,13 +8,26 @@ pub mod gl;
|
||||||
pub mod vk;
|
pub mod vk;
|
||||||
|
|
||||||
#[doc(cfg(all(target_os = "windows", feature = "runtime-d3d11")))]
|
#[doc(cfg(all(target_os = "windows", feature = "runtime-d3d11")))]
|
||||||
#[cfg(any(feature = "__cbindgen_internal", all(target_os = "windows", feature = "runtime-d3d11")))]
|
#[cfg(any(
|
||||||
|
feature = "__cbindgen_internal",
|
||||||
|
all(target_os = "windows", feature = "runtime-d3d11")
|
||||||
|
))]
|
||||||
pub mod d3d11;
|
pub mod d3d11;
|
||||||
|
|
||||||
#[doc(cfg(all(target_os = "windows", feature = "runtime-d3d12")))]
|
#[doc(cfg(all(target_os = "windows", feature = "runtime-d3d12")))]
|
||||||
#[cfg(any(feature = "__cbindgen_internal", all(target_os = "windows", feature = "runtime-d3d12")))]
|
#[cfg(any(
|
||||||
|
feature = "__cbindgen_internal",
|
||||||
|
all(target_os = "windows", feature = "runtime-d3d12")
|
||||||
|
))]
|
||||||
pub mod d3d12;
|
pub mod d3d12;
|
||||||
|
|
||||||
#[doc(cfg(all(target_vendor = "apple", feature = "runtime-metal")))]
|
#[doc(cfg(all(target_vendor = "apple", feature = "runtime-metal")))]
|
||||||
#[cfg(any(feature = "__cbindgen_internal", all(target_vendor = "apple", feature = "runtime-metal", feature = "__cbindgen_internal_objc")))]
|
#[cfg(any(
|
||||||
|
feature = "__cbindgen_internal",
|
||||||
|
all(
|
||||||
|
target_vendor = "apple",
|
||||||
|
feature = "runtime-metal",
|
||||||
|
feature = "__cbindgen_internal_objc"
|
||||||
|
)
|
||||||
|
))]
|
||||||
pub mod mtl;
|
pub mod mtl;
|
||||||
|
|
|
@ -1,13 +1,11 @@
|
||||||
use crate::ctypes::{
|
use crate::ctypes::{
|
||||||
config_struct, libra_shader_preset_t, libra_viewport_t, libra_mtl_filter_chain_t, FromUninit,
|
config_struct, libra_mtl_filter_chain_t, libra_shader_preset_t, libra_viewport_t, FromUninit,
|
||||||
};
|
};
|
||||||
use crate::error::{assert_non_null, assert_some_ptr, LibrashaderError};
|
use crate::error::{assert_non_null, assert_some_ptr, LibrashaderError};
|
||||||
use crate::ffi::extern_fn;
|
use crate::ffi::extern_fn;
|
||||||
use librashader::runtime::mtl::{
|
use librashader::runtime::mtl::{FilterChain, FilterChainOptions, FrameOptions};
|
||||||
FilterChain, FilterChainOptions, FrameOptions,
|
use std::ffi::c_char;
|
||||||
};
|
|
||||||
use std::ffi::CStr;
|
use std::ffi::CStr;
|
||||||
use std::ffi::{c_char};
|
|
||||||
use std::mem::MaybeUninit;
|
use std::mem::MaybeUninit;
|
||||||
use std::ptr::NonNull;
|
use std::ptr::NonNull;
|
||||||
use std::slice;
|
use std::slice;
|
||||||
|
@ -29,7 +27,6 @@ pub type PMTLCommandBuffer = *const ProtocolObject<dyn MTLCommandBuffer>;
|
||||||
/// An alias to a `id<MTLTexture>` protocol object pointer.
|
/// An alias to a `id<MTLTexture>` protocol object pointer.
|
||||||
pub type PMTLTexture = *const ProtocolObject<dyn MTLTexture>;
|
pub type PMTLTexture = *const ProtocolObject<dyn MTLTexture>;
|
||||||
|
|
||||||
|
|
||||||
/// Options for each Metal shader frame.
|
/// Options for each Metal shader frame.
|
||||||
#[repr(C)]
|
#[repr(C)]
|
||||||
#[derive(Default, Debug, Clone)]
|
#[derive(Default, Debug, Clone)]
|
||||||
|
|
|
@ -1,5 +1,5 @@
|
||||||
/// Fast optimized hash map type for small sets.
|
/// Fast optimized hash map type for small sets.
|
||||||
pub type FastHashMap<K, V> = halfbrown::SizedHashMap<K, V,
|
pub type FastHashMap<K, V> =
|
||||||
core::hash::BuildHasherDefault<rustc_hash::FxHasher>, 32>;
|
halfbrown::SizedHashMap<K, V, core::hash::BuildHasherDefault<rustc_hash::FxHasher>, 32>;
|
||||||
|
|
||||||
pub use halfbrown;
|
pub use halfbrown;
|
||||||
|
|
|
@ -15,8 +15,8 @@ mod stage;
|
||||||
|
|
||||||
use crate::include::read_source;
|
use crate::include::read_source;
|
||||||
pub use error::*;
|
pub use error::*;
|
||||||
use librashader_common::ImageFormat;
|
|
||||||
use librashader_common::map::FastHashMap;
|
use librashader_common::map::FastHashMap;
|
||||||
|
use librashader_common::ImageFormat;
|
||||||
use std::path::Path;
|
use std::path::Path;
|
||||||
|
|
||||||
/// The source file for a single shader pass.
|
/// The source file for a single shader pass.
|
||||||
|
|
|
@ -4,13 +4,13 @@
|
||||||
//!
|
//!
|
||||||
//! Implements wildcard replacement of shader paths specified in
|
//! Implements wildcard replacement of shader paths specified in
|
||||||
//! [RetroArch#15023](https://github.com/libretro/RetroArch/pull/15023).
|
//! [RetroArch#15023](https://github.com/libretro/RetroArch/pull/15023).
|
||||||
|
use librashader_common::map::FastHashMap;
|
||||||
use once_cell::sync::Lazy;
|
use once_cell::sync::Lazy;
|
||||||
use regex::bytes::Regex;
|
use regex::bytes::Regex;
|
||||||
use std::collections::VecDeque;
|
use std::collections::VecDeque;
|
||||||
use std::fmt::{Debug, Display, Formatter};
|
use std::fmt::{Debug, Display, Formatter};
|
||||||
use std::ops::Add;
|
use std::ops::Add;
|
||||||
use std::path::{Component, Path, PathBuf};
|
use std::path::{Component, Path, PathBuf};
|
||||||
use librashader_common::map::FastHashMap;
|
|
||||||
|
|
||||||
/// Valid video driver or runtime. This list is non-exhaustive.
|
/// Valid video driver or runtime. This list is non-exhaustive.
|
||||||
#[repr(u32)]
|
#[repr(u32)]
|
||||||
|
|
|
@ -10,12 +10,12 @@ use nom::IResult;
|
||||||
use num_traits::cast::ToPrimitive;
|
use num_traits::cast::ToPrimitive;
|
||||||
|
|
||||||
use crate::parse::token::do_lex;
|
use crate::parse::token::do_lex;
|
||||||
|
use librashader_common::map::FastHashMap;
|
||||||
use librashader_common::{FilterMode, WrapMode};
|
use librashader_common::{FilterMode, WrapMode};
|
||||||
use std::fs::File;
|
use std::fs::File;
|
||||||
use std::io::Read;
|
use std::io::Read;
|
||||||
use std::path::{Path, PathBuf};
|
use std::path::{Path, PathBuf};
|
||||||
use std::str::FromStr;
|
use std::str::FromStr;
|
||||||
use librashader_common::map::FastHashMap;
|
|
||||||
|
|
||||||
use crate::context::{apply_context, WildcardContext};
|
use crate::context::{apply_context, WildcardContext};
|
||||||
use crate::extract_if::MakeExtractIf;
|
use crate::extract_if::MakeExtractIf;
|
||||||
|
|
|
@ -5,9 +5,9 @@ use crate::front::{ShaderInputCompiler, ShaderReflectObject};
|
||||||
use crate::reflect::semantics::{
|
use crate::reflect::semantics::{
|
||||||
Semantic, ShaderSemantics, TextureSemantics, UniformSemantic, UniqueSemantics,
|
Semantic, ShaderSemantics, TextureSemantics, UniformSemantic, UniqueSemantics,
|
||||||
};
|
};
|
||||||
|
use librashader_common::map::FastHashMap;
|
||||||
use librashader_preprocess::{PreprocessError, ShaderSource};
|
use librashader_preprocess::{PreprocessError, ShaderSource};
|
||||||
use librashader_presets::{ShaderPassConfig, TextureConfig};
|
use librashader_presets::{ShaderPassConfig, TextureConfig};
|
||||||
use librashader_common::map::FastHashMap;
|
|
||||||
|
|
||||||
/// Artifacts of a reflected and compiled shader pass.
|
/// Artifacts of a reflected and compiled shader pass.
|
||||||
///
|
///
|
||||||
|
|
|
@ -1,14 +1,14 @@
|
||||||
use crate::texture::{D3D11InputView, InputTexture, LutTexture};
|
use crate::texture::{D3D11InputView, InputTexture, LutTexture};
|
||||||
use librashader_common::{ImageFormat, Size, Viewport};
|
use librashader_common::{ImageFormat, Size, Viewport};
|
||||||
|
|
||||||
|
use librashader_common::map::FastHashMap;
|
||||||
use librashader_presets::{ShaderPassConfig, ShaderPreset, TextureConfig};
|
use librashader_presets::{ShaderPassConfig, ShaderPreset, TextureConfig};
|
||||||
use librashader_reflect::back::targets::HLSL;
|
use librashader_reflect::back::targets::HLSL;
|
||||||
use librashader_reflect::back::{CompileReflectShader, CompileShader};
|
use librashader_reflect::back::{CompileReflectShader, CompileShader};
|
||||||
use librashader_reflect::front::{SpirvCompilation};
|
use librashader_reflect::front::SpirvCompilation;
|
||||||
use librashader_reflect::reflect::semantics::ShaderSemantics;
|
use librashader_reflect::reflect::semantics::ShaderSemantics;
|
||||||
use librashader_reflect::reflect::ReflectShader;
|
use librashader_reflect::reflect::ReflectShader;
|
||||||
use librashader_runtime::image::{Image, ImageError, UVDirection};
|
use librashader_runtime::image::{Image, ImageError, UVDirection};
|
||||||
use librashader_common::map::FastHashMap;
|
|
||||||
use std::collections::VecDeque;
|
use std::collections::VecDeque;
|
||||||
|
|
||||||
use std::path::Path;
|
use std::path::Path;
|
||||||
|
|
|
@ -2,6 +2,7 @@ use crate::filter_chain::FilterCommon;
|
||||||
use crate::options::FrameOptionsD3D11;
|
use crate::options::FrameOptionsD3D11;
|
||||||
use crate::texture::InputTexture;
|
use crate::texture::InputTexture;
|
||||||
|
|
||||||
|
use librashader_common::map::FastHashMap;
|
||||||
use librashader_common::{ImageFormat, Size, Viewport};
|
use librashader_common::{ImageFormat, Size, Viewport};
|
||||||
use librashader_preprocess::ShaderSource;
|
use librashader_preprocess::ShaderSource;
|
||||||
use librashader_presets::ShaderPassConfig;
|
use librashader_presets::ShaderPassConfig;
|
||||||
|
@ -9,7 +10,6 @@ use librashader_reflect::reflect::semantics::{
|
||||||
BindingStage, MemberOffset, TextureBinding, UniformBinding,
|
BindingStage, MemberOffset, TextureBinding, UniformBinding,
|
||||||
};
|
};
|
||||||
use librashader_reflect::reflect::ShaderReflection;
|
use librashader_reflect::reflect::ShaderReflection;
|
||||||
use librashader_common::map::FastHashMap;
|
|
||||||
|
|
||||||
use librashader_runtime::binding::{BindSemantics, TextureInput, UniformInputs};
|
use librashader_runtime::binding::{BindSemantics, TextureInput, UniformInputs};
|
||||||
use librashader_runtime::filter_pass::FilterPassMeta;
|
use librashader_runtime::filter_pass::FilterPassMeta;
|
||||||
|
|
|
@ -1,6 +1,6 @@
|
||||||
use crate::error::{assume_d3d11_init, Result};
|
use crate::error::{assume_d3d11_init, Result};
|
||||||
use librashader_common::{FilterMode, WrapMode};
|
|
||||||
use librashader_common::map::FastHashMap;
|
use librashader_common::map::FastHashMap;
|
||||||
|
use librashader_common::{FilterMode, WrapMode};
|
||||||
use windows::Win32::Graphics::Direct3D11::{
|
use windows::Win32::Graphics::Direct3D11::{
|
||||||
ID3D11Device, ID3D11SamplerState, D3D11_COMPARISON_NEVER, D3D11_FLOAT32_MAX,
|
ID3D11Device, ID3D11SamplerState, D3D11_COMPARISON_NEVER, D3D11_FLOAT32_MAX,
|
||||||
D3D11_SAMPLER_DESC, D3D11_TEXTURE_ADDRESS_MODE,
|
D3D11_SAMPLER_DESC, D3D11_TEXTURE_ADDRESS_MODE,
|
||||||
|
|
|
@ -14,11 +14,12 @@ use crate::options::{FilterChainOptionsD3D12, FrameOptionsD3D12};
|
||||||
use crate::samplers::SamplerSet;
|
use crate::samplers::SamplerSet;
|
||||||
use crate::texture::{D3D12InputImage, D3D12OutputView, InputTexture, OutputDescriptor};
|
use crate::texture::{D3D12InputImage, D3D12OutputView, InputTexture, OutputDescriptor};
|
||||||
use crate::{error, util};
|
use crate::{error, util};
|
||||||
|
use librashader_common::map::FastHashMap;
|
||||||
use librashader_common::{ImageFormat, Size, Viewport};
|
use librashader_common::{ImageFormat, Size, Viewport};
|
||||||
use librashader_presets::{ShaderPassConfig, ShaderPreset, TextureConfig};
|
use librashader_presets::{ShaderPassConfig, ShaderPreset, TextureConfig};
|
||||||
use librashader_reflect::back::targets::{DXIL, HLSL};
|
use librashader_reflect::back::targets::{DXIL, HLSL};
|
||||||
use librashader_reflect::back::{CompileReflectShader, CompileShader};
|
use librashader_reflect::back::{CompileReflectShader, CompileShader};
|
||||||
use librashader_reflect::front::{SpirvCompilation};
|
use librashader_reflect::front::SpirvCompilation;
|
||||||
use librashader_reflect::reflect::presets::{CompilePresetTarget, ShaderPassArtifact};
|
use librashader_reflect::reflect::presets::{CompilePresetTarget, ShaderPassArtifact};
|
||||||
use librashader_reflect::reflect::semantics::{ShaderSemantics, MAX_BINDINGS_COUNT};
|
use librashader_reflect::reflect::semantics::{ShaderSemantics, MAX_BINDINGS_COUNT};
|
||||||
use librashader_reflect::reflect::ReflectShader;
|
use librashader_reflect::reflect::ReflectShader;
|
||||||
|
@ -26,7 +27,6 @@ use librashader_runtime::binding::{BindingUtil, TextureInput};
|
||||||
use librashader_runtime::image::{Image, ImageError, UVDirection};
|
use librashader_runtime::image::{Image, ImageError, UVDirection};
|
||||||
use librashader_runtime::quad::QuadType;
|
use librashader_runtime::quad::QuadType;
|
||||||
use librashader_runtime::uniforms::UniformStorage;
|
use librashader_runtime::uniforms::UniformStorage;
|
||||||
use librashader_common::map::FastHashMap;
|
|
||||||
use std::collections::VecDeque;
|
use std::collections::VecDeque;
|
||||||
use std::mem::ManuallyDrop;
|
use std::mem::ManuallyDrop;
|
||||||
use std::path::Path;
|
use std::path::Path;
|
||||||
|
|
|
@ -6,6 +6,7 @@ use crate::graphics_pipeline::D3D12GraphicsPipeline;
|
||||||
use crate::options::FrameOptionsD3D12;
|
use crate::options::FrameOptionsD3D12;
|
||||||
use crate::samplers::SamplerSet;
|
use crate::samplers::SamplerSet;
|
||||||
use crate::texture::{D3D12OutputView, InputTexture};
|
use crate::texture::{D3D12OutputView, InputTexture};
|
||||||
|
use librashader_common::map::FastHashMap;
|
||||||
use librashader_common::{ImageFormat, Size, Viewport};
|
use librashader_common::{ImageFormat, Size, Viewport};
|
||||||
use librashader_preprocess::ShaderSource;
|
use librashader_preprocess::ShaderSource;
|
||||||
use librashader_presets::ShaderPassConfig;
|
use librashader_presets::ShaderPassConfig;
|
||||||
|
@ -16,7 +17,6 @@ use librashader_runtime::filter_pass::FilterPassMeta;
|
||||||
use librashader_runtime::quad::QuadType;
|
use librashader_runtime::quad::QuadType;
|
||||||
use librashader_runtime::render_target::RenderTarget;
|
use librashader_runtime::render_target::RenderTarget;
|
||||||
use librashader_runtime::uniforms::{NoUniformBinder, UniformStorage};
|
use librashader_runtime::uniforms::{NoUniformBinder, UniformStorage};
|
||||||
use librashader_common::map::FastHashMap;
|
|
||||||
use std::ops::Deref;
|
use std::ops::Deref;
|
||||||
use windows::core::ComInterface;
|
use windows::core::ComInterface;
|
||||||
use windows::Win32::Foundation::RECT;
|
use windows::Win32::Foundation::RECT;
|
||||||
|
|
|
@ -1,7 +1,7 @@
|
||||||
use crate::descriptor_heap::{D3D12DescriptorHeap, D3D12DescriptorHeapSlot, SamplerPaletteHeap};
|
use crate::descriptor_heap::{D3D12DescriptorHeap, D3D12DescriptorHeapSlot, SamplerPaletteHeap};
|
||||||
use crate::error;
|
use crate::error;
|
||||||
use librashader_common::{FilterMode, WrapMode};
|
|
||||||
use librashader_common::map::FastHashMap;
|
use librashader_common::map::FastHashMap;
|
||||||
|
use librashader_common::{FilterMode, WrapMode};
|
||||||
use std::ops::Deref;
|
use std::ops::Deref;
|
||||||
use windows::Win32::Graphics::Direct3D12::{
|
use windows::Win32::Graphics::Direct3D12::{
|
||||||
ID3D12Device, D3D12_COMPARISON_FUNC_NEVER, D3D12_FLOAT32_MAX, D3D12_SAMPLER_DESC,
|
ID3D12Device, D3D12_COMPARISON_FUNC_NEVER, D3D12_FLOAT32_MAX, D3D12_SAMPLER_DESC,
|
||||||
|
|
|
@ -16,10 +16,11 @@ use librashader_presets::{ShaderPassConfig, ShaderPreset, TextureConfig};
|
||||||
use librashader_reflect::back::glsl::GlslVersion;
|
use librashader_reflect::back::glsl::GlslVersion;
|
||||||
use librashader_reflect::back::targets::GLSL;
|
use librashader_reflect::back::targets::GLSL;
|
||||||
use librashader_reflect::back::{CompileReflectShader, CompileShader};
|
use librashader_reflect::back::{CompileReflectShader, CompileShader};
|
||||||
use librashader_reflect::front::{SpirvCompilation};
|
use librashader_reflect::front::SpirvCompilation;
|
||||||
use librashader_reflect::reflect::semantics::{ShaderSemantics, UniformMeta};
|
use librashader_reflect::reflect::semantics::{ShaderSemantics, UniformMeta};
|
||||||
|
|
||||||
use librashader_cache::CachedCompilation;
|
use librashader_cache::CachedCompilation;
|
||||||
|
use librashader_common::map::FastHashMap;
|
||||||
use librashader_reflect::reflect::cross::SpirvCross;
|
use librashader_reflect::reflect::cross::SpirvCross;
|
||||||
use librashader_reflect::reflect::presets::{CompilePresetTarget, ShaderPassArtifact};
|
use librashader_reflect::reflect::presets::{CompilePresetTarget, ShaderPassArtifact};
|
||||||
use librashader_reflect::reflect::ReflectShader;
|
use librashader_reflect::reflect::ReflectShader;
|
||||||
|
@ -27,7 +28,6 @@ use librashader_runtime::binding::BindingUtil;
|
||||||
use librashader_runtime::framebuffer::FramebufferInit;
|
use librashader_runtime::framebuffer::FramebufferInit;
|
||||||
use librashader_runtime::render_target::RenderTarget;
|
use librashader_runtime::render_target::RenderTarget;
|
||||||
use librashader_runtime::scaling::ScaleFramebuffer;
|
use librashader_runtime::scaling::ScaleFramebuffer;
|
||||||
use librashader_common::map::FastHashMap;
|
|
||||||
use std::collections::VecDeque;
|
use std::collections::VecDeque;
|
||||||
|
|
||||||
#[rustfmt::skip]
|
#[rustfmt::skip]
|
||||||
|
|
|
@ -1,6 +1,7 @@
|
||||||
use gl::types::{GLint, GLsizei, GLuint};
|
use gl::types::{GLint, GLsizei, GLuint};
|
||||||
use librashader_reflect::reflect::ShaderReflection;
|
use librashader_reflect::reflect::ShaderReflection;
|
||||||
|
|
||||||
|
use librashader_common::map::FastHashMap;
|
||||||
use librashader_common::{ImageFormat, Size, Viewport};
|
use librashader_common::{ImageFormat, Size, Viewport};
|
||||||
use librashader_preprocess::ShaderSource;
|
use librashader_preprocess::ShaderSource;
|
||||||
use librashader_presets::ShaderPassConfig;
|
use librashader_presets::ShaderPassConfig;
|
||||||
|
@ -8,7 +9,6 @@ use librashader_reflect::reflect::semantics::{MemberOffset, TextureBinding, Unif
|
||||||
use librashader_runtime::binding::{BindSemantics, ContextOffset, TextureInput, UniformInputs};
|
use librashader_runtime::binding::{BindSemantics, ContextOffset, TextureInput, UniformInputs};
|
||||||
use librashader_runtime::filter_pass::FilterPassMeta;
|
use librashader_runtime::filter_pass::FilterPassMeta;
|
||||||
use librashader_runtime::render_target::RenderTarget;
|
use librashader_runtime::render_target::RenderTarget;
|
||||||
use librashader_common::map::FastHashMap;
|
|
||||||
|
|
||||||
use crate::binding::{GlUniformBinder, GlUniformStorage, UniformLocation, VariableLocation};
|
use crate::binding::{GlUniformBinder, GlUniformStorage, UniformLocation, VariableLocation};
|
||||||
use crate::filter_chain::FilterCommon;
|
use crate::filter_chain::FilterCommon;
|
||||||
|
|
|
@ -1,7 +1,7 @@
|
||||||
use crate::gl::FINAL_VBO_DATA;
|
use crate::gl::FINAL_VBO_DATA;
|
||||||
use crate::gl::{DrawQuad, OpenGLVertex};
|
use crate::gl::{DrawQuad, OpenGLVertex};
|
||||||
use gl::types::{GLsizei, GLsizeiptr, GLuint};
|
|
||||||
use bytemuck::offset_of;
|
use bytemuck::offset_of;
|
||||||
|
use gl::types::{GLsizei, GLsizeiptr, GLuint};
|
||||||
|
|
||||||
pub struct Gl3DrawQuad {
|
pub struct Gl3DrawQuad {
|
||||||
vbo: GLuint,
|
vbo: GLuint,
|
||||||
|
|
|
@ -3,11 +3,11 @@ use crate::framebuffer::GLImage;
|
||||||
use crate::gl::LoadLut;
|
use crate::gl::LoadLut;
|
||||||
use crate::texture::InputTexture;
|
use crate::texture::InputTexture;
|
||||||
use gl::types::{GLsizei, GLuint};
|
use gl::types::{GLsizei, GLuint};
|
||||||
|
use librashader_common::map::FastHashMap;
|
||||||
use librashader_presets::TextureConfig;
|
use librashader_presets::TextureConfig;
|
||||||
use librashader_runtime::image::{Image, ImageError, UVDirection};
|
use librashader_runtime::image::{Image, ImageError, UVDirection};
|
||||||
use librashader_runtime::scaling::MipmapSize;
|
use librashader_runtime::scaling::MipmapSize;
|
||||||
use rayon::prelude::*;
|
use rayon::prelude::*;
|
||||||
use librashader_common::map::FastHashMap;
|
|
||||||
|
|
||||||
pub struct Gl3LutLoad;
|
pub struct Gl3LutLoad;
|
||||||
impl LoadLut for Gl3LutLoad {
|
impl LoadLut for Gl3LutLoad {
|
||||||
|
|
|
@ -1,7 +1,7 @@
|
||||||
use crate::gl::FINAL_VBO_DATA;
|
use crate::gl::FINAL_VBO_DATA;
|
||||||
use crate::gl::{DrawQuad, OpenGLVertex};
|
use crate::gl::{DrawQuad, OpenGLVertex};
|
||||||
use gl::types::{GLint, GLsizeiptr, GLuint};
|
|
||||||
use bytemuck::offset_of;
|
use bytemuck::offset_of;
|
||||||
|
use gl::types::{GLint, GLsizeiptr, GLuint};
|
||||||
|
|
||||||
pub struct Gl46DrawQuad {
|
pub struct Gl46DrawQuad {
|
||||||
vbo: GLuint,
|
vbo: GLuint,
|
||||||
|
|
|
@ -3,11 +3,11 @@ use crate::framebuffer::GLImage;
|
||||||
use crate::gl::LoadLut;
|
use crate::gl::LoadLut;
|
||||||
use crate::texture::InputTexture;
|
use crate::texture::InputTexture;
|
||||||
use gl::types::{GLsizei, GLuint};
|
use gl::types::{GLsizei, GLuint};
|
||||||
|
use librashader_common::map::FastHashMap;
|
||||||
use librashader_presets::TextureConfig;
|
use librashader_presets::TextureConfig;
|
||||||
use librashader_runtime::image::{Image, ImageError, UVDirection};
|
use librashader_runtime::image::{Image, ImageError, UVDirection};
|
||||||
use librashader_runtime::scaling::MipmapSize;
|
use librashader_runtime::scaling::MipmapSize;
|
||||||
use rayon::prelude::*;
|
use rayon::prelude::*;
|
||||||
use librashader_common::map::FastHashMap;
|
|
||||||
|
|
||||||
pub struct Gl46LutLoad;
|
pub struct Gl46LutLoad;
|
||||||
impl LoadLut for Gl46LutLoad {
|
impl LoadLut for Gl46LutLoad {
|
||||||
|
|
|
@ -10,13 +10,13 @@ use crate::texture::InputTexture;
|
||||||
use bytemuck::{Pod, Zeroable};
|
use bytemuck::{Pod, Zeroable};
|
||||||
pub use framebuffer::GLFramebuffer;
|
pub use framebuffer::GLFramebuffer;
|
||||||
use gl::types::{GLenum, GLuint};
|
use gl::types::{GLenum, GLuint};
|
||||||
|
use librashader_common::map::FastHashMap;
|
||||||
use librashader_common::{ImageFormat, Size};
|
use librashader_common::{ImageFormat, Size};
|
||||||
use librashader_presets::{Scale2D, TextureConfig};
|
use librashader_presets::{Scale2D, TextureConfig};
|
||||||
use librashader_reflect::back::glsl::CrossGlslContext;
|
use librashader_reflect::back::glsl::CrossGlslContext;
|
||||||
use librashader_reflect::back::ShaderCompilerOutput;
|
use librashader_reflect::back::ShaderCompilerOutput;
|
||||||
use librashader_reflect::reflect::semantics::{BufferReflection, TextureBinding};
|
use librashader_reflect::reflect::semantics::{BufferReflection, TextureBinding};
|
||||||
use librashader_runtime::uniforms::UniformStorageAccess;
|
use librashader_runtime::uniforms::UniformStorageAccess;
|
||||||
use librashader_common::map::FastHashMap;
|
|
||||||
|
|
||||||
#[repr(C)]
|
#[repr(C)]
|
||||||
#[derive(Debug, Copy, Clone, Default, Zeroable, Pod)]
|
#[derive(Debug, Copy, Clone, Default, Zeroable, Pod)]
|
||||||
|
|
|
@ -1,6 +1,6 @@
|
||||||
use gl::types::{GLenum, GLint, GLuint};
|
use gl::types::{GLenum, GLint, GLuint};
|
||||||
use librashader_common::{FilterMode, WrapMode};
|
|
||||||
use librashader_common::map::FastHashMap;
|
use librashader_common::map::FastHashMap;
|
||||||
|
use librashader_common::{FilterMode, WrapMode};
|
||||||
|
|
||||||
pub struct SamplerSet {
|
pub struct SamplerSet {
|
||||||
// todo: may need to deal with differences in mip filter.
|
// todo: may need to deal with differences in mip filter.
|
||||||
|
|
|
@ -14,6 +14,7 @@ use icrate::Metal::{
|
||||||
MTLPixelFormat, MTLPixelFormatRGBA8Unorm, MTLRenderPassDescriptor, MTLResource,
|
MTLPixelFormat, MTLPixelFormatRGBA8Unorm, MTLRenderPassDescriptor, MTLResource,
|
||||||
MTLStoreActionDontCare, MTLStoreActionStore, MTLTexture,
|
MTLStoreActionDontCare, MTLStoreActionStore, MTLTexture,
|
||||||
};
|
};
|
||||||
|
use librashader_common::map::FastHashMap;
|
||||||
use librashader_common::{ImageFormat, Size, Viewport};
|
use librashader_common::{ImageFormat, Size, Viewport};
|
||||||
use librashader_presets::context::VideoDriver;
|
use librashader_presets::context::VideoDriver;
|
||||||
use librashader_presets::{ShaderPassConfig, ShaderPreset, TextureConfig};
|
use librashader_presets::{ShaderPassConfig, ShaderPreset, TextureConfig};
|
||||||
|
@ -35,7 +36,6 @@ use librashader_runtime::uniforms::UniformStorage;
|
||||||
use objc2::rc::Id;
|
use objc2::rc::Id;
|
||||||
use objc2::runtime::ProtocolObject;
|
use objc2::runtime::ProtocolObject;
|
||||||
use rayon::prelude::*;
|
use rayon::prelude::*;
|
||||||
use librashader_common::map::FastHashMap;
|
|
||||||
use std::collections::VecDeque;
|
use std::collections::VecDeque;
|
||||||
use std::fmt::{Debug, Formatter};
|
use std::fmt::{Debug, Formatter};
|
||||||
use std::path::Path;
|
use std::path::Path;
|
||||||
|
|
|
@ -6,6 +6,7 @@ use crate::options::FrameOptionsMetal;
|
||||||
use crate::samplers::SamplerSet;
|
use crate::samplers::SamplerSet;
|
||||||
use crate::texture::{get_texture_size, InputTexture};
|
use crate::texture::{get_texture_size, InputTexture};
|
||||||
use icrate::Metal::{MTLCommandBuffer, MTLCommandEncoder, MTLRenderCommandEncoder, MTLTexture};
|
use icrate::Metal::{MTLCommandBuffer, MTLCommandEncoder, MTLRenderCommandEncoder, MTLTexture};
|
||||||
|
use librashader_common::map::FastHashMap;
|
||||||
use librashader_common::{ImageFormat, Size, Viewport};
|
use librashader_common::{ImageFormat, Size, Viewport};
|
||||||
use librashader_preprocess::ShaderSource;
|
use librashader_preprocess::ShaderSource;
|
||||||
use librashader_presets::ShaderPassConfig;
|
use librashader_presets::ShaderPassConfig;
|
||||||
|
@ -17,7 +18,6 @@ use librashader_runtime::quad::QuadType;
|
||||||
use librashader_runtime::render_target::RenderTarget;
|
use librashader_runtime::render_target::RenderTarget;
|
||||||
use librashader_runtime::uniforms::{NoUniformBinder, UniformStorage};
|
use librashader_runtime::uniforms::{NoUniformBinder, UniformStorage};
|
||||||
use objc2::runtime::ProtocolObject;
|
use objc2::runtime::ProtocolObject;
|
||||||
use librashader_common::map::FastHashMap;
|
|
||||||
|
|
||||||
impl TextureInput for InputTexture {
|
impl TextureInput for InputTexture {
|
||||||
fn size(&self) -> Size<u32> {
|
fn size(&self) -> Size<u32> {
|
||||||
|
|
|
@ -1,6 +1,7 @@
|
||||||
use crate::draw_quad::MetalVertex;
|
use crate::draw_quad::MetalVertex;
|
||||||
use crate::error::{FilterChainError, Result};
|
use crate::error::{FilterChainError, Result};
|
||||||
use crate::select_optimal_pixel_format;
|
use crate::select_optimal_pixel_format;
|
||||||
|
use bytemuck::offset_of;
|
||||||
use icrate::Foundation::NSString;
|
use icrate::Foundation::NSString;
|
||||||
use icrate::Metal::{
|
use icrate::Metal::{
|
||||||
MTLBlendFactorOneMinusSourceAlpha, MTLBlendFactorSourceAlpha, MTLCommandBuffer,
|
MTLBlendFactorOneMinusSourceAlpha, MTLBlendFactorSourceAlpha, MTLCommandBuffer,
|
||||||
|
@ -16,7 +17,6 @@ use librashader_reflect::back::ShaderCompilerOutput;
|
||||||
use librashader_runtime::render_target::RenderTarget;
|
use librashader_runtime::render_target::RenderTarget;
|
||||||
use objc2::rc::Id;
|
use objc2::rc::Id;
|
||||||
use objc2::runtime::ProtocolObject;
|
use objc2::runtime::ProtocolObject;
|
||||||
use bytemuck::offset_of;
|
|
||||||
|
|
||||||
/// This is only really plausible for SPIRV-Cross, for Naga we need to supply the next plausible binding.
|
/// This is only really plausible for SPIRV-Cross, for Naga we need to supply the next plausible binding.
|
||||||
pub const VERTEX_BUFFER_INDEX: usize = 4;
|
pub const VERTEX_BUFFER_INDEX: usize = 4;
|
||||||
|
|
|
@ -3,10 +3,10 @@ use icrate::Metal::{
|
||||||
MTLSamplerBorderColorTransparentBlack, MTLSamplerDescriptor, MTLSamplerMinMagFilter,
|
MTLSamplerBorderColorTransparentBlack, MTLSamplerDescriptor, MTLSamplerMinMagFilter,
|
||||||
MTLSamplerState,
|
MTLSamplerState,
|
||||||
};
|
};
|
||||||
|
use librashader_common::map::FastHashMap;
|
||||||
use librashader_common::{FilterMode, WrapMode};
|
use librashader_common::{FilterMode, WrapMode};
|
||||||
use objc2::rc::Id;
|
use objc2::rc::Id;
|
||||||
use objc2::runtime::ProtocolObject;
|
use objc2::runtime::ProtocolObject;
|
||||||
use librashader_common::map::FastHashMap;
|
|
||||||
|
|
||||||
use crate::error::{FilterChainError, Result};
|
use crate::error::{FilterChainError, Result};
|
||||||
|
|
||||||
|
|
|
@ -14,10 +14,11 @@ use ash::vk;
|
||||||
use librashader_common::{ImageFormat, Size, Viewport};
|
use librashader_common::{ImageFormat, Size, Viewport};
|
||||||
|
|
||||||
use gpu_allocator::vulkan::Allocator;
|
use gpu_allocator::vulkan::Allocator;
|
||||||
|
use librashader_common::map::FastHashMap;
|
||||||
use librashader_presets::{ShaderPassConfig, ShaderPreset, TextureConfig};
|
use librashader_presets::{ShaderPassConfig, ShaderPreset, TextureConfig};
|
||||||
use librashader_reflect::back::targets::SPIRV;
|
use librashader_reflect::back::targets::SPIRV;
|
||||||
use librashader_reflect::back::{CompileReflectShader, CompileShader};
|
use librashader_reflect::back::{CompileReflectShader, CompileShader};
|
||||||
use librashader_reflect::front::{SpirvCompilation};
|
use librashader_reflect::front::SpirvCompilation;
|
||||||
use librashader_reflect::reflect::presets::{CompilePresetTarget, ShaderPassArtifact};
|
use librashader_reflect::reflect::presets::{CompilePresetTarget, ShaderPassArtifact};
|
||||||
use librashader_reflect::reflect::semantics::ShaderSemantics;
|
use librashader_reflect::reflect::semantics::ShaderSemantics;
|
||||||
use librashader_reflect::reflect::ReflectShader;
|
use librashader_reflect::reflect::ReflectShader;
|
||||||
|
@ -26,7 +27,6 @@ use librashader_runtime::image::{Image, ImageError, UVDirection, BGRA8};
|
||||||
use librashader_runtime::quad::QuadType;
|
use librashader_runtime::quad::QuadType;
|
||||||
use librashader_runtime::uniforms::UniformStorage;
|
use librashader_runtime::uniforms::UniformStorage;
|
||||||
use parking_lot::RwLock;
|
use parking_lot::RwLock;
|
||||||
use librashader_common::map::FastHashMap;
|
|
||||||
use std::collections::VecDeque;
|
use std::collections::VecDeque;
|
||||||
use std::convert::Infallible;
|
use std::convert::Infallible;
|
||||||
use std::path::Path;
|
use std::path::Path;
|
||||||
|
|
|
@ -7,6 +7,7 @@ use crate::samplers::SamplerSet;
|
||||||
use crate::texture::InputImage;
|
use crate::texture::InputImage;
|
||||||
use crate::{error, VulkanImage};
|
use crate::{error, VulkanImage};
|
||||||
use ash::vk;
|
use ash::vk;
|
||||||
|
use librashader_common::map::FastHashMap;
|
||||||
use librashader_common::{ImageFormat, Size, Viewport};
|
use librashader_common::{ImageFormat, Size, Viewport};
|
||||||
use librashader_preprocess::ShaderSource;
|
use librashader_preprocess::ShaderSource;
|
||||||
use librashader_presets::ShaderPassConfig;
|
use librashader_presets::ShaderPassConfig;
|
||||||
|
@ -19,7 +20,6 @@ use librashader_runtime::filter_pass::FilterPassMeta;
|
||||||
use librashader_runtime::quad::QuadType;
|
use librashader_runtime::quad::QuadType;
|
||||||
use librashader_runtime::render_target::RenderTarget;
|
use librashader_runtime::render_target::RenderTarget;
|
||||||
use librashader_runtime::uniforms::{NoUniformBinder, UniformStorage, UniformStorageAccess};
|
use librashader_runtime::uniforms::{NoUniformBinder, UniformStorage, UniformStorageAccess};
|
||||||
use librashader_common::map::FastHashMap;
|
|
||||||
use std::sync::Arc;
|
use std::sync::Arc;
|
||||||
|
|
||||||
pub struct FilterPass {
|
pub struct FilterPass {
|
||||||
|
|
|
@ -1,7 +1,7 @@
|
||||||
use crate::error;
|
use crate::error;
|
||||||
use ash::vk;
|
use ash::vk;
|
||||||
use librashader_common::{FilterMode, WrapMode};
|
|
||||||
use librashader_common::map::FastHashMap;
|
use librashader_common::map::FastHashMap;
|
||||||
|
use librashader_common::{FilterMode, WrapMode};
|
||||||
use std::sync::Arc;
|
use std::sync::Arc;
|
||||||
|
|
||||||
pub struct VulkanSampler {
|
pub struct VulkanSampler {
|
||||||
|
|
|
@ -1,7 +1,8 @@
|
||||||
|
use librashader_common::map::FastHashMap;
|
||||||
use librashader_presets::{ShaderPassConfig, ShaderPreset, TextureConfig};
|
use librashader_presets::{ShaderPassConfig, ShaderPreset, TextureConfig};
|
||||||
use librashader_reflect::back::targets::WGSL;
|
use librashader_reflect::back::targets::WGSL;
|
||||||
use librashader_reflect::back::{CompileReflectShader, CompileShader};
|
use librashader_reflect::back::{CompileReflectShader, CompileShader};
|
||||||
use librashader_reflect::front::{SpirvCompilation};
|
use librashader_reflect::front::SpirvCompilation;
|
||||||
use librashader_reflect::reflect::presets::{CompilePresetTarget, ShaderPassArtifact};
|
use librashader_reflect::reflect::presets::{CompilePresetTarget, ShaderPassArtifact};
|
||||||
use librashader_reflect::reflect::semantics::ShaderSemantics;
|
use librashader_reflect::reflect::semantics::ShaderSemantics;
|
||||||
use librashader_reflect::reflect::ReflectShader;
|
use librashader_reflect::reflect::ReflectShader;
|
||||||
|
@ -11,7 +12,6 @@ use librashader_runtime::quad::QuadType;
|
||||||
use librashader_runtime::uniforms::UniformStorage;
|
use librashader_runtime::uniforms::UniformStorage;
|
||||||
#[cfg(not(target_arch = "wasm32"))]
|
#[cfg(not(target_arch = "wasm32"))]
|
||||||
use rayon::prelude::*;
|
use rayon::prelude::*;
|
||||||
use librashader_common::map::FastHashMap;
|
|
||||||
use std::collections::VecDeque;
|
use std::collections::VecDeque;
|
||||||
use std::path::Path;
|
use std::path::Path;
|
||||||
|
|
||||||
|
|
|
@ -6,6 +6,7 @@ use crate::graphics_pipeline::WgpuGraphicsPipeline;
|
||||||
use crate::options::FrameOptionsWgpu;
|
use crate::options::FrameOptionsWgpu;
|
||||||
use crate::samplers::SamplerSet;
|
use crate::samplers::SamplerSet;
|
||||||
use crate::texture::InputImage;
|
use crate::texture::InputImage;
|
||||||
|
use librashader_common::map::FastHashMap;
|
||||||
use librashader_common::{ImageFormat, Size, Viewport};
|
use librashader_common::{ImageFormat, Size, Viewport};
|
||||||
use librashader_preprocess::ShaderSource;
|
use librashader_preprocess::ShaderSource;
|
||||||
use librashader_presets::ShaderPassConfig;
|
use librashader_presets::ShaderPassConfig;
|
||||||
|
@ -18,7 +19,6 @@ use librashader_runtime::filter_pass::FilterPassMeta;
|
||||||
use librashader_runtime::quad::QuadType;
|
use librashader_runtime::quad::QuadType;
|
||||||
use librashader_runtime::render_target::RenderTarget;
|
use librashader_runtime::render_target::RenderTarget;
|
||||||
use librashader_runtime::uniforms::{NoUniformBinder, UniformStorage, UniformStorageAccess};
|
use librashader_runtime::uniforms::{NoUniformBinder, UniformStorage, UniformStorageAccess};
|
||||||
use librashader_common::map::FastHashMap;
|
|
||||||
use std::sync::Arc;
|
use std::sync::Arc;
|
||||||
use wgpu::{BindGroupDescriptor, BindGroupEntry, BindingResource, BufferBinding, ShaderStages};
|
use wgpu::{BindGroupDescriptor, BindGroupEntry, BindingResource, BufferBinding, ShaderStages};
|
||||||
|
|
||||||
|
|
|
@ -1,5 +1,5 @@
|
||||||
use librashader_common::{FilterMode, WrapMode};
|
|
||||||
use librashader_common::map::FastHashMap;
|
use librashader_common::map::FastHashMap;
|
||||||
|
use librashader_common::{FilterMode, WrapMode};
|
||||||
use std::sync::Arc;
|
use std::sync::Arc;
|
||||||
use wgpu::{Sampler, SamplerBorderColor, SamplerDescriptor};
|
use wgpu::{Sampler, SamplerBorderColor, SamplerDescriptor};
|
||||||
|
|
||||||
|
|
|
@ -1,4 +1,5 @@
|
||||||
use crate::uniforms::{BindUniform, NoUniformBinder, UniformStorage};
|
use crate::uniforms::{BindUniform, NoUniformBinder, UniformStorage};
|
||||||
|
use librashader_common::map::FastHashMap;
|
||||||
use librashader_common::Size;
|
use librashader_common::Size;
|
||||||
use librashader_preprocess::ShaderParameter;
|
use librashader_preprocess::ShaderParameter;
|
||||||
use librashader_reflect::reflect::semantics::{
|
use librashader_reflect::reflect::semantics::{
|
||||||
|
@ -6,7 +7,6 @@ use librashader_reflect::reflect::semantics::{
|
||||||
UniformMeta, UniqueSemantics,
|
UniformMeta, UniqueSemantics,
|
||||||
};
|
};
|
||||||
use std::ops::{Deref, DerefMut};
|
use std::ops::{Deref, DerefMut};
|
||||||
use librashader_common::map::FastHashMap;
|
|
||||||
|
|
||||||
/// Trait for input textures used during uniform binding,
|
/// Trait for input textures used during uniform binding,
|
||||||
pub trait TextureInput {
|
pub trait TextureInput {
|
||||||
|
|
|
@ -7,7 +7,9 @@ pub trait FilterChainParameters {
|
||||||
fn set_enabled_pass_count(&mut self, count: usize);
|
fn set_enabled_pass_count(&mut self, count: usize);
|
||||||
|
|
||||||
/// Enumerates the active parameters as well as their values in the current filter chain.
|
/// Enumerates the active parameters as well as their values in the current filter chain.
|
||||||
fn enumerate_parameters<'a>(&'a self) -> ::librashader_common::map::halfbrown::Iter<String, f32>;
|
fn enumerate_parameters<'a>(
|
||||||
|
&'a self,
|
||||||
|
) -> ::librashader_common::map::halfbrown::Iter<String, f32>;
|
||||||
|
|
||||||
/// Get the value of the given parameter if present.
|
/// Get the value of the given parameter if present.
|
||||||
fn get_parameter(&self, parameter: &str) -> Option<f32>;
|
fn get_parameter(&self, parameter: &str) -> Option<f32>;
|
||||||
|
@ -30,7 +32,9 @@ macro_rules! impl_filter_chain_parameters {
|
||||||
self.common.config.passes_enabled = count
|
self.common.config.passes_enabled = count
|
||||||
}
|
}
|
||||||
|
|
||||||
fn enumerate_parameters<'a>(&'a self) -> ::librashader_common::map::halfbrown::Iter<String, f32> {
|
fn enumerate_parameters<'a>(
|
||||||
|
&'a self,
|
||||||
|
) -> ::librashader_common::map::halfbrown::Iter<String, f32> {
|
||||||
self.common.config.parameters.iter()
|
self.common.config.parameters.iter()
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -64,9 +64,10 @@ pub mod presets {
|
||||||
let iters: Result<Vec<Vec<ShaderParameter>>, PreprocessError> = preset
|
let iters: Result<Vec<Vec<ShaderParameter>>, PreprocessError> = preset
|
||||||
.shaders
|
.shaders
|
||||||
.iter()
|
.iter()
|
||||||
.map(|s| ShaderSource::load(&s.name).map(|s|
|
.map(|s| {
|
||||||
s.parameters.into_iter()
|
ShaderSource::load(&s.name)
|
||||||
.map(|(_,v)| v).collect()))
|
.map(|s| s.parameters.into_iter().map(|(_, v)| v).collect())
|
||||||
|
})
|
||||||
.collect();
|
.collect();
|
||||||
let iters = iters?;
|
let iters = iters?;
|
||||||
Ok(iters.into_iter().flatten())
|
Ok(iters.into_iter().flatten())
|
||||||
|
@ -297,11 +298,16 @@ pub mod runtime {
|
||||||
#[cfg(feature = "runtime-wgpu")]
|
#[cfg(feature = "runtime-wgpu")]
|
||||||
#[doc(cfg(feature = "runtime-wgpu"))]
|
#[doc(cfg(feature = "runtime-wgpu"))]
|
||||||
/// Shader runtime for wgpu.
|
/// Shader runtime for wgpu.
|
||||||
#[cfg_attr(all(feature = "runtime-wgpu", all(target_vendor = "apple", feature = "docsrs")),
|
#[cfg_attr(
|
||||||
|
all(
|
||||||
|
feature = "runtime-wgpu",
|
||||||
|
all(target_vendor = "apple", feature = "docsrs")
|
||||||
|
),
|
||||||
doc = "\n\nThe wgpu runtime is available on macOS and iOS, but technical reasons prevent them from rendering on docs.rs.
|
doc = "\n\nThe wgpu runtime is available on macOS and iOS, but technical reasons prevent them from rendering on docs.rs.
|
||||||
\n\n This is because wgpu on macOS and iOS link to [metal-rs](https://github.com/gfx-rs/metal-rs), which can not build on docs.rs.
|
\n\n This is because wgpu on macOS and iOS link to [metal-rs](https://github.com/gfx-rs/metal-rs), which can not build on docs.rs.
|
||||||
See [SSheldon/rustc-objc-exception#13](https://github.com/SSheldon/rust-objc-exception/issues/13) for more details.
|
See [SSheldon/rustc-objc-exception#13](https://github.com/SSheldon/rust-objc-exception/issues/13) for more details.
|
||||||
\n\n The wgpu runtime is identical for all supported operating systems, so please refer to documentation from another operating system.")]
|
\n\n The wgpu runtime is identical for all supported operating systems, so please refer to documentation from another operating system."
|
||||||
|
)]
|
||||||
pub mod wgpu {
|
pub mod wgpu {
|
||||||
#[cfg(not(all(target_vendor = "apple", feature = "docsrs")))]
|
#[cfg(not(all(target_vendor = "apple", feature = "docsrs")))]
|
||||||
pub use librashader_runtime_wgpu::{
|
pub use librashader_runtime_wgpu::{
|
||||||
|
|
Loading…
Reference in a new issue