svga: add new svga_check_sampler_framebuffer_resource_collision()
Reviewed-by: Neha Bhende <bhenden@vmware.com>
This commit is contained in:
parent
d3d20d650d
commit
ff500ed5a1
|
@ -104,6 +104,10 @@ svga_check_sampler_view_resource_collision(struct svga_context *svga,
|
|||
struct svga_winsys_surface *res,
|
||||
unsigned shader);
|
||||
|
||||
boolean
|
||||
svga_check_sampler_framebuffer_resource_collision(struct svga_context *svga,
|
||||
enum pipe_shader_type shader);
|
||||
|
||||
enum pipe_error
|
||||
svga_validate_pipe_sampler_view(struct svga_context *svga,
|
||||
struct svga_pipe_sampler_view *sv);
|
||||
|
|
|
@ -40,9 +40,10 @@
|
|||
#include "svga_format.h"
|
||||
#include "svga_resource_buffer.h"
|
||||
#include "svga_resource_texture.h"
|
||||
#include "svga_sampler_view.h"
|
||||
#include "svga_shader.h"
|
||||
#include "svga_state.h"
|
||||
#include "svga_sampler_view.h"
|
||||
#include "svga_surface.h"
|
||||
|
||||
|
||||
/** Get resource handle for a texture or buffer */
|
||||
|
@ -87,6 +88,36 @@ svga_check_sampler_view_resource_collision(struct svga_context *svga,
|
|||
}
|
||||
|
||||
|
||||
/**
|
||||
* Check if there are any resources that are both bound to a render target
|
||||
* and bound as a shader resource for the given type of shader.
|
||||
*/
|
||||
boolean
|
||||
svga_check_sampler_framebuffer_resource_collision(struct svga_context *svga,
|
||||
enum pipe_shader_type shader)
|
||||
{
|
||||
struct svga_surface *surf;
|
||||
unsigned i;
|
||||
|
||||
for (i = 0; i < svga->curr.framebuffer.nr_cbufs; i++) {
|
||||
surf = svga_surface(svga->curr.framebuffer.cbufs[i]);
|
||||
if (surf &&
|
||||
svga_check_sampler_view_resource_collision(svga, surf->handle,
|
||||
shader)) {
|
||||
return TRUE;
|
||||
}
|
||||
}
|
||||
|
||||
surf = svga_surface(svga->curr.framebuffer.zsbuf);
|
||||
if (surf &&
|
||||
svga_check_sampler_view_resource_collision(svga, surf->handle, shader)) {
|
||||
return TRUE;
|
||||
}
|
||||
|
||||
return FALSE;
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* Create a DX ShaderResourceSamplerView for the given pipe_sampler_view,
|
||||
* if needed.
|
||||
|
|
Loading…
Reference in New Issue