]> git.sesse.net Git - nageru/blobdiff - flow.cpp
Reduce the spam in apitrace a bit.
[nageru] / flow.cpp
index 374e07d73ffe40f461f4df605dc159fa19a98a2b..b46e0a10c74cff067b2a5c67675baece2adfe329 100644 (file)
--- a/flow.cpp
+++ b/flow.cpp
@@ -15,6 +15,7 @@
 
 #include <assert.h>
 #include <stdio.h>
+#include <unistd.h>
 
 #include "util.h"
 
@@ -32,7 +33,7 @@ constexpr unsigned finest_level = 1;
 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)
@@ -240,12 +241,7 @@ Sobel::Sobel()
        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_image_size = glGetUniformLocation(sobel_program, "image_size");
        uniform_inv_image_size = glGetUniformLocation(sobel_program, "inv_image_size");
 }
 
@@ -255,7 +251,6 @@ void Sobel::exec(GLint tex0_view, GLint grad0_tex, int level_width, int level_he
        glBindTextureUnit(0, tex0_view);
        glBindSampler(0, nearest_sampler);
        glProgramUniform1i(sobel_program, uniform_tex, 0);
-       glProgramUniform2f(sobel_program, uniform_image_size, level_width, level_height);
        glProgramUniform2f(sobel_program, uniform_inv_image_size, 1.0f / level_width, 1.0f / level_height);
 
        GLuint grad0_fbo;  // TODO: cleanup
@@ -301,10 +296,6 @@ MotionSearch::MotionSearch()
        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");
@@ -453,12 +444,6 @@ int main(void)
        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,
@@ -516,7 +501,7 @@ int main(void)
                // 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);
@@ -526,8 +511,7 @@ int main(void)
                // 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);
@@ -541,6 +525,7 @@ int main(void)
        GLint available;
        do {
                glGetQueryObjectiv(query, GL_QUERY_RESULT_AVAILABLE, &available);
+               usleep(1000);
        } while (!available);
        GLuint64 time_elapsed;
        glGetQueryObjectui64v(query, GL_QUERY_RESULT, &time_elapsed);