many fixes
This commit is contained in:
@@ -8,14 +8,14 @@ CFLAGS += -I../../include -I../../../hw/simulate -I../../../hw
|
||||
DBG_PRINT_FLAGS += -DDBG_PRINT_PIPELINE
|
||||
DBG_PRINT_FLAGS += -DDBG_PRINT_CORE_ICACHE
|
||||
DBG_PRINT_FLAGS += -DDBG_PRINT_CORE_DCACHE
|
||||
DBG_PRINT_FLAGS += -DDBG_PRINT_CACHE_BANK
|
||||
DBG_PRINT_FLAGS += -DDBG_PRINT_CACHE_MSHR
|
||||
DBG_PRINT_FLAGS += -DDBG_PRINT_CACHE_TAG
|
||||
DBG_PRINT_FLAGS += -DDBG_PRINT_CACHE_DATA
|
||||
DBG_PRINT_FLAGS += -DDBG_PRINT_DRAM
|
||||
DBG_PRINT_FLAGS += -DDBG_PRINT_OPAE
|
||||
DBG_PRINT_FLAGS += -DDBG_PRINT_AVS
|
||||
DBG_PRINT_FLAGS += -DDBG_PRINT_SCOPE
|
||||
#DBG_PRINT_FLAGS += -DDBG_PRINT_CACHE_BANK
|
||||
#DBG_PRINT_FLAGS += -DDBG_PRINT_CACHE_MSHR
|
||||
#DBG_PRINT_FLAGS += -DDBG_PRINT_CACHE_TAG
|
||||
#DBG_PRINT_FLAGS += -DDBG_PRINT_CACHE_DATA
|
||||
#DBG_PRINT_FLAGS += -DDBG_PRINT_DRAM
|
||||
#DBG_PRINT_FLAGS += -DDBG_PRINT_OPAE
|
||||
#DBG_PRINT_FLAGS += -DDBG_PRINT_AVS
|
||||
#DBG_PRINT_FLAGS += -DDBG_PRINT_SCOPE
|
||||
DBG_PRINT_FLAGS += -DDBG_PRINT_TEX
|
||||
|
||||
DBG_FLAGS += $(DBG_PRINT_FLAGS)
|
||||
|
||||
@@ -24,7 +24,7 @@ LDFLAGS +=
|
||||
|
||||
PROJECT = basic
|
||||
|
||||
SRCS = basic.cpp
|
||||
SRCS = main.cpp
|
||||
|
||||
all: $(PROJECT) kernel.bin kernel.dump
|
||||
|
||||
|
||||
@@ -22,7 +22,7 @@ CXXFLAGS += -I../../include
|
||||
|
||||
PROJECT = demo
|
||||
|
||||
SRCS = demo.cpp
|
||||
SRCS = main.cpp
|
||||
|
||||
all: $(PROJECT) kernel.bin kernel.dump
|
||||
|
||||
|
||||
@@ -24,7 +24,7 @@ CXXFLAGS += -I../../include -I../../../hw
|
||||
|
||||
PROJECT = dogfood
|
||||
|
||||
SRCS = dogfood.cpp
|
||||
SRCS = main.cpp
|
||||
|
||||
all: $(PROJECT) kernel.bin kernel.dump
|
||||
|
||||
|
||||
@@ -1,2 +1,2 @@
|
||||
demo.o: demo.cpp ../../include/vortex.h common.h utils.h
|
||||
main.o: main.cpp ../../include/vortex.h common.h utils.h
|
||||
utils.o: utils.cpp utils.h
|
||||
|
||||
@@ -13,6 +13,8 @@ VX_CFLAGS += -I$(VORTEX_RT_PATH)/include -I$(VORTEX_RT_PATH)/../hw
|
||||
|
||||
VX_LDFLAGS += -Wl,-Bstatic,-T,$(VORTEX_RT_PATH)/linker/vx_link.ld -Wl,--gc-sections $(VORTEX_RT_PATH)/libvortexrt.a
|
||||
|
||||
VX_LDFLAGS += -lm
|
||||
|
||||
VX_SRCS = kernel.c
|
||||
|
||||
#CXXFLAGS += -std=c++11 -O2 -Wall -Wextra -pedantic -Wfatal-errors
|
||||
@@ -22,7 +24,7 @@ CXXFLAGS += -I../../include
|
||||
|
||||
PROJECT = demo
|
||||
|
||||
SRCS = demo.cpp utils.cpp
|
||||
SRCS = main.cpp utils.cpp
|
||||
|
||||
all: $(PROJECT) kernel.bin kernel.dump
|
||||
|
||||
|
||||
@@ -1,5 +1,8 @@
|
||||
#ifndef _COMMON_H_
|
||||
#define _COMMON_H_
|
||||
|
||||
#define KERNEL_ARG_DEV_MEM_ADDR 0x7ffff000
|
||||
|
||||
struct kernel_arg_t {
|
||||
uint32_t num_tasks;
|
||||
uint32_t src_width;
|
||||
|
||||
Binary file not shown.
Binary file not shown.
@@ -37,16 +37,15 @@ void kernel_body(int task_id, void* arg) {
|
||||
}
|
||||
|
||||
int main() {
|
||||
struct kernel_arg_t* arg = (struct kernel_arg_t*)0x0;
|
||||
struct kernel_arg_t* arg = (struct kernel_arg_t*)KERNEL_ARG_DEV_MEM_ADDR;
|
||||
|
||||
// configure texture unit
|
||||
vx_csr_write(CSR_TEX_ADDR(0), arg->src_ptr);
|
||||
vx_csr_write(CSR_TEX_FORMAT(0), 0);
|
||||
vx_csr_write(CSR_TEX_MIPOFF(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_FORMAT(0), 0);
|
||||
vx_csr_write(CSR_TEX_WRAP(0), 0);
|
||||
vx_csr_write(CSR_TEX_FILTER(0), 0);
|
||||
|
||||
struct tile_arg_t targ;
|
||||
@@ -56,5 +55,5 @@ int main() {
|
||||
targ.deltaX = 1.0f / arg->dst_width;
|
||||
targ.deltaY = 1.0f / arg->dst_height;
|
||||
|
||||
vx_spawn_tasks(arg->num_tasks, kernel_body, targ);
|
||||
vx_spawn_tasks(arg->num_tasks, kernel_body, &targ);
|
||||
}
|
||||
File diff suppressed because it is too large
Load Diff
Binary file not shown.
@@ -134,14 +134,10 @@ int main(int argc, char *argv[]) {
|
||||
|
||||
// allocate device memory
|
||||
std::cout << "allocate device memory" << std::endl;
|
||||
size_t arg_addr, src_addr, dst_addr;
|
||||
RT_CHECK(vx_alloc_dev_mem(device, sizeof(kernel_arg_t), &arg_addr));
|
||||
size_t src_addr, dst_addr;
|
||||
RT_CHECK(vx_alloc_dev_mem(device, src_bufsize, &src_addr));
|
||||
RT_CHECK(vx_alloc_dev_mem(device, dst_bufsize, &dst_addr));
|
||||
|
||||
assert(arg_addr == ALLOC_BASE_ADDR);
|
||||
|
||||
std::cout << "arg_addr=" << std::hex << arg_addr << std::endl;
|
||||
std::cout << "src_addr=" << std::hex << src_addr << std::endl;
|
||||
std::cout << "dst_addr=" << std::hex << dst_addr << std::endl;
|
||||
|
||||
@@ -154,20 +150,22 @@ int main(int argc, char *argv[]) {
|
||||
std::cout << "upload kernel argument" << std::endl;
|
||||
{
|
||||
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.src_ptr = src_addr;
|
||||
|
||||
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_pitch = dst_bpp * dst_width * dst_height;
|
||||
kernel_arg.dst_ptr = dst_addr;
|
||||
|
||||
auto buf_ptr = (int*)vx_host_ptr(buffer);
|
||||
memcpy(buf_ptr, &kernel_arg, sizeof(kernel_arg_t));
|
||||
RT_CHECK(vx_copy_to_dev(buffer, arg_addr, sizeof(kernel_arg_t), 0));
|
||||
RT_CHECK(vx_copy_to_dev(buffer, KERNEL_ARG_DEV_MEM_ADDR, sizeof(kernel_arg_t), 0));
|
||||
}
|
||||
|
||||
// upload source buffer0
|
||||
Reference in New Issue
Block a user