tex_unit partial update

This commit is contained in:
Blaise Tine
2021-03-20 08:40:57 -04:00
parent 50f5bdcfe3
commit 859877a00d
22 changed files with 352 additions and 183 deletions

View File

@@ -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.

View File

@@ -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.

View File

@@ -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;

View File

@@ -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.