#include <assert.h>
#include <stdio.h>
+#include <unistd.h>
#include "util.h"
constexpr unsigned patch_size_pixels = 12;
// Some global OpenGL objects.
-GLuint nearest_sampler, linear_sampler, mipmap_sampler;
+GLuint nearest_sampler, linear_sampler;
GLuint vertex_vbo;
string read_file(const string &filename)
glEnableVertexArrayAttrib(sobel_vao, position_attrib);
glVertexAttribPointer(position_attrib, 2, GL_FLOAT, GL_FALSE, 0, BUFFER_OFFSET(0));
- GLint texcoord_attrib = glGetAttribLocation(sobel_program, "texcoord");
- glEnableVertexArrayAttrib(sobel_vao, texcoord_attrib);
- glVertexAttribPointer(texcoord_attrib, 2, GL_FLOAT, GL_FALSE, 0, BUFFER_OFFSET(0));
-
uniform_tex = glGetUniformLocation(sobel_program, "tex");
uniform_inv_image_size = glGetUniformLocation(sobel_program, "inv_image_size");
}
glEnableVertexArrayAttrib(motion_search_vao, position_attrib);
glVertexAttribPointer(position_attrib, 2, GL_FLOAT, GL_FALSE, 0, BUFFER_OFFSET(0));
- GLint texcoord_attrib = glGetAttribLocation(motion_search_program, "texcoord");
- glEnableVertexArrayAttrib(motion_search_vao, texcoord_attrib);
- glVertexAttribPointer(texcoord_attrib, 2, GL_FLOAT, GL_FALSE, 0, BUFFER_OFFSET(0));
-
uniform_image_size = glGetUniformLocation(motion_search_program, "image_size");
uniform_inv_image_size = glGetUniformLocation(motion_search_program, "inv_image_size");
uniform_image0_tex = glGetUniformLocation(motion_search_program, "image0_tex");
glSamplerParameteri(linear_sampler, GL_TEXTURE_WRAP_S, GL_CLAMP_TO_EDGE);
glSamplerParameteri(linear_sampler, GL_TEXTURE_WRAP_T, GL_CLAMP_TO_EDGE);
- glCreateSamplers(1, &mipmap_sampler);
- glSamplerParameteri(mipmap_sampler, GL_TEXTURE_MIN_FILTER, GL_LINEAR_MIPMAP_NEAREST);
- glSamplerParameteri(mipmap_sampler, GL_TEXTURE_MAG_FILTER, GL_LINEAR);
- glSamplerParameteri(mipmap_sampler, GL_TEXTURE_WRAP_S, GL_CLAMP_TO_EDGE);
- glSamplerParameteri(mipmap_sampler, GL_TEXTURE_WRAP_T, GL_CLAMP_TO_EDGE);
-
float vertices[] = {
0.0f, 1.0f,
0.0f, 0.0f,
// Create an output flow texture.
GLuint flow_out_tex;
glCreateTextures(GL_TEXTURE_2D, 1, &flow_out_tex);
- glTextureStorage2D(flow_out_tex, 1, GL_RG16F, width_patches, height_patches);
+ glTextureStorage2D(flow_out_tex, 1, GL_RGB16F, width_patches, height_patches);
// And draw.
motion_search.exec(tex0_view, tex1_view, grad0_tex, prev_level_flow_tex, flow_out_tex, level_width, level_height, width_patches, height_patches);
// Set up an output texture (initially zero).
GLuint dense_flow_tex;
glCreateTextures(GL_TEXTURE_2D, 1, &dense_flow_tex);
- //glTextureStorage2D(dense_flow_tex, 1, GL_RGB16F, level_width, level_height);
- glTextureStorage2D(dense_flow_tex, 1, GL_RGBA32F, level_width, level_height);
+ glTextureStorage2D(dense_flow_tex, 1, GL_RGB16F, level_width, level_height);
// And draw.
densify.exec(tex0_view, tex1_view, flow_out_tex, dense_flow_tex, level_width, level_height, width_patches, height_patches);
GLint available;
do {
glGetQueryObjectiv(query, GL_QUERY_RESULT_AVAILABLE, &available);
+ usleep(1000);
} while (!available);
GLuint64 time_elapsed;
glGetQueryObjectui64v(query, GL_QUERY_RESULT, &time_elapsed);