小编Rob*_*dob的帖子

如何仅在SQL查询中使用AM/PM显示时间?

我有以下问题,我使用SQL Server MS,下面是我的结果.它看起来很简单,但我无法弄明白.

我的查询:

SELECT  RIGHT(CONVERT(VARCHAR(26), Timein, 109), 14) from vwSignIn
Run Code Online (Sandbox Code Playgroud)

会给我这个9:12:16:597AM

我希望这是我的结果9:12:16 AM.

提前致谢.

sql-server-2008

7
推荐指数
2
解决办法
6万
查看次数

计算着色器共享内存包含工件

我一直在尝试编写一般的计算着色器高斯模糊实现.

它基本上可以工作,但它包含的工件即使在场景静止时也会改变每一帧.我花了几个小时试图调试这个.我已经走了尽可能确保不超出界限,展开所有循环,用常量替换制服,但工件仍然存在.

我已经在3个不同的机器/ GPU(2个nvidia,1个intel)上测试了原始代码和工件,它们都产生相同的结果.使用普通C++代码模拟执行向前和向后执行的工作组的代码执行的展开/常量版本不会产生这些错误.

在此输入图像描述

通过分配[96] [96]而不是[16] [48]的共享数组,我可以消除大部分伪像.

这让我想到了我错过了一个逻辑错误,因此我设法生成了一个非常简单的着色器,它仍然会在较小的范围内产生错误,如果有人能指出原因,我会很感激.我检查了很多文档,找不到任何错误.

分配了一个16x48浮点数的共享数组,这是3072字节,大约是最小共享内存限制的10%.

着色器在16x16工作组中启动,因此每个线程将写入3个唯一位置,并从单个唯一位置读回

然后纹理作为HSV渲染,其中0-1之间的值将映射到色调0-360(红色 - 青色 - 红色),并且超出边界的值将是红色.

#version 430
//Execute in 16x16 sized thread blocks
layout(local_size_x=16,local_size_y=16) in;
uniform layout (r32f) restrict writeonly image2D _imageOut;
shared float hoz[16][48];
void main () 
{
    //Init shared memory with a big out of bounds value we can identify
    hoz[gl_LocalInvocationID.x][gl_LocalInvocationID.y] = 20000.0f;
    hoz[gl_LocalInvocationID.x][gl_LocalInvocationID.y+16] = 20000.0f;
    hoz[gl_LocalInvocationID.x][gl_LocalInvocationID.y+32] = 20000.0f;
    //Sync shared memory
    memoryBarrierShared();
    //Write the values we want to actually read back
    hoz[gl_LocalInvocationID.x][gl_LocalInvocationID.y] = 0.5f;
    hoz[gl_LocalInvocationID.x][gl_LocalInvocationID.y+16] = 0.5f; …
Run Code Online (Sandbox Code Playgroud)

opengl glsl compute-shader opengl-4

4
推荐指数
1
解决办法
754
查看次数

标签 统计

compute-shader ×1

glsl ×1

opengl ×1

opengl-4 ×1

sql-server-2008 ×1