MBP was having problems with out of bounds memory operations with the way the cam dir was handled. sf::vector3f -> float3 and while accessign the Zth element. I'm assuming it was because of some weird backend stuff regarding that gentypeOdds are actually gentypeOdds + 1. Converted write_imagef's to write_imageui's though I don't think that really helps anything. Fixed the bottom half of the screen getting cut off. View matrix import error. Fixed problem the MBP had with negative values during device init, that was a weird one.
This commit is contained in:
32
src/main.cpp
32
src/main.cpp
@@ -25,15 +25,15 @@
|
||||
#include <OpenCL/cl_ext.h>
|
||||
|
||||
#endif
|
||||
#include "TestPlatform.cpp"
|
||||
#include "Map.h"
|
||||
#include "Curses.h"
|
||||
#include "util.hpp"
|
||||
#include "RayCaster.h"
|
||||
#include "CL_Wrapper.h"
|
||||
|
||||
const int WINDOW_X = 1000;
|
||||
const int WINDOW_Y = 1000;
|
||||
const int WINDOW_X = 200;
|
||||
const int WINDOW_Y = 200;
|
||||
const int WORK_SIZE = WINDOW_X * WINDOW_Y;
|
||||
|
||||
const int MAP_X = 1024;
|
||||
const int MAP_Y = 1024;
|
||||
@@ -69,7 +69,6 @@ int main() {
|
||||
sf::Texture t;
|
||||
|
||||
CL_Wrapper c;
|
||||
query_platform_devices();
|
||||
c.acquire_platform_and_device();
|
||||
c.create_shared_context();
|
||||
c.create_command_queue();
|
||||
@@ -140,19 +139,18 @@ int main() {
|
||||
}
|
||||
}
|
||||
std::cout << "done\n";
|
||||
int ind = 367;
|
||||
printf("%i === %f, %f, %f\n", ind, view_matrix[ind * 4 + 0], view_matrix[ind * 4 + 1], view_matrix[ind * 4 + 2]);
|
||||
|
||||
cl_mem view_matrix_buff = clCreateBuffer(
|
||||
c.getContext(), CL_MEM_READ_ONLY | CL_MEM_COPY_HOST_PTR,
|
||||
sizeof(float) * 3 * view_res.x * view_res.y, view_matrix, NULL
|
||||
sizeof(float) * 4 * view_res.x * view_res.y, view_matrix, NULL
|
||||
);
|
||||
|
||||
sf::Vector3f cam_dir(1.0f, 0.0f, 1.00f);
|
||||
//sf::Vector3f cam_dir(1.0f, 0.0f, 1.00f);
|
||||
|
||||
float cam_dir[] = {1.0f, 0.0f, 1.57f, 0.0f};
|
||||
cl_mem cam_dir_buff = clCreateBuffer(
|
||||
c.getContext(), CL_MEM_READ_ONLY | CL_MEM_USE_HOST_PTR,
|
||||
sizeof(float) * 4, &cam_dir, NULL
|
||||
sizeof(float) * 4, cam_dir, NULL
|
||||
);
|
||||
|
||||
|
||||
@@ -221,9 +219,10 @@ int main() {
|
||||
c.set_kernel_arg("min_kern", 7, "light_count_buffer");
|
||||
c.set_kernel_arg("min_kern", 8, "image_buffer");
|
||||
|
||||
const int size = WINDOW_X * WINDOW_Y;
|
||||
|
||||
s.setTexture(t);
|
||||
|
||||
s.setTexture(t, true);
|
||||
s.setPosition(0, 0);
|
||||
|
||||
// The step size in milliseconds between calls to Update()
|
||||
// Lets set it to 16.6 milliseonds (60FPS)
|
||||
@@ -300,7 +299,7 @@ int main() {
|
||||
cam_vec.x = -1;
|
||||
}
|
||||
if (sf::Keyboard::isKeyPressed(sf::Keyboard::Left)) {
|
||||
cam_dir.z = -0.1f;
|
||||
//cam_dir.z = -0.1f;
|
||||
}
|
||||
if (sf::Keyboard::isKeyPressed(sf::Keyboard::Right)) {
|
||||
cam_vec.z = +0.1f;
|
||||
@@ -318,15 +317,15 @@ int main() {
|
||||
|
||||
// Mouse movement
|
||||
sf::Mouse::setPosition(fixed);
|
||||
cam_dir.y -= deltas.y / 300.0f;
|
||||
cam_dir.z -= deltas.x / 300.0f;
|
||||
cam_dir[1] -= deltas.y / 300.0f;
|
||||
cam_dir[2] -= deltas.x / 300.0f;
|
||||
}
|
||||
}
|
||||
cam_pos.x += cam_vec.x / 1.0;
|
||||
cam_pos.y += cam_vec.y / 1.0;
|
||||
cam_pos.z += cam_vec.z / 1.0;
|
||||
|
||||
std::cout << cam_vec.x << " : " << cam_vec.y << " : " << cam_vec.z << std::endl;
|
||||
//std::cout << cam_vec.x << " : " << cam_vec.y << " : " << cam_vec.z << std::endl;
|
||||
|
||||
|
||||
// Time keeping
|
||||
@@ -364,7 +363,7 @@ int main() {
|
||||
error = clEnqueueAcquireGLObjects(c.getCommandQueue(), 1, &image_buff, 0, 0, 0);
|
||||
if (c.assert(error, "clEnqueueAcquireGLObjects"))
|
||||
return -1;
|
||||
c.run_kernel("min_kern", size);
|
||||
c.run_kernel("min_kern", WORK_SIZE);
|
||||
|
||||
clFinish(c.getCommandQueue());
|
||||
|
||||
@@ -372,7 +371,6 @@ int main() {
|
||||
if (c.assert(error, "clEnqueueReleaseGLObjects"))
|
||||
return -1;
|
||||
|
||||
s.setPosition(0, 0);
|
||||
window.draw(s);
|
||||
|
||||
fps.frame(delta_time);
|
||||
|
||||
Reference in New Issue
Block a user