Skip to content
Permalink

Comparing changes

Choose two branches to see what’s changed or to start a new pull request. If you need to, you can also or learn more about diff comparisons.

Open a pull request

Create a new pull request by comparing changes across two branches. If you need to, you can also . Learn more about diff comparisons here.
base repository: ngscopeclient/scopehal-apps
Failed to load repositories. Confirm that selected base ref is valid, then try again.
Loading
base: 93fcf267deac
Choose a base ref
...
head repository: ngscopeclient/scopehal-apps
Failed to load repositories. Confirm that selected head ref is valid, then try again.
Loading
compare: 22f1355b4767
Choose a head ref
  • 1 commit
  • 4 files changed
  • 1 contributor

Commits on May 13, 2021

  1. Copy the full SHA
    22f1355 View commit details
9 changes: 7 additions & 2 deletions src/glscopeclient/Shader.cpp
Original file line number Diff line number Diff line change
@@ -53,11 +53,16 @@ Shader::~Shader()
/**
@brief Loads a shader from disk
We accept arbitrarily many paths and concatenate their contents
We accept arbitrarily many paths and concatenate their contents.
Each argument can be either a preprocessor directive starting with #, or a file name.
*/
bool Shader::Load(const char* path, ...)
{
string shaderbuf = ReadDataFile(path);
string shaderbuf;
if(path[0] == '#')
shaderbuf = string(path) + "\n";
else
shaderbuf = ReadDataFile(path);

va_list list;
va_start(list, path);
12 changes: 10 additions & 2 deletions src/glscopeclient/WaveformArea.cpp
Original file line number Diff line number Diff line change
@@ -656,26 +656,30 @@ void WaveformArea::InitializeWaveformPass()
if(GLEW_ARB_gpu_shader_int64 && !g_noglint64)
{
if(!hwc.Load(
"#version 420",
"shaders/waveform-compute-head.glsl",
"shaders/waveform-compute-histogram.glsl",
"shaders/waveform-compute-core.glsl",
NULL))
LogFatal("failed to load histogram waveform compute shader, aborting\n");
if(!dwc.Load(
"#version 420",
"shaders/waveform-compute-head.glsl",
"shaders/waveform-compute-digital.glsl",
"shaders/waveform-compute-core.glsl",
NULL))
LogFatal("failed to load digital waveform compute shader, aborting\n");
if(!awc.Load(
"#version 420",
"shaders/waveform-compute-head.glsl",
"shaders/waveform-compute-analog.glsl",
"shaders/waveform-compute-core.glsl",
NULL))
LogFatal("failed to load analog waveform compute shader, aborting\n");
if(!adwc.Load(
"#version 420",
"#define DENSE_PACK",
"shaders/waveform-compute-head.glsl",
"#define DENSE_PACK"
"shaders/waveform-compute-analog.glsl",
"shaders/waveform-compute-core.glsl",
NULL))
@@ -684,26 +688,30 @@ void WaveformArea::InitializeWaveformPass()
else
{
if(!hwc.Load(
"#version 420",
"shaders/waveform-compute-head-noint64.glsl",
"shaders/waveform-compute-histogram.glsl",
"shaders/waveform-compute-core.glsl",
NULL))
LogFatal("failed to load histogram waveform compute shader, aborting\n");
if(!dwc.Load(
"#version 420",
"shaders/waveform-compute-head-noint64.glsl",
"shaders/waveform-compute-digital.glsl",
"shaders/waveform-compute-core.glsl",
NULL))
LogFatal("failed to load digital waveform compute shader, aborting\n");
if(!awc.Load(
"#version 420",
"shaders/waveform-compute-head-noint64.glsl",
"shaders/waveform-compute-analog.glsl",
"shaders/waveform-compute-core.glsl",
NULL))
LogFatal("failed to load analog waveform compute shader, aborting\n");
if(!adwc.Load(
"#version 420",
"#define DENSE_PACK",
"shaders/waveform-compute-head-noint64.glsl",
"#define DENSE_PACK"
"shaders/waveform-compute-analog.glsl",
"shaders/waveform-compute-core.glsl",
NULL))
12 changes: 8 additions & 4 deletions src/glscopeclient/shaders/waveform-compute-head-noint64.glsl
Original file line number Diff line number Diff line change
@@ -32,7 +32,6 @@
@brief Waveform rendering shader for without GL_ARB_gpu_shader_int64 support
*/

#version 420
#extension GL_ARB_compute_shader : require
#extension GL_ARB_arrays_of_arrays : require
#extension GL_ARB_shader_storage_buffer_object : require
@@ -65,9 +64,14 @@ layout(std430, binding=2) buffer config
//All this just because most Intel integrated GPUs lack GL_ARB_gpu_shader_int64...
float FetchX(uint i)
{
//Fetch the input
uint xpos_lo = xpos[i*2];
uint xpos_hi = xpos[i*2 + 1];
#ifdef DENSE_PACK
uint xpos_lo = i;
uint xpos_hi = 0;
#else
//Fetch the input
uint xpos_lo = xpos[i*2];
uint xpos_hi = xpos[i*2 + 1];
#endif
uint offset_lo = innerXoff_lo;

//Sum the low halves
7 changes: 5 additions & 2 deletions src/glscopeclient/shaders/waveform-compute-head.glsl
Original file line number Diff line number Diff line change
@@ -32,7 +32,6 @@
@brief Waveform rendering shader for analog waveforms with GL_ARB_gpu_shader_int64 support
*/

#version 420
#extension GL_ARB_compute_shader : require
#extension GL_ARB_gpu_shader_int64 : require
#extension GL_ARB_arrays_of_arrays : require
@@ -62,5 +61,9 @@ layout(std430, binding=2) buffer config

float FetchX(uint i)
{
return float(xpos[i] + innerXoff);
#ifdef DENSE_PACK
return float(int64_t(i) + innerXoff);
#else
return float(xpos[i] + innerXoff);
#endif
}