tex_unit partial update
This commit is contained in:
@@ -4,11 +4,13 @@ struct kernel_arg_t {
|
||||
uint32_t num_tasks;
|
||||
uint32_t src_width;
|
||||
uint32_t src_height;
|
||||
uint32_t src_stride;
|
||||
uint32_t src_pitch;
|
||||
uint32_t src_ptr;
|
||||
uint32_t dst_width;
|
||||
uint32_t dst_height;
|
||||
uint32_t dst_stride;
|
||||
uint32_t dst_pitch;
|
||||
uint32_t src_ptr;
|
||||
uint32_t dst_ptr;
|
||||
};
|
||||
|
||||
|
||||
Binary file not shown.
@@ -156,9 +156,11 @@ int main(int argc, char *argv[]) {
|
||||
kernel_arg.num_tasks = std::min<uint32_t>(num_tasks, dst_height);
|
||||
kernel_arg.src_width = src_width;
|
||||
kernel_arg.src_height = src_height;
|
||||
kernel_arg.src_stride = src_bpp;
|
||||
kernel_arg.src_pitch = src_bpp * src_width * src_height;
|
||||
kernel_arg.dst_width = dst_width;
|
||||
kernel_arg.dst_height = dst_height;
|
||||
kernel_arg.dst_stride = dst_bpp;
|
||||
kernel_arg.dst_pitch = dst_bpp * dst_width * dst_height;
|
||||
kernel_arg.src_ptr = src_addr;
|
||||
kernel_arg.dst_ptr = dst_addr;
|
||||
|
||||
Binary file not shown.
@@ -2,12 +2,16 @@
|
||||
#include <vx_intrinsics.h>
|
||||
#include <vx_tex.h>
|
||||
#include "common.h"
|
||||
|
||||
uint32_t ilog2 (uint32_t value) {
|
||||
return (uint32_t)(sizeof(uint32_t) * 8UL) - (uint32_t)__builtin_clzl((value << 1) - 1UL) - 1;
|
||||
}
|
||||
struct tile_arg_t {
|
||||
struct kernel_arg_t karg;
|
||||
uint32_t tile_width;
|
||||
uint32_t tile_height;
|
||||
float deltaX;
|
||||
float deltaY;
|
||||
struct kernel_arg_t karg;
|
||||
uint32_t tile_width;
|
||||
uint32_t tile_height;
|
||||
float deltaX;
|
||||
float deltaY;
|
||||
};
|
||||
|
||||
void kernel_body(int task_id, void* arg) {
|
||||
@@ -36,15 +40,14 @@ int main() {
|
||||
struct kernel_arg_t* arg = (struct kernel_arg_t*)0x0;
|
||||
|
||||
// configure texture unit
|
||||
vx_csr_write(CSR_TEX0_ADDR, arg->src_ptr);
|
||||
vx_csr_write(CSR_TEX0_FORMAT, 0);
|
||||
vx_csr_write(CSR_TEX0_WIDTH, arg->src_width);
|
||||
vx_csr_write(CSR_TEX0_HEIGHT, arg->src_height);
|
||||
vx_csr_write(CSR_TEX0_PITCH, arg->src_pitch);
|
||||
vx_csr_write(CSR_TEX0_WRAP_U, 0);
|
||||
vx_csr_write(CSR_TEX0_WRAP_V, 0);
|
||||
vx_csr_write(CSR_TEX0_MIN_FILTER, 0);
|
||||
vx_csr_write(CSR_TEX0_MAX_FILTER, 0);
|
||||
vx_csr_write(CSR_TEX_ADDR(0), arg->src_ptr);
|
||||
vx_csr_write(CSR_TEX_FORMAT(0), 0);
|
||||
vx_csr_write(CSR_TEX_WIDTH(0), ilog2(arg->src_width));
|
||||
vx_csr_write(CSR_TEX_HEIGHT(0), ilog2(arg->src_height));
|
||||
vx_csr_write(CSR_TEX_STRIDE(0), ilog2(arg->src_stride));
|
||||
vx_csr_write(CSR_TEX_WRAP_U(0), 0);
|
||||
vx_csr_write(CSR_TEX_WRAP_V(0), 0);
|
||||
vx_csr_write(CSR_TEX_FILTER(0), 0);
|
||||
|
||||
struct tile_arg_t targ;
|
||||
targ.karg = *arg;
|
||||
|
||||
@@ -29,7 +29,7 @@ Disassembly of section .init:
|
||||
Disassembly of section .text:
|
||||
|
||||
80000050 <main>:
|
||||
80000050: 01c02783 lw a5,28(zero) # 1c <__stack_usage+0x1c>
|
||||
80000050: 01402783 lw a5,20(zero) # 14 <__stack_usage+0x14>
|
||||
80000054: 00100073 ebreak
|
||||
|
||||
80000058 <register_fini>:
|
||||
|
||||
Binary file not shown.
Reference in New Issue
Block a user