fixed build warnings
This commit is contained in:
@@ -1,5 +1,5 @@
|
|||||||
`include "VX_tex_define.vh"
|
`include "VX_tex_define.vh"
|
||||||
module VX_tex_memory #(
|
module VX_tex_mem #(
|
||||||
parameter CORE_ID = 0,
|
parameter CORE_ID = 0,
|
||||||
parameter REQ_INFOW = 1,
|
parameter REQ_INFOW = 1,
|
||||||
parameter NUM_REQS = 1
|
parameter NUM_REQS = 1
|
||||||
@@ -137,11 +137,11 @@ module VX_tex_unit #(
|
|||||||
wire [REQ_INFOW_M-1:0] mem_rsp_info;
|
wire [REQ_INFOW_M-1:0] mem_rsp_info;
|
||||||
wire mem_rsp_ready;
|
wire mem_rsp_ready;
|
||||||
|
|
||||||
VX_tex_memory #(
|
VX_tex_mem #(
|
||||||
.CORE_ID (CORE_ID),
|
.CORE_ID (CORE_ID),
|
||||||
.REQ_INFOW (REQ_INFOW_M),
|
.REQ_INFOW (REQ_INFOW_M),
|
||||||
.NUM_REQS (`NUM_THREADS)
|
.NUM_REQS (`NUM_THREADS)
|
||||||
) tex_memory (
|
) tex_mem (
|
||||||
.clk (clk),
|
.clk (clk),
|
||||||
.reset (reset),
|
.reset (reset),
|
||||||
|
|
||||||
|
|||||||
@@ -3,7 +3,7 @@
|
|||||||
#include "common.h"
|
#include "common.h"
|
||||||
|
|
||||||
void main() {
|
void main() {
|
||||||
const kernel_arg_t* arg = (const kernel_arg_t*)KERNEL_ARG_DEV_MEM_ADDR;
|
kernel_arg_t* arg = (kernel_arg_t*)KERNEL_ARG_DEV_MEM_ADDR;
|
||||||
uint32_t count = arg->count;
|
uint32_t count = arg->count;
|
||||||
int32_t* src_ptr = (int32_t*)arg->src_ptr;
|
int32_t* src_ptr = (int32_t*)arg->src_ptr;
|
||||||
int32_t* dst_ptr = (int32_t*)arg->dst_ptr;
|
int32_t* dst_ptr = (int32_t*)arg->dst_ptr;
|
||||||
|
|||||||
@@ -3,7 +3,7 @@
|
|||||||
#include <vx_spawn.h>
|
#include <vx_spawn.h>
|
||||||
#include "common.h"
|
#include "common.h"
|
||||||
|
|
||||||
void kernel_body(int task_id, const kernel_arg_t* arg) {
|
void kernel_body(int task_id, kernel_arg_t* arg) {
|
||||||
uint32_t count = arg->task_size;
|
uint32_t count = arg->task_size;
|
||||||
int32_t* src0_ptr = (int32_t*)arg->src0_ptr;
|
int32_t* src0_ptr = (int32_t*)arg->src0_ptr;
|
||||||
int32_t* src1_ptr = (int32_t*)arg->src1_ptr;
|
int32_t* src1_ptr = (int32_t*)arg->src1_ptr;
|
||||||
@@ -17,6 +17,6 @@ void kernel_body(int task_id, const kernel_arg_t* arg) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
void main() {
|
void main() {
|
||||||
const kernel_arg_t* arg = (const kernel_arg_t*)KERNEL_ARG_DEV_MEM_ADDR;
|
kernel_arg_t* arg = (kernel_arg_t*)KERNEL_ARG_DEV_MEM_ADDR;
|
||||||
vx_spawn_tasks(arg->num_tasks, kernel_body, arg);
|
vx_spawn_tasks(arg->num_tasks, (vx_spawn_tasks_cb)kernel_body, arg);
|
||||||
}
|
}
|
||||||
@@ -5,7 +5,7 @@
|
|||||||
|
|
||||||
// Parallel Selection sort
|
// Parallel Selection sort
|
||||||
|
|
||||||
void kernel_body(int task_id, const kernel_arg_t* arg) {
|
void kernel_body(int task_id, kernel_arg_t* arg) {
|
||||||
int32_t* src_ptr = (int32_t*)arg->src_ptr;
|
int32_t* src_ptr = (int32_t*)arg->src_ptr;
|
||||||
int32_t* dst_ptr = (int32_t*)arg->dst_ptr;
|
int32_t* dst_ptr = (int32_t*)arg->dst_ptr;
|
||||||
|
|
||||||
@@ -44,6 +44,6 @@ void kernel_body(int task_id, const kernel_arg_t* arg) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
void main() {
|
void main() {
|
||||||
const kernel_arg_t* arg = (const kernel_arg_t*)KERNEL_ARG_DEV_MEM_ADDR;
|
kernel_arg_t* arg = (kernel_arg_t*)KERNEL_ARG_DEV_MEM_ADDR;
|
||||||
vx_spawn_tasks(arg->num_points, kernel_body, arg);
|
vx_spawn_tasks(arg->num_points, (vx_spawn_tasks_cb)kernel_body, arg);
|
||||||
}
|
}
|
||||||
@@ -4,14 +4,14 @@
|
|||||||
#include <vx_spawn.h>
|
#include <vx_spawn.h>
|
||||||
#include "common.h"
|
#include "common.h"
|
||||||
|
|
||||||
typedef void (*PFN_Kernel)(int task_id, const kernel_arg_t* arg);
|
typedef void (*PFN_Kernel)(int task_id, kernel_arg_t* arg);
|
||||||
|
|
||||||
inline float __ieee754_sqrtf (float x) {
|
inline float __ieee754_sqrtf (float x) {
|
||||||
asm ("fsqrt.s %0, %1" : "=f" (x) : "f" (x));
|
asm ("fsqrt.s %0, %1" : "=f" (x) : "f" (x));
|
||||||
return x;
|
return x;
|
||||||
}
|
}
|
||||||
|
|
||||||
void kernel_iadd(int task_id, const kernel_arg_t* arg) {
|
void kernel_iadd(int task_id, kernel_arg_t* arg) {
|
||||||
uint32_t count = arg->task_size;
|
uint32_t count = arg->task_size;
|
||||||
int32_t* src0_ptr = (int32_t*)arg->src0_ptr;
|
int32_t* src0_ptr = (int32_t*)arg->src0_ptr;
|
||||||
int32_t* src1_ptr = (int32_t*)arg->src1_ptr;
|
int32_t* src1_ptr = (int32_t*)arg->src1_ptr;
|
||||||
@@ -26,7 +26,7 @@ void kernel_iadd(int task_id, const kernel_arg_t* arg) {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
void kernel_imul(int task_id, const kernel_arg_t* arg) {
|
void kernel_imul(int task_id, kernel_arg_t* arg) {
|
||||||
uint32_t count = arg->task_size;
|
uint32_t count = arg->task_size;
|
||||||
int32_t* src0_ptr = (int32_t*)arg->src0_ptr;
|
int32_t* src0_ptr = (int32_t*)arg->src0_ptr;
|
||||||
int32_t* src1_ptr = (int32_t*)arg->src1_ptr;
|
int32_t* src1_ptr = (int32_t*)arg->src1_ptr;
|
||||||
@@ -41,7 +41,7 @@ void kernel_imul(int task_id, const kernel_arg_t* arg) {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
void kernel_idiv(int task_id, const kernel_arg_t* arg) {
|
void kernel_idiv(int task_id, kernel_arg_t* arg) {
|
||||||
uint32_t count = arg->task_size;
|
uint32_t count = arg->task_size;
|
||||||
int32_t* src0_ptr = (int32_t*)arg->src0_ptr;
|
int32_t* src0_ptr = (int32_t*)arg->src0_ptr;
|
||||||
int32_t* src1_ptr = (int32_t*)arg->src1_ptr;
|
int32_t* src1_ptr = (int32_t*)arg->src1_ptr;
|
||||||
@@ -56,7 +56,7 @@ void kernel_idiv(int task_id, const kernel_arg_t* arg) {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
void kernel_idiv_mul(int task_id, const kernel_arg_t* arg) {
|
void kernel_idiv_mul(int task_id, kernel_arg_t* arg) {
|
||||||
uint32_t count = arg->task_size;
|
uint32_t count = arg->task_size;
|
||||||
int32_t* src0_ptr = (int32_t*)arg->src0_ptr;
|
int32_t* src0_ptr = (int32_t*)arg->src0_ptr;
|
||||||
int32_t* src1_ptr = (int32_t*)arg->src1_ptr;
|
int32_t* src1_ptr = (int32_t*)arg->src1_ptr;
|
||||||
@@ -73,7 +73,7 @@ void kernel_idiv_mul(int task_id, const kernel_arg_t* arg) {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
void kernel_fadd(int task_id, const kernel_arg_t* arg) {
|
void kernel_fadd(int task_id, kernel_arg_t* arg) {
|
||||||
uint32_t count = arg->task_size;
|
uint32_t count = arg->task_size;
|
||||||
float* src0_ptr = (float*)arg->src0_ptr;
|
float* src0_ptr = (float*)arg->src0_ptr;
|
||||||
float* src1_ptr = (float*)arg->src1_ptr;
|
float* src1_ptr = (float*)arg->src1_ptr;
|
||||||
@@ -88,7 +88,7 @@ void kernel_fadd(int task_id, const kernel_arg_t* arg) {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
void kernel_fsub(int task_id, const kernel_arg_t* arg) {
|
void kernel_fsub(int task_id, kernel_arg_t* arg) {
|
||||||
uint32_t count = arg->task_size;
|
uint32_t count = arg->task_size;
|
||||||
float* src0_ptr = (float*)arg->src0_ptr;
|
float* src0_ptr = (float*)arg->src0_ptr;
|
||||||
float* src1_ptr = (float*)arg->src1_ptr;
|
float* src1_ptr = (float*)arg->src1_ptr;
|
||||||
@@ -103,7 +103,7 @@ void kernel_fsub(int task_id, const kernel_arg_t* arg) {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
void kernel_fmul(int task_id, const kernel_arg_t* arg) {
|
void kernel_fmul(int task_id, kernel_arg_t* arg) {
|
||||||
uint32_t count = arg->task_size;
|
uint32_t count = arg->task_size;
|
||||||
float* src0_ptr = (float*)arg->src0_ptr;
|
float* src0_ptr = (float*)arg->src0_ptr;
|
||||||
float* src1_ptr = (float*)arg->src1_ptr;
|
float* src1_ptr = (float*)arg->src1_ptr;
|
||||||
@@ -118,7 +118,7 @@ void kernel_fmul(int task_id, const kernel_arg_t* arg) {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
void kernel_fmadd(int task_id, const kernel_arg_t* arg) {
|
void kernel_fmadd(int task_id, kernel_arg_t* arg) {
|
||||||
uint32_t count = arg->task_size;
|
uint32_t count = arg->task_size;
|
||||||
float* src0_ptr = (float*)arg->src0_ptr;
|
float* src0_ptr = (float*)arg->src0_ptr;
|
||||||
float* src1_ptr = (float*)arg->src1_ptr;
|
float* src1_ptr = (float*)arg->src1_ptr;
|
||||||
@@ -133,7 +133,7 @@ void kernel_fmadd(int task_id, const kernel_arg_t* arg) {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
void kernel_fmsub(int task_id, const kernel_arg_t* arg) {
|
void kernel_fmsub(int task_id, kernel_arg_t* arg) {
|
||||||
uint32_t count = arg->task_size;
|
uint32_t count = arg->task_size;
|
||||||
float* src0_ptr = (float*)arg->src0_ptr;
|
float* src0_ptr = (float*)arg->src0_ptr;
|
||||||
float* src1_ptr = (float*)arg->src1_ptr;
|
float* src1_ptr = (float*)arg->src1_ptr;
|
||||||
@@ -148,7 +148,7 @@ void kernel_fmsub(int task_id, const kernel_arg_t* arg) {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
void kernel_fnmadd(int task_id, const kernel_arg_t* arg) {
|
void kernel_fnmadd(int task_id, kernel_arg_t* arg) {
|
||||||
uint32_t count = arg->task_size;
|
uint32_t count = arg->task_size;
|
||||||
float* src0_ptr = (float*)arg->src0_ptr;
|
float* src0_ptr = (float*)arg->src0_ptr;
|
||||||
float* src1_ptr = (float*)arg->src1_ptr;
|
float* src1_ptr = (float*)arg->src1_ptr;
|
||||||
@@ -163,7 +163,7 @@ void kernel_fnmadd(int task_id, const kernel_arg_t* arg) {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
void kernel_fnmsub(int task_id, const kernel_arg_t* arg) {
|
void kernel_fnmsub(int task_id, kernel_arg_t* arg) {
|
||||||
uint32_t count = arg->task_size;
|
uint32_t count = arg->task_size;
|
||||||
float* src0_ptr = (float*)arg->src0_ptr;
|
float* src0_ptr = (float*)arg->src0_ptr;
|
||||||
float* src1_ptr = (float*)arg->src1_ptr;
|
float* src1_ptr = (float*)arg->src1_ptr;
|
||||||
@@ -178,7 +178,7 @@ void kernel_fnmsub(int task_id, const kernel_arg_t* arg) {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
void kernel_fnmadd_madd(int task_id, const kernel_arg_t* arg) {
|
void kernel_fnmadd_madd(int task_id, kernel_arg_t* arg) {
|
||||||
uint32_t count = arg->task_size;
|
uint32_t count = arg->task_size;
|
||||||
float* src0_ptr = (float*)arg->src0_ptr;
|
float* src0_ptr = (float*)arg->src0_ptr;
|
||||||
float* src1_ptr = (float*)arg->src1_ptr;
|
float* src1_ptr = (float*)arg->src1_ptr;
|
||||||
@@ -195,7 +195,7 @@ void kernel_fnmadd_madd(int task_id, const kernel_arg_t* arg) {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
void kernel_fdiv(int task_id, const kernel_arg_t* arg) {
|
void kernel_fdiv(int task_id, kernel_arg_t* arg) {
|
||||||
uint32_t count = arg->task_size;
|
uint32_t count = arg->task_size;
|
||||||
float* src0_ptr = (float*)arg->src0_ptr;
|
float* src0_ptr = (float*)arg->src0_ptr;
|
||||||
float* src1_ptr = (float*)arg->src1_ptr;
|
float* src1_ptr = (float*)arg->src1_ptr;
|
||||||
@@ -210,7 +210,7 @@ void kernel_fdiv(int task_id, const kernel_arg_t* arg) {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
void kernel_fdiv2(int task_id, const kernel_arg_t* arg) {
|
void kernel_fdiv2(int task_id, kernel_arg_t* arg) {
|
||||||
uint32_t count = arg->task_size;
|
uint32_t count = arg->task_size;
|
||||||
float* src0_ptr = (float*)arg->src0_ptr;
|
float* src0_ptr = (float*)arg->src0_ptr;
|
||||||
float* src1_ptr = (float*)arg->src1_ptr;
|
float* src1_ptr = (float*)arg->src1_ptr;
|
||||||
@@ -227,7 +227,7 @@ void kernel_fdiv2(int task_id, const kernel_arg_t* arg) {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
void kernel_fsqrt(int task_id, const kernel_arg_t* arg) {
|
void kernel_fsqrt(int task_id, kernel_arg_t* arg) {
|
||||||
uint32_t count = arg->task_size;
|
uint32_t count = arg->task_size;
|
||||||
float* src0_ptr = (float*)arg->src0_ptr;
|
float* src0_ptr = (float*)arg->src0_ptr;
|
||||||
float* src1_ptr = (float*)arg->src1_ptr;
|
float* src1_ptr = (float*)arg->src1_ptr;
|
||||||
@@ -242,7 +242,7 @@ void kernel_fsqrt(int task_id, const kernel_arg_t* arg) {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
void kernel_ftoi(int task_id, const kernel_arg_t* arg) {
|
void kernel_ftoi(int task_id, kernel_arg_t* arg) {
|
||||||
uint32_t count = arg->task_size;
|
uint32_t count = arg->task_size;
|
||||||
float* src0_ptr = (float*)arg->src0_ptr;
|
float* src0_ptr = (float*)arg->src0_ptr;
|
||||||
float* src1_ptr = (float*)arg->src1_ptr;
|
float* src1_ptr = (float*)arg->src1_ptr;
|
||||||
@@ -258,7 +258,7 @@ void kernel_ftoi(int task_id, const kernel_arg_t* arg) {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
void kernel_ftou(int task_id, const kernel_arg_t* arg) {
|
void kernel_ftou(int task_id, kernel_arg_t* arg) {
|
||||||
uint32_t count = arg->task_size;
|
uint32_t count = arg->task_size;
|
||||||
float* src0_ptr = (float*)arg->src0_ptr;
|
float* src0_ptr = (float*)arg->src0_ptr;
|
||||||
float* src1_ptr = (float*)arg->src1_ptr;
|
float* src1_ptr = (float*)arg->src1_ptr;
|
||||||
@@ -274,7 +274,7 @@ void kernel_ftou(int task_id, const kernel_arg_t* arg) {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
void kernel_itof(int task_id, const kernel_arg_t* arg) {
|
void kernel_itof(int task_id, kernel_arg_t* arg) {
|
||||||
uint32_t count = arg->task_size;
|
uint32_t count = arg->task_size;
|
||||||
int32_t* src0_ptr = (int32_t*)arg->src0_ptr;
|
int32_t* src0_ptr = (int32_t*)arg->src0_ptr;
|
||||||
int32_t* src1_ptr = (int32_t*)arg->src1_ptr;
|
int32_t* src1_ptr = (int32_t*)arg->src1_ptr;
|
||||||
@@ -290,7 +290,7 @@ void kernel_itof(int task_id, const kernel_arg_t* arg) {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
void kernel_utof(int task_id, const kernel_arg_t* arg) {
|
void kernel_utof(int task_id, kernel_arg_t* arg) {
|
||||||
uint32_t count = arg->task_size;
|
uint32_t count = arg->task_size;
|
||||||
int32_t* src0_ptr = (int32_t*)arg->src0_ptr;
|
int32_t* src0_ptr = (int32_t*)arg->src0_ptr;
|
||||||
int32_t* src1_ptr = (int32_t*)arg->src1_ptr;
|
int32_t* src1_ptr = (int32_t*)arg->src1_ptr;
|
||||||
@@ -329,6 +329,6 @@ static const PFN_Kernel sc_tests[] = {
|
|||||||
};
|
};
|
||||||
|
|
||||||
void main() {
|
void main() {
|
||||||
const kernel_arg_t* arg = (const kernel_arg_t*)KERNEL_ARG_DEV_MEM_ADDR;
|
kernel_arg_t* arg = (kernel_arg_t*)KERNEL_ARG_DEV_MEM_ADDR;
|
||||||
vx_spawn_tasks(arg->num_tasks, sc_tests[arg->testid], arg);
|
vx_spawn_tasks(arg->num_tasks, (vx_spawn_tasks_cb)sc_tests[arg->testid], arg);
|
||||||
}
|
}
|
||||||
@@ -3,7 +3,7 @@
|
|||||||
#include <vx_spawn.h>
|
#include <vx_spawn.h>
|
||||||
#include "common.h"
|
#include "common.h"
|
||||||
|
|
||||||
void kernel_body(int task_id, const kernel_arg_t* arg) {
|
void kernel_body(int task_id, kernel_arg_t* arg) {
|
||||||
uint32_t count = arg->task_size;
|
uint32_t count = arg->task_size;
|
||||||
int32_t* src0_ptr = (int32_t*)arg->src0_ptr;
|
int32_t* src0_ptr = (int32_t*)arg->src0_ptr;
|
||||||
int32_t* src1_ptr = (int32_t*)arg->src1_ptr;
|
int32_t* src1_ptr = (int32_t*)arg->src1_ptr;
|
||||||
@@ -19,6 +19,6 @@ void kernel_body(int task_id, const kernel_arg_t* arg) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
void main() {
|
void main() {
|
||||||
const kernel_arg_t* arg = (const kernel_arg_t*)KERNEL_ARG_DEV_MEM_ADDR;
|
kernel_arg_t* arg = (kernel_arg_t*)KERNEL_ARG_DEV_MEM_ADDR;
|
||||||
vx_spawn_tasks(arg->num_tasks, kernel_body, arg);
|
vx_spawn_tasks(arg->num_tasks, (vx_spawn_tasks_cb)kernel_body, arg);
|
||||||
}
|
}
|
||||||
@@ -3,7 +3,7 @@
|
|||||||
#include <vx_spawn.h>
|
#include <vx_spawn.h>
|
||||||
#include "common.h"
|
#include "common.h"
|
||||||
|
|
||||||
void kernel_body(int task_id, const kernel_arg_t* arg) {
|
void kernel_body(int task_id, kernel_arg_t* arg) {
|
||||||
uint32_t* src_ptr = (uint32_t*)arg->src_ptr;
|
uint32_t* src_ptr = (uint32_t*)arg->src_ptr;
|
||||||
uint32_t* dst_ptr = (uint32_t*)arg->dst_ptr;
|
uint32_t* dst_ptr = (uint32_t*)arg->dst_ptr;
|
||||||
|
|
||||||
@@ -13,6 +13,6 @@ void kernel_body(int task_id, const kernel_arg_t* arg) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
void main() {
|
void main() {
|
||||||
const kernel_arg_t* arg = (const kernel_arg_t*)KERNEL_ARG_DEV_MEM_ADDR;
|
kernel_arg_t* arg = (kernel_arg_t*)KERNEL_ARG_DEV_MEM_ADDR;
|
||||||
vx_spawn_tasks(arg->num_points, kernel_body, arg);
|
vx_spawn_tasks(arg->num_points, (vx_spawn_tasks_cb)kernel_body, arg);
|
||||||
}
|
}
|
||||||
@@ -3,7 +3,7 @@
|
|||||||
#include <vx_spawn.h>
|
#include <vx_spawn.h>
|
||||||
#include "common.h"
|
#include "common.h"
|
||||||
|
|
||||||
void kernel_body(int task_id, const kernel_arg_t* arg) {
|
void kernel_body(int task_id, kernel_arg_t* arg) {
|
||||||
uint32_t stride = arg->stride;
|
uint32_t stride = arg->stride;
|
||||||
uint32_t* addr_ptr = (uint32_t*)arg->addr_ptr;
|
uint32_t* addr_ptr = (uint32_t*)arg->addr_ptr;
|
||||||
float* src_ptr = (float*)arg->src_ptr;
|
float* src_ptr = (float*)arg->src_ptr;
|
||||||
@@ -23,6 +23,6 @@ void kernel_body(int task_id, const kernel_arg_t* arg) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
void main() {
|
void main() {
|
||||||
const kernel_arg_t* arg = (const kernel_arg_t*)KERNEL_ARG_DEV_MEM_ADDR;
|
kernel_arg_t* arg = (kernel_arg_t*)KERNEL_ARG_DEV_MEM_ADDR;
|
||||||
vx_spawn_tasks(arg->num_tasks, kernel_body, arg);
|
vx_spawn_tasks(arg->num_tasks, (vx_spawn_tasks_cb)kernel_body, arg);
|
||||||
}
|
}
|
||||||
@@ -4,7 +4,7 @@
|
|||||||
#include "common.h"
|
#include "common.h"
|
||||||
|
|
||||||
void main() {
|
void main() {
|
||||||
const kernel_arg_t* arg = (const kernel_arg_t*)KERNEL_ARG_DEV_MEM_ADDR;
|
kernel_arg_t* arg = (kernel_arg_t*)KERNEL_ARG_DEV_MEM_ADDR;
|
||||||
|
|
||||||
uint32_t size = arg->size;
|
uint32_t size = arg->size;
|
||||||
int32_t* src_ptr = (int32_t*)arg->src_ptr;
|
int32_t* src_ptr = (int32_t*)arg->src_ptr;
|
||||||
|
|||||||
@@ -4,7 +4,7 @@
|
|||||||
#include "common.h"
|
#include "common.h"
|
||||||
|
|
||||||
void main() {
|
void main() {
|
||||||
const kernel_arg_t* arg = (const kernel_arg_t*)KERNEL_ARG_DEV_MEM_ADDR;
|
kernel_arg_t* arg = (kernel_arg_t*)KERNEL_ARG_DEV_MEM_ADDR;
|
||||||
|
|
||||||
uint32_t size = arg->size;
|
uint32_t size = arg->size;
|
||||||
int32_t* src_ptr = (int32_t*)arg->src_ptr;
|
int32_t* src_ptr = (int32_t*)arg->src_ptr;
|
||||||
|
|||||||
@@ -4,12 +4,12 @@
|
|||||||
#include <vx_spawn.h>
|
#include <vx_spawn.h>
|
||||||
#include "common.h"
|
#include "common.h"
|
||||||
|
|
||||||
void kernel_body(int task_id, const kernel_arg_t* arg) {
|
void kernel_body(int task_id, kernel_arg_t* arg) {
|
||||||
int* src_ptr = (int*)arg->src_ptr;
|
int* src_ptr = (int*)arg->src_ptr;
|
||||||
vx_printf("task=%d, value=%d\n", task_id, src_ptr[task_id]);
|
vx_printf("task=%d, value=%d\n", task_id, src_ptr[task_id]);
|
||||||
}
|
}
|
||||||
|
|
||||||
void main() {
|
void main() {
|
||||||
const kernel_arg_t* arg = (const kernel_arg_t*)KERNEL_ARG_DEV_MEM_ADDR;
|
kernel_arg_t* arg = (kernel_arg_t*)KERNEL_ARG_DEV_MEM_ADDR;
|
||||||
vx_spawn_tasks(arg->num_points, kernel_body, arg);
|
vx_spawn_tasks(arg->num_points, (vx_spawn_tasks_cb)kernel_body, arg);
|
||||||
}
|
}
|
||||||
@@ -20,7 +20,7 @@ int __attribute__((noinline)) __smaller(int index, int tid, int32_t cur_value, i
|
|||||||
return ret;
|
return ret;
|
||||||
}
|
}
|
||||||
|
|
||||||
void kernel_body(int task_id, const kernel_arg_t* arg) {
|
void kernel_body(int task_id, kernel_arg_t* arg) {
|
||||||
uint32_t num_points = arg->num_points;
|
uint32_t num_points = arg->num_points;
|
||||||
int32_t* src_ptr = (int32_t*)arg->src_ptr;
|
int32_t* src_ptr = (int32_t*)arg->src_ptr;
|
||||||
int32_t* dst_ptr = (int32_t*)arg->dst_ptr;
|
int32_t* dst_ptr = (int32_t*)arg->dst_ptr;
|
||||||
@@ -37,6 +37,6 @@ void kernel_body(int task_id, const kernel_arg_t* arg) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
void main() {
|
void main() {
|
||||||
const kernel_arg_t* arg = (const kernel_arg_t*)KERNEL_ARG_DEV_MEM_ADDR;
|
kernel_arg_t* arg = (kernel_arg_t*)KERNEL_ARG_DEV_MEM_ADDR;
|
||||||
vx_spawn_tasks(arg->num_points, kernel_body, arg);
|
vx_spawn_tasks(arg->num_points, (vx_spawn_tasks_cb)kernel_body, arg);
|
||||||
}
|
}
|
||||||
@@ -3,7 +3,7 @@
|
|||||||
|
|
||||||
#define KERNEL_ARG_DEV_MEM_ADDR 0x7ffff000
|
#define KERNEL_ARG_DEV_MEM_ADDR 0x7ffff000
|
||||||
|
|
||||||
struct kernel_arg_t {
|
typedef struct {
|
||||||
uint32_t num_tasks;
|
uint32_t num_tasks;
|
||||||
uint8_t format;
|
uint8_t format;
|
||||||
uint8_t filter;
|
uint8_t filter;
|
||||||
@@ -20,6 +20,6 @@ struct kernel_arg_t {
|
|||||||
uint8_t dst_stride;
|
uint8_t dst_stride;
|
||||||
uint32_t dst_pitch;
|
uint32_t dst_pitch;
|
||||||
uint32_t dst_ptr;
|
uint32_t dst_ptr;
|
||||||
};
|
} kernel_arg_t;
|
||||||
|
|
||||||
#endif
|
#endif
|
||||||
@@ -1,31 +1,31 @@
|
|||||||
#include <stdint.h>
|
#include <stdint.h>
|
||||||
#include <vx_intrinsics.h>
|
#include <vx_intrinsics.h>
|
||||||
|
#include <vx_spawn.h>
|
||||||
#include "common.h"
|
#include "common.h"
|
||||||
#include "texsw.h"
|
#include "texsw.h"
|
||||||
|
|
||||||
#define ENABLE_SW
|
#define ENABLE_SW
|
||||||
|
|
||||||
struct tile_arg_t {
|
typedef struct {
|
||||||
struct kernel_arg_t* state;
|
kernel_arg_t* state;
|
||||||
uint32_t tile_width;
|
uint32_t tile_width;
|
||||||
uint32_t tile_height;
|
uint32_t tile_height;
|
||||||
float deltaX;
|
float deltaX;
|
||||||
float deltaY;
|
float deltaY;
|
||||||
};
|
} tile_arg_t;
|
||||||
|
|
||||||
void kernel_body(int task_id, void* arg) {
|
void kernel_body(int task_id, tile_arg_t* arg) {
|
||||||
struct tile_arg_t* _arg = (struct tile_arg_t*)(arg);
|
kernel_arg_t* state = arg->state;
|
||||||
struct kernel_arg_t* state = _arg->state;
|
|
||||||
|
|
||||||
uint32_t xoffset = 0;
|
uint32_t xoffset = 0;
|
||||||
uint32_t yoffset = task_id * _arg->tile_height;
|
uint32_t yoffset = task_id * arg->tile_height;
|
||||||
uint8_t* dst_ptr = (uint8_t*)(state->dst_ptr + xoffset * state->dst_stride + yoffset * state->dst_pitch);
|
uint8_t* dst_ptr = (uint8_t*)(state->dst_ptr + xoffset * state->dst_stride + yoffset * state->dst_pitch);
|
||||||
|
|
||||||
float fv = yoffset * _arg->deltaY;
|
float fv = yoffset * arg->deltaY;
|
||||||
for (uint32_t y = 0; y < _arg->tile_height; ++y) {
|
for (uint32_t y = 0; y < arg->tile_height; ++y) {
|
||||||
uint32_t* dst_row = (uint32_t*)dst_ptr;
|
uint32_t* dst_row = (uint32_t*)dst_ptr;
|
||||||
float fu = xoffset * _arg->deltaX;
|
float fu = xoffset * arg->deltaX;
|
||||||
for (uint32_t x = 0; x < _arg->tile_width; ++x) {
|
for (uint32_t x = 0; x < arg->tile_width; ++x) {
|
||||||
int32_t u = (int32_t)(fu * (1<<20));
|
int32_t u = (int32_t)(fu * (1<<20));
|
||||||
int32_t v = (int32_t)(fv * (1<<20));
|
int32_t v = (int32_t)(fv * (1<<20));
|
||||||
#ifdef ENABLE_SW
|
#ifdef ENABLE_SW
|
||||||
@@ -37,15 +37,15 @@ void kernel_body(int task_id, void* arg) {
|
|||||||
#ifdef ENABLE_SW
|
#ifdef ENABLE_SW
|
||||||
}
|
}
|
||||||
#endif
|
#endif
|
||||||
fu += _arg->deltaX;
|
fu += arg->deltaX;
|
||||||
}
|
}
|
||||||
dst_ptr += state->dst_pitch;
|
dst_ptr += state->dst_pitch;
|
||||||
fv += _arg->deltaY;
|
fv += arg->deltaY;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
int main() {
|
int main() {
|
||||||
struct kernel_arg_t* arg = (struct kernel_arg_t*)KERNEL_ARG_DEV_MEM_ADDR;
|
kernel_arg_t* arg = (kernel_arg_t*)KERNEL_ARG_DEV_MEM_ADDR;
|
||||||
|
|
||||||
// configure texture unit
|
// configure texture unit
|
||||||
vx_csr_write(CSR_TEX_ADDR(0), arg->src_ptr);
|
vx_csr_write(CSR_TEX_ADDR(0), arg->src_ptr);
|
||||||
@@ -56,12 +56,12 @@ int main() {
|
|||||||
vx_csr_write(CSR_TEX_WRAP(0), (arg->wrap << 2) | arg->wrap);
|
vx_csr_write(CSR_TEX_WRAP(0), (arg->wrap << 2) | arg->wrap);
|
||||||
vx_csr_write(CSR_TEX_FILTER(0), (arg->filter ? 1 : 0));
|
vx_csr_write(CSR_TEX_FILTER(0), (arg->filter ? 1 : 0));
|
||||||
|
|
||||||
struct tile_arg_t targ;
|
tile_arg_t targ;
|
||||||
targ.state = arg;
|
targ.state = arg;
|
||||||
targ.tile_width = arg->dst_width;
|
targ.tile_width = arg->dst_width;
|
||||||
targ.tile_height = (arg->dst_height + arg->num_tasks - 1) / arg->num_tasks;
|
targ.tile_height = (arg->dst_height + arg->num_tasks - 1) / arg->num_tasks;
|
||||||
targ.deltaX = 1.0f / arg->dst_width;
|
targ.deltaX = 1.0f / arg->dst_width;
|
||||||
targ.deltaY = 1.0f / arg->dst_height;
|
targ.deltaY = 1.0f / arg->dst_height;
|
||||||
|
|
||||||
vx_spawn_tasks(arg->num_tasks, kernel_body, &targ);
|
vx_spawn_tasks(arg->num_tasks, (vx_spawn_tasks_cb)kernel_body, &targ);
|
||||||
}
|
}
|
||||||
@@ -65,7 +65,7 @@ inline int pack(int format, int l, int h) {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
inline int tex_sw(struct kernel_arg_t* state, int stage, int u, int v, int lod) {
|
inline int tex_sw(kernel_arg_t* state, int stage, int u, int v, int lod) {
|
||||||
int base_addr = state->src_ptr;
|
int base_addr = state->src_ptr;
|
||||||
int mip_offset = 0;
|
int mip_offset = 0;
|
||||||
int log_width = state->src_logWidth;
|
int log_width = state->src_logWidth;
|
||||||
@@ -148,7 +148,7 @@ inline int vx_tex3(int stage, int u, int v, int lod) {
|
|||||||
return c;
|
return c;
|
||||||
}
|
}
|
||||||
|
|
||||||
inline int tex3_sw(struct kernel_arg_t* state, int stage, int u, int v, int lod) {
|
inline int tex3_sw(kernel_arg_t* state, int stage, int u, int v, int lod) {
|
||||||
int lodn = MIN(lod + 0x10000, TEX_LOD_MAX);
|
int lodn = MIN(lod + 0x10000, TEX_LOD_MAX);
|
||||||
int a = tex_sw(state, 0, u, v, lod);
|
int a = tex_sw(state, 0, u, v, lod);
|
||||||
int b = tex_sw(state, 0, u, v, lodn);
|
int b = tex_sw(state, 0, u, v, lodn);
|
||||||
|
|||||||
Reference in New Issue
Block a user