minor update

This commit is contained in:
Blaise Tine 2021-03-31 14:28:12 -04:00
parent 1332fd1b67
commit 90e4a800d5
8 changed files with 632 additions and 616 deletions

View file

@ -5,6 +5,9 @@
struct kernel_arg_t {
uint32_t num_tasks;
uint32_t format;
uint32_t filter;
uint32_t wrap;
uint32_t src_width;
uint32_t src_height;
uint32_t src_stride;

Binary file not shown.

Binary file not shown.

View file

@ -44,9 +44,9 @@ int main() {
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_FORMAT(0), 0);
vx_csr_write(CSR_TEX_WRAP(0), 0);
vx_csr_write(CSR_TEX_FILTER(0), 0);
vx_csr_write(CSR_TEX_FORMAT(0), arg->format);
vx_csr_write(CSR_TEX_WRAP(0), (arg->wrap << 2) | arg->wrap);
vx_csr_write(CSR_TEX_FILTER(0), arg->filter);
struct tile_arg_t targ;
targ.karg = *arg;

File diff suppressed because it is too large Load diff

Binary file not shown.

View file

@ -22,6 +22,8 @@
const char* kernel_file = "kernel.bin";
const char* input_file = "toad.tga";
const char* output_file = "output.tga";
int wrap = 0;
int filter = 0;
float scale = 1.0f;
vx_device_h device = nullptr;
@ -29,12 +31,12 @@ vx_buffer_h buffer = nullptr;
static void show_usage() {
std::cout << "Vortex Texture Test." << std::endl;
std::cout << "Usage: [-k: kernel] [-i image] [-o image] [-s scale] [-h: help]" << std::endl;
std::cout << "Usage: [-k: kernel] [-i image] [-o image] [-s scale] [-w wrap] [-f filter] [-h: help]" << std::endl;
}
static void parse_args(int argc, char **argv) {
int c;
while ((c = getopt(argc, argv, "i:o:k:h?")) != -1) {
while ((c = getopt(argc, argv, "i:o:k:w:f:h?")) != -1) {
switch (c) {
case 'i':
input_file = optarg;
@ -45,6 +47,12 @@ static void parse_args(int argc, char **argv) {
case 's':
scale = std::stof(optarg, NULL);
break;
case 'w':
wrap = std::atoi(optarg);
break;
case 'f':
filter = std::atoi(optarg);
break;
case 'k':
kernel_file = optarg;
break;
@ -151,19 +159,22 @@ int main(int argc, char *argv[]) {
// upload kernel argument
std::cout << "upload kernel argument" << std::endl;
{
kernel_arg.num_tasks = std::min<uint32_t>(num_tasks, dst_height);
kernel_arg.num_tasks = std::min<uint32_t>(num_tasks, dst_height);
kernel_arg.format = (src_bpp == 1) ? 5 : (src_bpp == 2) ? 1 : 0;
kernel_arg.filter = filter;
kernel_arg.wrap = wrap;
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;
kernel_arg.src_ptr = src_addr;
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;
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;
kernel_arg.dst_ptr = dst_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;
kernel_arg.dst_ptr = dst_addr;
auto buf_ptr = (int*)vx_host_ptr(buffer);
memcpy(buf_ptr, &kernel_arg, sizeof(kernel_arg_t));

View file

@ -17,7 +17,7 @@ module VX_tex_stride #(
`TEX_FORMAT_L8A8: log_stride_r = 1;
`TEX_FORMAT_R5G6B5: log_stride_r = 1;
`TEX_FORMAT_R4G4B4A4: log_stride_r = 1;
// `TEX_FORMAT_R8G8B8A8
//`TEX_FORMAT_R8G8B8A8
default: log_stride_r = 2;
endcase
end