mirror of
https://github.com/RPCS3/rpcs3.git
synced 2026-03-10 15:38:08 +01:00
rsx: Add format override functionality to format_ex
This commit is contained in:
parent
b9bdbfa55b
commit
f2a17e4898
|
|
@ -147,6 +147,9 @@ namespace rsx
|
|||
bool valid() const { return format_bits != 0; }
|
||||
u32 format() const { return format_bits & ~(CELL_GCM_TEXTURE_LN | CELL_GCM_TEXTURE_UN); }
|
||||
|
||||
bool hw_SNORM_possible() const { return (texel_remap_control & SEXT_MASK) == SEXT_MASK; }
|
||||
bool hw_SRGB_possible() const { return (texel_remap_control & GAMMA_CTRL_MASK) == GAMMA_RGB_MASK; }
|
||||
|
||||
//private:
|
||||
u32 format_bits = 0;
|
||||
u32 features = 0;
|
||||
|
|
|
|||
|
|
@ -4,52 +4,12 @@
|
|||
|
||||
#include "GLSLTypes.h"
|
||||
#include "ShaderParam.h"
|
||||
#include "../color_utils.h"
|
||||
|
||||
struct RSXFragmentProgram;
|
||||
|
||||
namespace rsx
|
||||
{
|
||||
// TODO: Move this somewhere else once more compilers are supported other than glsl
|
||||
enum texture_control_bits
|
||||
{
|
||||
GAMMA_A = 0,
|
||||
GAMMA_R,
|
||||
GAMMA_G,
|
||||
GAMMA_B,
|
||||
ALPHAKILL,
|
||||
RENORMALIZE,
|
||||
EXPAND_A,
|
||||
EXPAND_R,
|
||||
EXPAND_G,
|
||||
EXPAND_B,
|
||||
SEXT_A,
|
||||
SEXT_R,
|
||||
SEXT_G,
|
||||
SEXT_B,
|
||||
DEPTH_FLOAT,
|
||||
DEPTH_COMPARE_OP,
|
||||
DEPTH_COMPARE_1,
|
||||
DEPTH_COMPARE_2,
|
||||
FILTERED_MAG,
|
||||
FILTERED_MIN,
|
||||
UNNORMALIZED_COORDS,
|
||||
CLAMP_TEXCOORDS_BIT,
|
||||
WRAP_S,
|
||||
WRAP_T,
|
||||
WRAP_R,
|
||||
FF_SIGNED_BIT,
|
||||
FF_BIASED_RENORM_BIT,
|
||||
FF_GAMMA_BIT,
|
||||
FF_16BIT_CHANNELS_BIT,
|
||||
|
||||
GAMMA_CTRL_MASK = (1 << GAMMA_R) | (1 << GAMMA_G) | (1 << GAMMA_B) | (1 << GAMMA_A),
|
||||
EXPAND_MASK = (1 << EXPAND_R) | (1 << EXPAND_G) | (1 << EXPAND_B) | (1 << EXPAND_A),
|
||||
EXPAND_OFFSET = EXPAND_A,
|
||||
SEXT_MASK = (1 << SEXT_R) | (1 << SEXT_G) | (1 << SEXT_B) | (1 << SEXT_A),
|
||||
SEXT_OFFSET = SEXT_A,
|
||||
FORMAT_FEATURES_OFFSET = FF_SIGNED_BIT,
|
||||
};
|
||||
|
||||
enum ROP_control_bits : u32
|
||||
{
|
||||
// Commands. These trigger explicit action.
|
||||
|
|
|
|||
|
|
@ -7,6 +7,52 @@
|
|||
|
||||
namespace rsx
|
||||
{
|
||||
enum texture_control_bits : u32
|
||||
{
|
||||
GAMMA_A = 0,
|
||||
GAMMA_R,
|
||||
GAMMA_G,
|
||||
GAMMA_B,
|
||||
ALPHAKILL,
|
||||
RENORMALIZE,
|
||||
EXPAND_A,
|
||||
EXPAND_R,
|
||||
EXPAND_G,
|
||||
EXPAND_B,
|
||||
SEXT_A,
|
||||
SEXT_R,
|
||||
SEXT_G,
|
||||
SEXT_B,
|
||||
DEPTH_FLOAT,
|
||||
DEPTH_COMPARE_OP,
|
||||
DEPTH_COMPARE_1,
|
||||
DEPTH_COMPARE_2,
|
||||
FILTERED_MAG,
|
||||
FILTERED_MIN,
|
||||
UNNORMALIZED_COORDS,
|
||||
CLAMP_TEXCOORDS_BIT,
|
||||
WRAP_S,
|
||||
WRAP_T,
|
||||
WRAP_R,
|
||||
FF_SIGNED_BIT,
|
||||
FF_BIASED_RENORM_BIT,
|
||||
FF_GAMMA_BIT,
|
||||
FF_16BIT_CHANNELS_BIT,
|
||||
|
||||
// Meta
|
||||
GAMMA_CTRL_MASK = (1 << GAMMA_R) | (1 << GAMMA_G) | (1 << GAMMA_B) | (1 << GAMMA_A),
|
||||
GAMMA_RGB_MASK = (1 << GAMMA_R) | (1 << GAMMA_G) | (1 << GAMMA_B),
|
||||
GAMMA_OFFSET = GAMMA_A,
|
||||
|
||||
EXPAND_MASK = (1 << EXPAND_R) | (1 << EXPAND_G) | (1 << EXPAND_B) | (1 << EXPAND_A),
|
||||
EXPAND_OFFSET = EXPAND_A,
|
||||
|
||||
SEXT_MASK = (1 << SEXT_R) | (1 << SEXT_G) | (1 << SEXT_B) | (1 << SEXT_A),
|
||||
SEXT_OFFSET = SEXT_A,
|
||||
|
||||
FORMAT_FEATURES_OFFSET = FF_SIGNED_BIT,
|
||||
};
|
||||
|
||||
struct texture_channel_remap_t
|
||||
{
|
||||
u32 encoded = 0xDEAD;
|
||||
|
|
|
|||
Loading…
Reference in a new issue