vitasdk
Documentation of the vitasdk
iftu.h
Go to the documentation of this file.
1
6#ifndef _PSP2KERN_LOWIO_IFTU_H_
7#define _PSP2KERN_LOWIO_IFTU_H_
8
10#include <psp2kern/types.h>
11
12#ifdef __cplusplus
13extern "C" {
14#endif
15
22
41
47
55
56typedef struct SceIftuCscParams {
57 unsigned int post_add_0;
58 unsigned int post_add_1_2;
59 unsigned int post_clamp_max_0;
60 unsigned int post_clamp_min_0;
61 unsigned int post_clamp_max_1_2;
62 unsigned int post_clamp_min_1_2;
63 unsigned int ctm[3][3];
66
67typedef struct SceIftuConvParams {
68 unsigned int size;
69 unsigned int unk04;
72 unsigned int csc_control;
73 unsigned int unk14;
74 unsigned int unk18;
75 unsigned int unk1C;
76 unsigned int alpha;
77 unsigned int unk24;
80
81typedef struct SceIftuFrameBuf {
82 unsigned int pixelformat;
83 unsigned int width;
84 unsigned int height;
85 unsigned int leftover_stride;
86 unsigned int leftover_align; /* if YCbCr: (width >> 1) & 0xF [chroma align?] */
87 unsigned int paddr0;
88 unsigned int paddr1;
89 unsigned int paddr2;
92
93typedef struct SceIftuPlaneState {
95 unsigned int unk20;
96 unsigned int src_x;
97 unsigned int src_y;
98 unsigned int src_w;
99 unsigned int src_h;
100 unsigned int dst_x;
101 unsigned int dst_y;
102 unsigned int dst_w;
103 unsigned int dst_h;
104 unsigned int vtop_padding;
105 unsigned int vbot_padding; /* h - aligned_h */
106 unsigned int hleft_padding;
107 unsigned int hright_padding; /* w - aligned_w */
110
138
146int ksceIftuDisable(unsigned int plane_index);
147
155int ksceIftuEnable(unsigned int plane_index);
156
179int ksceIftuSetInputFrameBuffer(unsigned int plane_index, const SceIftuPlaneState *plane_state, int bilinear, int sync);
180
189int ksceIftuSetMergeSetting(unsigned int plane_index, int control);
190
207int ksceIftuSetOutputFormat(unsigned int plane_index, unsigned int width, unsigned int height, unsigned int pixel_format, unsigned int interlaced);
208
209#ifdef __cplusplus
210}
211#endif
212
213#endif /* _PSP2KERN_LOWIO_IFTU_H_ */
#define VITASDK_BUILD_ASSERT_EQ(__size__, __name__)
Definition build_utils.h:13
unsigned int post_clamp_max_0
10-bit upper clamp limit for component 0.
Definition iftu.h:59
unsigned int dst_y
Destination Y coordinate in pixels.
Definition iftu.h:101
unsigned int width
Frame width in pixels; known FW 3.60 callers align it to 16 pixels.
Definition iftu.h:83
unsigned int src_h
Vertical source-sampling step per destination pixel in 16.16 fixed-point format.
Definition iftu.h:99
SceIftuCscParams * csc_params2
Optional read-only parameters for the CSC register block starting at 0x104.
Definition iftu.h:71
unsigned int post_add_0
10-bit post-add offset for component 0.
Definition iftu.h:57
unsigned int post_clamp_max_1_2
10-bit upper clamp limit shared by components 1 and 2.
Definition iftu.h:61
unsigned int paddr2
Physical address of plane 2, or zero when unused.
Definition iftu.h:89
unsigned int src_x
Horizontal source-sampling offset in unsigned 8.8 fixed-point format.
Definition iftu.h:96
unsigned int paddr0
Physical address of plane 0.
Definition iftu.h:87
unsigned int paddr1
Physical address of plane 1, or zero when unused.
Definition iftu.h:88
unsigned int pixelformat
One of SceIftuPixelformat or a documented extended format.
Definition iftu.h:82
unsigned int unk20
Definition iftu.h:95
unsigned int dst_x
Destination X coordinate in pixels.
Definition iftu.h:100
unsigned int alpha
Alpha value. The default is 0xFF.
Definition iftu.h:76
unsigned int src_w
Horizontal source-sampling step per destination pixel in 16.16 fixed-point format.
Definition iftu.h:98
unsigned int leftover_stride
Additional bytes after each luma or packed-pixel row.
Definition iftu.h:85
SceIftuFieldMode
Definition iftu.h:48
int ksceIftuEnable(unsigned int plane_index)
Enable a display-plane IFTU context using its cached configuration.
unsigned int unk24
Definition iftu.h:77
unsigned int post_clamp_min_1_2
10-bit lower clamp limit shared by components 1 and 2.
Definition iftu.h:62
SceIftuFilterMode
Definition iftu.h:42
unsigned int vtop_padding
Definition iftu.h:104
int ksceIftuSetOutputFormat(unsigned int plane_index, unsigned int width, unsigned int height, unsigned int pixel_format, unsigned int interlaced)
Configure an IFTU display plane's output size and format.
unsigned int size
Structure size; FW 3.60 does not validate it.
Definition iftu.h:68
int ksceIftuSetMergeSetting(unsigned int plane_index, int control)
Set an overlay plane's merge/blending control.
SceIftuPixelformat
Definition iftu.h:23
int ksceIftuSetInputFrameBuffer(unsigned int plane_index, const SceIftuPlaneState *plane_state, int bilinear, int sync)
Store an IFTU input-plane state in the cache and submit it.
SceIftuFrameBuf fb
Definition iftu.h:94
SceIftuErrorCode
Definition iftu.h:16
unsigned int unk18
Definition iftu.h:74
SceIftuCscParams * csc_params1
Optional read-only parameters for the CSC register block starting at 0x130.
Definition iftu.h:70
unsigned int dst_w
Definition iftu.h:102
unsigned int unk1C
Definition iftu.h:75
unsigned int height
Frame height in pixels; known FW 3.60 callers align it to 8 pixels.
Definition iftu.h:84
unsigned int leftover_align
Definition iftu.h:86
int ksceIftuDisable(unsigned int plane_index)
Disable a display-plane IFTU context and its interrupt.
unsigned int unk04
Definition iftu.h:69
unsigned int csc_control
Raw CSC control-register value.
Definition iftu.h:72
unsigned int src_y
Vertical source-sampling offset in unsigned 8.8 fixed-point format.
Definition iftu.h:97
unsigned int post_add_1_2
10-bit post-add value shared by components 1 and 2.
Definition iftu.h:58
unsigned int dst_h
Definition iftu.h:103
int ksceIftuCsc(SceIftuFrameBuf *dst, SceIftuPlaneState *src, SceIftuConvParams *params)
Convert a frame with the standalone IFTU2 engine and wait for completion.
unsigned int post_clamp_min_0
10-bit lower clamp limit for component 0.
Definition iftu.h:60
unsigned int hright_padding
Definition iftu.h:107
unsigned int ctm[3][3]
Signed S3.9 fixed-point values stored as 12-bit two's-complement register fields.
Definition iftu.h:63
unsigned int hleft_padding
Definition iftu.h:106
unsigned int vbot_padding
Definition iftu.h:105
unsigned int unk14
Definition iftu.h:73
@ SCE_IFTU_FIELD_MODE_UNK_1
Definition iftu.h:50
@ SCE_IFTU_FIELD_MODE_INTERLACED_FIELD_1
Definition iftu.h:52
@ SCE_IFTU_FIELD_MODE_INTERLACED_FIELD_0
Definition iftu.h:51
@ SCE_IFTU_FIELD_MODE_PROGRESSIVE
Definition iftu.h:49
@ SCE_IFTU_FILTER_MODE_BILINEAR
Definition iftu.h:44
@ SCE_IFTU_FILTER_MODE_NEAREST
Definition iftu.h:43
@ SCE_IFTU_PIXELFORMAT_BGRX8888_MULT
Definition iftu.h:34
@ SCE_IFTU_PIXELFORMAT_RGBX8888_MULT
Definition iftu.h:33
@ SCE_IFTU_PIXELFORMAT_BGRA1010102_MULT
Definition iftu.h:36
@ SCE_IFTU_PIXELFORMAT_RGBA1010102_MULT
Definition iftu.h:35
@ SCE_IFTU_PIXELFORMAT_BGRA5551
Definition iftu.h:26
@ SCE_IFTU_PIXELFORMAT_RGBX8888
Definition iftu.h:29
@ SCE_IFTU_PIXELFORMAT_NV12
Definition iftu.h:37
@ SCE_IFTU_PIXELFORMAT_RGB565
Definition iftu.h:25
@ SCE_IFTU_PIXELFORMAT_BGRX8888
Definition iftu.h:28
@ SCE_IFTU_PIXELFORMAT_RGBA5551
Definition iftu.h:27
@ SCE_IFTU_PIXELFORMAT_YUV422
Definition iftu.h:39
@ SCE_IFTU_PIXELFORMAT_BGR565
Definition iftu.h:24
@ SCE_IFTU_PIXELFORMAT_RGBA1010102
Definition iftu.h:31
@ SCE_IFTU_PIXELFORMAT_BGRP
Definition iftu.h:32
@ SCE_IFTU_PIXELFORMAT_YUV420
Definition iftu.h:38
@ SCE_IFTU_PIXELFORMAT_BGRA1010102
Definition iftu.h:30
@ SCE_IFTU_ERROR_INVALID_PARAM
Definition iftu.h:18
@ SCE_IFTU_ERROR_INVALID_PIXELFORMAT
Definition iftu.h:19
@ SCE_IFTU_ERROR_INVALID_PLANE
Definition iftu.h:17
@ SCE_IFTU_ERROR_PLANE_BUSY
Definition iftu.h:20
Definition iftu.h:67
Definition iftu.h:56
Definition iftu.h:81
Definition iftu.h:93