Skip to content

HTTPS clone URL

Subversion checkout URL

You can clone with
or
.
Download ZIP

Comparing changes

Choose two branches to see what's changed or to start a new pull request. If you need to, you can also compare across forks.

Open a pull request

Create a new pull request by comparing changes across two branches. If you need to, you can also compare across forks.
  • 2 commits
  • 4 files changed
  • 0 commit comments
  • 1 contributor
View
14 src/library/compiler_translate.c
@@ -76,11 +76,11 @@ compiler_context__translate_vp(struct gl_context * mesa_ctx, struct gl_shader_pr
vp->result_to_output,
stream_info);
- struct tgsi_shader_info info;
- tgsi_scan_shader(tgsi.tokens,&info);
+ struct tgsi_shader_info vp_info;
+ tgsi_scan_shader(tgsi.tokens,&vp_info);
tgsi_dump(tgsi.tokens,0);
- nvfx_vp = nvfx_vertprog_translate((struct nvfx_context *)(st_context(mesa_ctx) -> pipe),&tgsi,&info);
+ nvfx_vp = nvfx_vertprog_translate((struct nvfx_context *)(st_context(mesa_ctx) -> pipe),&tgsi,&vp_info);
/* If exec or data segments moved we need to patch the program to
* fixup offsets and register IDs.
@@ -649,10 +649,10 @@ compiler_context__translate_stream_vp_fp(struct gl_context * mesa_ctx,struct gl_
struct pipe_shader_state tgsi;
tgsi.tokens = streamvp_tokens;
- struct tgsi_shader_info info;
- tgsi_scan_shader(streamvp_tokens,&info);
+ struct tgsi_shader_info streamvp_info;
+ tgsi_scan_shader(streamvp_tokens,&streamvp_info);
- nvfx_vp = nvfx_vertprog_translate((struct nvfx_context *)(st_context(mesa_ctx) -> pipe),&tgsi,&info);
+ nvfx_vp = nvfx_vertprog_translate((struct nvfx_context *)(st_context(mesa_ctx) -> pipe),&tgsi,&streamvp_info);
}
/* If exec or data segments moved we need to patch the program to
@@ -709,7 +709,7 @@ compiler_context__translate_stream_vp_fp(struct gl_context * mesa_ctx,struct gl_
for(unsigned int i = 0;i < stream_info -> num_outputs;++i) {
const unsigned int slot = stream_info -> output[i].register_index;
-
+
ureg_MOV(streamfp_ureg,
ureg_DECL_output(streamfp_ureg,TGSI_SEMANTIC_COLOR,i),
//ureg_DECL_fs_input(streamfp_ureg,vp -> output_semantic_name[slot],vp -> output_semantic_index[slot],TGSI_INTERPOLATE_CONSTANT)
View
4 src/library/draw.cc
@@ -571,11 +571,11 @@ namespace {
const uint32_t count = 16;
if(rsxgl_feedback_framebuffer_check(ctx,0,count)) {
- uint16_t w = 0, h = 0;
+ const uint16_t w = RSXGL_MAX_RENDERBUFFER_SIZE, h = RSXGL_MAX_RENDERBUFFER_SIZE;
const uint32_t vertexid_index = ctx -> program_binding[RSXGL_ACTIVE_PROGRAM].streamvp_vertexid_index;
- rsxgl_feedback_framebuffer_validate(ctx,0,count,&w,&h,lastTimestamp);
+ rsxgl_feedback_framebuffer_validate(ctx,0,count,lastTimestamp);
// set feedback "viewport":
{
View
17 src/library/framebuffer.cc
@@ -1598,7 +1598,8 @@ rsxgl_feedback_framebuffer_check(rsxgl_context_t * ctx,uint32_t offset,uint32_t
size_t binding = RSXGL_TRANSFORM_FEEDBACK_BUFFER0, range_binding = RSXGL_TRANSFORM_FEEDBACK_BUFFER_RANGE0;
for(unsigned int i = 0;i < program.streamfp_num_outputs;++i,++binding,++range_binding) {
if(ctx -> buffer_binding.names[binding] == 0 ||
- (offset + length) > ctx -> buffer_binding_offset_size[range_binding].second) {
+ (offset + length) > ctx -> buffer_binding_offset_size[range_binding].second ||
+ ctx -> buffer_binding[binding].mapped) {
return false;
}
}
@@ -1607,7 +1608,7 @@ rsxgl_feedback_framebuffer_check(rsxgl_context_t * ctx,uint32_t offset,uint32_t
}
void
-rsxgl_feedback_framebuffer_validate(rsxgl_context_t * ctx,uint32_t offset,uint32_t count,uint16_t * pw,uint16_t * ph,uint32_t timestamp)
+rsxgl_feedback_framebuffer_validate(rsxgl_context_t * ctx,uint32_t offset,uint32_t count,uint32_t timestamp)
{
gcmContextData * context = ctx -> gcm_context();
@@ -1650,12 +1651,9 @@ rsxgl_feedback_framebuffer_validate(rsxgl_context_t * ctx,uint32_t offset,uint32
rsxgl_emit_surface(context,RSXGL_FRAMEBUFFER_SURFACE_DEPTH,surface_t());
- const uint16_t div = count / RSXGL_MAX_RENDERBUFFER_SIZE;
- const uint16_t mod = count % RSXGL_MAX_RENDERBUFFER_SIZE;
-
- const uint16_t w = (div > 0) ? RSXGL_MAX_RENDERBUFFER_SIZE : mod;
- //const uint16_t h = div + ((mod > 0) ? 1 : 0);
- const uint16_t h = w;
+ const uint16_t
+ w = RSXGL_MAX_RENDERBUFFER_SIZE,
+ h = RSXGL_MAX_RENDERBUFFER_SIZE;
#if 0
rsxgl_debug_printf("%s format:%x color_targets:%x size:%ux%u color_mask:%x color_mask_mrt:%x depth_mask:%x %ux%u\n",__PRETTY_FUNCTION__,
@@ -1687,7 +1685,4 @@ rsxgl_feedback_framebuffer_validate(rsxgl_context_t * ctx,uint32_t offset,uint32
gcm_emit_at(buffer,14,depth_mask);
gcm_finish_n_commands(context,15);
-
- *pw = w;
- *ph = h;
}
View
2  src/library/framebuffer.h
@@ -153,6 +153,6 @@ void rsxgl_renderbuffer_validate(rsxgl_context_t *,renderbuffer_t &,uint32_t);
void rsxgl_framebuffer_validate(rsxgl_context_t *,framebuffer_t &,uint32_t);
void rsxgl_draw_framebuffer_validate(rsxgl_context_t *,uint32_t);
bool rsxgl_feedback_framebuffer_check(rsxgl_context_t *,uint32_t,uint32_t);
-void rsxgl_feedback_framebuffer_validate(rsxgl_context_t *,uint32_t,uint32_t,uint16_t *,uint16_t *,uint32_t);
+void rsxgl_feedback_framebuffer_validate(rsxgl_context_t *,uint32_t,uint32_t,uint32_t);
#endif

No commit comments for this range

Something went wrong with that request. Please try again.